Vous êtes sur la page 1sur 278

%Megabyte s.a.c.

G R U P O E D I T O R I A L
Tercera Edicin, Febrero 2006
rea : Computacin e Informtica
Hecho el Depsito Legal en la Biblioteca Nacional del Per
N 2006-1601 (Ley N 26905 / D.S. N 017-98-ED)
R.U.C. N 20507993444
ISBN: 9972 - 821-53 - 6
Edward Aburto Correa
Gerente General___________
Juan Jos Castaena Len
Autor
Gean Cario Apolinario Garca
Diseo de Cartula _____
Visual Basic 6.0 Como Debe Ser.....
Derechos Reservados / Decreto Ley 822
Prohibido la reproduccin total o parcial de este libro, su tratamiento informtico
la transmisin de ninguna otra forma o por cualquier otro medio ya sea electrnico,
mecnico, por fotocopia, por registro u otros mtodos sin permiso previo y por
escrito de los titulares de Copyright.
Distribucin y Ventas
Jr. Rufino Torrico 889 of. 208 - Cercado de Urna
Telefax: 332-4110
www.editorialmegabyte.comventas@editorialmegabyte.com
Cta. Banco de Crdito
SI. 191-12591005-0-86
$. 191-12591006-1-87
VISUAL BASIC como debe ser.
Dedicatoria |
A Jos Domingo y Mara Eugenia, mis
Padres, por darme todo lo que estuvo
a su alcance para ser un profesional.
A Blanca Mrela, mi esposa y a
Juan Jos, Jos Mara y Mara Jos,
mis hijos, por el amor que nos une.
G rupo E ditorial Megabyte
'fo VISUAL BASIC como debe ser.. <
AGRADECIMIENTO
A todas las personas e instituciones que, una vez
ms, hicieron posible la culminacin de este segundo
libro.
A mis alumnos, de manera especial, por ser ellos
quienes me ensearon, diariamente qu y cmo
escribir este libro.
El Autor.
6 G rupo E ditorial Megabyte
VISUAL BASIC como debe ser.. . 4b
PRLOGO
Pensando en ti, me anim por la redaccin de este libro. Visual
Basic, como debe ser..., es como t: nico; distinto de muchos otros
libros de computacin, especialmente los referentes a lenguaje de
programacin.
A travs de mis aos de experiencia como docente he notado, con
asombro y pesar, que la mayora de los estudiantes se quejan de los
libros porque no los entienden, ya que slo presentan conceptos y
sintaxis que antes de responder a sus inquietudes y aclarar sus dudas,
los confunden. Adems, dicen, presentan una secuencia de temas que
pocas veces se tratan en el desarrollo de la asignatura.
Visual Basic, como debe s e r. . ., es un texto eminentemente
prctico, quizs esto sea lo medular que lo hace diferente de otros libros.
Aqu encontrars programas desarrollados y ejercicios propuestos que
te ayudarn a conjugar armoniosamente la teora y la prctica. Es, pues,
una eficiente gua didctica para crear aplicaciones que te sern tiles
en la realizacin de tus diversas tarcas como programador en tu centro
de trabajo.
S, tambin, que como docente no slo debo ser el facilitador del
aprendizaje, si no que adems tengo la tarea de buscar despertar en los
alumnos su aletargado espritu de investigacin que le ayuden a no
contestar, con los conocimientos, impartidos en aulas sino ms bien
que profundicen sus conocimientos, los contrasten y los pongan en
prctica. Para ellos y par ello presento tambin aplicaciones propuestas.
G rupo E ditorial Megabyte 7 ^ | | | l
o
VISUAL BASIC como debe ser.. . i l i l i P
C O N T E N I D O
Prlogo.................................................................................................................................. 7
Indice .................................................................................................................................... 9
Introduccin ........................................................................................................................ 17
CAPTULO I : ENTORNO DEL VISUAL BASIC
Acceso al visual Basic ......................................................................................................... 21
Ventana de Inicio.................................................................................................................. 22
Qu es un Proyecto?............................................................................................................ 23
Componentes del Visual Basic.............................................................................................. 25
Descripcin de la Barra Estndar......................................................................................... 28
Ventana de Componentes..................................................................................................... 31
Salir del Visual Basic.............................................................................................................. 33
Solucionando los problemas iniciales................................................................................... 34
Filosofa de programacin en Visual Basic........................................................................... 40
Preguntas de repaso N 01.................................................................................................... 41
CAPTULO II : DESCRIPCIN DE LOS CONTROLES BSICOS
El formulario ........................................................................................................................ 45
Cmo asignar una propiedad?............................................................................................. 47
Etiqueta (Label)..................................................................................................................... 49
Aplicacin desarrollada N 01.............................................................................................. 50
Seleccionar controles ............................................................................................................ 51
Modificar el tamao de los controles................................................................................... 52
Mover el control .................................................................................................................. 52
Guardar o Grabar una aplicacin.......................................................................................... 54
Ventana para grabar un formulario....................................................................................... 55
Ventana para grabar un proyecto......................................................................................... 55
Abrir o recuperar una aplicacin ......................................................................................... 56
Ejecutar una aplicacin ........................................................................................................ 57
Finalizar una aplicacin ....................................................................................................... 58
Grabar un proyecto en un diskette....................................................................................... 58
Crear un archivo ejecutable (*.EXE).................................................................................... 59
Qu es un acceso directo?.................................................................................................... 59
Crear un acceso directo........................................................................................................ 60
Caja de texto (Text) ............................................................................................................ 64
I P I ^ G r u p o E d i t o r i a l M e g a b y t e 9 m
VISUAL BASIC como debe ser.. .
Aplicacin desarrollada N 02.................................................. .......................................... 65
Aplicacin propuesta N 01................................................................................................. 67
Aplicacin desarrollada N 03.............................................................................................. 67
Botones de Comandos (Command)..................................................................................... 69
Aplicacin desarrollada N 04............................................................................................. 70
Escribir instrucciones para los controles............................................................................. 71
Ventana de cdigo o de instrucciones................................................................................... 71
Principales eventos .............................................................................................................. 72
Visual Basic le ayuda a escribir los programas..................................................................... 75
Aplicacin propuesta N 0 2 ................................................................................................. 75
Trabajando con os nombres de los controles...................................................................... 76
Aplicacin desarrollada N 05.............................................................................................. 77
Errores ms comunes........................................................................................................... 80
Preguntas de repaso............................................................................................................. 81
CAPTULO III : ELEMENTOS DE LA PROGRAMACIN
Procedimientos y funciones ................................................................................................ 85
Sintaxis de un procedimiento............................................................................................... 87
Sintaxis de una funcin......................................................................................................... 88
Parmetros por referencia .................................................................................................... 89
Parmetros por valor ............................................................................................................ 89
Creacin de procedimientos a nivel de formulario ............................................................ 90
Llamar a un procedimiento................................................................................................... 91
Constantes ............................................................................................................................. 92
Variables................................................................................................................................. 92
Tipos de variables ................................................................................................................ 94
Diferencia entre Dim. y Static ............................................................................................. 95
Aplicacin Desarrollada N 0 6 ............................................................................................ 97
Ejemplo de una variable a nivel de procedimiento ............................................................. 98
Ejemplo de una variable a nivel de formulario ................................................................... 98
Operadores aritmticos ........................................................................................................ 99
Orden de ejecucin de los operadores................................................................................. 99
Comentarios .......................................................................................................................... 100
Aplicacin desarrollada N 0 7 ............................................................................................. 101
IfThen................................................................................................................................... 106
Operadores lgicos............................................................................................................... 107
MsgBox.................................................................................................................................. 109
Iconos de la funcin MsgBox.............................................................................................. 110
Aplicacin desarrollada N 08 ............................................................................................. 112
Consistencia de datos ........................................................................................................... 116
E ditorial M e g a b y t e # ^
VISUAL BASIC como debe ser.. .
Aplicacin desarrollada N 0 9 ............................................................................................ 116
InputBox ............................................................................................................................... 122
Contadores y acumuladores ................................................................................................ 125
Aplicacin desarrollada N 1 0 ............................................................................................ 125
Aplicaciones propuestas N 04 y 05 .................................................................................. 130
IIF ........................................................................................................................................... 131
SelectCase............................................................................................................................. 132
Aplicacin desarrollada N 11.............................................................................................. 133
Aplicacin desarrollada N 12 ........................................................................................... 137
Aplicacin propuesta N 06 ............................................................................................... 143
Choose................................................................................................................................... 143
Funciones de cadena............................................................................................................ 144
Aplicacin desarrollada N 13 ............................................................................................ 145
Funciones tipo fecha ............................................................................................................ 146
Aplicacin desarrollada N 1 4 ............................................................................................. 146
Funcin DateAdd ............. ,.................................................................................................. 148
Funcin DateDiff.................................................................................................................. 148
Funcin DateAdd ................................................................................................................. 150
Funciones tipo hora .............................................................................................................. 152
Funciones Numricas............................................................................................................. 152
Aplicacin desarrollada N 15 ............................................................................................. 154
Funcin Shell........................................................................................................................ 157
Aplicacin desarrollada N 16 ........................................................................................... 158
For Next ................................................................................................................................ 159
Do Loop ................................................................................................................................ 159
DoEvenst............................................................................................................................... 159
Aplicacin desarrollada N 17.............................................................................................. 160
Array...................................................................................................................................... 162
Aplicacin desarrollada N 1 8 ............................................................................................. 163
Crear un array de controles ................................................................................................. 164
Aplicacin desarrollada N 19 ........................................................................................... 165
Aplicacin desarrollada N 2 0 ............................................................................................ 169
Aplicacin desarrollada N 21 ............................................................................................ 174
Errores ms comunes............................................................................................................ 178
Preguntas de repaso N 0 3 ................................................................................................... 179
CAPTULO IV : MEJORANDO EL ASPECTO DE LOS FORMULARIOS
Control Frame (Marco) ....................................................................................................... 183
Asignando colores................................................................................................................. 184
Qbcolor ................................................................................................................................. 184
G r u p o E d i t o r i a l Megabyte H
RGB ................................................. .................................................................................... 184
Control Shape (Figuras)........................................................................................................ 185
Control Line (Lnea) ............................................................................................................ 186
Control PictureBox (Caja de Imagen) ................................................................................ 187
Mtodo grficos ................................................................................................................... 189
Aplicacin desarrollada N 22............................................................................................. 190
Buscando grficos en la computadora .............................................................................. 193
Control Image ....................................................................................................................... 195
Control Timer ....................................................................................................................... 195
Aplicacin desarrollada N 2 3 ............................................................................................ 196
Aplicacin desarrollada N 2 4 ............................................................................................ 198
Control ImageList (Lista de Imgenes).............................................................................. 200
Manejo de las imgenes en el control ImageList............................................................... 202
Aplicacin desarrollada N 25............................................................................................. 203
Funcin LoadPicture............................................................................................................. 203
Control Calendar (Calendario)............................................................................................ 204
Aplicacin desarrollada N 26.............................................................................................. 205
Control StatusBar (Barra de Estado)................................................................................... 206
Ejemplo de una aplicacin usando el control StatuBar ..................................................... 209
Pantallas de presentacin ..................................................................................................... 211
Control OLE.......................................................................................................................... 211
Activar una presentacin en Power Point ......................................................................... 212
Objetos insertables................................................................................................................ 214
Controles Hscroll y Vscroll ................................................................................................ 215
Aplicacin desarrollada N 27 ............................................................................................. 215
Control ProgressBar............................................................................................................. 218
Control Slider......................................................................................................................... 218
Preguntas de repaso N 04 .................................................................................................. 219
CAPTULO V : INGRESO PERSONALIZADO DE DATOS
ComboBox............................................................................................................................. 223
Aplicacin desarrollada N 28 ............................................................................................. 224
Aplicacin propuesta N 07 ................................................................................................ 225
Aplicacin desarrollada N 29.............................................................................................. 226
Aplicacin propuesta N 08 ............................................................................................... 229
Aplicacin desarrollada N 31 ............................................................................................ 230
Aplicacin desarrollada N 32 ............................................................................................ 233
OptionButton ....................................................................................................................... 236
Aplicacin desarrollada N 33 ............................................................................................. 237
Aplicacin desarrollada N 34 ............................................................................................ 239
A f c VISUAL BASIC como debe ser.. . <5>
l j i | | | > 12 G rupo E ditorial Megabyte ^ f|||
CheckBox.............................................................................................................................. 240
Aplicacin desarrollada N 35 ............................................................................................ 240
ListBox .................................. .............................................................................................. 243
Aplicacin desarrollada N 36 ............................................................................................ 244
Calculando los das Probables de Fertilidad....................................................................... 246
UpDown ..... ......................................................................................................................... 248
MaskEdBox ......................................................................................................................... 250
Aplicacin desarrollada N 37.............................................. ............................................... 252
SendKeys ............................................................................................................................. 257
Aplicacin desarrollada N 38 ............................................................................................ 258
Aplicacin desarrollada N 39 ............................................................................................ 261
Instruccin With ................................................................................................................... 264
Preguntas de repaso N 05 .................................................................................................. 265
CAPTULO VI : MANEJO DE VARIOS FORMULARIOS
Agregar Formularios a una aplicacin................................................................................. 269
Quitar formularios de una aplicacin ................................................................................. 271
Seleccionar un formulario a ejecutar primero..................................................................... 271
Instrucciones para manejar formularios ............................................................................. 272
Aplicacin desarrollada N 40 ............................................................................................ 273
Aplicacin desarrollada N 41.............................................................................................. 278
Errores ms comunes............................................................................................................ 280
Preguntas de repaso N 06 .................................................................................................. 281
CAPTULO VII : DISEO DE MENU
Editar EN men .................................................................................................................... 295
Instrucciones PopupMen .................................................................................................. 298
Control ToolBar ................................................................................................................... 303
Aplicacin desarrollada N 43 ............................................................................................ 305
SsTab...................................................................................................................................... 309
Errores ms comunes............................................................................................................ 311
Preguntas de repaso N 07................................. .................................................................. 312
CAPTULO VIII : MANEJO DE ARCHIVOS
DriveListBox .................................................. ..................................................................... 315
DirListBox ........................................................................................................................... 315
FileListBox ........................................................................................................................... 315
Aplicacin desarrollada N 44 ........................................................................................... 316
Aplicacin desarrollada N 45 ........................................................................................... 317
CommoDialog ...................................................................................................................... 319
VISUAL BASIC como debe ser.. .
l i l i l ^ G r u p o E d i t o r i w Megabyte 13
_______________ , . o
^ i ' VISUAL BASIC como debe ser.. .
Aplicacin desarrollada N 46 ........................................................................................... 323
Uso de la impresora............................................................................................................. 325
Objeto printer ....................................................................................................................... 326
Mtodo Print ....................................................................................................................... 327
Instruccin T a b ..................................................................................................................... 327
Instruccin S p c ..................................................................................................................... 328
Mtodo PrintForm .............................................................................................................. 328
Aplicacin desarrollada 47 ................................................................................................... 328
Comandos del DOS............................................................................................................. 331
Control de Errores ............................................................................................................... 332
On Error ................................................................................................................................ 332
Objeto E r r ............................................................................................................................. 332
Errores interceptables ms comunes ................................................................................. 333
Control RichTextBox........................................................................................................... 334
LoadFile................................................................................................................................. 335
SaveFile.................................................................................................................................. 335
Funciones API...................................................................................................................... 336
Apagar la computadora automticamente ......................................................................... 337
Crear discos de instalacin .................................................................................................. 338
Control ActiveMovie ........................................................................................................... 340
Crear Archivos de Ayudas................................................................................................... 341
CAPTULO IX : MANEJO DE BASE DE DATOS
Base de datos......................................................................................................................... 347
Tablas...................................................................................................................................... 347
Registros y Campos ............................................................................................................. 347
Crear una Base e Datos usando Visual Basic........................... ......................................... 349
Tipos de Recordset ............................................................................................................... 351
Crear una Base de Datos usando Microsoft Access ......................................................... 354
Control Data ......................................................................................................................... 358
Objeto Recordset .................................................................................................................. 358
Aplicacin desarrollada N 48 ............................................................................................. 359
Aplicacin desarrollada N 49 ............................................................................................. 362
Control DbList ...................................................................................................................... 364
Consulta de registros ........................................................................................................... 364
Aplicacin desarrollada N 50 ............................................................................................. 365
Mtodo MoveFirst .............................................................................................................. 365
Mtodo Nomatch ................................................................................................................. 366
Mantenimiento de registros ............................................................................................... 367
Aplicacin desarrollada N 51 ............................................................................................ 367
G rupo E ditorial M e g a b y t *
VISUAL BASIC como debe ser.. .
Asistente VB para base de datos ........................................................................................ 371
Control Dbcombo................................................................................................................. 372
Aplicacin desarrollada N 52 ........................................................................................... 372
Aplicacin propuesta N 09 ................................................................................................ 373
Control Dbgrid...................................................................................................................... 374
Aplicacin desarrollada N 53 ............................................................................................. 376
Instrucciones SQL................................................................................................................ 376
Aplicacin desarrollada N 54 ............................................................................................ 379
Aplicacin desarrollada N 55 ............................................................................................. 383
Variables tipo Recordset...................................................................................................... 386
Aplicacin desarrollada N 56 ............................................................................................ 388
Aplicacin desarrollada N 57 ............................................................................................ 392
Modificar varios registro a la v ez........................................................................................ 397
Mtodos de Transacciones .................................................................................................. 397
Aplicacin desarrollada N 58 ............. ............................................................................... 397
Manejo de fotos.................................................................................................................... 398
Aplicacin desarrollada N 59 ............................................................................................. 398
Manejo de varias tablas ....................................................................................................... 402
Uniendo tablas ..................................................................................................................... 404
Aplicacin desarrollada N 6 0 ............................................................................................. 406
Errores ms comunes............................................................................................................ 410
Preguntas de repaso N 09 .................................................................................................. 411
CAPTULO X : PROGRAMACIN DAO
Objeto de acceso a datos ..................................................................................................... 416
Mtodos para manejar base de datos .................................................................................... 417
Antes de programar con DAO................................................................................................ 420
Control MsFlexgrid................................................................................................................. 425
Otras instrucciones SQL ....................................................................................................... 433
Control MsChart .................................................................................................................... 440
CAPTULO XI : CREACIN DE REPORTE
Pasos para crear un reporte................................................................................................... 447
Reportes tipo Estndar .......................................................................................................... 447
Vincular Tablas....................................................................................................................... 448
Creacin de ndices................................................................................................................ 450
Ordenacin de los registros ................................................................................................... 451
Totalizar o contar registros .................................................................................................. 452
Estilo del reporte .................................................................................................................. 453
Control Cristal Report .......................................................................................................... 453
I||j^ G rupo E ditorial Megabyte
15 g
VISUAL BASIC como debe ser.
CAPTULO XII PROGRAMACIN ADO
Conexin Local..................................................................................................................... 461
Conexin Remota .................................................................. .............................................. 461
ODBC .................................................................................................................................... 461
Archivos de Vnculos OLE-DB........................................................................................... 461
Configurar una conexin ODBC......................................................................................... 462
Configurar una conexin OLE-DB...................................................................................... 466
El control ADO..................................................................................................................... 467
Uso de la propiedad ConnectionString .............................................................................. 468
Uso de la propiedad RecordSource..................................................................................... 470
Errores ms comunes ............................................................................................................. 471
Control DataGrid ................................................................................................................ 474
Control DataList ................................................................................................................. 474
Control DataCombo ...............................................................................................................474
Control DTPicker ....................................................................................................................491
EIDataReport ....................................................................................................................... 498
Controles del DataReport ................................................................................................... 500
Propiedades para un reporte ............................................................................................... 501
Mtodos del DataReport ..................................................................................................... 501
DataEnvironment ................................................................................................................ 508
Objeto Connection ................................................................................................................. 510
Objeto Command ................................................................................................................. 511
Uso del Data Report con Data Enviroment ...................................................................... 513
El Control MSHFlexGrid..................................................................................................... 514
Uso de comandos Jerrquicos en MSHFIexGrid .............................................................. 515
Reporte de comandos Jerrquicos ....................................................................................... 518
Conexin de una Base de Datos mediante Instrucciones .................................................. 520
Mtodo Execute..................................................................................................................... 528
Instrucciones SQL para consultas de Accin .................................................................... 529
Instrucciones DLL ................................................................................................................ 531
1 8 1 1 ^ 1 6 G r u p o E d i t o r i a l Megabyte
VISUAL BASIC como debe ser. . .
INTRODUCCIN
Este libro esta diseado de tal manera que sirve de apoyo y gua para estudian
tes de programacin de computadoras y para un autoaprendizaje porque ha sido
escrito con la experiencia que tiene el autor en el dictado del curso y sobre todo
con la experiencia de alumnos en su proceso de aprendizaje, observando sus difi
cultades y escuchando sus preguntas y sugerencias.
Visual Basic Como Debe Ser..., contiene:
y SECUENCIA ADECUADA DE TEMAS
Obtenida de los aos de experiencia que tiene el autor en el dictado del
curso con la finalidad que no se pierda el inters en su aprendizaje,
jy DISKETTE GRATIS
Que contiene los principales programas desarrollados en este libro para dar
ejemplos mas rpidos y apoyar al lector para que pueda desarrollar aplica
ciones mas avanzadas,
y APLICACIONES PROPUESTAS Y PREGUNTAS DE REPASO
Para que el lector demuestre en forma prctica los conocimientos adquir
dos y autoevaluarse con la finalidad de ir midiendo los conocimientos
adquiridos.
^ TEMAS DE IMPORTANCIA PARA UN CENTRO DE TRABAJO.
Porque se prepara al lector para desarrollar por s solo aplicaciones que se
presenten en un centro de trabajo, como por ejemplo:
QJ Controles ActiveX
Q j Creacin de archivos de ayuda
Q j Manejo de impresoras
y j Base de datos
QJ Instrucciones SQL
Qj Programacin ADO
QIJ Uso de DataEnvironment y DataReport
Y Mucho ms!
' G ru p o E d i t o r i a l Megabyte
17
^I VISUAL BASIC como debe ser.. .
ANTES DE EMPEZAR
Visual Basic es un programa muy fcil de aprender y con este libro no es
necesario que usted tenga conocimientos de programacin, pero si es muy
importante que sepa el manejo bsico de cualquier versin del Windows,
especialmente el manejo de Mouse.
Antes de empezar usted debe saber:
Manejar el Mouse.
Abrir y cerrar ventanas.
^ Minimizar, maximizar y restaurar ventanas.
''b Mover y modificar el tamao de las ventanas.
Manejar el teclado.
Este libro le ensea con una secuencia adecuada brindando en cada prrafo un
conocimiento mas acerca de Visual Basic, por eso es muy importante que los lea sin
apresuramiento y en el mismo orden en el que ha sido escrito.
No olvide de desarrollar las preguntas de repaso y las aplicaciones propuestas
antes de pasar al siguiente captulo.
Un libro es el mejor aliado para la formacin de un buen Profesional
G rupo E ditorial Megabyte ^f| |j||
CAPITULO I
9' " i " in )!
Mic(psoft
Visual Basic
fiew j L>3.u.y I I
5 l
<sV
ActiveX m A-rtiv^y r*U ArtivX v*5Appfcatkr. ,
Control Ward H
VBLrierpfis Adiri MwtX Active!-
Etftkx Doajmwt OU Document V/.
Cemris
\
1l
I ^.Pioyectol - Micjosoft Visual Basic [diseo] H S B l
Archivo Edicin Ver Proyecto Rumato depuracin Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
$ 3 ' & B >

0 1 D
- ^ Proyectol (Proyectol)
|Forml Form
J :
Aabtica | Por categoras j
(Nombre) Formi +\ -
Appearance 1-30
AutoRedraw False
iackColor &H8000000F8
iorderStyle 2 Sizable
Caption Formi
ClipControls True
ControlBox True
ENTORNO
DEL
VISUAL BASIC
CAPITULO I: Entorno Del Visual Basic 4
Visual Basic es un sistema diseado para crear aplicaciones grficas
de una manera rpida y sencilla las cuales se ejecutan bajo Windows.
El acceso a Visual Basic es muy sencillo y depende de la carpeta
donde lo instal o de su versin. Por ejemplo:
Accesorios
_r) Corel5
_rr) Inicio
r j 3SBEESSSB0I
AH Text Viewer
.rj ] Microsoft Visual FoxPro i j j j j Application Performance Explorer
. 7^ Powersoft 5.0 jO^ Application Setup Wizard
The Hacker Anti-Virus > 0 Automation Manager
^ Cuaderno de Microsoft Books Online
Explorador de Windows Crystal Reports
Internet Explorer & Readme
Internet Mail RemAuto Connection Manager
Internet News
fe
^ Microsoft Access
^ Microsoft Excel
'J2 Microsoft NetMeeting
Microsoft Outlook
Microsoft Photo Editor
i*l Microsoft PowerPoint
j Microsoft Word
m MS-DOS
jj ri ) Acceoric *
Adobe
. - j j Adobe A r m b * 4 0 *
CorelDRAW 8
Hwiamterrfa: de Miaosoit Office
HP DeskJet S a 840C v2 3 *
Cb
r te nr t Explore.
I r j MiCttoft Offcce ^ P r o f e s i o n a l
A b * f o m e n t o de Olhce . r j Microsoft Ofhce od *
3 ] Nuevo documento de Office . r j Merosoft SQL Serve? 7.0 *
<4l WinZip . - j Mroifr WefcPuWihirj Herramiertat errmariates de Mieto VStwIS
PLATINUM Workf/iew h t ineinel Explore . r j MicrQ:oft Visual SourceSafe
, Services er. inea * ' i j Microsoft Visual awe 6
_J Eavortos
. r j Sjfcate * 0 J Mcro:oft Visual FoxPro SO
j j , w * * " ^
j f i . v c . W ic
^ A)uda I
] E r W - n H E , t o .
MS-DOS
Si* Apagar es iin>3 Oullcx* Ewpress
I n ic i o ^ V - loflfcWf csERr>ERX35
|j | ||^ G r u p o E d i t o r i a l Megabyte 21 4S
<Q>
Segn como est configurado el Visual Basic, antes de ingresar a su
pantalla principal Ud. puede visualizar lo siguiente:
m X m / VISUAL BASIC como debe ser.. .
* H' ^
Microsoft
Visual Basic
_Ll2<J
New j Existing | Recent )
S 7 J1t7
V
ActiveX EXE ActiveX DLL ActiveX
Control
VB Application
Wizard
l SI Si
[
<
l
VB Enterprise
Edition
Controls
Addin ActiveX
Document DLL
ActiveX
Document EXE
Cancelar
Ayuda
Don't show this dialog in the future
Elija STANDARD EXE para ejecutar el Visual Basic en modo Estndar
y luego haga click en el botn ABRIR.
NOTA:
Para visualizar o no esta ventana cada vez que Ud. ingresa al Visual
Basic, debe hacer lo siguiente: Una vez que ingres al Visual Basic haga
click en la opcin TOOLS (Herramientas) de la barra de men y elija
OPTIONS... De la ventana que se visualiza active la pgina
ENVIRONMENT (Entorno)y active el botn Prompt For Project (Pre
guntar por un Proyecto)para que se visualice esta ventana cada vez que
ingresa o el botn Create Default Project (Crear un proyecto predetermi
nado) para que no se visualice.
m
22
G rupo E ditorial Megabyte<
CAPITULO I: Entorno Del Visual Basic
La pantalla tiene tres hojas: New, Existing y Recent.
La hoja NEW, permite crear un formulario en blanco para empezar a
disear una nueva aplicacin (Ver la figura anterior).
La hoja Existing muestra todos los proyectos creados y permite abrir
cualquiera de ellos:
rrrn
Microsoft
Visual Basic
New Existing | Recent | -----------------------------------------------------
Buscar en: | _ J Vb
J CKsvr
J Help
J Nueva carpeta
JOdbc
J report
J Repostry
j samples
J Setup
J setupkit
J Tempiate
J Tsql
j vbonline
j L I
_ j Winapi
u J Wizards
amer.vbp
^ANA.vbp
cli..vbp
%|CHIQUI.virr
j J
Nombre de archivo: (j
Archivos de tipo: [Project Files ( vbp;".mak;".vbg)
A,brir
Ayuda
r Doni show tNs dialog in th future
Casilla que permite o no visualizar esta
pantalla al ingresar al Visual Basic
Selecciona las
hojas
Selecciona
una car pet a
___ Muestra los
proyectos que estn
ms a la derecha
Selecciona el
tip o de archivo
que desea ver.
QU ES UN PROYECTO ?
Es toda aplicacin que se desarrolla en Visual Basic y est compuesto
por formularios, mdulos, etc. Para abrir un proyecto (visualizar uno que ya
existe) siga uno de los siguientes pasos:
Haga doble click en el nombre del proyecto.
Seleccinelo haciendo un click en l y luego haga click en el botn
Abrir.
Escriba el nombre del proyecto siempre y cuando se encuentre en la
carpeta activa y luego haga click en el botn Abrir.
G rupo E ditorial Megabyte
23
La hoja Recent muestra todos los proyectos activados recientemente y
nos da la posibilidad de abrirlos.
5 9 ^ VISUAL BASIC como debe ser. . .
New Project
Microsoft
Visual Basic
New | Existing Recent
File
%CHIQUI
garner
IoMAR
PROJECT1
I^LEO
% | tALLER~1
Folder
C:\Archivos de programa\Dev5tudio\VB
C:\Archivos de programa\Dev5tudio\VB
C:\Archivos de programa\Dev5tudio\VB
C:\Archivos de programa\DevStudio\VB
C:\ARCHIV~ 1\DEVSTU~ 1\VB
C:\ ARCHI V~ 1\DEVSTU~ 1\ VB
C:\ARCHI V~ 1\DEVSTU~ 1\VB
J
j T 1
Abrif
Cancelar
Ayuda
P Don't show this dialog in the future
Seleccione el nombre del proyecto y haga click en el botn Abrir.
MUY IMPORTANTE
Si en cualquiera de las 3 pginas Ud. selecciona la opcin CANCELAR,
ingresar al Visual Basic, pero no podr ver ninguno de sus componentes.
Para solucionar este problema puede seguir cualquiera de los siguientes
pasos:
De la opcin FILE (Archivo) elija New Project.
Pulse las teclas < CONTROL > + < N >
24 G rupo E ditorial Megabyte
CAPTULO I: Entorno Del Visual Basic
ENTORNO DEL VISUAL BASIC
Al ingresar al Visual Basic se visualiza la siguiente pantalla:
Barra de Titulo
Barra de Men Barra Estndar
Formulario
' ^ r Proyecto1 - Microsoft Visual Basic [diseo]
Archivo Edicin Ver Provecto Formato Depuracin Ejecutar Consulta
3' 3 0
Diagrama Herramientas Component os Ventana Ayuda
f l 15* ' i A
| i Propiedades - Formi mmm
jForml Form
zi
Alfabtica | categoras )
-------- 1
(Nombre)
Appearance
AutoRedraw
BackColor
BorderStyle
Caption
ClipControls
ControIBox
Formi
1- 3D
False
&H80G0000F8
2 - Sizable
Formi
True
True
zi
Proyecto 1 (Proyecto 1)
03 Formularios
G Forml (Forml)
Caja de
Herramientas
Ventana de
Proyecto
Ventana de
Propiedades
Ventana de
Ubicacin del
Formulario
G rupo E ditorial Megabyte
25
BARRA DE MENU
'-in>x|
Archivo Edicin Ver Proyecto Formato Depuracin Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
Contiene las rdenes que se utilizan para desarrollar una aplicacin. Las
opciones que se visualizan dependen de la versin del Visual Basic.
M
DESCRIPCIN DE LA OPCIN ARCHIVO
Una de las opciones de la Barra de men mas utilizada es la opcin
Archivo la cual contiene:
Nuevo Proyecto
Crea un nuevo proyecto.
Abrir Proyecto
Abre un proyecto existente
Agregar Proyecto
Adiciona uno de los proyecto a la aplicacin
Quitar Proyecto
Borra uno de los proyectos activados
Guardar Proyecto
Graba un Proyecto diseado
Guardar Proyecto Como
Graba un proyecto con otro nombre
Guardar Forml
Graba el formulario
Guardar Forml como
Graba el formulario con otro nombre
Imprimir
Imprime el proyecto o lo seleccionado
Generar Proyectol.exe
Crea el proyecto ejecutable
Salir
Sale del Visual Basic
Para elegir cualquier opcin haga clic en dicha opcin o utilice
las teclas rpidas que algunas de ellas tienen, por ejemplo: para
salir de Visual Basic puede usar Alt + Q.
B B b VISUAL BASIC como debe ser.. .
2 6 G r u p o E d i t o r i a l Megabyte
, Proyeclo! - Microsoft Visual Basic {diseo]
CAPTULO I: Entorno Del Visual Basic
VENTANA DE UBICACIN DEL FORMULARIO
Se activa haciendo click en:
a
Se utiliza para indicar la
posicin del formulario en la
pantalla cuando no queremos
que el formulario ocupe toda
la pantalla.
BARRA ESTANDAR
,M- B C L! Cr>. t- !* -b W* ,S.
Contiene los botones que permiten realizar las tareas ms comunes
de una manera rpida como: grabar, abrir, ejecutar un programa,
finalizar un programa, etc.
NOTA : Si no visualiza la Barra Estndar debe hacer click en la
opcin VIEW (Ver) de la barra de men, luego en ToolBars
y activar Estndar.
jjylgp Grupo Editorial Megabyte
27
O
% VISUAL BASIC como debe ser.. .
DESCRIPCION DE LA BARRA ESTANDAR
Crea un Nuevo Proyecto
Crea un Nuevo Formulario
Activa el Editor de Men
Abre un Proyecto
[O Graba un Proyecto
^ Ejecuta un Proyecto
Finaliza un Programa
Activa la Ventana de Proyecto
tiO Activa la V. de Propiedades
t
Ubicacin del Formulario
Activa el Examinador Browse
Activa la Caja de Herramientas
PRINCIPALES TECLAS RAPIDAS
CTRL + N Crear un Proyecto.
CTRL + O Abre un Proyecto.
CTRL + S Graba un Formulario.
CRTL + P Activa la Ventana para Imprimir.
CTRL + R Muestra la Ventana de Proyecto.
CRTL + T Activa la Ventana de Componentes.
CRTL + D Agrega un Archivo.
SHIFT + F7 Muestra el Formulario.
ALT + Q Sale del Visual Basic.
F4 Muestra de la Ventana de Propiedades.
F5 Ejecuta un Proyecto.
F8 Ejecuta mostrando cada instruccin.
mm
G rupo E ditorial M e g a b y t e *
CAPTULO I: Entorno Del Visual Basic I P
EL FORMULARIO
Es la ventana principal, porque sirve de fondo para los controles que se
dibujan en una aplicacin como cajas de textos, etiquetas, etc. Se activa
pulsado SHIFT + F7 o CTRL + R y luego Doble Click en el nombre del
formulario que desea visualizar.
CAJA DE HERRAMIENTAS
General
Se activa haciendo click en:
* SS A
[ibi " _J
17 ? [
1=1 il ^
Contiene los controles que se dibujan
zl
en el formulario para desarrollar
o _J
aplicaciones.
B \
H
G rupo E ditoria! Megabyte 29 m m
m m VISUAL BASIC como debe ser,. .
La caja de herramientas anterior contiene los controles bsicos del Visual
Basic y se visualizan cuando se ingresa en modo Estndar (icono
STANDARD EXE) "
New
| EKisting | Recent]
S 3 7
S S ActiveX EXE ActiveX DLL
I
w
ActiveX
Control
VB Application
Wisard
VB Enterprise
Edition
Controls
Ad din ActiveX ActiveX
Document DLL Document EXE
. n
M
General
M A lib i
:
_ l w
m
i n
i i
zl
L J
m o Q
igEa
033 m m P
11 s IM aA
;~r ni
f e
DDO
" (S
tr.
M % I T
V
h dS 0
S
$2
##l
Para i n g re s a r al Visual Basic y
visualizar la caja de herramientas con los
controles ms avanzados debe elegir el
icono VB Enterprise Edition Control
(Visual Basic Edicin Empresarial). Si
Ud., ya ingreso en modo Estndar y desea
utilizar los controles avanzados, debe
hacer click con el botn derecho del
mouse en la caja de herramientas, elegir
la opcin Componentes y luego
seleccionar el nombre del control que
desea visualizar. Estos nombres se indican
a medida que los c o ntr ol es se van
explicando.
3 0 G r u p o E d i t o r i a l M e g a b y t e *
CAPITULO I: Entorno Del Visual Basic
VENTANA DE COMPONENTES
Al hacer un click con el botn derecho del mouse en cualquier parte de
la caja de herramientas para llamar a controles que necesitamos y no se
encuentran activos, se visualiza el siguiente men:
General
M A [5bi
_ j 17 a-
** e|
C3
g5>
Componentes..
Agregar f i c h a . .
Acoplable
Ocultar
Al hacer click en la opcin Componentes se visualiza:
ES
C o n t r o l e s J D i s e a d o r e s | O b j e t o s i n s e r t a b l e s ]
: : \WINDO W5\SYS TEM\r e f e d i t .dll
l~i C o n t r o l ActiveMovie d e Microsoft
n C o n t r o l d e a d m i n i s t r a c i n d e i m a g e n d e W a n g
n C o n t r o l d e digitalizacin d e i m a g e n d e W a n g
n C o n t r o l d e edicin d e im a g e n d e W a n g
C J C o n t r o l d e p g i n a e n m i n i a t u r a d e i m a g e n d e W
i I C r y s t a l R e p o r t C o n t r o l 4 . 6
n ctClip OLE C u s t o m Co n t r o l m odule
I""! ctClock OLE C u s t o m C o n t r o l m odule
c t D a t e OLE C u s t o m C o n t r o l module
D c t G a u g e OLE C u s t o m C o n t r o l m odule
c t M e t e r OLE C u s t o m C o n t r o l module
j... j c tSlide OLE C u s t o m C o n t r o l m odule J
J____________________1 -lT
_U ^
,Vl xr_ 9B2
" fo- SB
<*rr.
F~l [553
I E l e m e n t o s s e l e c c i o n a d o s
C : \WINDOWS\SYSTEM\ref e d i t . dll
Ubicacin : C :\WINDO WS\S YST EM\ref e d i t . dll
Para activar o llamar a un control, busque su nombre y haga click en su
casilla hasta que se muestre un Aspa y luego haga click en el botn Aceptar.
S '
Casilla indicando que el control se encuentra activo.
E d i t o r i a l Megabyte
31
R i
VISUAL BASIC como debe ser.. .
VISUAL BASIC como debe ser.. .
VENTANA DE PROPIEDADES

Formi Form
A
Alphabetic | Categorized j
(Name) Formi
Appearance 1 - 3D
AutoRedraw False '
_]
BorderStyie 2 - Sizable
Caption Formi
ClipControls True
ControlBox True
DrawMode 13-Copy Pen
r w - . . c i - . J.-. n c j-.i-.A ...J
Se activa haciendo click en:
Contiene las propiedades o
caractersticas de cada uno de los
controles. Estas propiedades se pueden
cambiar segn lo requiera. Tambin se
activa pulsando la tecla <F4>.
VENTANA DE PROYECTO
Project - ProjecH

]>Project 1(Project 1)
B-& Forms
Se activa haciendo click en:
Contine todos los formularios, mdulos,
etc. que forman una aplicacin.
Tambin se activa pulsando <CTRL>
+ <R>.
32 G rupo E ditorial Megabyte^
CAPTULO 1: Entorno Del Visual Basic
SALIR DEL VISUAL BASIC
Para salir del Visual Basic puede realizar cualquiera de los siguientes pasos:
1. Haga un click en el botn Cerrar de la ventana principal del Visual
Basic.
Botn Cerrar--------
* S 3 3 E E
File Edit View Project Format Debug Run lools Add-Ins Window Help
2. De la opcin FILE (Archivo) de la barra de men elija EXIT (salir).
3. Pulse las teclas ALT + Q
4. Pulse las teclas ALT + F4
NOTA: Si al salir de visual Basic se muestra el siguiente mensaje:
Visual Basic le pregunta si desea grabar los cambios realizados en el
proyecto. Si no es importante lo que tiene en el proyecto o en el
formulario, haga un click en el botn NO.
I f l E j E ' G r u p o E d i t o r i a l Megabyte 3 3 ^ | ^
BASIC como debe ser.. .
SOLUCIONANDO LOS PROBLEMAS INICIALES
1.- Al a cceder al Visual Basic no se e n c u e n t r a n todos los
componentes.
Para solucionar ste problema debes hacer click en la opcin VIEW
(VER) de la barra de men, cuyas opciones permiten visualizar los
componentes:
5, Proyectol - Microsoft Visual Basic [diseo] IInixi
Archivo Edicin Ver Proyecto Formato Depuracin Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
$ . 3 . ' El Cdigo
EH Objeto Mays+F7 -
i Examinador de objetos F2
Ctri+G
OrK.
jp Ventana Inmediato
Ventana Locales
3 Ventana Inspeccin
<$ Explorador de proyectos Ctrl+R
Hl* Ventana Propiedades F4 .
Q Ventana Posicin del formulario
Pginas de propiedades Mays+F4
Tabla
Zoom
Mostrar paneles
Cuadro de herramientas
Ventana de la vista Datos
Paleta de colores
Barras de herramientas
m
Visual Component Manager
Activa el Formulario
\
Activa la Ventana
de Proyecto
Activa la Ventana
de Propiedades
Activa la Caja de
Herramientas
Activa o desactiva
la Barra Estndar
Depuracin
Edicin
Editor de formularios
* Estndar
Activa la Ventana de
ubicacin de formulario
34 Grupo Editorial Megabyte < | g
CAPITULO I: Entorno Del Visual Basic
2 - La Ventana de Propiedades se ubic debajo de la Barra Estndar y
desea llevarla a su posicin normal. As:
,Project1 - Microsoft Visual Basic [design]
Fie Edit View Project Format Debug Run Took Add-Ins Window Help
si - a - 1 es H m,
IF o r m i Form
Alphabetic | Categorized |
AutoRedraw False
..... *1
BackColor &H8000000F& 1
BorderStyle 2 - Sizable
eSSSIBi 1 Formi
ClipControls True
ControlBox True
zi

=iS|_xJ
A
[ab|
*v.
F
B
m 4 j
d
d
0
GD _J

\
B
^gj

. Project! - Formi (Form)


Form!
MO
Para solucionar este problema debe hacer click con el botn dere
cho del mouse dentro de cualquier parte de la ventana de propieda
des. Se visualizar cualquiera de las siguientes ventanas.
Description
Dockable
^ Dockable

Hide
Hide
Desactive la opcin Dockable, haciendo click en ella.
Otra forma de solucionar este problema es haciendo click en el
ttulo de la ventana de propiedades y arrastrarla a su posicin nor
mal.
Si la ventana de propiedades ocupa toda la pantalla, restaure la
ventana del Formulario.
G rupo E ditorial Megabyte
35
4.-
VISUAL BASIC como debe ser.. .
La Caja de Herramientas se ubic debajo de la Barra Estndar
y desea llevarla a su posicin normal.
Para solucionar este problema debe seguir los mismos pasos que
se siguen para llevar a su posicin normal la ventana de
propiedades (caso anterior).
La Caja de Herramientas ocupa toda la pantalla.
Para solucionar este problema haga click en el botn restaurar
de la caja de herramientas.
Botn Restaurar
d i
f x l
Botn Maximizar
1 -1*
Botn Minimizar
Botn Cerrar
5.- No puedes visualizar el formulario y la ventana de propiedades
y caja de herramientas estn en blanco.
Para solucionar ste problema haga en la opcin FILE y elige
NEW PROJECT (Nuevo Proyecto).
File d i t y i e w E r o j e c t Frmat >et>ug g u n T o o l s & d d - I n s W i n d o w Help
s # * - . g~ , f e i <~vf j
cS*
- | | j c |
General j
*

36
G rupo E ditorial Megabyte
6 . -
7.-
No puede mover ninguno de los controles del formulario.
Para solucionar este problema haga un click con el botn
derecho del mouse en cualquier parte libre del formulario y luego
desactive la opcin LOCKjCONTROL haciendo un click en dicha
opcin.
CAPITULO I: Entorno Del Visual Basic
No encuentra un control que ha dibujado en el formulario. Por
ejemplo: al dibujar una etiqueta se visualiza Label3, pero Label2
no la encuentra.
Primero maximiza la ventana del formulario y luego elige el
nombre del control que buscas de la lista de controles que se
encuentran en la ventana de propiedades. Si en esta lista no
existe el nombre del control que buscas significa que no existe
en el formulario.
L a b e l 3 Label
F o r m i Form
L a b e l l Label
L a b e l 2 Label
BackStyle 1 - Opaque
BorderStyle 0 - None
Caption Labels
DataField
Botn para ver ia
lista de controles
que se encuentran
en el formulario
G rupo E ditorial Megabyte
37
Por casualidad a creado varios proyectos o formularios en su
aplicacin y desea borrarlos.
En este ejemplo a creado en su
aplicacin tres proyectos y en el
proyecto N 1tiene 3 formularios.
Si hace un Click en el signo mas (+) de
un proyecto, se visualizan sus
componentes y en el signo + de la
palabra Formularios se visualizan los
formularios que contiene. Si hace un
click en el signo menos (-) los oculta.
VISUAL BASIC como debe ser.. .
Grupo de proyectos - Grupol B
C3
- P r o y e c t o l ( P r o y e c t o l )
- j ' > Formularios
C] Forml (Forml)
O Form2 (Form2)
C] Form3 (Form3)
0 j ? Proyecto2 (Proyecto2)
B : >I........ ......
Q Forml (For ml )
- Proyecto3 (Proyecto3)
GB- l2 Formularios
Formularios
Para solucionar este problema haga un click con el botn
derecho del mouse en el proyecto o formulario que desea borrar.
Se visualiza el siguiente men:
Men del Proyecto
Establecer como inicial
Propiedades de Proyectol...
Guardar proyecto
Quitar proyecto
Agregar
=$ Imprimir...
v' Acoplable
Ocultar
Men del Formulario
1 Ver objeto
CU Ver cdigo
Propiedades
Agregar
Guardar Forml
Guardar Forml como.
Quitar Forml
1Imprimir...
v' Acoplable
Ocultar
En cualquiera de los casos haga click en la opcin QUITAR
(Proyecto o Formulario).
G rupo E ditorial Megabyte
Desea evitar que los avances realizados en su aplicacin se
b o r r e n por problemas inesperados como corte de fluido
elctrico, etc.
Para ello, puede configurar al Visual Basic para que al ejecutar
su aplicacin se graben en forma automtica todos los cambios
que le ha realizado.
Haga click en la opcin TOOLS (Herramientas) de la barra de
men y elija OPTIONS... De la ventana que se visualiza active la
pgina ENVIRONMENT (Entorno). Se visualiza la siguiente
ventana:
Para que los cambios realizados a
su aplicacin se graban
automticamente al ejecutarse
active el botn Guardar los
Cambios
NOTA
Cada una de las pginas de esta
ventana permiten configurar id
Visual Basic. Es muy importante
que Ud., observe cada una de estas
ventanas.
CAPTULO I: Entorno Del Visual Basic ^ f &
Editor | Formato del editor | General ] Acople
Cuando se inicie Visual Basic:
Entorno | Avanzado ]
Mostrar plantilas para:
( preguntar por un proyectol F Eormularios
C rear un proyecto predeterminado P Formularios MDI
F Mdulos
Cuando se inicie un programa: F Mdulos de clase
C guardar los cambios F Controles de usuario
C Preguntar pata guardar los cambios F Pginas de propiedades
< No guardar los cambios F Documento de usuano
Directorio de plantillas:
|C:\ARCHIVOS DEPROGRAMA\DVSTUDIO\VB\Tempiate
j Aceptar Cancelar | Ayuda
Desea que en la ventana de propiedades se muestre una breve
explicacin de cada una de las propiedades.
Para ello, haga click con el botn derecho del
mouse en cualquier propiedad y luego active
la opcin Descripcin.
v' Descripcin
v" Acoplable
Ocultar
Descripcin de las propiedades
[command 1 CommandButton * |
Alfabtica jPor categoras |
(Name)
Appearance
BackColor
Cancel
Default
Command 1
1 - 3D
&HSOOOOO1
False
False
Caption
Devuelve o establece el texto
mostrado en la barra de ttulo de
un objeto o bajo el icono de un
G rupo E ditorial Megabyte
39
FILOSOFA DE PROGRAMACIN EN VISUAL BASIC
Para desarrollar un programa en Visual Basic se crea un formulario y sobre
l se dibujan controles tales como cajas de texto, etiquetas, listas desplegables,
grficos, botones de comandos, etc. A continuacin se le asignan las propiedades
y finalmente se escriben las instrucciones relacionadas a cada uno de ellos.
Quiere decir esto que cada control est ligado aun conjunto de instrucciones
que permanece inactivo hasta que ocurra el evento que lo activa.
EVENTO:
Es una accin reconocida por un control u objeto para el cual se puede escribir
instrucciones de respuesta. Los eventos pueden estar generados por una accin
del usuario como hacer click con el mouse, pulsar una tecla, etc.
CONTROL:
Es un objeto grfico, como por ejemplo un cuadro de texto, un botn de comandos
o un marco que se coloca en un formulario para presentar datos, realizar una
accin o mejorar el aspecto de un formulario, etc.
OBJETO:
Es una instancia de una clase que combina datos y procedimientos. Por ejemplo
un control cuando es ejecutado en un formulario es un objeto.
CLASE:
Es la definicin de un objeto incluyendo su nombre, sus propiedades y mtodos
y cualquier evento que tenga.
PROPIEDAD:
Es un atributo con un nombre determinado que se le asigna a un control para
definir una caracterstica del objeto como por ejemplo, el tamao, el color, o la
posicin en la pantalla, o un aspecto de su comportamiento, como por ejemplo,
si est oculto o no.
MTODO:
Es un procedimiento similar a una instruccin o funcin que opera sobre objetos
especficos.
^lltll- VISUAL BASIC como debe sen . .
G rupo E ditorial Megabyte"
CAPTULO I: Entorno Del Visual Basic w m
PREGUNTAS DE REPASO - N 01
01.- La ventana principal de una aplicacin se llama:
02.- El entorno de Visual Basic est compuesto por:
03.- Qu es un Proyecto?
04.- Los controles se encuentran en:
05.- Para activar la Ventana de Proyecto se debe pulsar:
06.- Dibuje el botn que sirve para ejecutar una aplicacin.
07.- Qu debe hacer si al activar el Visual Basic no encuentra la Barra
Estndar?
08.- Dibuje el botn para grabar un proyecto.
09.- Qu tecla activa la Ventana de Propiedades?
10.- Dibuje el botn que sirve para finalizar una aplicacin.
11.- Qu ventana contiene las caractersticas que se les puede asignar a
los controles?
12.- Dibuje el botn que activa la Caja de Herramientas.
13.- Qu es un mtodo?
14.- Dibuje el botn que sirve para llamar o abrir un proyecto.
15.- Qu contiene la Barra Estndar?
16.- Qu teclas permiten visualizar el formulario?
17.- Qu debe hacer si al ingresar al Visual Basic no se visualizan todos
sus componentes?
18.- Cules son los pasos para desarrollar una aplicacin?
19.- Cundo se ejecutan las instrucciones de los controles?
20.- Qu es un evento?
CUIDADO!
Le recomiendo no seguir con los prximos temas mientras
no obtenga un veinte en esta autoevaluacin.
G rupo E ditorial Megabyte
41
CAPITULO II
Datos Personales
Guardar como tipc; I Form File:
%T"
OBSERVACIONES
Nuevo Alumno Finalizar
DESCRIPCION
DE LOS
CONTROLES BSICOS
EL FORMULARIO:
Es una ventana muy importante porque aqu se dibujan o pegan todos los
controles que necesitamos utilizar en nuestro programa o aplicacin. Se
pueden utilizar tantos formularios como se necesiten, y dependiendo de la
utilidad que se les d, stos sern de diferentes tipos. As, se puede crear un
formulario que contenga un grfico, para visualizar informacin o para
ingresar datos.
PRINCIPALES PROPIEDADES DE UN FORMULARIO:
AME
Permite asignar un nombre al formulario. Por defecto el nombre es FORM1,
FORM2, FORM3, etc.
BACKCOLOR
Selecciona un color de fondo para el formulario.
BORDERSTYLE
Selecciona el estilo de presentacin y comportamiento del formulario.
CAPTION
Asigna un Ttulo al formulario.
CONTROLBOX
Indica si se visualizan los botones de control del formulario (Maximizar,
Minimizar, etc.).
ENABLED
Indica si el formulario debe estar activado o no. Si no esta activado, no
responde a ningn evento.
FONT
Indica el tipo, tamao y estilo de letra de los controles que se dibujen en el
formulario.
ICON
Selecciona un icono para el formulario.
E d i t o r i a l Megabyte 45
LEFT
Permite indicar la posicin horizontal del formulario.
MAXBUTTON
Indica si se visualiza el botn Maximizar.
MINBUTTON
Indica si se visualiza el botn Minimizar.
MOUSEICON
Se utiliza para indicar un icono que debe reemplazar al puntero del Mouse
cuando ste se encuentre dentro del formulario. Para que esto suceda debe
asignar el valor 99-Custom a la propiedad MousePointer.
MOUSEPOINTER
Se utiliza para indicar el estilo del puntero del mouse.
MOVEABLE
Indica si el usuario puede mover el formulario.
PICTURE
Para seleccionar un grfico que sirva de fondo para el formulario.
SCALEMODE
Asigna la unidad de medida para el tamao o ubicacin del formulario o cualquier
otro control. La unidad de medida que se activa en forma automtica es TWIP.
Un TWIP es una unidad de medida estndar para todo tipo de pantallas la
cual nos permite asignar el mismo tamao o ubicacin de los controles sin
importar el tipo de pantalla que utilizamos. Un TWIP es igual a 1/20 de un
punto de impresora. 1440Twips equivalen a una pulgada y 567 equivalen a
un centmetro.
SHOWINTASKBAR
Indica si el formulario se debe visualizar en la barra de tareas cuando se
esta ejecutando.
STARTUPPOSITION
Permite seleccionar la posicin inicial del formulario en la pantalla.
TOP
Se utiliza para indicar la posicin vertical del formulario en la pantalla.
VISIBLE
Indica si el formulario se debe visualizar.
WIDTH
Permite indicar el ancho del formulario.
WINDOWSTATE
Selecciona el modo de presentacin del formulario: Normal, Minimizado o
Maximizado.
4SSS& VISUAL BASIC como debe ser.. .
G r u p o E d i t o r i a l Megabyte <
CAPTULO II:Descripcin de los Controles Bsicos
CMO ASIGNAR UNA PROPIEDAD?
Para asignar una propiedad a un control (formulario, caja de texto,
etiqueta, botn de comando, etc.), primero debe seleccionarlo, haciendo un
click en l, luego pulse <F4> o el botn propiedades.
BOTON DE PROPIEDADES
NOMBRE DEL
CONTROL AL
CUAL SE LE ^ T
ESTA ASIGNADO
PROPIEDADES
FORMAS DE
VISUALIZAR
LAS
PROPIEDADES
ES*i S S S B S - Ia !.*J
JF o r m i Form .I.J
Alphabetic ] Categorized |
Aubzftdraw False
jckColor
&H8000000
/ BorderStyle 2 - Sizable
ClipControls True
ControlBox True
DrawMode 13 - Copy Pen__
DrawStyle 0 - Solid
DrawWidth 1
Enabled True
FillColor
&HG0000
FillStyle
1 - Transparen
Font
MS Sans Serif
FontTransparenl True
ForeColor
&H8000001
Height 3600
HelpContextID 0 ^
BOTON PARA
SELECCIONAR EL
CONTROL Al.
CUAL LE
QUEREMOS
ASIGNAR
PROPIEDADES
BARRA DE
DESPLAZAMIENTO
DE
PROPIEDADES
NOTA:
Usted, puede modificar el ancho o altura de esta ventana.
G rupo E ditorial Megabyte
47
w J
* Segn la propiedad que ha elegido, Ud. Puede visualizar:
1 II
2 D S H j J
3 (None) ^
1.- Para escribir el texto que se desea mostrar en la propiedad.
2.- Para que al hacer un click en la flecha hacia abajo se visualice una
lista de valores que podemos asignar como propiedad.
3.- Para que al hacer un click en los tres punto se visualice una ventana
de dilogo.
S fk > VISUAL BASIC como debe ser.. .
NOTA : Puede modificar cualquiera de las propiedades y
comprobar sus efectos ejecutando el formulario con la
tecla <F5> o con el botn Ejecutar y para terminar . U
ejecucin pulse la tecla <ALT> + <F4> o click en el
botn finalizar.
* BOTON EJECUTAR
BOTON FINALIZAR
G r u p o E d i t o r i a l Megabyte-^
ETIQUETA (Label) :
A
Es un control que se utiliza para mostrar mensajes en una aplicacin.
Al dibujarlo en el formulario se visualiza: Label 1, Label2, Label3, etc.
Al dibujar un control no debe preocuparle el tamao Inicial que tome,
porque se puede modificar de una manera fcil y rpida.
PRINCIPALES PROPIEDADES DE UNA ETIQUETA:
AME
Permite asignarle un nombre. Por defecto el nombre es Label 1,
Label2, Label3, etc. Segn el nmero de Etiquetas que se dibujen en el
formulario.
ALIGNMENT
Alinea el texto que se encuentra en la Etiqueta: Left (Izquierda),
Right (Derecha) y Center (Centro).
APPEARANCE
Cambia la apariencia de la Etiqueta.
AUTOSIZE
Para indicar si el tamao de la Etiqueta depende del tamao de la
letra seleccionada.
BACKCOLOR
Selecciona un color de fondo de la Etiqueta
BACKSTYLE
Asigna el estilo del fondo de la Etiqueta.
BORDERSTYLE
Asigna el estilo del borde de la Etiqueta.
CAPITON
Para escribir el texto o informacin que desea visualizar.
j l l l l ^ G r u p o E d i t o r i a l Megabyte 49
S B ib ' VISUAL BASIC como debe ser.. . , < $ 8
PONT
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto o
mensaje que desea visualizar en la Etiqueta.
FORECOLOR
Permite asignar el Color de la letra del texto o mensaje que desea
visualizar en la Etiqueta.
VISIBLE
Indica si la Etiqueta se debe visualizar o no.
APLICACIN DESARROLLADA N 01
MI PRIMERA APLICACION
VISUAL BASIC
Como debe ser...
M nombre es ; fuan. Jos Castane<t* Leon
Para desarrollar una aplicacin debe seguir los siguientes pasos:
1.- Crear una nueva aplicacin.
De la opcin FILE de la Barra de Men elegir NEW PROJECT.
2.- Mueva y ajuste el tamao del Formulario.
3.- Dibuje los controles.
4.- Defina las propiedades del formulario y controles.
5.- Escriba las instrucciones para los controles.
6.- Guarde la aplicacin.
7.- Ejecute la aplicacin.
NOTA: Si durante el diseo de la aplicacin desea b or rar un control,
debe seleccionarlo haciendo un click en l y luego pulsar la tecla DELETE
(SUPRIMIR).
G rupo E ditorial Megabyte
APTULO I I .-Descripcin de los Controles Bsicos %
MUY IMPORTANTE:
Para trabajar con un control, debes seleccionarlo.
Siempre debes mirar la caja de propiedades para darte cuenta con qu
control estas trabajando.
Ejemplo: El formulario siguiente tiene una etiqueta, pero esta seleccionado
el formulario.
- lai *1
P
/
Control
Activo
Propiedades - Formi
I F o r m i Form
Alfabtica | por categori!
(Nombre) Forml
Appearance 1 - 3D 1
AutoRedraw False
BackColor
&H8000000F8
BorderStyle 2 - Sizable
Forml Caption
En el formulario siguiente se tiene una etiqueta, la cual est activada.
, Control
I I x | |
1 Activo
(Nombre) Label 1 j f v
Alignment 0 - Left Justify
Appearance 1 - 3D
AutoSize False
BackColor
&H8000000F8
BackStyle
1 - Opaque
BorderStyle 0 - None
Caption Labell
G rupo E ditorial Megabyte
51
VISUAL BASIC como debe ser..
Los puntos alrededor de un control indican que este se encuentra
activado.
MODIFICAR ELTAMAO DE LOS CONTROLES
Para modificar el tamao de un control, primero debe seleccionarlo
haciendo click en l. Una vez seleccionado se visualizar los puntos
que permiten modificar su tamao, entonces lleve el puntero del mouse
por uno de estos puntos hasta que visualice una flecha en doble sentido,
luego arrastre el mouse ampliando o reduciendo el tamao del control.
El control esta
EHH1
Formi
Labell
El control esta listo
para modificar su
ancho
listo para
modificar
su ancho
El control esta listo para
modificar su ancho
MOVER UN CONTROLEN EL FORMULARIO
Para mover un control haga clic dentro del control y arrastre el
mouse hasta la posicin donde desea moverlo. Observar la siguiente
pantalla.
. Formi
Labell
Posicin del control
en el formulario
CAPITULO II.Descripcin de los Controles Bsicos
DESARROLLO DE LA APLICACIN N 01
Para desarrollar la aplicacin N 01 se siguen los siguientes pasos:
Ajustar el tamao
del Formulario
Dibujar los
Controles
JSl-l
Labell
Label2
Label3
3.- Asignar las propiedades a los Controles
CONTROL CAPTION ALIGNMENT AUTOSIZE FONT BORDERSTY
FORMI MI PRIMERA APLICACION
LABEL1 VISUAL BASIC Center True 28 0-None
LABEL2 Como debe ser... Center True 14 1-Fixed Single
LABEL3 Mi nombre es Juan Jos.. Right True 10 0-None
Si desea que a ejecutar la aplicacin el formulario ocupe toda
la pantalla, su propiedad Windowstate debe tener el valor 2
fmaximized).
En esta aplicacin no se escriben instrucciones porque slo
permite mostrar mensajes.
A.Guarde o grabe la aplicacin.
5.Pulse la tecla F5 o el botn ejecutar para que el formulario se ejecute
y observar los resultados de esta aplicacin.
G r u p o E d i t o r i a l Megabyte 53 H

I l b VISUAL BASIC como debe s er... >


GUARDAR O GRABAR UNA APLICACIN.
Existen dos formas de guardar una aplicacin:
1 Haciendo click en la figura del Disco que se encuentra en la Barra
Estndar
2.- De la opcin FILE "Archivo" de la Barra de Men, elegir Guardar
Proyecto. Si desea guardarlo con un nombre diferente al asignado
inicialmente, debe elegir la opcin Guardar Proyecto Como.
Primero le pide el nombre de cada formulario (*.FRM) que forma
parte de la aplicacin y al final le pide el nombre del Proyecto (*. VBP)
el cual se utiliza para abrir o recuperar posteriormente la aplicacin.
VENTANAPARAGRABAR UN FORMULARIO
Accin que
est realizando
Save File As
Carpeta
Actual
Selecc rna
otra carpeta
Carpeta
Anterior
Crea una Nueva
Carpeta
Guardai en: | MVb
+
I
m J
J Clisvr
j Help
JOdbc
j report
JRepostry
1samples
L - Setup
L_J setupkit
J Tempiate
L J T sql
__j vbonline
L J Winapi
L U Wizards
hh
^ PROG01
Q PRO G02
Nombre de archivo: ' |9BRr
Guardar como tipo: I Form FileJ
Guardar | "
(x.frm)
Cancelar
Ayuda
Formas de
ver los
Formularios
y carpetas
^Formularios y
carpetas
existentes
Botn para
Grabar
Caja para escribir el nombre del formulario que Tipo de archivo que est ^ Cancela la accin
desea grabar grabando
CAPITULO II'.Descripcin de los Controles Bsicos
VENTANA PARA GRABAR UN FORMULARIO
Accin que
est realizando
Q-ave Pieiect A*
Carpeta
Actual
Selecciona
otra carpeta
Carpeta
Anterior
Crea una Nueva
Carpeta
j d - i i
Guardar en: _j Vb = 3 d
3cap
J Clisvr
J does
j Help
j Odbc
j report
t I R epos try
I samples
L J Setup
__1setupkit
(__J T empiate
I T sql
__ I vbonline
__JWinapi
I Wizards
CALENDAR
<jbf case
c h e c k l
jlL
Nombre de archivo:
Guardar como tipo:
G uardar
{Project Filep (x.vbp)
j J
-
Cancelar
Ayuc a
Caja para escribir el nombre del formulario que
desea grabar
Tipo de archivo que est
grabando
Formas de
ver los
Formularios
y carpetas
_Formularios y
carpetas
Botn para
Grabar
Cancela la accin
" MUCHO CUIDADO "
Para cada formulario de un proyecto y para cada proyecto que usted
grabe, utilice nombres distintos porque de lo contrario el nuevo
formulario o proyecto borrar al anterior. Por ejemplo, si ya tiene un
proyecto grabado con el nombre trabajo y graba un nuevo proyecto
con el mismo nombre, entonces el primer proyecto se borrar y ya no
podr recuperarlo. Esto tambin sucede con los formularios. Por eso
tenga MUCHO CUIDADO
Antes que el proyecto o formulario se borre se muestra un mensaje
de advertencia.
G u a r d a i pr oy e c t o como
C:\Archivos de programa\Microsoft Visual Studio\VB98\Trabajo.vbp va existe.
Desea reemplazarlo?
Si usted responde SI, el nuevo proyecto o formulario reemplaza al
anterior (lo borra) y si responde NO, Visual Basic le pide otro nombre.
G rupo E ditorial Megabyte ss mm
VISUAL BASIC como debe ser.. .
Para Evitar estos problemas te recomiendo que cada proyecto o
aplicacin que hagas lo grabas en una carpeta diferente, esto tambin
te permite administrar mejor tus proyecto.
ABRIR O RECUPERAR UNA APLICACIN
Existen tres formas de abrir o recuperar una aplicacin:
1 Haciendo click en la figura del Libro que se encuentra en la Barra
Estndar.
2.- De la opcin ARCHIVO de la Barra de Men, elegir Abrir Proyecto.
3.- Pulsar las teclas (CTRL + O).
Una vez que se visualiza la ventana para abrir un proyecto, usted
puede hacer doble clic en el nombre del proyecto o escribir su nombre
en la caja indicada y luego haga clic en el botn ABRIR. Si al abrir un
proyecto, no se visualiza, pulse CTRL + R para activar la ventana de
proyecto y luego doble clic en Forms y/o en el formulario que desea
visualizar.
VENTANAPARA ABRIR UN PROYECTO
m
Muestra todos los proyectos que tienes grabados.
Muestra la accin aue esta
Muestra los orovectos recin
Existente j Recientes J
f j u s c a r en: [ J Vb
] Dataenvironment
J T empiate
1 Tsql
) Wizards
Alumnos
B alance
Colegio
Compras
Contables
Examen
Farmacia
Horarios
3S| Hotel
Informes
Juegos
Pagos
Psicologia
Sistemasi
a J a l frnr-il
Sueldos
Test
T ienda
T rabajo
Universidad
Universodad
UL
Nombre de archivo: \
I'PO de archivos: j Proyecto ( .v b p; .makj". vbg)
Caja para
escribir el
Tipo de Abre el Muestra los Proyectos que
archivo que ------ - estn mas a la derecha
&
56
G r u p o E d i t o r i a l Megabyte^
EJECUTAR UNA APLICACIN
Existen tres formas de ejecutar una aplicacin:
1.- Pulsando la Tecla <F5>.
2.- De la opcin Ejecutar de la Barra de Men, elegir Iniciar.
3.- Haciendo click en el Botn Ejecutar que se encuentra en la Barra
Estndar.
> BOTN EJECUTAR
NOTA:
Segn como esta configurado Visual Basic, cada vez que ejecuta un
programa le preguntar si desea guardar los cambios realizados. Esto se
puede activar o desactivar en la opcin Herramientas de la barra de men
luego en Opciones y finalmente en la hoja Entorno
Editor | Formato del editor | General | Acopl<
Cuando s e Inicie Visual Basic:
C~ p r e g u n t a r por un p r o y e ct o
C r e a r un p r o y ec t o p redeterminado
Cuando s e inicie u n programa:
<* g u a r d a r lo s cambios!
p r e g u n t a r si s e g u a r d a n los cambios
C fo g u a r d a r los cambios
Directorio d e plantillas:
, Entorno jAvanzado |
Mostrar plantiBas par a:
P7 Formularios
W Formularios MDI
P? Mdulos
W Mdylos d e clase
fy Controles d e usuario
W Pg i n a s d e propiedades
W Documento d e usuario
l e ARCHI VOS DE PROGRAMA\MICROSOFT VISUAL STUDIO\VB98\T empiate
Como puede observar, aqu tambin se puede cambiar otras configuraciones.
MUY IMPORTANTE:
l . S i al ejecutar una aplicacin no se visualiza el formulario,
verifique que el formulario no tenga en su propiedad Visible el valor
False o que en su propiedad WindowState no tenga el valor I-
Minimized (Minimizado).
2. Si al ejecutar la aplicacin el formulario se visualiza pero no
responde a ningn evento incluyendo los controles que contiene,
entonces verifique que su propiedad Enabled no tenga el valor False.
|| ||^ G rupo E ditorial Megabyte
% VISUAL BASIC como debe ser.. .
FINALIZAR UNA APLICACIN
Existen cuatro formas de Finalizar una aplicacin:
1.- Pulsando las Teclas <ALT> + <F4>.
2.- De la opcin Ejecutar de la Barra de Men, elegir Terminar.
3.- Haciendo click en el botn cerrar del formulario (X).
4.- Haciendo click en el Botn Finalizar que se encuentra en la Barra
Estndar.
BOTN FINALIZAR
GRABAR UN PROYECTO EN UN DISKETTE
Si desea llevar tu proyecto en un diskette, debe copiar en l no slo
el proyecto (*.VBP) si no tambin cada uno de los formularios (*.FRM) u
otros componentes que contiene como por ejemplo una base de datos, etc.
Si ya grabaste tu aplicacin er, el disco de la computadora (disco
duro) y te encuentras en el Visual Basic con tu aplicacin en la pantalla que
deseas llevar en un diskette, entonces debes activar la ventana de proyecto
(CTRL+R) hacer clic con el botn derecho del mouse en cada formulario
(uno por uno) y elegir Guardar xxx.Frm Como. Esta opcin tambin se
encuentra en la opcin Archivo de la barra de Men donde encontrars
tambin la opcin Grabar Proyecto Como la cual se utiliza para guardar el
proyecto, entonces haga clic donde se selecciona las carpetas y elija Disco
31/2A:
r ? i x i
G u a r d a r en: V b 9 8 .. ^ ,
mi Ml ou immJ
__J D a t a e n v i r i
..I T e mp i at e
__J T sql
_ J W i z a r d s
C3 d d d
e
M Mi P C ^
D i s c o d e 3H (A:)
aJ J u a n jo s (C.)
1... 1 A r c h i v o s d e p r o g r a m a
I 1 M i c r o s o f t V i s u a l S tu d i o
C e d t i (D:)
1....1 S e r v i c i o s e n l i n e a
N o m b r e d e a r c h i v o : { R a y a
1 g u a r d a r
Gu a r d a r c f i m o | F o rmu l a ri o (x.frm)
a r c h i v o s d e tipo:
T 1 C a n c e l a r j
A y u d a j
Tambin puede utilizar el Windows para realizar esta copia.
G r u p o E d i t o r i a l Megabyte^
CREAR UN ARCHIVO EJECUTABLE (*.EXE)
Un archivo ejecutable es un archivo con la extensin EXE donde se
encuentran unidos todos los formularios, instrucciones y mdulo de una
aplicacin.
Tiene las siguientes ventajas:
Permite ejecutar la aplicacin sin necesidad de ingresar al Visual
Basic.
Evita que alguien visualice las instrucciones que hemos utilizado en
nuestra aplicacin.
Evita que alguien modifique las instrucciones que hemos escrito en
la aplicacin.
Para crear un archivo ejecutable elija primero la opcin ARCHIVO
de la barra Estndar y luego GENERAR EXE. Visual Basic le pedir el
nombre del archivo que desea crear. El nombre por defecto que presenta es
el nombre con el que Ud. a grabado la aplicacin.
Guardar en: p_il Vb98 Ml J f ml
2J Dataenvironmenl i*""1Link
*1T empiate feVb6
_2j Tsql Ce?Visdata
*"1Wizards
3 C2
**~1Cvpack
tiombredearchivo: ITrabaio 1 Aceptar J
Cancelar I
Ayuda i
Qpciones. . 1
Al hacer click en el botn Aceptar o pulsar ENTER despus de ingresar
el nombre, Visual Basic genera en forma automtica el archivo ejecutable.
Una vez creado el archivo ejecutable Ud. puede crearle un acceso directo
para poder ejecutarlo desde el entorno del WINDOWS sin necesidad de
activar el Visual Basic.
QU ES UN ACCESO DIRECTO ?
Un Acceso Directo es una manera rpida de ejecutar una aplicacin des
de el escritorio del Windows sin necesidad de activar el Visual Basic.
Tambin nos permite acceder a arribos y carpetas.
G rupo E ditorial Megabyte
59 f i f i
CREAR UN ACCESO DIRECTO
Hay tres maneras de crear un acceso directo:
1. Desde una carpeta.
2. Desde el escritorio.
3. Desde el Men de Inicio.
^i^ VISUAL BASIC como debe ser.. .
Para crear un acceso directo en el escritorio del Windows, primero
debe salir al escritorio y luego seguir los siguientes pasos:
En cualquier parte libre del escritorio haga clic con el botn derecho
del mouse. Se mostrar el siguiente men de opciones:
Active Desktop
Organizar iconos
Alinear iconos
Actualizar
' ' ent
Deshacer Eliminar
Active Desktop
Organiza iconos
AJinear iconos
Actualizar
Pegar
f'ft3< c jvtfpy [
Deshacer Eliminar
Nuevo
Propiedades
Lleve el puntero del mouse a la opcin Nuevo. Se
mostrar la siguiente pantalla.
Propiedades
I _ J Carpeta
j Acceso directo
^ WinZp File
Jj] Documento de texto
Documento de Microsoft Word
t i l Imagen de mapa de bits
A/chivo de sonido
l P Presentacin de Microsoft PowerPoint
Hoja de clculo de Microsoft Excel
ir CorelDRAW 8.0Grfico
@ Imagen Corel PHOTO-PAI NT 8.0
^1 Corel Media Folder
O Adobe Photoshop Image
PowerDesigner 8 Physical Data Model File
^ Microsoft Data Link
y 60
G rupo E ditorial Megabyte^
VITULO II:Descripcin de los Controles Bsicos
3. De la pantalla anterior haga clic en la opcin Acceso Directo para visualizar
la siguiente pantalla:
Escriba el nombre y la ubi c ac i n del elemento para
el que desea crear un a c c e s o di recto, o bi en,
busque el elemento h a c i endo cli c en Examinar.
L n e a de comandos:
Examinar..
Cancelar
De la pantalla anterior haga clic en el botn Examinar para buscar el archivo
Ejecutable (*.EXE) que usted ha creado
Examinar
Buscar en: Vb98
Nombre de archivo: |
Tipo de archivos: | Programas
a i I B a l
_JDataenvironmen(j IZLink
1T empiate Q Trabajo
ZDTsql ^ VbS
1Wizards GjiVisdala
Z 3 C2
1Cvpack
Abrir
~ 3 Cancelar
Normalmente Visual Basic Graba el archivo ejecutable que usted crea en la
carpeta:
C:\Archivos de programa\Microsoft Visual Studio\VB98
G r u p o E d i t o r i a l Megabyte 61
Una vez que encuentra el archivo seleccinelo haciendo doble clic
en l o un solo clic y luego en el botn Abrir. Se mostrar la siguiente
pantalla donde se muestra la ruta y el nombre del archivo ejecutable. En
nuestro ejemplo el archivo se llama TRABAJO.EXE.
W VISUAL BASIC como debe ser.. .
Crear acceso directo
l i
Sjy >I
fi
S ~
s
PB
*>*... 1
Es c r i b a el no m b r e y la u b i c a c i n d e l e l e m e n t o p a r a
e l q u e d e s e a c r e a r u n a c c e s o d i r e c t o , o bi en,
b u s q u e el e l e m e n t o h a c i e n d o c l i c e n Examinar.
L n e a d e co m a n d o s :
| d e programaSM crosoft V i s u a l S tudioSVB 9 8 \ T r abaj o. e x e f '
Exami nar.. . I
De la pantalla anterior seleccione el botn Siguiente.
Seleccione un ttulo para el programa
S e l e c c i o n e u n nombr e p a r a el a c c e s o di rect o:
I T r abaj o
: A t r s ) j | Ca n c e la r |
La pantalla anterior le permitir en forma opcional cambiar el nombre para
el acceso directo.
Segn los iconos (*.ico) que tenga grabados, Windows le pedir tambin
elegir el icono para el acceso directo.
62 G rupo E d i t o r i a l Megabyte<||
Despus de cambiar o no el nombre del acceso directo haga clic en el botn
Finalizar. Observar inmediatamente en el escritorio del Windows un nuevo
icono.
NOTA:
Para ver las otras formas de crear un Acceso Directo consulte con el Manual
o Ayuda de Windows.
MUY IMPORTANTE
Si desea grabar y ejecutar el archivo *.EXE generado en una computadora
que no tenga instalado el Visual Basic, debe copiar en la carpeta
WINDOWS\SYSTEM de dicha computadora el archivo MSVBVM60.DL1,
que se encuentra en la misma carpeta de la computadora donde desarroll
la aplicacin. Si la aplicacin trabaja con archivos externos como base de
datos tambin debe copiarlos en su carpeta respectiva. Si no copia el archivo
*.DLL se mostrar el siguiente mensaje cuando intente ejecutar la aplicacin.
a l
Error al iniciar el programa
N o se e n c o n t r el a r c h i v o DL L r equerido, MSVBVM60. DLL.
A c e p t a r j |
NOTA:
Tambin puede crear los Discos de Instalacin de la Aplicacin como se
explica en la pgina N 307.
G rupo E ditorial Megabyte 63 4 M i
VISUAL BASIC como debe ser.. .
CAJA DE TEXTO (TEXT):
fibj
Es un control que permite al usuario el ingreso de datos por medio del teclado.
Al dibujarlo se visualiza: Textl, Text2, Text3, etc.
PRINCIPALES PROPIEDADES DE UNA CAJA DE TEXTO:
AME
Permite asignarle un nombre. Por defecto el nombre es Textl, Text2, Text3,
etc. Segn el nmero de Cajas de Texto que se dibujen en el formulario.
BACKCOLOR
Selecciona el color del fondo.
ENABLED
Activa o Desactiva la Caja de Texto. Si est desactivada se muestra en un
color opaco y no responde a ningn evento ni se puede ingresar datos.
FONT
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto que se
escribe en este control.
FORECOLOR
Permite asignar el Color de la letra del texto que se escribe en este control.
LOCKED
Permite que el usuario pueda o no ingresar o modificar el texto que se
encuentra en este control. El valor FALSE permite el ingreso o modificacin
y el valor TRUE lo evita.
MAXLENGTH
Para indicar el nmero mximo de caracteres que el usuario puede ingresar
en una Caja de Texto. El valor cero (0) permite que el nmero de caracteres
a ingresar sea ilimitado. Este valor es asignado por defecto.
MULTILINE
Indica si el texto a escribir en la caja de texto puede ocupar varias lneas. Se
recomienda utilizarla junto con la propiedad SCROLLBARS para poder
desplazarse de una manera ms rpida y fcil por el texto ingresado
PASSWORDCHAR
Para indicar el carcter que deseamos que reemplace a cada uno de los
caracteres que digitamos. Se puede utilizar por ejemplo cuando queremos
ingresar claves de acceso.
SCROLLBARS
Para indicar qu barras de desplazamiento queremos que tenga la caja de
texto: Ninguna (None), Vertical, Horizontal o Ambas (Both).
TABINDEX
Indica el orden en el que el cursor debe ubicarse en las Cajas de Texto.
Donde queremos que se ubique el cursor al, ejecutar la aplicacin debe
tener el valor cero.
TABSTOP
Indica si el cursor debe ubicarse o no en una Caja de Texto.
TEXT
Almacena el texto que el usuario escribe en este control. Por defecto su
contenido es: Textl, Text2, Text3, etc. Para ingresar datos debe borrar este
contenido y dejar en blanco la Caja de Texto.
VISIBLE
Indica si la Caja de Texto se debe visualizar o no.
APLICACIN DESARROLLADA N 02
- i n l x |
Datos Personales
Nombre
Direccin
T elfono
Centro de Estudios
OBSERVACIONES
"1]
G rupo E ditorial Megabyte
65
> VISUAL BASIC como debe ser. . .
Desarrollo de la Aplicacin:
1.- Dibujar los controles.
Labell
Label2 |Te>:H
Label3 Jfext2
Label4 ffe xt 3
Label5 f f ext4
Label6
Text5
2.- Asignar las Propiedades a los Controles.
ETIQUETAS
CONTROL CAPTION ALIGNMENT BORDERSTYE
Labell Datos Personales Center 1-Fixed Single
LabeI2 Nombre Left O-None
Label 3 Direccin Left O-None
Label4 Telfono Left O-None
Label5 Centro de Estudios Left O-None
Label Observaciones Center O-None
CAJAS DE TEXTO
CONTROL TEXT MULTILINE SCROLLBARS
TEXT1 En Blanco False None
TEXT2 En Blanco False None
TEXT3 En Blanco False None
TEXT4 En Blanco False None
TEXT5 En Blanco True Vertical
El formulario debe tener: INGRESO DE DATOS en su Caption.
66 G r u p o E d i t o r i a l Megabyte ^^
APLICACIN PROPUESTA N 01
\ <. INGRESO DE PRODUCTOS
m m
_ | n | x |

Nombre
Descripcin
Precio Unitario
Unidad de Medida
Stock
Fecha de Vencimiento f
| Chic yo. 2 } de Agosto de 1.998
APLICACIN DESARROLLADA N 03
n
O T T T r O T r r n r T a r r
Nombre
r~
Ciclo (del I al X)
!......
Sexo [F/M]
r~
Clave
r~
Direccin Electrnica
i .................... ......
L a direccin eletrnica e s a s ig n a d a d e s p u s
d e ingr es ar t o d o s i o s r egis t r os ; p o r lo tardo,
Ud. no p o d r i n g r es a r la
CARACTERISTICAS:
1. En el ciclo slo se debe ingresar hasta 03 caracteres.
2. En el sexo slo un carcter.
3. En la clave hasta 05 caracteres y no se debe visualizar a medida
que se ingresa.
4. No se debe permitir el ingreso de la direccin electrnica.
G r u p o E d i t o r i a l Megabyte
67
17.S7 l / ItASIC como debe ser.
Iii nidlli) ilc li Aplicacin:
I I Xluijiu los controles.
<
Labell
j|Textl
Label2
|T ext2
Label3
Text3

Label4
[ i ext4
-----
Label5
Label6
j ext5
2.- Asignar las Propiedades a los Controles.
ETIQUETAS
CONTROL CAPTION
ALIGNMENT BORDERSTYE
Labell
Nombre
Left
O-None
LabeI2
Ciclo (del I al X)
Left
O-None
LabeI3
Sexo (F/M)
Left
O-None
Label4
Clave
Left
O-None
Label5
Direccin Electrnica Left
O-None
Label
La direccin elec...
Center
1-Fixed S.
CAJAS DE TEXTO
CONTROL
LOCKED maxlength PASSWORDCHAR text
TEXT1
False 0
En Blanco En Blanco
TEXT2
False 3
En Blanco En Blanco
TEXT3
False 1
En Blanco En Blanco
TEXT4
False 5
En Blanco
TEXT5
True ()
En Blanco En Blanco
Caption del formulario : INSCRIPCION DE ALUMNOS
G r u p o E d i t o r i a l Mega byte<
68
PTULO II'.Desciipcin de los Controles Bsicos
BOTON DE COMANDOS (COMMAND):
Es un control que contiene instrucciones que se ejecutan cuando ocurre
un evento. El evento ms utilizado es el evento CLICK, cuyas instrucciones
se ejecutan cuando el usuario hace un click en dicho control. Cuando se
dibuja se visualiza:Commandl, Command2, Command3, Etc.
PRINCIPALES PROPIEDADES DE UN BOTON DE COMANDOS:
AME
Permite asignarle un nombre. Por defecto el nombre es Commandl,
Command2, Command3, etc. Segn el nmero de Botones de Comandos
que se dibujen en el formulario.
BACKCOLOR
Selecciona el color del fondo. Para que acepte el color que se le asigna la
propiedad Style debe estar en modo Grfico.
CANCEL
Para indicar si las instrucciones que contiene se deben ejecutar cuando el
usuario pulsa la tecla <ESC>.
CAPTION
Para indicar el ttulo que debe tener el botn. El ttulo que se le asigne
siempre se visualiza en el centro del botn de comandos. Ud. puede subrayar
una de las letras del ttulo usando antes de dicha letra el smbolo (&), esto le
permitir ejecutar las instrucciones que contiene este control pulsando la
tecla ALT y la letra subrayada.
FONT
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto que se
escribe como ttulo del botn.
PICTURE
Selecciona un grfico para que se utilice como ttulo del botn de comandos.
P G r u p o E d i t o r i a l Megabyte 69
^ fe > VISUAL BASIC como debe ser.. .
STYLE
Para seleccionar su estilo de visualizacin: Estndar o Grfico. Si el estilo es
grfico, puede almacenar un grfico como ttulo y se le puede cambiar el
color del fondo.
TOOLTIPTEXT
Nos permite escribir un texto que se visualizar cuando el puntero del mouse
se ubique en el botn. El texto que se escriba sirve de ayuda para el usuario,
porque le puede dar a entender qu tarea o /uncin realiza el botn.
VISIBLE
Para indicar si el botn se debe visualizar.
APLICACIN DESARROLI ADA N 04 (Similar a la N 02)
1 INGRESO DE DATOS wmm
1 Datos Personales
Nombie j
Direccin
Telf ono
Centro de Estudios J-
OBSERVACIONES
L
iL

l
i
Huevo Alumno j Finalizar
J
La propiedad de los controles son iguales a la Aplicacin N02. Lo que sigue
son de los nuevos controles.
CONTROL CAPITON CANCEL TOOLTIPTEXT
Commandl &Nuevo AlumnoFalse Adiciona un nuevo alumno.
Command2 &Finalizar True Finaliza la aplicacin.
NOTA:
El resultado de TOOLTIPTEXT, se visualiza cuando al ejecutar la
aplicacin se ubica el puntero del mouse por unos instantes en cualquiera
de los botones.
Se debe escribir instrucciones dentro de los Botones.
El smbolo & permite que una letra est subrayada.
7 0 G rupo E ditorial Megahyte
ESCRIBIR INSTRUCCIONES PARALOS CONTROLES
Para escribir instrucciones dentro de algn control se debe hacer
Doble Click en dicho control o una vez seleccionado (haciendo un click en
l) se debe pulsar la tecla <F7>. Ingresar a la ventana de instrucciones,
llamada tambin ventana de cdigo:
VENTANA DE CDIGO Q INSTRUCCIONES
IMPORTANTE:
El nombre del control depende de dnde se hizo doble click o puls
<F7> y de la Propiedad ame que tiene el control. Si no ha cambiado la
propiedad ame del control se visualiza el nombre por defecto.
Cada control tiene un evento por defecto, si Ud. desea programar en un
evento diferente debe hacer click en la lista de Eventos y si desea programar
dentro de otro control que pertenece al mismo formulario debe hacer click
en la lista de controles (Flecha hacia abajo).
I p l ^ G r u p o E d i t o r i a l Megabyte m 71 w m
^ y ^ VISUAL BASIC como debe ser.. .
PRINCIPALES EVENTOS
ACTIVATE
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es activado.
CHANGE
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se modifica el contenido del control.
CLICK
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se hace un click o pulsa ENTER en un control.
DBLCLICK
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se hace doble click control.
DEA CTI VATE
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es desactivado.
GOTFOCUS
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
el cursor se posiciona en un control.
INICIALIZATE
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario se inicializa.
KEYPRESS
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se pulsa una tecla en el control.
LOAD
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es cargado en memoria.
LOSTFOCUS
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
el cursor sale en un control.
TIMER
Es un evento del control Timer (Reloj). Las instrucciones que se escriben
dentro de este evento se ejecutan cada cierta cantidad de segundos, que
Ud. Deber indicar.
UNLOAD
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es descargado de la memoria.
7 2 G rupo E ditorial Megahvte
EVENTOS MOUSEDOWN Y MOUSEUP
Las instrucciones que escribimos en el MouseDown se ejecuta se presiona
un botn del mouse.Las instrucciones que escribimos en el evento MouseUp
se ejecutan cuando se deja de presionar un botn del mouse.
Estos eventos reciben cuadro (4) valores y se almacenan en la variables
Button, Shift X, Y.
Prvate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
End Sub
Prvate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y
As Single)
End Sub
La variable BUTTON recibe un valor que indica el botn del mouse que se
presion:
Valor
1 Indica que se presion el botn Primario.
2 Indica que se presion el botn Secundario.
3 Indica que se presion el botn Central.
(No todos los mouse tiene 3 botones)
La variable SHIFT recibe el valor que indica la tecla especial que se tiene
presionada cuando pulsa o deja de pulsar uno de los botones del mouse:
Mays (Shift), CONTROL (Ctrl) o ALT.
Valor
1 Indica que se tiene presionada MAYS (Shift).
2 Indica que se tiene presionada CONTROL (Ctrl).
3 Indica que se tiene presionada ALT.
Las variables X, Y reciben el valor de la posicin Horizontal y Vertical del
mouse respectivamente.
MUY IMPORTANTE
El botn primario del Mouse es el botn principal y permite seleccionar los objetos
de una manera normal y casi siempre es el botn Izquierdo. El botn secundario del
Mouse permite acceder a los men contextales y casi siempre es el botn derecho.
Los men contextales contienen las opciones mas utilizadas de una aplicacin.
Puede utilizar la configuracin del Panel de Control de Windows para configurar el
Mouse.
l i l i l G ru po E d i t o r i a l Megabyte
V

VISUAL BASIC como debe ser.. .


En este libro al botn secundario se le llama Botn Derecho
I I
DESARROLLO DE LA APLICACIN N 04
En la aplicacin N 04 slo se necesita programar el Evento Click de cada Botn de
Comandos.
ELBOTN: NUEVO ALUMNO.
Debe limpiar las cajas de texto y ubicar el cursor en Textl para ingresar un nuevo
alumno.
EL BOTN: FINALIZAR.
Debe finalizar o terminar la aplicacin, ^sto tambin debe suceder si se pulsa la tecla
ESC.
Entonces dentro del evento click del botn Nuevo Alumno se debe escribir:
Textl =
Text2 =
Text3 =
Text4 =
Text5 =
Textl.Setfocus
Y dentro del botn finalizar se debe escribir: End
NOTA:
La instruccin END finaliza un Programa, SETFOCUS ubica el cursor en un
determinado control y Textl = borra el contenido de Textl. Entre las comillas no
debe dejar espacios en blanco.
Despus de escribir las instrucciones de un control puede cerrar la ventana haciendo
clic en el botn cerra (X).
Las instrucciones quedan grabadas cuando se graba el proyecto o el formulario.
ASPECTO FINAL DE LAS VENTANAS DE COMANDOS
BOTONNUEVO ALUMNO BOTON FINALIZAR
Private Sub Command2_Click()
End
End Sub
G r u p o E d i t o r i a l Megabyte^
^CAPTULO II:Descripcin de los Controles Bsicos
VISUAL BASIC AYUDA A PROGRAMAR
Cuando escribe el nombre de un control que tiene en el formulario y luego
un punto se visualiza las propiedades o eventos que puede asignar a dicho
control. Una vez que se encuentra seleccionada (Sombreada) la propiedad
o evento en forma automtica o en forma manual (con la flecha hacia abajo
o hacia arriba), pulse la barra e sp ad a d o r a para que se escriba
automticamente.
Esta ayuda se puede activar o desactivar en la opcin:
Herramientas\Opciones\Editor\Lista de miembros automtica
Tambin le ayuda cuando escribe una funcin visualizando los parmetros
que necesita. Cuando esto ocurre quiere decir que ha escrito correctamente
el nombre del control o el nombre de la funcin.
I P Pr o y e c t o l - F o i m l ( C d i g o ]
I C o m m a n d l
" l i J c " ck
1t Proyecto! Form! (Cdigo)
P r i v a t e Sub C o m m a n d l_Click IT
Text 1.
End S [^liignment
e* Appearance
Ef? BackColor
i**? BorderStyle
nf? CausesValidation
eS* Container
ei? DataChanged
Commandl Click
Pr i v a t e Su b Co m m a n d l _ Cl i c k ()
Di m R As In t g e r
R = Ri g h t (
En d S Right(SftMg,Le)i#/lsi-onfl) [
i f 1
APLICACIN PROPUESTA N 02
Escriba la siguiente aplicacin:
Si se hace un click en el botn de comando N 1(Nombre), se debe visualizar
tu nombre. Si se hace un click en el botn de comando N 2 (Centro de
Estudios), se debe visualizar el nombre del colegio, instituto, universidad,
etc. donde estudias. Si se hace un click en el botn de comando N 3 (Fecha
de Nacimiento), se debe visualizar la fecha en que naciste.
O - | n | _ g j
Nombre I Centro de Estudios F ec ha de Nacimiento
Salir
G rupo E ditorial Megabyte
75
VISUAL BASIC como debe ser.. .
TRABAJANDO CON LOS NOMBRES DE LOS CONTROLES
Todos los controles tienen asignado un nombre automticamente cuando
son dibujados en el formulario, esto lo puede confirmar mirando la propiedad
ame (Nombre) de cada control que dibuja en el formulario.
Por ejemplo:
La primera etiqueta (Label) que dibujas en el formulario tiene
automticamente el nombre Label 1, la segunda Label2, etc.
La primera caja de textos (Text) que dibujas en el formulario tiene
automticamente el nombre Textl, la segunda Text2, etc.
El primer botn de comando (Command) que dibujas en el formulario
tiene automticamente el nombre Command 1, el segundo Command2,
etc.
Para desarrollar una aplicacin puedes utilizar estos nombres que se asignan
automticamente al ser dibujados en el formulario asignarles nombres que
usted cree conveniente (ESTO ES OPCIONAL).
NOTA:
Normalmente los controles en su propiedad Caption o Text tienen lo
mismo que se asigna automticamente en la propiedad ame, por eso
tenga mucho cuidado de no modificar la propiedad ame en lugar de
la propiedad Caption o Text.
Ejemplo:
En la siguiente aplicacin se les asigna a los controles nombres distintos a
los que Visual Basic les asigna en forma automtica.
7 6 G rupo E ditorial Megabyte
APLICACIN DESARROLLADA N 05
Esta aplicacin permite ingresar el nombre, fecha de nacimiento, DNI y
domicilio actual de una persona utilizando la propiedad ame de los controles.
. Ingreso de Dalos
Nombre..................
! Fecha de Nacimiento ! !
DNI
Domicilio Actual
Paso N 01: Dibujar los controles.
Salir
Labell-
: Label2 :
-Label3
Label4-
; |Texl3
............|Text 4
Command! : Command2
Paso N 02: Dibujar los controles.
ETIQUETAS
CONTROL
L a b e 11
Label2
LabeB
Label4
CAJAS DE TEXTO
CONTROL TEXT
Textl
Text2
Text3
Text4
CAPTION
Nombre
Fecha de Nacimiento
DNI
Domicilio Actual
En Blanco
En Blanco
En Blanco
En Blanco
CAJAS DE TEXTO
CONTROL CAPTION
Coiranandl Nuevo
Command2 Salir
NAME
Nombre
Fecha
Dni
Domicilio
NAME
Nuevo
Salir
^ G rupo E ditorial Megabyte
AUTOSIZE
True
True
True
True
77
VISUAL BASIC como debe ser.. .
Paso N 03:Escribir las instrucciones para los controles.
Instrucciones del botn Nuevo.
Cuando haga clic o pulse la tecla F7 en el botn Nuevo, se visualiza la
siguiente ventana:
Observe el nombre del
Control
En esta ventana se tiene que escribir las instrucciones para limpiar el contenido
de las cajas de texto y poder ingresar los datos de otra persona.
Como cada caja de texto tiene un nombre asignado, entonces se tiene que
escribir las siguientes instrucciones:
1IH Proyectol - Formi (Cdigo)
Huevo jtJ 1Click
Private Su b Nuevo Click() T
1 t "
I 1 Q b U D r
k u j A
1t Proyectol - Formi (Cdigo] Llnl xl
1Huevo 1Click t |
Private Sub Muevo Click ( ) T
Nombre =
Fecha =
Dni =
Domicilio =
Nombre.SetFocus
End Sub
8-ill J
Instrucciones del Botn Salir
Cuando haga clic o pulse F7 en el botn Salir, se visualiza la siguiente ventana
donde debe escribir End.
Observe el nombre
del control
P 78
G rupo E ditorial Megabyte
PREFIJOS PARA LOS NOMBRES DE LOS
CONTROLES
Si tu lo deseas, puedes hacer uso de los prefijos que se recomiendan
utilizar en los nombres de los controles de Visual Basic, de tal manera que
con su nombre se sepa a qu tipo de control te refieres. Por ejemplo, si en
una caja de textos va a ingresar la direccin de una persona, le puedes
asignar el nombre de txtdireccion. Esto es opcional, incluso si tu lo deseas
puedes crear tus propios prefijos para los nombre de los controles en sus
aplicaciones.
Co n t r o l Pr e f i jo Co n t r o l Pr e f i jo
Base de datos db Line lin
Campo f Id ListBox 1st
CheckBox chk Menu mnu
ComboBox cbo MsChar ch
Command Button cmd Ole Contaiifeg-; ole
Command Dialog cdl Option Button opt
Data Control dat Picture Box pic
DbCombo dbc ProgressBar prg
DbGrid dbg Recordset Ree
DbList dbl ScrollBar Horizontal hsb
Directory ListBox dir Scrollbar Vertical vsb
Drive ListBox drv Shape shp
DTPicker dtp SsTab tab
File ListBox fil Tabla tb
Form f rm TextBox txt
Frame f ra Timer tmr
Image img UpDown upd
Label lbl
G r u p o E d i t o r i a l Megabyte
79
ERRORES MAS COMUNES
Si al ejecutar una aplicacin se muestra una ventana de mensaje
indicando un error, haga click en el botn aceptar o en el botn Debug
y finalice la aplicacin para corregir el error.
S k VISUAL BASIC como debe ser.. .
Se espera fin del procedimiento.
Posiblemente, borr End Sub por casualidad al
escribir las instrucciones del control
- r - v . _ j |
j v Compile error:
Expected End Sub
Aceptar j j Ayuda
Run-time error '424 :
Object required
End J { D e b u g j| Help I
Se requiere un objeto.
seguramente Ud. se est refiriendo a un control que no existe en el formulario,
escribi en forma incorrecta la propiedad del control o a una propiedad le
est asignando un valor incorrecto.
Grabar los cambios? SI, NO o CANCELAR
Seguramente quiere salir del proyecto actual sin grabarlo.
80 G rupo E ditorial Megabyte
PREGUNTAS DE REPASO N 02
1. Cmo se borra un control del formulario?
2. La propiedad Caption sirve para:
3. Con qu propiedad se puede evitar que un control se visualice cuando
se ejecute una aplicacin?
4. Para que al ejecutar el formulario ocupe toda la pantalla se usa la
propiedad:
5. Cul es la diferencia entre una etiqueta y una caja de textos?
6. Cul es el nombre por defecto de un formulario, caja de textos, etiqueta
y botn de comandos?
7. Para qu sirve la propiedad Font?
8. Para qu sirve la propiedad Tooltiptext?
9. Cul es la diferencia entre la propiedad visible y la propiedad Enabled?
10. Cuntas formas de ejecutar una aplicacin conoces?
11. Para qu sirve la propiedad Backcolor?
12. Cuntas formas de finalizar una aplicacin conoces?
13. Para qu sirve la propiedad Forecolor?
14. Los pasos para desarrollar una aplicacin son:
15. Cmo se borra un control del formulario?
16. Cmo se puede asignar un color a un botn de comandos?
17. Qu utilidad tiene la propiedad Tabindex en las cajas de texto?
18. Para escribir instrucciones dentro de un control se debe:
19. Cul es el evento por defecto de un formulario, etiqueta, caja de texto
y de un botn de comandos?
20. Cundo se ejecutan las instrucciones que se encuentran en el evento
Click?
CUIDADO!
No pase a los siguientes temas sin responder
correctamente a esta autoevaluacin.
G rupo E ditorial Megabyte
81
CAPITULO III
Nombre del Trabajador
David Infante
Horas Trabajadas Normales
48
Horas Extras
5
Pago por Hora Normal
10
Pago por Hora Extra
20
Total por Horas Normales
480
Total por Horas Extras 100
Sub
Descuento
Total a
; Calcular
Nuevo
ave Incorrecta
l'XA
Aceptar Cancelar
Producto
Precio Unitario
Cantidad Comprada
Subtotal S/.
Calce1
Nuf
ELEMENTOS
DescuentoS/. | 0
DE LA
TOTAL A PAGAR $/. ===>
PROGRAMACION
Se
I
PROCEDIMIENTOS Y FUNCIONES
----------------------------------------------------------------- ;------------------------------
Un procedimiento es un conjunto de instrucciones que se le da a la
computadora para que desarrolle un determinado proceso. A este conjunto
de instrucciones se le asigna un nombre para poder llamarlo o ejecutarlo en
cualquier momento. Toda aplicacin en Visual Basic est basada en
procedimientos.
Segn la forma como empiezan a ejecutarse los procedimientos se
dividen en dos grupos:
1. Procedimientos conducidos por eventos.
2. Procedimientos generales.
PROCEDIMIENTOS CONDUCIDOS POR EVENTOS
Son procedimientos ligados siempre a un control y a un evento
determinado y que se ejecutan cuando el control reconoce que a ocurrido
dicho evento. Tambin se puede ejecutar cuando es invocado desde cualquier
otro procedimiento. Estos tipos de procedimientos se crean automticamente
cuando comenzamos a escribir instrucciones para un determinado control.
Por ejemplo el siguiente procedimiento llamado Command l Click,
se crea automticamente cuando hacemos doble click o pulsamos la tecla
F7 en el control COMMAND 1 para escribir las instrucciones
Las instrucciones que Ud. escriba en este procedimiento llamado
Commandl_Click se ejecutan cuando se haga CLICK en el control
COMMAND1; es decir cuando ocurra el evento Click en el control
Commandl.
El nombre del procedimiento depende del nombre que Ud. ha asignado al
control en la propiedad AME y del evento elegido. Si Ud., no ha asignado
un nombre al control, entonces Visual Basic utiliza el nombre que le asigna
a cada control en forma automtica.
As como cada control tiene un nombre que en forma automtica le asigna
Visual Basic, tambin tiene un evento predeterminado el cual se visualiza
cuando empezamos a escribir las instrucciones para el control. Por ejemplo,
el evento predeterminado de los botones de comandos (Command) es el
evento CLICK y si queremos escribir instrucciones en otro evento, debemos
elegirlo de la lista de eventos. Otros ejemplos:
Prvate Sub Form_Activate() ^as instrucciones que se escriban
en este procedimiento se ejecuta
EndSub cuando el formulario es activado
Prvate Sub Form Load() Las instrucciones que se escriban en
este procedimiento se ejecuta cuando el
EndSub formulario es llamado para que quede activado.
Prvate Sub Textl_Change() Las instrucciones que se escriban en este
procedimiento se ejecuta cuando se modifica
EndSub el contenido del control Textl.
Prvate Sub Textl_KeyPress(KeyAscii As Integer)
EndSub
Las instrucciones que Ud. escriba en este procedimiento se ejecutan cuando se
presiona alguna tecla (escribe) en el control Textl y en la variable KeyAscii se
almacena el valor de la tecla pulsada. Por ejemplo si pulsa la tecla ENTER se
almacena el valor 13, ESC almacena el 27, la letra A el valor 65, etc. Esto quiere
decir que almacena el valor ASCII.
VISUAL BASIC como debe ser.. .
86 G rupo E ditorial Megabyte ^
CAPTULO III: Elementos de la Programacin
PROCEDIMIENTOS GENERALES
Son los procedimientos que se ejecutan slo cuando se hace una llamada
explcita a dicho procedimiento. Estos tipos de procedimientos no se crean
automticamente, por eso tambin reciben el nombre de procedimientos o
funciones definidos por el usuario.
Un procedimiento general puede escribirse como procedimiento SUB o
como funcin FUNCTION. Un procedimiento conducido por un evento
siempre es un procedimiento SUB.
Segn el lugar de la aplicacin donde los podemos llamar, los procedimientos
generales pueden ser:
1. Procedimientos a nivel de formulario.
2. Procedimientos a nivel de mdulo.
Procedimientos a Nivel de Formulario.
Los procedimientos a nivel de formulario son aquellos que se pueden
llamar o ejecutar slo desde el formulario en el cual han sido creados.
Procedimientos a Nivel de Mdulo.
Los procedimientos a nivel de mdulo son procedimientos pblicos; es
decir, se pueden llamar o ejecutar desde cualquier formulario de la aplicacin.
Sintaxis para un procedimiento:
[Prvate | Public] [Static] Sub nombre [(listaDeArgs)J
[instrucciones]
[Exit Sub]
[instrucciones]
End Sub
G rupo E ditorial Megabyte
87
S i
Un procedimiento tiene las siguientes partes:
1. FORMAS DE ACCESO:
Prvate Indica que se puede tener acceso al procedimiento slo desde
los procedimientos del formulario donde se ha declarado o
creado(Procedimiento a nivel de Formulario).
Public Indica que se puede tener acceso al procedimiento desde
todos los procedimientos de cualquier formulario que forma
parte de la aplicacin (procedimiento a nivel de mdulo).
Statc Indica que se conservan los valores de las variables locales
del procedimiento entre una llamada al procedimiento y otra.
El atributo Static no afecta a las variables declaradas fuera
de Sub, ni siquiera cuando se usa en el procedimiento.
2. NOMBRE:
Nombre del procedimiento que se utiliza para poder llamarlo o ejecutarlo.
3. LISTA DE ARGUMENTOS (LISTADEARGS):
Lista de variables que almacenan los valores que se pasan al procedimiento
cuando es llamado. Cuando se pasan varios valores se utilizan variables
mltiples y se separan con comas. Tambin se llaman parmetros.
4. INSTRUCCIONES
Cualquier grupo de instrucciones que se va a ejecutar dentro del cueipo
del procedimiento.
Las palabras claves Exit Sub producen la salida inmediata del
procedimiento. La ejecucin del programa contina con la instruccin
siguiente a la instruccin que ha llamado al procedimiento.
Sintaxis para una Funcin:
[Public|Private][Static]Function nombre [(listaDeArgs)][As tipo]
[instrucciones]
[nombre = expresin]
[Exit Function]
(instrucciones]
[nombre = expresin]
End Function
Adems de lo que contiene un procedimiento, una Funcin tiene las siguientes
partes:
VISUAL BASIC como debe ser.
' 8 8 G rupo E ditorial M e g a b y t e ^
1. TIPO
Es opcional e indica el tipo de dato del argumento que se pasa a la funcin.
2. EXPRESIN
Es el valor que retorna la funcin.
Las palabras clave Exit Function producen la salida inmediata de la Funcin.
La ejecucin del programa contina con la instruccin siguiente a la
instruccin que ha llamado a la Funcin.
MUY IMPORTANTE
* La diferencia principal entre una Funcin y un Procedimiento es que un
procedimiento nunca devuelve un valor mientras que la funcin si puede
devolver un valor y adems una funcin puede usarse en una expresin.
* Al conjunto de procedimientos, funciones, declaraciones de variables
y constantes se le llama MDULO. Un mdulo puede ser:
Mdulo de formulario, contiene todos los procedimientos a nivel de
formulario los cuales se graban en un archivo con la extensin *.Frm.
Mdulo estndar, contiene todos los procedimientos y declaraciones a
nivel de mdulo, se graban en un archivo con la extensin *.Bas.
PARMETROS POR REFERENCIA.
Permite que el valor de un parmetro pueda cambiarse en el cuerpo
de la funcin o procedimiento.
Para pasar un parmetro por Referencia debe estar sin parntesis.
La palabra ByRef (Opcional), indica que el parmetro se pasa por
referencia. ByRef es el modo predeterminado en Visual Basic.
PARMETROS POR VALOR.
Permite que el valor de un parmetro no pueda cambiarse en el cuerpo de
la funcin o procedimiento. Para pasar un parmetro por Valor debe estar
entre parntesis. La palabra By Val (Opcional). Indica que el argumento se
pasa por valor.
Ejemplo:
Raz (Num), Dif
En la llamada a la funcin Raz, el parmetro Num es pasado como por
Valor y el parmetro Dif es pasado por Referencia.
CAPTULO III: Elementos de la Programacin
l i l i l G r u p o E d i t o r i a l Megabyte
8 9
CREACIN DE PROCEDIMIENTOS A NIVEL DE FORMULARIO
Existen 2 formas para crear este tipo de procedimientos:
I ra . Forma.
Active la ventana de cdigo o instrucciones del formulario o de cualquier
control haciendo doble click en l o pulsando la tecla F7, luego elija la opcin
Tools (herramientas) de la Barra de Men y luego ADD PROCEDURE
(Agregar Procedimiento). Se visualiza la siguiente ventana:
^^ VISUAL BASIC como debe ser.. .
Agregar procedimiento
m
Nombre: j |
Tipo
(* Procedimiento
Funcin
Alcance
(* Pblico
C Propiedad
~ Evento
;
f ~ Todas las variables locales son estticas
Aceptar
Cancelar-
Una vez que Ud. llene los datos de esta ventana con la informacin
correcta del procedimiento que desea crear, haga click en el botn Aceptar
para que se muestre la plantilla del procedimiento y empezar a escribir las
instrucciones que se deben ejecutar cuando el usuario llame al procedimiento.
2da. Forma.
Active la ventana de cdigo o instrucciones del formulario o de cualquier
control haciendo doble click en l o pulsando la tecla F7, luego ubique el
cursor despus de cualquier instruccin END SUB y escriba la palabra
SUB seguida del nombre del procedimiento que desea crear o la palabra
FUNCTION y el nombre de la funcin y despues pulse la tecla ENTER.
G rupo E ditorial Mega b y te
90
CAPTULO III: Elementos de la Programacin < ^ ||
Ejemplo: Para crear un procedimiento llamado cambio, escriba la siguiente
instruccin y luego pulse la tecla ENTER.
SUB CAMBIO
NOTA:
Para crear o activar la ventana de declaracin de un formulario, haga doble
click en cualquier parte libre del formulario o pulse la tecla F7. Luego, de la
lista de objetos elija GENERAL y de la lista de eventos DECLARACIONES.
LLAMAR A PROCEDIMIENTOS
Para llamar o ejecutar procedimientos slo se necesita escribir el nombre
del procedimiento con los argumentos o parmetros si es necesario y
opcionalmente puede utilizar la instruccin CALL.
La sintaxis para llamar o ejecutar un procedimientos es:
[Cali] nombre [listaargumentos]
La instruccin CALL es opcional, si Ud. la utiliza para llamar o ejecutar
procedimientos que necesitan argumentos o parmetros, estos deben estar
entre parntesis. Por ejemplo la siguiente instruccin llama al procedimiento
IMPRIME utilizando la instruccin CALL y le pasa 2 argumentos.
Cali imprime("Hola",3)
La siguiente instruccin llama al procedimiento IMPRIME sin utilizar la
instruccin CALL y le pasa 2 argumentos.
Imprime "Hola",3
NOTA:
Para pasar una matriz completa a un procedimiento, use el nombre de
la matriz seguida de parntesis vacos.
G rupo E ditorial Megabyte 91 m m
o
S
VISUAL BASIC como debe ser.. .
CONSTANTES
Es un elemento con un nombre determinado que mantiene un valor
constante durante el desarrollo de todo el programa el cual no se puede
cambiar. La constantes se definen con la instruccin CONST. Por ejemplo:
CONST Saludo = Buenos Dias
Define la constante SALUDO que tendr el texto Buenos Das durante
la ejecucin del programa. Esto quiere decir que si se desea utilizar el texto
puede utilizar slo la constante Saludo. As, la siguiente instruccin muestra
el texto Buenos Das en el control Label 1:
Label 1= Saludo
La siguiente instrucciones define la constante IGV con el valor 18.
Const IGV = 18
Si durante el desarrollo del programa escribimos por ejemplo IGV = 16 para
cambiar de valor a la constante IGV, se visualiza un mensaje de error.
Microsoft Visual Basic n
Error de compilacin:
Asignacin a la constante no permitida
Aceptar Ayuda
NOTA:
La definicin de constantes puede empezar con las palabras Public o Private.
Para que sean pblicas o privadas. Por defecto son Privada.
G rupo E ditorial Megabyte
92
CAPTULO III: Elementos de la Programacin %
VARIABLES
Una variable es un elemento con un nombre determinado que contiene
un valor en forma temporal hasta que la aplicacin finalice. El valor puede
variar en cualquier momento de la ejecucin de la aplicacin. Una variable,
segn el lugar de la aplicacin donde se desea utilizarla puede ser:
1. Variables a nivel de procedimiento.
-Si una variable se declara a nivel de procedimiento, significa que conserva su
valor (se reconoce) slo dentro del procedimiento donde ha sido declarado.
2. Variables a nivel de Formulario.
Si una variable se declara a nivel de formulario, significa que conserva su
valor (se reconoce) en cualquier procedimiento del formulario donde ha
sido declarada.
3. Variables a nivel de Mdulo.
Si una variable se declara a nivel de mdulo, significa que conserva su
valor (se reconoce) en cualquier procedimiento de cualquier formulario
de la aplicacin.
La sintaxis bsica para declarar una variable es:
Ambito Nombre As Tipo
1) AMBITO:
El mbito indica en qu lugar de la aplicacin desea utilizar la variable y
puede ser una de las siguientes palabras claves: Dim, Static, Prvate o Public.
Dim : Se puede utilizar a nivel de procedimiento y a nivel de formulario.
Si se declara una variable a nivel de procedimiento con la palabra
DIM, Visual Basic reinicializa (borra su contenido) la variable
cada vez que ejecuta el procedimiento.
Static : Se utiliza slo a nivel de procedimiento. Cuando una variable se
declara con la palabra STATIC, Visual Basic no reinicializa la
variable cada vez que se ejecuta el procedimiento, slo lo hace la
primera vez. Esto quiere decir que la variable conserva su valor
entre una llamada al procedimiento y otra.
Prvate: Se utiliza slo a nivel de mdulo e indica que la variable es privada;
es decir, slo va a ser reconocida dentro del mdulo donde ha
sido declara.
Public : Se utiliza slo a nivel de mdulo e indica que la variable es publica;
es decir, va a ser reconocida en toda la aplicacin.
G rupo E ditorial Megabyte 93 ^ j | J | |
2) NOMBRE:
Es el nombre que utilizamos para referirnos a la variable en la aplicacin.
El nombre de una variable tiene que comenzar con una letra y puede
tener como mximo 255 caracteres. Los caracteres pueden ser letras,
dgitos, el carcter subrayado y los caracteres de declaracin del tipo de
la variable (%,&,!,#,@y $). El nombre de una variable no puede ser una
palabra reservada porque tienen un significado especial para Visual Basic.
3) TIPO:
Es opcional y determina qu clase de valores puede almacenar una variable.
Si no indica el tipo no utilice la palabra AS, en este caso la variable se
considera de tipo Variant.
S B ts VISUAL BASIC como debe ser.. .
TIPOS DE VARIABLES
TIPO DESCRIPCIN CARCTER RANGO
Byte I Byte 0a255
Boolean Lgico
(2 Bytes)
True o False
Integer Entero
(2 bytes)
% -32768 a 32767
Long Entero Largo
(4 bytes)
& -2147483648 a 2147483647
Single Real Simple
Precisin (4 bytes.)
i
-3.40E+38 a 3.40E+38
Double Real Doble
Precisin (8 bytes)
# -1.79D+308 a 1.79D+308
Currency Nmero con Punto
Decimal Fijo (8 bytes)
@ -9.22E+14 a 9.22E+14
String Cadena de Caracteres $
(4 b.+ l b./car. hasta 64K.)
0 a 65500 car.
Date 8 bytes 01/01/100 a 31/12/9999
Variant es el tipo de datos al que se convierten todas las variables si no se
declaran explcitamente de algn tipo. El tipo de datos Variant no tiene carcter
de declaracin de tipo.
Los tipos de datos Byte, Integer, Long, Single, Double y Currency indican
que una variable va a almacenar slo nmeros, pero cada uno de estos tipos
tiene sus caractersticas. Por ejemplo:
Una variable definida de tipo Byte acepta nmeros enteros (sin decimales),
pero slo entre 0 y 255.
94 G rupo E ditorial Megabyte
Una variable definida de tipo Integer, acepta nmeros enteros comprendidos
entre -32768 hasta 32767. Una variable definida de tipo Single, Double y
Currency acepta nmeros sin decimales y con decimales.
MUY IMPORTANTE:
Si a una variable la declaramos de un tipo determinado y le asignamos un
valor incorrecto se visualiza un error.
Ejemplo Nl:
Dim A as Integer
A = 50000
Se define la variable A de tipo Integer cuyo valor mximo debe ser 32767,
pero le asignamos el valor 50000. En este caso se visualiza un error de
overflow (desbordamiento):
CAPTULO III: Elementos de la Programacin
E r r o r ' 6' en t i e m p o de e j e c u c i n :
D e s bor dam ient o
j T e r m i n a r j 1 D e p u r a r j | Ayuda |
Ejemplo N 2:
Dim A as Integer
A = "Juan"
Se define la variable A de tipo Integer cuyo valor mximo debe ser 32767,
pero le asignamos un valor tipo Texto. En este caso se visualiza un error de
Type Mismatch (tipo):
E r r o r ' 13' en t i e m p o de e j e c u c i n :
No coi ncide n los t ipos
De pur ar Ayuda
G rupo E ditorial Megabyte
95
CMODECLARAR VARIABLES ANIVELDEPROCEDIMIENTO?
Las variables a nivel de procedimiento se declaran dentro de cada
procedimiento que Ud., crea en su aplicacin. Su utilizacin ms comn es
intervenir en clculos intermedios. Por ejemplo:
Prvate Sub CommandI_Click()
Dim NOM As String * 30
Dim E As Integer
Static C As Integer
Otras instrucciones
End Sub
CMO DECLARAR VARIABLES A NIVEL DE FORMULARIO?
Debe activar la ventana de declaracin de variables. Para ello se debe hacer
doble click en cualquier control o pulsar la tecla <F7>, lueg'o de la lista de
controles elegir GENERAL y de la lista de eventos elegir DECLARACIONES.
Se puede visualizar
S K S k VISUAL BASIC como debe ser.. . <
ti
|(General) j(Declarations)
iSjj r
1"m Project-! * Ftm1 (Code) -J C l x j l
I(General) Vj |(Declarations) j r j j
;
Jd
[Option Ex p l i c i t :
s jJ J i T
Si la ventana tiene la instruccin OPTION EXPLICIT, significa que se generar
un error por cada variable que utilice y no declare: Variable not Defined
(Variable no definida).
Si Ud., desea puede borrar la instruccin Option Explicit y tambin si esta
ventana no la tiene, la puede escribir.
CMO DECLARAR VARIABLES A NIVEL MDULO?
De la opcin Proyecto de la barra de men elija la opcin Adicionar Mdulo.
^ Proyeclol - Module! (Cdigo) H l i i E [ |
Este tipo de variables normal
mente se utilizan cuando nuestra
|(General) jrJ j(Declaraciones)
1 ^
aplicacin tiene varios for
5 _1_U
mularios.
j j | |l ^ 96 G r u p o E d i t o r i a l Megabyte
CAPTULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 06
Esta aplicacin muestra la diferencia entre una variable declarada con DIM
y STATIC dentro de un procedimiento.
PASO N 01: Dibujar los controles.
o Ci - l o l *l
Incrementa ia variable y B
PASO N 02: Asignar las propiedades.
C3
51 -
_ l a l x |
Labell
Labei3
Label2
Label4
! -
Commandl
)|
CONTROL
Labe11
Label2
Label3
Label4
BORDERSTYLE
0 - None
0 - None
1 - Fixed Single
1 - Fixed Single
ETIQUETAS (LABEL)
CAPTION AUTOSIZE
Valor de A True
Valor de B True
En Blanco False
En Blanco False
BOTONES DE COMANDOS
CONTROL CAPTION
Coinmandl Incrementa la variable A y B
Caption del Formulario: Diferencia entre Dim y Static.
PASO N 03: Escribir las instrucciones.
* Slo se programa en el commandl. Observar que al hacer click en
este botn la variable A no se incrementa porque est declarada
con DIM, que permite reinicializar una variable cada vez que ,v<
ejecuta un procedimiento. En el ejemplo, el procedimiento es:
COMMAND 1_CLICK().
Private Sub Commandl_Click()
Dim A Ai Integer
Static B Ai Integer
A = A + /
B = B + 1
Labe!3 =A
Label4 = B
End Sub
G r u p o E d i t o r i a l Megabyte
97

EJEMPLO DEUNA VARIABLEANIVELDEPROCEDIMIENTO


S E
VISUAL BASIC como debe ser.
. V A R I A B L E S A NIVEL DE P R OCEDIMIENT O
PROCEDIMIENTO " A" PROCEDIMIENTO "B"
Dibuje una etiqueta y dos botones de comandos y asgneles su propiedad
Caption como se muestra en la aplicacin.
INSTRUCCION DEL COMMAND1
Prvate Sub Commandl_Click()
Dim N As Integer
N = 5
INSTRUCCIONES DEL COMMAND2
Prvate Sub Command2_Click()
Labell = N
End Sub
Labell = N
N = 10
End Sub
Al hacer click en el Commandl (Procedimiento "A"), se visualiza el valor 5,
y luego la variable N toma el valor 10, pero al hacer click en el Command2
(Procedimiento "B") se visualiza el error "VARIABLE NO DEFINIDA" o
no se muestra nada. Esto depende si existe o no la instruccin Option Explicit.
Como puede observar, el valor de la variable N no es reconocida en el
segundo procedimiento (Command2) porque fue declarada dentro del
procedimiento commandl (Nivel de Procedimiento).
EJEMPLO DE UNA VARIABLE ANIVELDE FORMULARIO.
Para que la variable N sea reconocida en ambos procedimientos, debe de
declararla a Nivel de Formulario.
1m Proyectol - Formi (Cdigo) . n l x l
|(General) j(Declaraciones) -*
]
D i m N A s I n t e g e r ~ H
j U
J j
Las instrucciones de los botones de comandos sern:
Prvate Sub Command] _Clck()
N = 5
Labell = N
N = 10
End Sub
K A 98
Prvate Sub Command2_Clck( )
Labell = N
End Sub
G rupo E ditorial Megabyte-^
CAPTULO III: Elementos de la Programacin
OPERADORES ARITMETICOS:
Suma
Resta
Multiplicacin
Divisin
\ Divisin Entera
MOD Resto de una Divisin
A Exponenciacin
0 Orden de Operacin
Ejemplos:
OPERACION
5+13
80-4
7 *6
13/2
13 \ 2
13 MOD 2
4 A3
12+14/2
(12 +14)/2
RESULTADO
18
76
42
6.5
6
1
64
19
13
ORDEN DE EJECUCIN DE LOS OPERADORES (Prioridad)
Cuando hay varios operadores en una misma expresin se resuelven en un
orden predeterminado segn la prioridad de los operadores. As:
1. Exponenciacin (A)
2. Negacin (-)
3. Multiplicacin y divisin (*, /)
4. Divisin de enteros (\)
5. Resto de una Divisin (Mod)
6. Suma y Resta (+, -)
NOTA:
Si los operadores de una expresin tienen la misma prioridad se ejecutan de izquierda
a derecha.
Los parntesis cambian el orden de operacin porque toda expresin que tenga
parntesis se ejecuta primero y si existen varios parntesis primero se ejecutan los
parntesis ms internos. Por ejemplo, si las notas de un alumno son 12 y 14, la
siguiente expresin: 12 + 14/2 dar como promedio 19 y la expresin (12 + 14) / 2
dar como promedio 13.
G rupo E ditorial Megabyte
99
k' VISUAL BASIC como debe ser.. .
COMENTARIOS
Los comentarios son textos que se pueden utilizar para documentar nuestra
aplicacin permitiendo de esta manera ir explicando cmo estamos
desarrollando la aplicacin y cmo funciona. Este texto explicativo y
aclaratorio es ignorado por la computadora cuando nuestra aplicacin se
ejecuta.
Los comentarios se pueden colocar dentro de un programa utilizando la
instruccin REM o el Apostrofe ( ).
La instruccin REM normalmente se utiliza al inicio de una lnea y en forma
independiente. Por ejemplo:
Rem Se limpian las cajas de texto.
Textl=""
Text2 = ""
Text3 = ""
Si queremos colocar el comentario en la misma lnea de instruccin, se debe
separar con dos punto (:). Ejemplo:
Textl = "" : Rem Limpia la caja de textos
El apostrofe se puede utilizar al inicio de una lnea en forma independiente o
al final de una lnea de instruccin. Por ejemplo:
1.
El valor de A se incrementa en 1
A = A + 1
2.
A = A + 1El valor de A se incrementa en 1
NOTA:
Cuando se insertan los comentarios se visualizan con un color diferente al
de las instrucciones, este color es normalmente el verde.
100 G rupo E ditorial Megabyte
^ CAPTULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 07
Ingresar el nombre de un trabajador, las horas normales que ha trabajado,
las horas extras, el pago por cada hora normal y extra. Al hacer un Click en
el botn Calcular se debe calcular y mostrar el total por las horas normales,
el total por las horas extras, el sub total, un descuento del 10% del sub total
y el total que se le debe pagar.
1i_ PAGOS
Nombre del Ttabajadoi David Infante
Horas T r abajadas Normales 48
Horas Extras 5
Pago por Hora Normal 10
Pago por Hora Extra 20
Total por Horas Normales G
O
O
Total por Horas Extras I I 00
Sub Total |580
Descuento (10%) |58
T otal a Pagar j522
PASO N 1: Dibujar los controles.
Form!
G r u po E d i t o r i a l Megabyte
Calculai
Nuevo
Salir
I- I I *1
L a b e l l T e x t l
Label2 ( i ext2
Label3 | Te xt 3
Label4 |T ext4
Label5 | T ext5
LabeIS
L a b e l l 1
Label7
L a b e l l 2
LabeIS
L a b e l l 3
LabeIS
L a b e l l 4
L a b e l l 0
L a b e l l 5
Commandl
Command2
Command3
101
Wm
^> VISUAL BASIC como debe ser.. .
PASO N 2: Asignar las propiedades a los controles.
Asigne la propiedad Caption al formulario, a los botones de comandos y a la
etiqueta nmero 1 hasta la etiqueta nmero 10 como se muestra en la
aplicacin a desarrollar.
A las cajas de texto y las etiquetas desde la nmero 11 hasta la nmero 15
no les borre su contenido por se van a limpiar al ejecutar la aplicacin.
PASO N 3: Escribir las instrucciones para los controles.
Para que al ejecutar la aplicacin se limpie el contenido de las cajas de texto
y de las etiquetas N 11 hasta la N 15 y adems se ubique el cursor en la
caja de textos N 1 para empezar a ingresar los datos, se debe programar en
el evento ACTIVATE del formulario. Para ello ingrese a la ventana de cdigo
o instrucciones haciendo doble click en el formulario o pulse la tecla F7 y de
la lista de controles seleccione el control FORM y de la lista de eventos
seleccione el evento ACTIVATE. Se visualizar la siguiente ventana:
| m Proyectol - Formi (Cdigo)
|Form jftctiuate j r j
Private Sub Form Activate () Sj|
End Sub
S_J
Las instrucciones que debe escribir en esta ventana son:
Prvate Sub Form_Activate()
Textl = ""
Text2 = ""
Textl = ""
Text4 = ""
TextS = ""
Labelll =
Labell2 = ""
Labell3 = ""
Labell4 = ""
Labell5 = ""
Textl. SetFocus
End Sub
102 G rupo E ditorial Megabyte <^g
INSTRUCCIONES DEL BOTN CALCULAR.
Para escribir las instrucciones del botn CALCULAR, debe hacer doble
click o pulsar la tecla F7 en dicho botn. Si se encuentra dentro de la ventana
de cdigo seleccione de la lista de controles el control COMMAND1 y de
la lista de eventos el evento Click. Se visualizar la siguiente ventana:
CAPTULO III: Elementos de la Programacin ^
H Pryeclol - Foiml (Cdigo)
^ x ]
Commandl
Click
-
Option Explicit _____ at.
Private Sub Coimiandl_Clicli: ( )
I
----
I
End Sub .......
I
m <l I
i
J
MUY IMPORTANTE:
Si al ingresar a la ventana de cdigo visualiza la instrucciones Option
Explicit, significa que debe definir todas las variable que va a utilizar. Si
Ud., no desea definir las variables puede borrar la instruccin Option Explicit.
Las instrucciones del botn CALCULAR (Commandl) son:
Prvate Sub Commandl_Click()
Dim HNT, HET, PHN, PHE, THN, THE, ST, DES, TP As Single
Const DESCUENTO = 10
HNT = Val(Text2) Horas Normales Trabajadas
HET = Val(Text3) Horas Extras Trabajadas
PHN = Val(Text4) Pago por Hora Normal
PHE = Val(Text5) Pago por Hora Extra
THN = HNT * PHN Total por Horas Normales
THE = HET * PHE Total por Horas Extras
ST = THN + THE Sub Tota!
DES = ST * DESCUENTO /100 Descuento
TP = ST - DES Total a Pagar
Labelll = THN
Labell2 = THE
Labell3 = ST
Labell4 = DES
LabellS = TP
End Sub
>I ^ G r u p o E d i t o r i a l Megabyte 1 0 3
NOTA:
En esta aplicacin se utiliza la funcin VAL, que permite convertir un
valor tipo carcter a un valor tipo numrico. Para realizar operacio
nes aritmticas con datos almacenados en cajas de texto o etiquetas,
se recomienda usar la funcin VAL para convertirlos a numricos.
OTRA FORMA DE PROGRAMAREN EL BOTN CALCULAR
En el ejemplo anterior se definen y usan variables y constantes para obtener
los resultados deseados, pero tambin se pueden obtener los resultados sin
utilizarlas.Por eso dentro del botn CALCULAR (Commandl) tambin se
puede programar lo siguiente:
Prvate Sub Commandl_Click()
Labelll = VaI(Text2) * Val(Text4)
Labell2 = Val(Text3) * Val(Text5)
Labell3 = Val( Labelll) + Val(Labell2)
Labell4 = Val(Labell3) * 10/100
LabelI5 = Val(Labell3) - Val(Labell4)
End Sub
INSTRUCCIONES DEL BOTN NUEVO.
Cada vez que haga click en el botn NUEVO, se deben limpiar los datos
ingresados y los resultados y ubicar el cursor en textl para ingresar los
datos de un nuevo trabajador.
Como las instrucciones que realizan este proceso se encuentran en el
procedimiento Form_Activate ya no es necesario volverlas a escribir en el
botn NUEVO, slo debe llamar al procedimiento desde este botn.
La instruccin que debe escribir en el botn NUEVO es:
Form Actvate
# VISUAL BASIC como debe ser.. .
| t Proyectol - Formi (Cdigo) | _ | n | x |
|command2 j r J | Click
P r i v a t e Sub Command2 C l i c k ()
Form Act i v a t e
(End Sub 1
l
i
l
i
l

jf1
m m
G rupo E ditorial Megabyte^
MUY IMPORTANTE:
Se puede desarrollar la aplicacin de tal manera que los resultados se
visualicen al ingresar los datos sin necesidad de hacer click en el botn
CALCULAR. Para ello debe llamar a las instrucciones del botn
CALCULAR (procedimiento Command2_Click) desde el evento CHANGE
de cada una de las cajas de textos.
rm Provecto! - Form! [Cdigo)
n| x|
Tenti J I
Change T
.................................... ........zq
Private Sub Textl_Change( )
Commandl_C 1 ickj
End Sub
Private Sub Text2_Change()
C ommand1_C1i c k
End Sub
Private Sub Text3_Change()
Command1_Click
End Sub
Private Sub Text4_Change( )
Command1_C1ick
End Sub
Private Sub Text5_Change()
Command1_Click
End Sub
De esta manera ya no necesita el botn CALCULAR porque los resultados
se visualizan cuando se ingresa o modifica cualquier dato. Ud., puede borrar
el botn CALCULAR porque las instrucciones que contiene permanecen
en el formulario cuando el botn se borra.
G rupo E ditorial Megabyte
105
-------------------------------- ^ ^
VISUAL BASIC como debe ser.. .
IF - THEN - ELSE
Permite ejecutar una o ms instrucciones dependiendo de la respuesta
(verdad o Falso) de una condicin dada.
Su sintaxis es:
1.- If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Else
Instruccin(es)
(Se ejecutan cuando es Falso)
Endlf
2.- If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Endlf
3.- If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Elself condicin then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Else
Instruccin(es)
(Se ejecutan cuando es Falso)
End If
4.- If condicin Then Instruccin else Instruccin
Esta ultima sintaxis se pude utilizar normalmente cuando en cada caso de va
a ejecutar slo una instruccin, si son dos o ms instrucciones se deben
separar por dos puntos, pero es recomendable utilizar la lera, o 2da. sintaxis
en estos casos.
106
G r u p o E d i t o r i a l
En la condicin se pueden utilizar los OPERADORES DE RELACIN Y
LGICOS:
CAPITULO III: Elementos de la Programacin
= Igual
> Mayor Que
< Menor Que
>= Mayor o Igual
<= Menor o Igual
o Diferente
AND Y Lgico
OR O Lgico
NOT Negacin
Like Comparar Cadenas
Por ejemplo:
Se desea mostrar en la etiqueta N 1 (Labell) el mensaje APROBADO O
DESAPROBADO, dependiendo de su promedio almacenado en la variable PROM.
La instruccin ser:
If Prom >= 10.5 Then
Label 1 = APROBADO"
Else
Labell = DESAPROBADO
End If
La instrucciones anterior tambin se puede desarrollar de la siguiente manera:
If Prom>= 10.5 Then Label 1= APROBADO Else Label 1=DES APROBADO
La instruccin If se debe utilizar con Else normalmente cuando slo existen
dos alternativas como por ejemplo para saber si un alumno est aprobado o
no, para saber si una persona es mayor de edad o no.
Cuando existe slo una o a partir de tres alternativas es mejor utilizar una
instruccin If sin Else para cada alternativa.
Por ejemplo:
Se ha ingresado en Text3 el turno de un trabajador y de acuerdo al turno se
le da un pago que debe visualizarse en Label.
Maana (M) ==> 300, Tarde (T) ==> 500 y Noche (N) ==> 700
G rupo E ditorial Megabyte 107 <lfj|^
VISUAL BASIC como debe ser.. .
Las instrucciones seran:
Dim PAGO As Integer
I f Text3 = "M" Then
PAGO = 300
End I f
I f Text3 = "T" Then
PAGO = 500
End I f
I f Text3 = "N" Then
PAGO = 700
End I f
Label6 = PAGO
Tambin se puede desarrollar de la siguiente manera:
Dim PAGO As Integer
I f Text3 = "M" Then PAGO = 300
I f Text3 = "T" Then PAGO = 500
I f Text3 = "N" Then PAGO = 700
Label = PAGO
La sintaxis N 03 (con Elself) tambin se puede utilizar en estos casos:
Dim PAGO As Integer
I f Text3 = "M" Then
PAGO = 300
Elself Text3 = "T" Then
PAGO = 500
Elself Text3 = "N" Then
PAGO = 700
End I f
Label = PAGO
108
G rupo E ditorial Megabyte^
CAPITULO III: Elementos de la Programacin
MSGBOX
Muestra una ventana de mensaje en el centro de la pantalla. Tiene
dos sintaxis:
1.- Cuando no se espera la respuesta del usuario:
Msgbox Mensaje, Valor,Ttulo
2.- Cuando se espera la respuesta del usuario:
Varable^Msgbox (Mensaje,Valor,Ttulo)
Variable: Almacena un valor tipo entero de acuerdo a la respuesta del usuario.
Mensaje: Es el mensaje que se desea mostrar.
Valor : Indica qu botones van a acompaar al mensaje.
Ttulo : Es el ttulo que desea que tenga la ventana.
Valor Constante Botn que se visualiza
0 vbOKOnly Ok (Aceptar)
1 vbOKCancel Ok y Cancelar
2 vbAbortRetrylgnore Anular,Reintentar e Ignorar
3 vbYesNoCancel S, No y Cancelar
4 vbYesNo S y No
5 vbRetryCancel Reintentar y Cancelar
16 vbCritical Icono de Error Crtico
32 vbQuestion Icono de Inten-ogacin
48 vbExclamation Icono de Exclamacin
64 vbnformation Icono de Informacin
0 vbDefaultButtonl Primer botn por defecto
256 vbDefaultButton2 Segundo botn por defecto
512 vbDefaultButton3 Tercer botn por defecto
G r u p o E d i t o r i a l Megabyte 109
VISUAL BASIC corno debe ser.. .
ICONOS QUE SE PUEDEN MOSTRAR
Icono de Error Crtico 16
Icono de Interrogacin 32
Icono de Exclamacin 48
Icono de Informacin 64
NOTA :
Para visualizar los botones con los iconos se debe sumar los valores
de cada uno de ellos. Por ejemplo para visualizar los botones S y No
y el icono de interrogacin el valor ser: 4 + 32 o simplemente 36.
Tambin se puede usar las constantes en lugar de los valores.
Si queremos que el mensaje ocupe varias lneas, se debe usar Chr(13)
al final de cada lnea.
Valores que retorna:
Valor Constante Respuesta del Usu
1 vbOK
OK (Aceptar)
2 vbCancel Cancelar
3 vbAbort Anular
4 vbRetry
Reintentar
5 vblgnore Ignorar
6 vbYes Si
7 vbNo No
O
V
G rupo E ditorial Megabyte
O
Ejemplo:
1.
Dim R as Integer
R=Msgbox(Est seguro de salir,36,CUIDADO")
Muestra la siguiente ventana:
CAPTULO III: Elementos de la Programacin ^^||P
1
Est seguro de salir
No S
Si el usuario hace un click en el botn SI, la variable R toma el
valor 6 y si hace un click en el botn NO la variable R toma el valor 7.
2.
Dim T as Integer
T-MsgBox("Clave Incorrecta",1 + 16, "Acceso Denegado")
Muestra la siguiente ventana:
l
O
Clave Incorrecta
Aceptar ; Cancelar
Si el usuario hace un click en el botn ACEPTAR, la variable T
toma el valor 1 y si hace un click en el botn CANCELAR la variable T
toma el valor 2.
G rupo E ditorial Megabyte
111
Desarrollar nuevamente la siguiente aplicacin (N 04)
OBESb VISUAL BASIC como debe ser.. .
APLICACIN DESARROLLADA N 08
Con las siguientes caractersticas:
1. A l ejecutar la aplicacin el botn Nuevo Alumno debe estar
desactivado. Slo se debe activar cuando comience a ingresar el
nombre del alumno.
2. Cuando el usuario ingrese un campo y pulse ENTER, el cursor
debe pasar automticamente al siguiente campo.
3. A l hacer un click en el botn finalizar se debe mostrar un mensaje
de advertencia. Las instrucciones de este botn se deben ejecutar
tambin cuando el usuario pulse <ESC>.
Para d e s a r r o l l a r la a p l i c a c i n debe d i b u j a r t odos los c o n t r o l e s y
asignarles las mismas propiedades de la aplicacin N u 02, pero adems:
CAPTULO III: Elementos de la Programacin
Para desarrollar la caracterstica N 01 se debe:
A) El commandl (Nuevo alumno) debe tener en la propiedad Enabled
el valor False.
B) Se debe programar en el evento Change de T e x t l :
I f Trim(text 1)= Then
Command 1,enabled=False
Else
Commandl.enabled= True
Endlf
NOTA:
1. Como puede observar, para referirse a la propiedad de un control
dentro de un programa se debe respetar la siguiente sintaxis:
Nombre del Control.Propiedad = Valor
2. La funcin Trim quita los espacios en blanco que se encuentran a la
derecha de una caja de textos o de una cadena.
3. I f Trim(textl) = Then.- Preguntar si una caja de textos est va
ca (entre las comillas no debe haber espacios en blanco). Si la
caja de textos est vaca el botn Nuevo Alumno se desactiva y
en caso contrario (si hay algo escrito) se activa.
Para desarrollar la caracterstica N02 de esta aplicacin se debe:
A ) Programar en el evento Keypress de cada una de las cajas de texto.
Por ejemplo haga doble Click en Textl y de la lista de eventos elija el
evento Keypress. Visualizar:
Prvate Sub Iext 1 KeyPress(KeyAscii As Integer)
End Sub
Entonces se debe programar lo siguiente:
Prvate Sub Textl_KeyPress(KeyAscii As Integer)
Ifkeyascii = 13 then
Text2.set focus
End If
End Sub
G r u p o E d i t o r i a l Megabyte
113
La variable KeyAscii almacena el valor de la tecla que se ha pulsado.
Ejemplo: ENTER = 13, ESC = 27, etc.
Si el usuario ha pulsado la tecla ENTER (13) el cursor pasa en forma
automtica a la segunda caja de Texto.
En las siguientes cajas de texto tambin se tiene que programar casi lo
mismo:
Prvate Sub Text2_KeyPress( KeyAscii As Integer)
Ifkeyascii = 13 then
Text3.setfocus
End If
End Sub
Prvate Sub Text3_KeyPress(KeyAscii As Integer)
Ifkeyascii = 13 then
Text4.setfocus
End I f
End Sub
Prvate Sub Text4_KeyPress(KeyAscii As Integer)
Ifkeyascii = 13 then
Text5.setfocus
End I f
End Sub
Prvate Sub Text5_KeyPress(KeyAscii As Integer)
Ifkeyascii =13 then
Commandl.setfocus
E n d l f
End Sub
Cuando el usuario termine de ingresar los datos (pulse ENTER en Text5), el
cursor se ubica en el botn Nuevo Alumno.
Para desarrollar la caracterstica N 03 de esta aplicacin se debe programar
en el evento Cl ick del Command2 (Finalizar) lo siguiente:
Prvate Sub Command2_Click()
R = MsgBox( EST SEGURO DE SALIR , 36, CUIDADO )
IfR = 6 Then
End
End I f
End Sub
m m .
114
G r u p o E d i t o r i a l Megabyte^
CAPTULO III: Elementos de la Programacin
NOTA:
S i a l e jec u ta r la a plicacin se v isualiza un e rr o r indicando que la
variable R no est definida, significa que existe la instruccin OPTION
EXPLICIT en la ventana de declaracin de variables, entonces debe
bo r r a r esta instruccin o de clarar la variable R de tipo I n teg e r al
inicio de las instrucciones: Dim R as Integer
La programacin del evento Click del Command 1 (Nuevo Alumnos) es:
Prvate Sub Commandl_Click()
Textl =
Text2 =
Text3 =
Text4 =
Text5 =
Textl. SetFocus
Commandl .Enabled = False
End Sub
APLICACIN PROPUESTA N2 0 7 :
Desarrolle la siguiente aplicacin de la mejor manera posible.
. Datos del Alumno
Alumno
Especialidad
Ciclo
Turno
Aula
Otro Alumno
Salir
IChiclayo, 1Gde Agosto de 1998
IMPORTANTE:
Ud. tambin debe f o r m u l a r s e nue v a s a p l i c a c i o n e s o inte r c a m b i a r
aplicaciones propuestas entre sus compaeros y desarrollarlas con la
f i n a l i d a d de f o r t a l e c e r sus conocimientos.
G r u p o E d i t o r i a l Megabyte
115
CONSISTENCIA DE DATOS
La consistencia de datos consiste en controlar que el usuario ingreso slo
los datos correctos que necesita el programa, por ejemplo, si se trata de
ingresar la nota de un alumno se debe controlar que slo se ingrese un
nmero entre 0 y 20. La siguiente aplicacin muestra un ejemplo de
consistencia de datos.
APLICACIN DESARROLLADA N 09
El siguiente programa permite ingresar los apellidos y nombre, fecha de
ingreso, turno y promedio de un alumno. Este programa debe tener las
siguientes caractersticas:
1. El primer carcter de cada nombre o apellido debe convertirse en
mayscula y el resto en minsculas.
2. Se debe verificar que la fecha ingresada este correcta.
3. En el turno slo se debe aceptar las letras M, T y N.
4. El promedio debe ser un nmero entre 0 y 20.
5. Los botones Nuevo y Salir deben permanecer desactivados hasta que
se ingresen todos los datos correctos.
1 I N G R E S O DE D A T O S B H M - I n l x l
1
.apellidos y Nombres
Fecha de Ingreso
-----
Turno [M-T-N] | .... Nuevo
Promedio [U a 20] S_alir
PASO N 1DIBUJAR LOS CONTROLES
I Formi
- Ini
Labell
|Text1
Label2
|Text2

LabeIS
1Text3
Commandl
LabeW
j T ext4
Command2
116
G r u p o E d i t o r i a l
O
PASO N 2 ESCRIBIR LAS INSTRUCCIONES
Primero debe de escribir las siguientes funciones:
Funcin Mayuscula
Que indica si la letra ingresada est en mayscula.
Funcin Minuscula
Que indica si la letra ingresada est en minscula.
Funcin Numero
Indica si se ha ingresado un nmero.
Funcin Especial
Indica si a ingresado una vocal con tilde, la letra o o puls ENTER, la
Barra Espaciadora o de Retroceso (BackSpace).
Las funciones reciben en la variable V el valor de la tecla que el usuario a
pulsado desde la variable KEYASCII del procedimiento KeyPress de la
Cajas de Textos y devuelven un valor verdadero (TRUE) o falso (FALSE).
Lo valores con sus respectivos caracteres son:
CAPTULO III: Elementos de la Programacin
A = 65 a = 97 = 255 0 = 48
B = 66 b = 98 = 233 1 =49
C = 67 c = 99 f = 237 2 = 50
= 243
= 250
= 241
Z = 90Z z = 122 = 209 9 = 57
La tecla ENTER tiene el valor 13.
La tecla de Retroceso (BACKSPACE) tiene el valor 8.
La tecla de Escape (ESC) tiene el valor 27.
La Barra Espaciadora tiene el valor 32.
Function Mayuscula(v) Function Minuscula(v)
l f (v>65 And v<=90) Then V (v> = 97 And v<~122)
Mayuscula = True Tlien
pse ' Minuscula = True
Mayuscula = False Else
ncf Minuscula = False
End Function End If
End Function
G r u p o E d i t o r i a l Megabyte 117 X
Function numero(v)
I f v < 48 Or v > 57 Then
numero = False
Else
numero = True
End I f
End Function
Function Especial(v)
I f v - 13 Or v -32 Or v=8 Or v=225 Or v=233 Or v=237 Or v=243 Or
v=250 Or v=241 Or v = 209 Then
Especial = True
Else
Especial - False
End I f
End Function
Instrucciones de la Funcin INGRESADO: Verifican si todos los datos han sido
ingresados correctamente para poder activar o no los botones Nuevo y Salir.
Function ingresados()
IfTrim(Textl) <> ""And lsDate(Text2) And Trim(Text3) <> ""
And Trim(Text4) o "" Then
Command 1 .Enabled = True
Command2. Enabled = True
Else
Command .Enabled = False
Command2. Enabled = False
Endf
End Function
Instrucciones del Procedimiento Form_Activate: Para que al ejecutar
el programa se limpie el contenido de las cajas de texto, se desactiven los
botones de comandos Nuevo y Salir y el cursor se ubique en te xtl para
empezar a ingresar los datos.
Private Sub Form_Activate()
Text - ""
Text2 = ""
Text 3 - ""
Text4 = ""
Command 1.Enabled = False
Command2. Enabled - False
Textl. Set Focus
End Sub
^liy|> VISUAL BASIC como debe ser.. .
l i l i l ! ^ G r u p o E d i t o r i a l Megabyte
Instrucciones del Procedimiento Textl_Keypress: Verifican que los apellidos
y nombres se ingresen correctamente y que se convierte la primera letra a
mayscula y el resto a minscula.
Private Sub Textl_KeyPress(KeyAscii As Integer)
Static anteriorespacio As Boolean
f KeyAscii = 13 Then
Text2.SetFocus
End I f
I f KeyAscii = 32 Then
anteriorespacio = True
Else
I f May usculaf KeyAscii) Or Minuscula( KeyAscii) Or
Especial(KeyAscii) Then
IfTrim(Textl) = "" Or anteriorespacio Then
Rem Convierte a Mayuscula.
KeyAscii = Asc(UCase(Chr( KeyAscii)))
Else
Rem Convierte a Minuscula
KeyAscii = Asc(LCase(Chr( KeyAscii)))
End I f
anteriorespacio = False
Else
MsgBox "Debe ingresar slo letras", 16, "Cuidado"
KeyAscii = 0 Ignora el carcter digitado
Commandl .Enabled = False
Command2. Enabled = False
End I f
End I f
End Sub
CAPTULO III: Elementos de la Programacin
Instrucciones del Procedimiento Text2_LosFocus: Verifican que la fecha
ingresada est correcta. Esto ocurre en el momento que ubica el cursor en
otra caja de texto u otro control.
Prvate Sub Text2_LostFocus()
I f lsDate(Text2) Tiren
ingresados
Else
MsgBox "Debe ingresar una fecha correcta", 16, "Cuidado"
Text2.SelStart = 0
Text2.SelLength - Len(Text2)
Text2 = Text2.Se/Text
Text2.SetFocus
End I f
End Sub
l i l i l ^ G r u p o E d i t o r i a l Megabyte
119
Instrucciones del Procedimiento Text2_KeyPress: Ubican el cursor en Text3
cuando pulse la tecla Enter siempre y cuando la fecha ingresada est correcta.
Prvate Sub Text2_KeyPress(KeyAscii As Integer)
IfKeyAscii = 13 Then
Text3. Set Focus
End I f
End Sub
Instrucciones del Procedimiento Text3_Keypress: Verifican que en el tumo slo se
ingresen las letras M, T o N y si se ingresan en minscula las convierte en mayscula.
Prvate Sub Text3_KeyPress(KeyAscii As Integer)
Dim Letra A i String * 1
IfKeyAscii = 13 Then
Text4.SetFocus
Else
Letra = UCase(Chr( KeyAscii))
lfLetra= "M" Or Letra-"T" Or Letra= "N" Or KeyAscii=8 Then
Rem Convierte la letra ingresada a Maysculas.
KeyAscii = Asc( UCasef Chr(KeyAscii)))
Else
MsgBox "Debe ingresar slo las letras M,T o N", 16, "Error"
Rem Ignora el caracter ingresado.
KeyAscii = 0
Command 1.Enabled = False
Command!. Enabled = False
End I f
End I f
End Sub
Instrucciones del Procedimiento Text4_Keypress: Controlan que en el
promedio slo se ingresen nmeros.
Prvate Sub Text4_KeyPress(KeyAscii As Integer)
I f numerof KeyAscii) Or KeyAscii = 8 Or KeyAscii = 13 Then
ingresados
Else
MsgBox "Debe ingresar slo nmeros", 64, "Cuidado"
KeyAscii - 0
Command! .Enabled = False
Command!.Enabled = False
End I f
End Sub
EXPLICACION BREVE DE LAS FUNCIONES UTILIZADAS (Ver Pgs. 116,122 y 130):
CHR : Convierte un valor ASCII a su respectivo carcter.
UCASE: Convierte un texto a mayscula.
LCASE: Convierte un texto a minscula.
TRIM : Quita los espacios en blanco de la derecha de un texto.
|S |> VISUAL BASIC como debe ser.. .
^|f^ 120 G r u p o E d i t o r i a l Megabyte <111111
CAPTULO III: Elementos de la Programacin
Instrucciones del Procedimiento Text4_Change: Verifican que el promedio
ingresado se encuentre entre 0 y 20.
Prvate Sub Text4_Change()
l f Val(Text4) < 0 Or Val(Text4) > 20 Then
MsgBox "El promedio debe estar entre 0 y 20", 16, "Error"
Text4.SelStart = 0
Text4.SelLength = Len(Text4)
Text4 = Text4.SelText
Text4.SetFocus
Commandl.Enabled - False
Command2.Enabled = False
Else
ingresados
E n d l f
End Sub
La instruccin de los siguientes procedimientos llaman al procedimiento
INGRESADOS cada vez que se modifica algn dato para verificar si todos
los datos han sido ingresado correctamente para poder activar o no los
botones Nuevo y Salir.
Prvate Sub Textl_Change()
ingresados
End Sub
Prvate Sub Text3_Change()
ingresados
End Sub
Instruccin de botn Nuevo. Llama al procedimiento Form_Activate para
empezar a ingresar los datos de un nuevo alumno.
Prvate Sub Commandl_Click()
Form_Activate
End Sub
Instrucciones del procedimiento Form_Unload: Piden una respuesta de
confirmacin para finalizar el programa.
Prvate Sub Form_Unload(Cancel As Integer)
Dim resp A Integer
resp = MsgBox("Est seguro de salir", 36, "Cuidado")
I f resp = 7 Then
Rem Respondi SI
Cancel = True
End I f
End Sub
j | f | j | ^ G r u p o E d i t o r i a l Megabyte 121
S /S k VISUAL BASIC como debe ser. . . .= < 3
INPUTBOX
Muestra una caja con un mensaje y permite adems que el usuario pueda
ingresar un dato el cual se considera de tipo String. Su sintaxis es:
Variable=InputBox(mensaje,ttulo, valor pred, columnajila)
Variable.
Es la variable que almacena el valor que se ingresa en la caja.
Mensaje.
Es el mensaje que se desea mostrar cuando se pida el dato a ingresar.
Ttulo.
Es el ttulo de la caja.
Valor predeterminado
Es el valor que se muestra en forma automtica para ser ingresado.
Columna
Es un valor que indica la posicin horizontal del formulario donde se desea
que se muestre la caja.
Fila
Es un valor que indica la posicin vertical del formulario donde se desea que
se muestre la caja.
Por ejemplo, la siguiente instruccin:
P=INPUTBOX("INGRESE EL PRECIO DE VENTA"," VENTA DE
DOLARES",3.35,2000,1000)
Permite ingresar el precio de venta del dlar, mostrando en forma automtica
el precio de 3.35 para cada dlar en la posicin horizontal 2000 y vertical
1000. Muestra la siguiente caja de ingreso:
IVENTA DE DOLARES E3
I NGRE S E E L PRECID DE V E N T A
A c e p t a r
C a n c e l a r
| EJES
122 G r u p o E d i t o r i a l Megabyte
CAPTULO III: Elementos de la Programacin ^111^
NOTA:
La variable y el mensaje es lo nico obligatorio que se debe utili zar en la
funcin Inputbox. Por ejemplo, la instruccin:
P=InputBox("INGRESE EL PRECIO DE VENTA")
Muestra la siguiente caja de ingreso:
INGRESE EL PRECIO DE VE N TA
Cancelar
Proyecto! E
Si no desea utilizar alguno de los otros parmetros intermedios, debe utilizar
siempre las comas.
Por ejemplo, en la siguiente instruccin no se indica el precio que debe salir
en forma automtica.
P=INPUTBOX(''INGRESE EL PRECIO DE VENTA","VENTA DE DOLARES", ,2000,1000)
Muestra la siguiente caja de ingreso:
INGRESE EL PRECIO DE V E N T A Aceptar |
Cancelar
VENTA DE DOLARES
Si no desea utilizar los ltimos parmetros, no es necesario que utilice las
comas.
Por ejemplo, en la siguiente instruccin no se indica el precio que debe salir
en forma automtica ni la ubicacin de la caja en el formulario.
G r u p o E d i t o r i a l Megabyte
.23
P=INPUTBOX("INGRESE EL PRECIO DE VENTA","VENTA DE DOLARES")
Muestra la misma caja de ingreso anterior en el centro de la pantalla, por
que no se indic la posicin:
Si desea escribir el mensaje en varias lneas, utilice Chr(13) (Retorno de
Carro) o Chr(lO) (Avance de lnea) o las dos juntas al final de cada lnea.
Por ejemplo, en la siguiente instruccin se muestra el mensaje ingrese el
precio de venta acompaado de la fecha y hora actual (escrbalo es una
sola lnea).
P=InputBox("INGRESE EL PRECIO DE VENTA"+Chr(13)+" AL +
Str(Now),"VENTA DE DOLARES")
S
^ l> VISUAL BASIC como debe ser.. .
NOTA:
La funcin NOW, permite obtener la fecha y hora actual y la funcin STR,
convierte un dato a tipo carcter.
1 2 4 G r u p o E d i t o r i a l Megabyte < l p l |
VENTA DE DOLARES
INGRESE EL PRECIO DE V ENTA
AL 29/04/99 6:49:00 PM
Aceptai
Cancela
CAPTULO III: Elementos de la Programacin
CONTADORES Y ACUMULADORES
Un contador es una variable numrica que permite contar algn evento
que ocurre durante la ejecucin de un programa. Su sintaxis es:
VARIABLE = VARIABLE + INCREMENTO.
El incremento normalmente es uno. Por ejemplo: A = A + 1.
Cada vez que la computadora ejecuta esta instruccin, el valor de la variable
A se incrementa en 1.
Un acumulador llamado tambin sumador es una variable que permite i r
almacenando el contenido que va tomando otra variable. Su sintaxis es:
VARIABLE1 = VARIABLE1 + VARIABLE2
Ejemplo: R = R + F.
Cada vez que la computadora ejecuta esta instruccin en la variable
R acumula el valor de la variable F.
La variable tambin pue d e ser un control como una caja de textos,
etiqueta, etc.
Ejemplo: Label5 = Val(Label5) + Val(Text3)
Cada vez que se ejecuta esta instruccin en LabelS acumula el valor
de Text3.
La siguiente aplicacin muestra un ejemplo de contadores y acumuladores.
APLICACION DESARROLLADA N 10
Esta aplicacin cuenta el nmero de depsitos y retiros realizados por un
cliente, adems almacena el total de las montos tanto de retiros como de
depsitos efectuados incluyendo el saldo actual
I *.. B a n c o " El A m i go " M B - i n i
R i i
C l i e n t e
j T i t o R a m i r e z V s q u e z Ok 1
M o n t o d e M o v i m i e n t o
15 0
D e p s i t o j R e t i r o
_ l
C a n t i d a d T o t a l
D e p s i t o |2 | 1 3 5 0 1i N u e v o C l i e n t e l j
R e t i r o h 150
Salir
SA L D O A C T UA L |1300
G r u p o E d i t o r i a l Megabyte
125
i ! VISUAL BASIC como debe ser.
PASO N 1: Dibujar los controles.
L a b e l l |Text1
L a b e l2
j f exf2
Co mmand2 j Comrnand3
L a b e l 3 Lab el4
L a b e l 5 L a b e l 7 L a b e l 9
L a b e l 6 Lab e(8 L a b e l l 0
L a b e l l 1 L a b e l l 2
Cornmand4
Command5
<i>
PASO N 2: Asignar las propiedades.
Asigne la propiedad Caption al formulario, etiquetas y botones de comandos
como se muestra en la aplicacin planteada.
PASO N 3: Escribir las instrucciones para los controles.
DECLARAR LAS VARIABLES A NIVEL DE FORMULARIO EN: General
Declaraciones.
Dim td, cd, tr, cr, saldo As Integer
INSTRUCCIONES DELPROCEDIMIENTO FORM_ACIWATE.
Permiten que al ejecutar la aplicacin se limpien las cajas de texto y las etiquetas,
adems muestran el botn OK y desactivan los botones DEPOSITO y RETIRO y no
se permite el ingreso del monto.
Prvate Sub Form_Activate()
Textl =
Texl2 =
Label7 =
Label8 =
Label9 =
LabelJO = ""
Labell2 = ""
Commandl .Visible = True
Command2. Enabled = False
Commands. Enabled = False
Text I.Locked - False
Text2.Locked = True
Textl.SetFocus
End Sub
G r u p o E d i t o r i a l Megabyte^
CAPITULO III: Elementos de la Programacin
INSTRUCCIONES DEL BOTN OK.
Private Sub Commandl_Click()
Textl.Locked = True
Text2.Locked = False
Commandl.Visible = False
Command2.Enabled = True
Command3.Enabled = True
Rem La siguiente instruccin debe ir en una sola lnea.
saldo=Val (InputBox ("Monto de Apertura "+Chr (13) +Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta", 350))
Labell2 = saldo
td = saldo
cd = 1
Label7 = cd
Label9 = td
Text2.SetFocus
End Sub
INSTRUCCIONES DEL BOTN DEPSITO.
Priva te Sub Command2_Click()
Dim deposito As Integer
deposito = Val(Text2)
td = td + deposito 'Total de depsitos
cd = cd + 1 'Cantidad de depsitos
Label7 = cd
Label9 = td
saldo = Val(Labell2)
Labell2 = saldo + deposito
End Sub
INSTRUCCIONES DEL BOTN RETIRO.
Private Sub Command3_Click()
Dim retiro As Integer
retiro = Val(Text2)
saldo = Val(Labell2)
If saldo < retiro Then
MsgBox "La cantidad que desea retirar excede su
saldo actual", 64, "Disculpe"
Text2 = ""
Text2.SetFocus
El se
tr = tr + retiro 'Total de Retiros
cr = cr + 1 'Cantidad de Retiros
Label8 = cr
Label10 = tr
Label12 = saldo - retiro
End If
End Sub
G r u p o E d i t o r i a l Megabyte
1 2 7
INSTRUCCIONES DEL BOTN NUEVO CLIENTE.
Llama al procedimiento Form_Activate y reinicializa las variables con cero (0).
P r v a t e S u b C o mm a n d 4 _ C l i c k ()
F o r m _ A c t i v a t e
t d = 0 ' T o t a l D e p s i t o s
c d = 0 ' C a n t i d a d d e D e p s i t o s
t r = 0 ' T o t a l d e R e t i r o s
c r = 0 ' C a n t i d a d d e R e t i r o s
En d S u b
Este programa tambin se puede desarrollar sin usar variables.
INSTRUCCIONES DEL BOTN OK.
Private Sub Commandl_Click()
Textl.Locked = True
Text2.Locked = False
Commandl.Visible = False
Command2.Enabled = True
Command3.Enabled = True
Rem La siguiente instruccin debe ir en una sola lnea.
Label12=InputBox("Monto de Apertura "+Chr(13)+Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta ", 350)
Label 7 = 1
Label 9 = Label12
Text2.SetFocus
End Sub
INSTRUCCIONES DEL BOTN DEPSITO.
Prvate Sub Command2_Click()
Label7 = Val(Label7) + 1
Label9 = Val(Label9) + Val(Text2)
Label12 = Val(Labell2) + Val(Text2)
End Sub
INSTRUCCIONES DEL BOTN RETIRO.
Prvate Sub Command.3_Click()
lfVal(Labell2) < Val(Text2) Then
MsgBox "La cantidad que desea retirar excede su saldo
actual", 64, "Disculpe"
Text2 = ""
Text2.SetFocus
Else
Label8 = Val(Label8) + 1
Label 10 = Val(LabellO) + Val(Text2)
Label 12 = Val(Labell2) - Val(Text2)
End I f
End Sub
INSTRUCCIONES DEL BOTN NUEVO CLIENTE.
Private Sub Command4_Click()
Forrn_Activate
End Sub
INSTRUCCIONES D I I J ROCI.DIMIKNTO FORMACTIVATE.
Private Sub Form_Activate()
Textl =
Text2 = ""
Label7 = ""
Label8 =
Label9 = ""
LabellO = ""
Labell2 = ""
Commandl .Visible = True
Command2.Enabled = False
Command3.Enabled = False
Textl.Locked = False
Text2.Locked = True
Textl.SetFocus
End Sub
CAPTULO III: Elementos de la Programacin ^
G r u p o E d i t o r i a l Megabyte
129
DESARROLLAR LAS SIGUIENTES APLICACIONES:
N 04: Ingresar el nombre del producto, precio anterior y precio actual,
luego calcular el alza en soles y el alza en porcentaje.
NOTA:
El alza en porcentaje es igual al alza en Soles por 100 / Precio Anterior.
A * VISUAL BASIC como debe ser.. .
n
- I n i x|
Producto
f.............
Precio Anterior
1.....................
Precio Actual
1........... ...
Alza en Soles
r............
Alza en Porcentaje
r ~ .......
Nuevo Producto Calcular Salir I
N 05: Ingresar el nombre del profesor, el nmero de horas normales que
ha trabajado y el nmero de horas extras, luego se debe calcular el total que
se le debe pagar por el N de horas normales, el total por horas extras y el
total a pagar.
Si ha trabajo ms de 48 horas su pago por hora es de S/. 8.00 soles y SI. 7.00
en caso contrario. Por hora extra S/. 9.50.
Nombre del Profesor
Horas Trabajadas
Horas Extras
Pago por Hora
Total por Hs. Normales
Total por Hs.Extras
T o t a l a P a g a r = = = >
ProgramadorJuan Jos Castaeda Len
G r u p o E d i t o r i a l Megahyte<^||| |
__________ Calcular
Otro
Salir
CAPTULO III: Elementos de la Programacin
IIF
Es una funcin que devuelve uno de dos valores dados dependiendo de una
condicin.
Su sintaxis es:
VARIABLE = IIF (CONDICION, VALOR 1, VALOR2)
Si el resultado de la condicin es verdad (si), la variable toma el VALOR 1y
si el resultado de la condicin es falso (no), la variable toma el VALOR2.
Tambin se puede utilizar un control como una caja de textos o etiqueta para
almacenar cualquiera de los valores. Si los valores son de tipo carcter
deben i r entre comillas.
Por ejemplo: En la siguiente instruccin, si el valor de la variable EDAD es
mayor o igual a 18, se almacena en la variable OBS el mensaje MAYOR
DE EDAD, y si el valor de la variable EDAD es menor que 18 se almacena
en la variable OBS el mensaje MENOR DE EDAD.
OBS = IIf(EDAD >= 18, "MAYOR DE EDAD", "MENOR DE EDAD")
Otro ejemplo:
I ,a siguiente instruccin:
I f pro >= 10.5 Then
Label8 = "Aprobado"
Else
Label8 = "Desaprobado"
End I f
Tambin se puede escribir de la siguiente manera:
I ,abel8= IIF(pro >= 10.5,Aprobado ,Desaprobado )
G r u p o E d i t o r i a l Megabyte , w m
iij^ VISUAL BASIC como debe ser.. . < 5
SELECT - CASE
Permite ejecutar una o ms instrucciones dependiendo del valor de
una variable, de una expresin. Puede reemplazar a varias instrucciones
IF-THEN.
Su sintaxis es:
Select Case VARIABLE O EXPRESIN
Case CASO N 1
Instruccin(es)
Case CASO N2
Instruccin(es)
Case CASO N3
Instruccin(es)
Case CASON4
Instruccin(es)
Case CASO n
Instruccin(es)
Case Else
Instruccin(es)
End Select
NOTA:
Case Else es opcional y las instrucciones que contiene se ejecutan
cuando no se cumple ninguno de los casos.
Si se desea e sc r i b i r instrucciones en las misma lnea del Case, se
deben separar p o r dos punto (:). Usando dos puntos se pueden escribir
dos o ms instrucciones en una sola lnea.
Los casos pueden escribirse de la siguiente manera:
Case 1
Case 2
Case 1to 10
Case 10 to 20
Case 1,2,3
Case 4,5,6
Case Is >40
Case Is <20
j ^ 132 G r u p o E d i t o r i a l Megabyte1
<?
CAPITULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 11
f=i Li i : i f . i i a :iT!TTT37T!
WSIM - I n | x |
Producto
Precio Unitario
Calcular
Cantidad Comprada I
Subtotal S/. 0
Nuevo
Descuento X
0 .................. i;:!. 1
Salir
Descuento S/. 0
T O T A L A PAGAR S/. ===>
1
0
CARACTERSTICAS:
Se debe ingresar el nombre de un producto, su precio unitario y la canti
dad comprada de dicho producto, luego se debe calcular y visualizar el
subtotal, el descuento en porcentaje, el descuento en soles y el total a pagar,
l i l descuento en porcentaje se depende del subtotal, de acuerdo a la siguien
te tabla:
SUBTOTAL DESCUENTO %
100 101 2%
de 101.1 a 200 4%
de 200.1 a 500 6%
a partir de 500 10%
NOTA:
lista aplicacin muestra un ejemplo del uso de S E L E C T CASE, adems
u t i l i z a la p r o p i e d a d A M E de a l g u n o s c o n t r o l e s p a r a p o d e r
m a n e j a r l o s y la f u n c i n F O R M A T p a r a a s i g n a r un f o r m a t o de
visualizacin a los datos.
G r u p o E d i t o r i a l Megabyte
133
VISUAL BASIC como debe ser.. .
D E S A R R O L L O DE L A A P L I C A C I N 11
PASO N 01: Dibujar los controles.
- n l x l
Labell
||Textl
Label2
|Text2
Label3
| t ext3
Commaridl
Label4 Label8
Command2
Label5 Label9
Command3
LabelG Labell 0
Labell 1
Label7
PASO N" 02: Asignar las propiedades.
ETIQUETAS (LABEL)
CONTROL NAME ALIGNMENT CAPTION BORDERSTYLE
Labell Labell 0 - Left Producto 0 - None
Labe12 Label2 0 - Left Precio Uni. 0 - None
Label3 Label3 0 - Left Cantidad Com. 0 - None
Labe14 Label4 0 - Left Subtotal 0 - None
Label5 Label5 0 - Left Descuento % 0 - None
Label6 Label6 0 - Left Descuento S/. 0 - None
Labe17 Label7 0 - Left TOTAL A PAGAR 0 - None
Labe18 SUBTOTAL 1 - Right 0 1 - Fixed S
Label9 DESCPOR 1 - Right 0 1 - Fixed S.
LabellO DESCSOL 1 - Right 0 1 - Fixed S.
Label11 PAGO 1 - Right 0 1 - Fixed s,
CAJAS DE TEXTOS
CONTROL NAME TEXT
Textl NOMBPRO En Blanco
Text2 PRECIO En Blanco
Text3 CANTIDAD En Blanco
BOTONES DE COMANDOS
CONTROL CAPTION Tooltiptext
Coinmandl &Calcular Muestra los totales
Command2 &Nuevo Para ingresar otro producto
Command3 ScSalir Finaliza la aplicacin
El formulario debe tener en Caption: VENTA DE PRODUCTOS.
PASO N 03: Escribir las instrucciones.
INSTRUCCI ONES D E L C O M M A N D 1 , donde se utiliza la propiedad
A M E asignada a las cajas de texto y algunas etiquetas.
Private Sub Commandl_Click()
Dim ST As Single
ST = Val(PRECIO) * Val(CANTIDAD)
SUBTOTAL = ST
Select Case ST
Case 100, 101
DESCPOR = 2
Case 101.1 To 200
DESCPOR = 4
Case 200.1 To 500
DESCPOR = 6
Case Is > 500
DESCPOR = 1 0
Case El se
DESCPOR = 0
End Select
DESCSOL = ST * Val(DESCPOR) / 100
'El Total a Pagar se visualiza con 2 decimales
PAGO = Format(ST - Val(DESCSOL) , "###, ##0.00")
End Sub
INSTRUCCIONES DEL COMMAND2 ( Nu e v o ) .
Prvate Sub Command2__Click ()
NOMBPRO = ""
PRECIO = ""
CANTIDAD = ""
SUBTOTAL = 0
DESCPOR = 0
DESCSOL = 0
PAGO = 0
NOMBPRO.SetFocus
End Sub
sHHIb G r u p o E d i t o r i a l Megabyte 135 ^ |||||^
Prvate Sub Command3_Click()
Dim H As Integer
H = MsgBoxf"ESTA SEGURO DE SALIR", 36, "CUIDA
DO")
If H = 6 Then
End
End If
End Sub
MUY IMPORTANTE:
Si Ud., desea que el resultado tambin se visualice cuando ingrese
o modifique el precio unitario del producto o la cantidad comprada;
entonces, debe programar en el evento CHANGE de cada una de las
cajas de texto.
Las instrucciones que calculan y visualizan los resultados que e n
cuentran en el botn de comandos N 1 ( COMMAND1), es decir en el
pr o ce dim ie n to llamado COMMAND1 _CLICK, entonces en el evento
CHANGE de cada una de las cajas de texto (PRECIO y CANTIDAD)
slo se debe llamar a dicho procedimiento.
As:
INSTRUCCIONES DE TEXT2, CUYO NOMBRE (AME) ES PRECIO.
Prvate Sub PRECIO__Change ()
Commandl_Clck
End Sub
INSTRUCCIONES DE TEXT3, CUYO NOMBRE (AME) ES CANTIDAD.
Prvate Sub CANTIDAD_Change()
Commandl_Clck
End Sub
^ l i l i l ' ' VISUAL BASIC como debe ser,. .
INSTRUCCIONES DEL COMMAND3 ( Sa l i r )
CAPTULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 12
Se debe ingresar el nombre del alumno, su nota N 1 y su nota Nk z, ai
hacer click en el botn Obtener Promedio se debe visualizar: el promedio
del alumno, una observacin que indica si el alumno est aprobado o
desaprobado, la cantidad de puntos que le faltan para aprobar, si est
desaprobado o los puntos para llegar a veinte en caso que est aprobado.
Tambin se debe visualizar la Nota Cualitativa del alumno de acuerdo al
promedio:
Entre 0 y 5 Psimo
Entre 5.1 y 10.4 Malo
Entre 10.5 y 14.4 Regular
Entre 14.5 y 17.4 Bueno
Entre 17.5 y 20 Excelente
Se debe controlar que slo se ingresen notas entre 0 y 20.
InformacinAcadmica B H f l W M W K - I n l x l
Alumno
Curso
1 ..........................
r
-------- OtroAlumno
Nota N! 01
Nota N! 02
Promedio
|o
|o
1
Obtener Promedio
Finalizar
Observacin
1 .....................
Puntos
Cualidad
G r u p o E d i t o r i a l Megabyte
D E S A R R O L L O DE L A A P L I C A C I O N
PASO N 01: Dibujar los controles
Labell
|fr ext1
Label2
| e x l 2
Label3
IT ext3
LabeM
Text4
Label5 Label8
LabelG Label9
Label7 Labell 0
Labell 1
Labell 2
Commandl
Command2
Command3
PASO N 02:Asignar las propiedades.
ETIQUETAS (LABEL)
CONTROL CAPTION AUTOSIZE BORDERSTYLE
Labell Alumno True 0 - None
Label2 Curso True 0 - None
Label3 Nota N2 01 True 0 - None
Labe14 Nota Ne02 True 0 - None
Label5 Promedio True 0 - None
Label6 Observacin True 0 - None
Label7 Puntos True 0 - None
Labe18 En Blanco False 1 - Fixed Single
Label9 En Blanco False 1 - Fixed Single
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single
CAJAS DE TEXTOS
CONTROL TEXT TABINDEX
Textl En Blanco 0
Text2 En Blanco 1
Text3 0 2
Text4 0 3
138 G r u p o E d i t o r i a l Megabyte
BOTONES DE COMANDOS
CONTROL
Commandl
Command2
Command3
CAPTION
&0tro Alumno
Obtener &Promedio
&Finalizar
TOOLTIPTEXT
Ingresar nuevo alumno
Imprime el promedio
Finaliza la aplicacin
FORMULARIO
CONTROL CAPTION
Forml Informacin Acadmica
Ud. Puede cambiar cualquier otra propiedad para mejorar el aspecto
del formulario.
PASO N 03: Escribir las instrucciones.
N O T A :
1. SelStart, SelLength, y SelText son propiedades de las cajas de texto
que se usan en el modo de programacin.
SelStart:
Especifica la posicin de inicio del bloque de texto seleccionado.
SelLength:
Especifica el nmero de caracteres seleccionados.
SelText:
Contiene el texto seleccionado.
2. Para escribir comentarios dentro de un programa se utiliza las comillas
simples o apostrofe ( )*
3. La funcin ISNUMERIC permite saber si lo ingresado por un usuario
se puede considerar de tipo numrico.
W/ VISUAL BASIC como debe ser.
D E S A R R O L L O DE L A A P L I C A C I O N
PASO N 01: Dibujar los controles
Labell
IfTextl
Label2
|T ext2
Label3
|T ext3
LabeW
| ext4
Label5 LabelS
LabelG LabeIS
Label7 Labell 0
n - :
Command!
Command2
Command3
Labell 1
Labell 2
PASO N 02:Asignar las propiedades.
ETIQUETAS (LABEL)
CONTROL CAPTION AUTOSIZE BORDERSTYLE
Labell Alumno True 0 - None
Label2 Curso True 0 - None
Labe13 Nota Ns 01 True 0 - None
Label4 Nota N2 02 True 0 - None
Label5 Promedio True 0 - None
Labe16 Observacin True 0 - None
Label7 Puntos True 0 - None
Labe18 En Blanco False 1 - Fixed Single
Labe19 En Blanco False 1 - Fixed Single
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single
CAJAS DE TEXTOS
CONTROL TEXT TABINDEX
Textl En Blanco 0
Text2 En Blanco 1
Text3 0 2
Text4 0 3
138
G r u p o E d i t o r i a l Megabyte <|ys;
BOTONES DE COMANDOS
CONTROL CAPTION
Commandl &0tro Alumno
Command2 Obtener &Promedio
Command3 &Finalizar
TOOLTIPTEXT
Ingresar nuevo alumno
Imprime el promedio
Finaliza la aplicacin
FORMULARIO
CONTROL CAPTION
Forml Informacin Acadmica
Ud. Puede cambiar cualquier otra propiedad para mejorar el aspecto
del formulario.
PASO N 03: Escribir las instrucciones.
N O TA :
1. SelStart, SelLength, y SelText son propiedades de las cajas de texto
que se usan en el modo de programacin.
SelStart:
Especifica la posicin de inicio del bloque de texto seleccionado.
SelLength:
Especifica el nmero de caracteres seleccionados.
SelText:
Contiene el texto seleccionado.
2. Para escribir comentarios dentro de un programa se utiliza las comillas
simples o apostrofe ( ).
3. La funcin ISNUMERIC permite saber si lo ingresado por un usuario
se puede considerar de tipo numrico.
A l empezar a escribir la Nota N 01, se selecciona el contenido de la
caja de texto N 03 para que sea reemplazado por el valor que se ingresa.
Las siguientes instrucciones se deben escribir en el evento GotFocus
de Text3. Para ello Haga doble click en Text3 o un solo cl ick y pulse F7,
luego en la lista de Eventos seleccione el Evento GotFocus.
Text3.SelStart = 0
Text3.SelLength - Len(Text3)
Text3 = Text3 .SelText
^II^ VISUAL BASIC como debe ser.. .
A l finalizar observar lo siguiente:
* : Pfojectl - Frmi (Code)
_ |n[ x|
Text3 GotFocus
Prvate Sub Text3_GotFocus()
Text3.SelStart = 0
Text3.SelLength = Len(Text3)
Text3 = Text3.SelText
End Sub
Las siguientes instrucciones permiten que al empezar a escribir la
Nota N 02, se selecciona el contenido de la caja de texto N 04 para que
sea reemplazado por el valor que se ingresa. Se deben escribir en el evento
GotFocus de Text4.
Private Sub Text4_GotFocus()
Text4. SelStart ~ 0
Text4. SelLength = Len(Text4)
Text4 = Text4. SelText
End Sub
m m
G r u p o E d i t o r i a l Megabyte
CAPTULO III: Elementos de la Programacin
Las siguientes instrucciones permiten que al finalizar de escribir la Nota N
01, se verifique que se ha ingresado un valor numrico y entre 0 y 20. Se
deben escribir en el evento LostFocus de Text3.
Prvate Sub Text3_LostFocus()
Pregunta si no se ha ingresado un valor numrico o
la nota N1 es menor que 0 es mayor que 20
I f Not IsNumeric(Text3) Or Val(Text3)<0 Or Val(Text3)>20 Then
MsgBox "Slo nmeros entre 0 y 20", 16, "Cuidado"
Text3.SetFocus
E nd lf
End Sub
Las siguientes instrucciones permiten que al finalizar de escribir la Nota N
02, se verifique que se ha ingresado un valor numrico y entre 0 y 20. Se
deben escribir en el evento LostFocus de Text4.
Prvate Sub Text4_LostFocus{)
Pregunta si no se ha ingresado un valor numrico o
la nota N2 es menor que 0 es mayor que 20
I f Not lsNumeric(Text4) Or Val(Text4)<0 Or Val(Text4)>20 Then '
MsgBox "Slo nmeros entre 0 y 20", 16, "Cuidado"
Text4.SetFocus
E n d l f
End Sub
Las siguientes instrucciones permiten ingresar los datos de un nuevo alumno,
limpiando las cajas de texto y las etiquetas y ubicando el cursor en Textl
para empezar a ingresar el nombre del alumno. Se deben escribir en el
evento Click del Command 1.
Prvate Sub Commandl_Click()
Textl = ""
Text2 = ""
Text3 - 0
Text4 = 0
Label8 = ""
Label9 = ""
LabellO = ""
Labell2 = ""
Textl.SetFocus
End Sub
141
Las siguientes instrucciones permiten mostrar los resultados del alumno
(promedio, observacin, etc). Se deben escribir en el evento Click del
Command2.
Prvate Sub Command2_Click()
pro = (Val(Text3) + Val(Text4)) / 2
Label8 = pro
I f pro >= 10.5 Then
Label9 = "Aprobado(a)"
LabellO = "Le faltan "+Str(20-pro)+" puntos para tener 20"
Else
Label9 = "Desaprobado(a)"
LabellO - "Le faltan " + Str(ll-pro)+" puntos para Aprobar"
E n d l f
Select Case pro
Case OTo 5
Labell2 = "Psimo"
Case 5.1 To 10.4
Labell2 = "Malo"
Case 10.5 To 14.4
Labell2 = "Regular"
Case 14.5 To 17.4
Labell2 - "Bueno"
Case 17. 5 To 20
Labell2 = "Excelente"
End Select
End Sub
La siguiente instruccin finaliza la aplicacin. Se debe escribir en el evento
Cl ick del Command3.
Prvate Sub Command3jClick()
End
End Sub
CONCATENACION
Concatenar significa unir textos y para ello se puede utilizar el signo + o &.
El signo + slo permite concatenar valores tipo texto. Si desea concatenar
valores de diferente tipolos tiene que convertir a texto usando la funcin
STR si es un nmero o Cdate si es tipo fecha.
El signo & tiene la ventaja de poder concatenar datos de diferente tipo.
Por ejemplo, la instruccin:
Labell = Le faltan + Str(20 - pro) + Puntos para llegar a 20
Se puede reemplazar por:
Labell = Le faltan & 20 - pro & puntos para llegar a 20
MUY IMPORTANTE
Antes y despus de estos signos debe dejar un espacio en blanco.
^ ^ ^ G r u p o E d i t o r i a l M e a h v t e <^ ^ ^
VISUAL BASIC como debe ser.. .
CAPTULO III: Elementos de la Programacin
APLICACION PROPUESTA N 06
Se debe ingresar el nombre y el ao de nacimiento de una persona y se
tiene que visualizar: su edad, una observacin que indica si es mayor o
menor de edad. Si menor de edad se debe mostrar cuntos aos le faltan
para ser mayor de edad y si es mayor de edad se debe mostrar hace cuntos
aos es mayor de edad. Tambin se debe mostrar la etapa de la persona
teniendo en cuenta lo siguiente:
0 y 12 Nio
13 y 17 Adolescente
18 y 30 Joven
31 y 70 Adulto
70... Anciano
f e- I r i f xf
No mbr e jj
A o de N a c i m i e n t o |
Ed a d J-
b s e r v a c i n j"
A o s
R e s u l t a d o s |
N u e v o
Salir
r
E t apa
FUNCIN CHOOSE
Retorna un valor dependiendo de un ndice.
Su sintaxis es: Variable=CHOOSE(ndice, valorl, valor2, valor3...)
La siguiente instruccin almacena en la variable NOMBRE, el nombre del
da de la semana dependiendo del valor que contiene la variable DIA.
NOMBRE=Choose(DIA, LUN , MAR , MIE , JUE , VIE , SAB , DOM )
Si D IA tiene el valor 1, devuelve LUN, si da tiene el valor 2, devuelve
MAR, etc.
El ndice debe tener un
valor entre 1y el nmero
de valores devueltos, en
caso contrario se muestra
el mensaje de error:
I M i c r o s o f t V i s u a l B a s i c
Error '94' en tiempo de ejecucin :
El uso de Nuil no es vlido
Terminar j j Depurar j| Ayuda |
F U NC IO NE S DE C A D E N A
Una cadena es un dato tipo String (carcter); es decir se refiere a letras o
letras y nmeros, como por ejemplo: el nombre de una persona, su direccin,
etc. Si usamos al final de la funcin el signo $ devuelve el resultado como
tipo Cadena, de lo contrario el tipo devuelto es Variant.
RIGHT.- Obtiene de una cadena una cantidad de caracteres empezando por
la derecha. Sintaxis Right(Cadena, N)
LEFT.- Obtiene de una cadena una cantidad de caracteres empezando por
la Izquierda. Sintaxis Left(Cadena, N)
MXD. - Obtiene de una cadena una cantidad de caracteres
a partir de una determinada posicin.
Sintaxis Mid(Cadena, Posicin, N)
Donde N indica la cantidad de caracteres que se desea obtener.
LEN.- Obtiene la longitud de una cadena, es decir la cantidad de caracteres
que contiene incluyendo los espacios en blanco.
T R IM. - Quita los espacios en blanco que se encuentran al inicio y al final de
una cadena.
RTRI M.- Quita los espacios en blanco al final de una cadena.
L TRIM.- Quita los espacios en blanco que se encuentran al inicio de una
cadena.
UCASE.- Convierte una cadena a maysculas.
LCASE.- Convierte una cadena a minsculas.
La sintaxis de las funciones anteriores es: Funcin (Cadena)
STRCONV : Esta funcin permite convertir una cadena a 3 formas diferentes:
STRCONV (Cadena, Valor)
El valor indica el tipo de conversin y puede ser:
1. Convierte el texto a mayscula.
2. Convierte el texto a minscula.
3. Convierte la primera letra de cada palabra a mayscula.
INSTR: Obtiene un nmero que indica la posicin de una subcadena dentro de
una cadena.
INSTR (Valor, Cadena, Subcadena)
El valor indica la posicin de la cadena desde donde se va a buscar la
subcadena. Cadena es el texto donde se desea buscar y Subcadena es el
texto que desea buscar.
VISUAL BASIC como debe ser. , .
1 4 4 - G rupo E ditorial M e e a b v t e
APLICACIN DESARROLLADA N 13
Las siguiente aplicacin es un ejemplo del uso de las funciones de cadena
CAPITULO III: Elementos de la Programacin
I n g r e s e u n a F r a s e
L o n g i tu d d e l a F r a s e
Primer C a r c t e r
Ultimo C a r c t e r
Del 2 d o a l Gto C a r c t e r
P o s i c i n d e la 1r a l e t r a *A'
M i n s c u l a s
M a y s c u l a s ESTUDIANDO VISUAL BASIC
S l o l a pr imera e n M a y s c u l a E s t u d i a n d o V i s u a l B a s i c
E s t u d i a n d o V I S U A L B A S I C
2 3 r
M u e s t r a
n : : :
c N u e v o
studi
S alir i
estudiando visual basic
l ASO N 01: Dibujar los controles.
Labell
Label2
LabeB
LabeM
Label5
LabeS
Label?
LabeB
LabeIS
:|Text1
Labell 0
Label! 1
Labell 2
Labell 3
Label14
Labell 5
Labell 6
Labell 7
PASO N 02: Asignar las propiedades a los controles.
Ud., est en condiciones de asignar las propiedades a los controles: Asigne
la propiedad Caption a las etiquetas desde L ab ell hasta Label7 y a los
botones de commandos. Textl y las etiquetas desde LabeI8 hasta Labell3
deben estar en blanco.
PASO N 03: Escribir las instrucciones para los controles.
Prvate Sub Commandl_Click()
LabellO = Len(Trm(Textl ))
tMbelll = Left(Trm( Textl ), 1)
Labell2 = Right(Trim(Textl ), 1)
Labell3 = Mid(Trm(Textl), 2, 5)
Labell4 = lnStr(Textl, "a")
Labell 5 = LCase(Textl)
Label 16 = UCase(Textl)
Label 17 = StrConv(Textl, 3)
End Sub
Prvate Sub Commandi JClick()
Textl = ""
LabellO =
Labelll =
Labell2 =
Labell3 =
Label 14 =
Labell5 =
Label 16 =
L a b e l 17 =
Textl.SetFocus
End Sub
como debe ser.
FUNCIONES TIPO FECHA
NOW.- Obtiene la fecha y hora del sistema.
DATE.- Obtiene la fecha del sistema.
YEAR.- Obtiene el ao de una fecha.
MONTH.- Obtiene el nmero mes de una fecha.
DAY.- Obtiene el da de una fecha.
WEEKDAY.-Obti ene el nmero del da de la semana.
Domingo = 1 , Lunes = 2, Martes = 3, etc.
CVDATE.- Convierte una cadena en un valor tipo fecha.
ISDATE.-Verifica si un determinado valor puede considerarse de tipo fecha.
La funcin Format permite asignar un formato a las fechas:
d-m-y
dd/mm/yy
dd-mmmm-yyyy
h:m:s: AM/PM, dd/mm/yy
21-8-98
21/08/98
21-Ago-1998
20:35:20 PM, 21/08/98
APLICACION DESARROLLADA N 14
Se debe ingresar el nombre y la fecha de nacimiento de una persona y
visualizarse por separado: El da, mes, ao, nmero del da de la semana, la
fecha en letras y la fecha y hora actual.
Nombre
Fecha de Nacimiento
Da Ingresado
Mes Ingresado
Ao Ingresado
D a de la semana
fjOSE MARIA
117-10-86
P7
|
|1986
O k
Salir
V'&rsr&s-. / Z afe
iHoy es 17/07/1 998 11:26:58 PM
PASO N 01 Dibujar los controles.
=asi-2l
Labell
Label2
Label3
Label4
Label5
LabeIS
jfTextl
jText2
Label7
LabeIS
Label9
Labell O
PASO N 02 Asignar las propiedades.
Asigne las propiedades a los controles de tal manera que se visualicen como
se muestra en la aplicacin a desarrollar.
1 4 6 ^ 1 G rupo E ditorial Megahyte
CAPTULO III: Elementos de la Programacin
PASO N 03 Escribir las instrucciones.
La siguiente instruccin muestran en la etiqueta N 12 la fecha y hora del
sistema. Se deben escribir en el evento Form Load.
Prvate Sub Form_Load()
Labell2 = "Hoy es " + Str(Now)
End Sub
Las siguientes instrucciones permiten visualizar los resultados que se de
sean. Se escriben en el evento Click del Commandl (OK).
Prvate Sub Commandl_Click()
Dim fecha As Date
Dim ndia, nmes As String *10
Dim da, mes, ao, diasemana As Integer
fecha = CVdate(Text2)
dia = Day (fecha)
mes Month(fecha)
ao = Year(fecha)
diasemana - WeekDay(fecha)
Label7 - dia
Label8 = mes
Label9 - ao
LabellO = diasemana
convierte el N del da de la semana en letras
Si desea escribir dos instrucciones en una
lnea, debe separarlas por dos puntos
Select Case diasemana
Case 1 : ndia = "Domingo"
Case 2 : ndia = "Lunes "
Case 3 : ndia = "Martes"
Case 4 : ndia = "Mircoles
Case 5 : ndia = "Jueves"
Case 6 : ndia = "Viernes"
Case 7 : ndia - "Sbado"
End Select
convierte el N del mes en letras.
Select Case mes
Case 1: nmes = "Enero"
Case 2: nmes - "Febrero"
Case 3: nmes = "Marzo"
Case 4: nmes - "Abril"
Case 5: nmes = "Mayo"
Case 6: nmes = "Junio"
Case 7: nmes - "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes - "Setiembre"
Case 10: nmes = "Octubre"
Case 11: nmes = "Noviembre"
Case 12: nmes = "Diciembre"
End Select
Labell 1 = ndia+", "+Str(dia)+" de "+nmes+" de "+Str(ao)
End Sub
147 s
FUNCIN DATEADD
Permite incrementar o disminuir un intervalo de tiempo a una fecha. El
intervalo de tiempos puede ser un numero de das, semanas, meses, aos,
etc., retornando una nueva fecha.
Su sintaxis es: DateAdd ("Intervalo",Valor,Fecha)
Intervalo
Indica qu intervalo de tiempo se va a incrementar o disminuir a la fecha.
Los valores que puede tener son:
Intervalo Descripcin
VISUAL BASIC como debe ser.. .
yyyy
Ao
q
Trimestre
m Mes
y
Da del ao
d Da
w Da de la semana
ww Semana
h Hora
n Minuto
s Segundo
Valor
Es la cantidad del intervalo de tiempo que se va a incrementar o disminuir a
una fecha. Un valor positivo incrementa y un valor negativo disminuye.
Fecha
Es la fecha a la cual se va a disminuir o incrementar el intervalo de tiempo
Ejemplo:
Las siguientes instrucciones muestran en Labell la fecha actual y en Label2
la fecha anterior pero incrementada en dos semanas. Si desea disminuir dos
semanas, debe escribir menos dos (-2).
Label 1= Now
Label2 = DateAdd("ww", 2, Now)
FUNCIN DATEDIFF
Devuelve la diferencia entre dos fechas en un intervalo de tiempo indicado.
Por ejemplo, la diferencia de dos fechas en das, semanas, meses, etc. Su
sintaxis es:
DateDiff(Intervalo, Fecha I, Fecha2, Valor I,VaIor2)
Intervalo
Indica en qu intervalo de tiempo se va a calcular la diferencia entre las dos
fechas. Los valores que puede tener son los mismos que en la funcin DateAdd.
Fechal y fecha2
Son las fechas entre las cuales se va a calcular la diferencia.
G r u p o E d i t o r i a l Megabyte<|fjj|||
148
CAPTULO III: Elementos de la Programacin
Valorl
Es opcional y permite indicar cul es el primer da de la semana se usar
Visual Basic. En forma predeterminada el primer da de la semana es el
Domingo. Los valores que se pueden escribir son:
Valor Descripcin
1 Domingo (predeterminado)
2 Lunes
3 Martes
4 Mircoles
5 Jueves
6 Viernes
7 Sbado
VaIor2
Es opcional y permite indicar cul es la primera semana del ao que usar
Visual Basic. En forma predeterminada es la semana que contiene al primero
de enero. Los valores que se pueden escribir son:
Valor Descripcin
1 Empieza con la semana en la que se encuentra el 1 de Enero
(predeterminado).
2 Empieza con la Ira. semana que tenga al menos 4 das en el nuevo ao.
3 Empieza con la Ira semana que est completamente incluida en el nuevo ao.
La siguiente instruccin muestra en la etiqueta N 1 (L a b e l l) la diferencia
en semanas que existe entre el 30 de Setiembre del ao 1999 y el 01 de
Mayo del ao 2000.
Labell = Dat eDi ff("ww", CVDate("30-09-99"), CVDatefO 1-05-00"))
N O T A
Visual Basic devuelve cero (0) si las fechas se encuentran dentro del mismo
intervalo de tiempo indicado. Por ejemplo, si el primer da de la semana es
domingo, la instruccin:
Labell = DateDiff("ww", CVDatef 14-07-00"), CVDatef 15-07-00"))
Muestra en Labell el valor cero (0) porque el 14-07-00 es viernes y el 15-07-00es
sbado (la misma semana).
La instruccin:
Labell = DateDiff("ww", CVDatef 15-07-00"), CVDate(" 16-07-00"))
Muestra en Label l el valor uno (1) porque el 15 de Julio del ao 2000 es
sbado y el 16 de Julio del ao 2000 es domingo (siguiente semana).
149
FUNCIN DATEPART
Permite obtener el intervalo de tiempo en el cual se encuentra una fecha.
Por ejemplo, a qu nmero de la semana del ao corresponde a una fecha.
Su sintaxis es:
DatePart(Intervalo, Fecha, Valorl,VaIor2)
Intervalo
Indica el intervalo de tiempo en el que se encuentra la fecha. Los valores
que puede tener son los mismos que en la funcin DateAdd.
Fecha
Es la fecha que se desea evaluar.
Valorl y Valor2
Son los mismos que los de la funcin DateDiff.
Por ejemplo, la siguiente instruccin muestra en Label 1 el trimestre del ao
al cual pertenece la fecha actual.
Label 1 = DatePart("q", Now)
APLICACIN DE EJEMPLO:
Esta aplicacin permite ingresar una fecha de nacimiento y muestra
informacin utilizando las funciones anteriores:
TTTc:
Fecha de Nacimiento |oi -05-68 1
Nombre de la Estacin en la que naci jOtoo
Signo Zodiacal al que pertenece |Tauro
VISUAL BASIC como debe ser.. .
N9 de la S emana del Ao en que naci h 8
Meses Transcurridos desde que naci {377
Fecha Actual Despus de 3 Semanas
23-10-1999
1. DIBUJAR LOS CONTROLES
g n ^ 1 1x 1
L a b e l l jl* e x t l C o mm a n d l j
Label2 LabeIS
La b e l3 Lab el7
L a b e l4 LabelQ
L =b l5 L a b ' 19
L a b e l ! O
L a b e l l 1 Command?
150 G r u p o E d i t o r i a l Megabyte^
1. ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
In s t r u c c i o n e s d e l Fo r m _ Ac t i v a t e
Prvate Sub Form_Activate()
Textl = ""
Label7 = ""
LabelS = ""
Textl. SetFocus
Fonnl.Caption = "Fecha Actual: " + Str(Date)
End Sub
In s t r u c c i o n e s d e l d e l Bo t n Ac e pt a r
Prvate Sub Commandl _Clck()
Dim Dia,Mes As Integer
Dim Fecha As date
IflsDate(Textl) Then
Fecha =CDate(Textl)
Da = Day( Fecha)
Mes =Month( Fecha)
Rem ESTACION DE NACIMIENTO
If(Dui>=23 And Mes=12) OrMes- 10rMes=2 Or(Dia<=22 AndMes=3) Then Label6="Verano"
lf(Dia>=23AndMes=3) 0rMes=4 0rMes=5 Or (Dia<=22 And Mes=6) Then Label6= "Otoo"
lf( Dia>=23 AndMe=6)0rMes=70r Mes=8 Or (Dia<=22AndMes=9) Then LabeI6="Invierno"
lf(Dia>=23AndMes=9) 0rMes=l()0rMes=II 0r(Dia< =22AndMes= 12) Then Label6= "Primav.
Rem SIGNO ZODIACAL
lf(Dia>=21 And Mes=3) Or (Dia <= 20 And Mes = 4) Then Label7 = "Aries"
I f (Dia>=21 And Mes=4) Or (Dia <= 20 And Mes = 5) Then Label7 = "Tauro"
I f (Dia>=21 And Mes=5) Or (Dia<=20 And Mes = 6) Then Label7 = "Geminis"
lf(Dia>=21 And Mes=6) Or (Dia<=22 And Mes = 7) Then Label7 = "Cncer"
lf(Dia>=23 And Mes = 7) Or (Dia <= 22 And Mes = 8) Then Label7 = "Leo"
I f (Dia>=23 And Mes=8) Or (Dia <=22 And Mes = 9) Then Label7 = "Virgo"
I f (Dia>=23 And Mes=9) Or (Dia<=22 And Mes = 10) Then Label7 = "Libra"
I f (Dia>=23 And Mes=10) Or (Dia<=2l And Mes=ll) Then Label7="Escorpio"
lf(Dia>=22 And Mes=Il) Or (Dia<=21 And Mes=12) Then Label7="Sagitario"
If(Dia>=22 And Mes=12) Or (Dia< =19 And Mes=l) Then Label7="Capricorn."
I f (Dia>=20 And Mes=l) Or (Dia<=18 And Mes = 2) Then Label7 = "Acuario"
I f (Dia> = 19 And Mes=2) Or (Dia<=20 And Mes = 3) Then Label7 = "Piscis"
Label8 = DatePart("ww", CDate(Textl))
Label9 = DateDiff("m", CDate(Textl), Date)
Label 11 = DateAdd("ww", 3, Date)
Else
MsgBox "La fecha ingresada no es correcta", 64, "Verifique"
Textl.SetFocus
End If
End Sub
Instrucciones del del Botn Salir
Prvate Sub Command2_Click()
End
End Sub
> CAPTULO III: Elementos de la Programacin
F U N C I O N E S T I P O H O R A
TIME
Devuelve la Hora exacta del sistema HH:MM:SS.
HOUR
Obtiene slo las Horas (HH).
MINUTE
Obtiene slo los Minutos (MM).
SECOND
Obtiene slo los Segundos (SS).
F U N C I O N E S N U M E R I C A S
ABS
Obtiene el valor absoluto de un nmero. ABS(Nmero).
BVT
Obtiene la parte entera de un nmero. INT(Nmero).
SQR
Obtiene La raz cuadrada de un nmero. SQR(Nmero).
RND
Retorna un valor random.
Para obtener nmeros aleatorios en un intervalo dado, use esta frmula:
Int(i(Lm._superior-Km._inferior+l)*Rnd+ lm.Jnferior)
Por ejemplo, para obtener nmeros aleatorios entre 12 y 50 utilice la siguiente
formula:
Int((50 - 12 + 1) * Rnd + 12)
RANDOMIZE
Inicializa el generador de nmeros aleatorios, permitiendo que no se repita
la secuencia de nmeros aleatorios anteriores.
SGN
Obtiene el signo de un nmero. SGN(Nmero)
-1 Negativo, 0 Cero, 1Positivo
HEX
Convierte un nmero a Base Hexadecimal. HEX(Nmero).
OCT
Convierte un nmero a Base Octal. OCT(Nmero).
m k VISUAL BASWco.no t e t e s e , . .
152 G r u p o E d i t o r i a i Megabyte
O
VAL
I .a funcin Val convierte una cadena de caracteres en un valor numrico.
VAL(Cadena)
STR
,u funcin Str convierte un valor numrico en una cadena de caracteres.
STR(Valor Numrico)
CHR
Devuelve el carcter ASCII de un valor. CHR(Valor).
ASC
Devuelve el valor ASCII de un carcter. ASC(Carcter).
FORMAT
Realiza lo mismo que STR, y adems da un formato a la salida de acuerdo
con el patrn especificado.
Ejemplo:
Si la variable Sueldo = 635, la siguiente instruccin:
Textl = Format(Sueldo, ###,##0.00 )
Visualiza en la caja de texto el valor: 635.00
El smbolo # representa un dgito cualquiera, excepto los ceros no
significativos. El smbolo cero (0) representa un dgito cualquiera, incluyendo
los ceros no significativos y adems redondea el resultado. El punto indica
la posicin del punto decimal y la coma es el separador de miles. Otros
smbolos que tambin se pueden usar son: +-$() y espacios. El smbolo %
representa el valor por ciento y aade este smbolo al resultado.
Para indicar el separador decimal (punto o coma) debe hacerlo en la
configuracin del Windows.
ISNUMERIC
Permite saber si un valor se puede considerar como numrico.
ISNUMERIC(Valor)
ISEMPTY
Permite saber si una variable est vaca.
ISEMPTY (Variable)
ISNULL
Permite saber si el contenido de una variable no es vlido.
ISNULL(Variable)
CAPTULO III: Elementos de la Programacin %
1 f c 153 ^
j a m
APLICACIN DESARROLLADA N 15
Esta aplicacin es un ejemplo de la utilidad de las funciones tipo numricas.
VISUAL BASIC como debe ser.
Ingrese un nmero j[~
Parle Entera
Parte Decima!
V alor Absoluto
Raz cuadrada
Signo del Nmero
V alor Octal (Base 8)
V alor Hexadecimal (Base 16)
MUESTRA
x
NUEV O
SALIR
Labell (Textl
Label2 LabeIS
Label3 LabellO
Labe!4 LabelH
Label5 Labell 2
LabelB Labell 3
Label? Labell 4
Label Labell 5
Commandl
Command?
Command3
Asigne la propiedad Caption al formulario, botones de comandos y etiquetas
desde L abel l hasta Label8. El resto debe estar en blanco.
Instrucciones del botn MUESTRA:
Prvate Sub Commandl_Click()
Dim NUM As Double
I f lsNumeric(Textl) Then
NUM = Val(Textl)
Label9 = Int(NUM)
LabellO = NUM - Val(Label9)
Labelll =Abs(NUM)
No se puede obtener la Raz Cuadrada de un # Negativo
IfNUM > 0 Then
Lab el 12 = Sqr(NUM)
Else
Lab el 12 - "No Existe"
End If
Labell 3 = Sgn(NUM)
LabelM = Oct(NUM)
Labell 5 = Hex(NUM)
Else
MsgBox "Debe ingresar un valor numrico", 0, "Slo nmeros"
Textl = ""
Textl.SetFocus
End If
End Sub
En el botn Nuevo, limpie Textl y las etiquetas desde Label9 hasta Label5
y el botn Sa l ir escriba la instruccin END.
O
CAPTULO III: Elementos de la Programacin ^
NUEVAS FUNCIONES
La Versin 6.0 de Visual Basic tiene las siguientes funciones:
ROUND
Esta funcin permite redondear un nmero a una determinada cantidad de
decimales.
Round (Valor.; Nmero de Decimales)
M O N T H N A M E
Esta funcin muestra el nombre del mes a partir de un nmero entre 1 y 12.
MonthName (Numero, Valor Lgico)
El nmero debe estar entre 1 y 12 de lo contrario se muestra un mensaje de
error. El valor lgico es opcional: True indica que el nombre se muestre en
abreviatura y False completo.
WEEKYDAYNAME
Muestra el nombre del da de la semana a partir de un N entre 1 y 7 segn
el 1er. Da de la semana configurado.
WeekDayName (Nmero, Valor lgico,Primer Da)
Nmero debe estar entre 1 y 7, Valor Lgico indica si el nombre se muestra
en abreviatura. Primer Da configura el da que se debe considerar el que
inicia la semana y puede tener uno de los siguientes valores:
1 Domingo (Predeterminado), 2 Lunes, 3 Martes,... 7 Sbado.
Por ejemplo: WeekDayName(3,False,5) devuelve sbado porque el 1er da
de la semana se ha configurado a 5 (Jueves).
REPLACE
Reemplaza una subcadena por otra dentro de una cadena.
Replace (Cadena, SubCadenal, SubCadena2, ValorI, Valor2)
( 'adena es aquella donde se desea realizar el reemplazo.
SubCadenal es la subcadena que va hacer reemplazada.
SubCadenal es la subcadena reemplazante.
Valor 1 es un valor que indica la posicin de la cadena desde donde se va a
luiscar la subcadena que va hacer reemplazada.
Valor indica la cantidad de veces que desea buscar y reemplazar la
ubcadena. El valor - 1 (predeterminado) indica que busque y reemplace
lodas las subcadenas que se encuentren.
STRREVERSE
Invierte los caracteres de una cadena.
StrReverse ( Cadena)
El ltimo carcter lo coloca primero, el penltimo lo coloca segundo, etc.
FORMATCURRENCY
Asigna un formato monetario a los nmeros. El signo monetario depende de
la Configuracin Regional.
FormatCurrency (Nmero, Valorl, Valor2, Valor3, Valor4)
V a l o r l : Indica la cantidad de decimales.
Valor2: Indica si se muestra un cero en la parte entera cuando no hay decimales.
Valor3: Indica si los negativos deben estar entre parntesis.
Valor4: Indica si se muestra el separador para los miles.
Valor2, valor3 y Valor4 pueden ser:
-1 SI, 0 NO,- 2 Segn la configuracin Regional
NOTA
Si no indica ningn valor, Visual Basic muestra los resultados segn la
configuracin regional (Inicio/Configuracin/Panel de Control)
|VISUAL BASIC como debe ser.. . - "xs
Configuracin
regional
FORMATNUMBER
Esta funcin es similar a FormatCurrency pero no muestra el smbolo
monetario.
FORMATDATETIME
Asigna un formato a datos tipo fecha y hora.
FormatDateTime(Fecha, Valor)
El valor puede ser:
0: Formato general (Fecha u Hora).
1: Formato de fecha largo.
2: Formato de fecha corto.
3: Formato de hora segn la configuracin regional.
4: Muestra la hora en formato de 24 hora.
156 G r u p o E d i t o r i a l Meeabvte
CAPITULO III: Elementos de la Programacin
FUNCIN SHELL
La funcin SHELL se utiliza para ejecutar programas (archivos ejecutables
como *.EXE, *.COM, etc.) desde el Visual Basic.
Su sintaxis es:
SHELL RUTA Y NOMBRE DEL PROGRAMA,
La ruta es la direccin exacta de la carpeta donde se encuentra el programa
que se desea ejecutar.
El valor indica el estilo de la ventana donde se va a ejecutar el programa:
0 : Oculta la ventana donde se ejecuta el archivo.
1 : Ejecuta el programa en su ventana de tamao normal.
2 : Ejecuta el programa con su ventana minimizada.
3 : Ejecuta el programa con su ventana maximizada.
4 : Ejecuta el programa con el tamao y posicin mas reciente de su
ventana. La ventana actual continua activa.
6 : Ejecuta el programa con su ventana minimizada y la ventana actual
continua activa.
Si no escribe el valor el programa se visualiza con la ventana minimizada.
Por ejemplo, la siguiente instruccin ejecuta la calculadora del windows.
Shell "c:\windows\calc.exe", 1
Despus de e jecutar el programa, Visual Basic continua ejecutando
las s i g u i e n t e s i n s t r u c c i o n e s que siguen a l SHELL. Esto nos d la
posibilidad de ejecutar varios programas. Por ejemplo las siguientes
instrucciones ejecutan la calculadora y el panel de control.
Shell "c:\windows\calc.exe", 1
Shell "c:\windows\control.exe", 1
La f u n c i n S h e l l d e v u e l v e un v a l o r t ipo D ouble que i n d i c a si el
programa se ha ejecutado con xito, caso contrario devuelve cero (0).
Para obtener este valor utilice la siguiente sintaxis:
VARIABLE= SHELL( RUTAY NOMBRE DEL PROGRAMA , VALOR)
APLICACIN DESARROLLADA N 16
La siguiente aplicacin permite ejecutar desde el Visual Basic algunos
programas.
_________________________ M
| P r o g r a m a a E / e c u t a r :
| I i > VISUAL BASIC como debe ser.. .
CALCULADORA ELECTRONICA
MICROSOFT WORD
MICROSOFT EXCEL
EXPLORADOR DE WINDOWS
SALIR AL D.O.S.
...... FINALIZAR....... ]}
Si sale al D.O.S., escriba EXIT para regresar al Windows.
La instruccin de cada Botn de Comando es:
Private Sub Command 1JClickf)
Shell "C:\WlNDOWS\CALC.EXE", 1
End Sub
Prvate Sub Command2_Click()
Shell "C:\Archivos deprograma\Microsoft Offtce\Office\WINWORD.EXE", 1
End Sub
Prvate Sub Commands_Click()
Shell "C:\Archivos de programa\Microsoft Ojfice\Office\EXCEL.EXE", I
End Sub
Prvate Sub Command4_Click()
Shell "C:\WINDOWS\EXPLORER.EXE", I
End Sub
Prvate Sub Command5_Click()
Shell "C:\WINDOWS\COMMAND.COM", 1
End Sub
Prvate Sub Command_Click()
End
End Sub
'mm
G r u p o E d i t o r i a l Megabyte
a. uso del shell
CAPTULO III: Elementos de la Programacin %
FOR-NEXT
Permite crear bucles. Un bucle es la repeticin de una o ms instrucciones.
Su sintaxis es:
FOR variable = v.inicial TO v.final STEP incremento
Instruccin(es)
NEXT variable
STEP: Slo es necesario cuando el incremento es diferente de 1.
EXIT FORM: Permite salir del bucle.
DO-LOOP
Permite ejecutar una o ms instrucciones mientras una condicin se cumpla
(WHILE) o hasta que se cumpla una condicin ( UNTIL). Tiene cuatro
sintaxis:
Do While Condicin
Instruccin(es)
Loop
Do
Instruccin(es)
Loop While Condicin
Do Until Condicin
Instruccin(es)
Loop
Do
Instruccin(es)
Loop Until Condicin
MUY IMPORTANTE
Mientras Visual Basic est ejecutando un bucle, no reconoce ningn evento. Esto
lo puede evitar con la instruccin DoEvents.
DOEVENTS
DoEvents pasa el control al sistema operativo y verifica si a ocurrido
algn evento. Si a ocurrido un evento o eventos los ejecuta y luego
continua con el evento inicial.
Ejemplos:
Dim x Integer
For x = 1 To 10000
Lab ell .Left = x
Next
Estas instrucciones mueven la etiqueta N 1 de
izquierda a derecha y no se reconoce ningn
evento hasta que termine.
Dim x As Integer
For x = / To 10000
Labe 11. Left = x
Doevents
Next
Estas instrucciones mueven la etiqueta N 1 de
izquierda a derecha, pero cada vez que ejecuta el
bucle verifica si ha ocurrido algn evento para
ejecutarlo.
m s*
VISUAL BASIC como debe ser.
APLICACION DESARROLLADA N 17
Se debe ingresar un texto y luego se debe mostrar letra por letra del texto
junto con su valor ASCII y su valor Binario; adems, el valor binario se debe
desplazar de izquierda a derecha por el formulario.
EJEMPLOS DE BUCLES
INGRESE UN TEXTO
LETRA
VALOR ASCII
.
| n | x |
VALOR BINARIO
OK
PASO N 01: Dibujar los controles
I ^ Fo r m
- . I n i x |
Labell
IfTextl
Label2 LabeIS
Label3 LabelB
Label4 Label?
Commandl I
LabelQ
PASO N 02: Asignar las propiedades a los controles.
Asigne la propiedad Caption a los controles segn el ejemplo.
160
G r u p o E d i t o r i a l Megabyte <
CAPTULO III: Elementos de la Programacin
PASO N 03:Escribir las instrucciones para los controles.
Instrucciones del botn OK:
Prvate Sub Commandl_C!ick()
TEXTO = Trim(Textl)
For X - 1 To Len( TEXTO)
Label7 = " "
LETRA = Mid(TEXTO, X, 1)
Label5 = LETRA
VALOR = Asc( LETRA)
Label = VALOR
La be 17 = BlNARIO( VALOR)
Label8 = Label7
Mvimiento del valor Binario
For T = 1 T 5000 Step 0.1
Label8.Left - T
Next T
NextX
End
End Sub
Instrucciones de la funcin BINARIO:
Prvate Function BINARIO(NUM)
Dim VALORBIN As String
Do While NUM > 1
RESTO = NUM Mod 2
NUM =NUM\2
VALORBIN = Trim(Str( RESTO)) + Trim( VALORBIN)
Loop
VALORBIN = Trm( Str( NUM)) + VALORBIN
BINARIO = VALORBIN
End Function
16, 4
i l l i ^ VISUAL BASIC como debe ser.. .
i
Un array permite almacenar en una sola variable, varios elementos del mismo
tipo utilizando un ndice. El primer elemento de un array se almacena en
forma predeterminada en el ndice 0, pero con la instruccin OPTION BASE
7, le indica al Visual Basic que el primer elemento de un array se almacene
en el ndice 1.
Con la palabra PUBLIC se declaran arrays globales y lo debe hacer en la
seccin de declaraciones de un mdulo.
Con la palabra DIM se declaran arrays a nivel del mdulo o del formulario.
Con la palabra STATIC se declaran arrays locales a un procedimiento.
A r r a y s Estticos.
Se caracterizan porque tienen un nmero f i j o de elementos. Ejemplos:
Dim Nom (19) As String
Declara la variable Nom de tipo cadena que permite almacenar veinte
elementos (de 0 a 19).
Dim A (1 to 15) As Integer
Declara la variable A de tipo integer que permite almacenar 15 elementos
(de 1 a 15).
Static Num (1 to 4, 1 to 4) As Integer
Declara la variable Num de dos dimensiones (4 * 4) de tipo Entero.
A r r a y s Dinmicos.
Se caracterizan porque sus dimensiones no son fijas.
El espacio para un array dinmico ser asignado durante la ejecucin del
programa. Un array dinmico, puede ser redimensionado en cualquier
momento de la ejecucin del programa.
R E D I M
Es una instruccin que permite cambiar el nmero de elementos de un array,
se debe escribir solamente en un procedimiento. Ejemplo:
Dim Num () As Integer
Declaracin dinmica de la variable Num de tipo Entero.
En el momento que necesite asignarle espacio puede escribir:
Redim Num(N)
Donde N contiene el valor con el que desea redimensionar la variable Num.
ljllllll^ 162 G r u p o E d i t o r i a l Megabvte
ARRAYS
(
CAPTULO III: Elementos de la Programacin ^ 1
APLICACIN DESARROLLADA N 18
Se debe ingresar un nmero del 1 al 7 y visualizar el nombre del da de la
semana.
- In| x|
----1----1----1
Ingrese un nmero (1-7]
GK
Salir
1. Dibujar los controles y asignarle sus propiedades.
2. Declarar en la seccin de declaracin del formulario.
Dim D (1 To 7) As String * 9
3. Asignar los elementos al array en FORM LOAD.
Prvate Sub Form_Load()
'Almacena los elementos en el Array
D (1) = "Lunes"
D(2) = "Martes"
D(3) = "Mi rcoles"
D(4) = "Jueves"
D(5) = "Viernes"
D(6) = "Sbado"
D (7) = "Domingo"
End Sub
4. Escribrir las instrucciones del Botn OK.
Prvate Sub Commandl_Click()
Dim N As Integer
N = Val(Textl)
If N >= 1 And N <= 7 Then
Lubel2- "El nmero ingresado representa el da "+D(N)
El se
MsgBox "Slo nmeros del 1 al 7", 0, "Por favor"
Textl = ""
Textl.SetFocus
End If
End Sub
El botn S A L I R debe tener la instruccin END.
CREAR UN ARRAYDE CONTROLES
Existen dos formas de crear un array de controles:
l.Cuando los controles ya estn dibujados en el formulario.
Si los controles ya estn dibujados en el formulario y desea crear con ellos
un array de controles, asgneles el mismo nombre (propiedad AME) a
cada uno de ellos. A l escribir el mismo nombre al segundo control se
visualiza el siguiente mensaje:
VISUAL BASIC como debe ser.. .
Microsoft Visual Basic
Ya existe un control llamado 'N'. Desea crear una matriz de
controles?
S No
Haga click en el botn SI y contine asignado el mismo nombre a los si
guientes controles. Cuando todos los controles tienen un mismo nombre se
tiene un array con una sola dimensin cuyos elementos se diferencian por el
valor de su propiedad INDEX de cada control, por ejemplo: El primer con
trol tendr en su propiedad Index el valor 0, el segundo control tendr el
valor 1, etc.
2. Cuando los controles todava no estn dibujados en el formulario.
Si los controles todava no los ha dibujado en el formulario, entonces dibu
je slo el primer control y asgnele, si lo desea, un nombre diferente al que
tiene en forma predeterminada, luego seleccinelo haciendo un Cl ick en
dicho control y pulse las teclas CTRL+C, para copiarlo en la memoria
de la computadora y despus pulse las teclas CTRL+V, para pegarlo en
el formulario.
La primera vez que Ud. pulsa CRTL+V, se visualiza el mensaje anterior,
haga Click en el botn SI y contine pulsando CTRL+V hasta que tenga
la cantidad de controles deseadas. Cada control que pega se ubica en la
parte superior izquierda del formulario uno sobre otro, con el mismo nombre,
pero con la propiedad INDEX diferente. Cuando termine ubquelos en su
respectivo lugar y en el orden correcto.
Las teclas CTRL+C equivalen a la opcin Copiar (Copy) de la opcin
EDITAR (EDIT) de la Barra de Men y CTRL+V equivale a la opcin
Pegar (Paste).
164 G r u p o E d i t o r i a l Mega bvte
CAPTULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 19
La siguiente aplicacin permite ingresar valores en un array de 4
llenarlo con valores al azar entre 1 y 50, luego se pueden ordenar en
ascendente y restaurar los valores iniciales.
PASO N 1: Dibujar los controles
X 4
forma
t i , Fotml
U s TEl
Framel
|[T e x tl |Text2 I T ext3 j
| t ext5 JT extG |Tex<7 I
1T ext9 I T extl 0 |Text11
|Text13 |T e x tl 4 | t e x tl 5 1
T ext4
T ext8
T e x tl 2
T e x tl 6
Commandl
Command2
Command3
Command4
Command5
PASO N 2: Convertir las Cajas de Texto en un array.
Cree un array de controles con las cajas de texto usando cualquiera de los
dos formas indicas y asgnele el nombre N en la propiedad ame a cada
una de ellas.
NUEVO
[ ' ORDEAR']
RESTAURAR I
LLENAR
SALIR
Valores del Array
I 2 1
3
I 4 I I 5
I 8 1I 12 !
|23 28
I 43
144 |S3 |54
j GG
I 76
leo 1154
i,. ORDENACION DE UN ARRAY
PASO N 3: Escribir las instrucciones para los controles.
En el objeto GENERAL y en el evento DESCRIPCIONES del formulario
declare las siguientes variables:
Se declara la variable ORIGEN tipo array a nivel de formulario para poder
llamar a los datos desde cualquier procedimiento.
La variable YA se uti liza para saber si ya se almacenaron los valores
originales en el array ORIGEN
Dim ORIGEN( 16) As Integer
Dim YAAs Boolean
Instrucciones del Evento FORM ACTIVATE
A l activarse el formulario se llaman a las instrucciones del Commandl para
limpiar el contenido de las cajas de texto.
Prvate Sub Form_Activate()
Al activarse el formulario se llaman a las instrucciones del
'Commandl para limpiar el contenido de las cajas de texto
Commandl jClick
End Sub
Instrucciones del Botn NUEVO
Estas instrucciones permiten limpiar el contenido de las cajas de texto para
ingresar nuevos valores.
Prvate Sub Commandl_Click()
Dim X A i Integer
ForX = OTo 15
N(X) = " "
NextX
N(0).SetFocus
Activa el botn ORDENAR
Command2.Enabled = True
Inicializa la variable Ya
YA = False
End Sub
y!' VISUAL BASIC como debe ser.. .
G r u p o E d i t o r i a l Megabyte
166
CAPTULO III: Elementos de la Programacin ^|feiP
Instrucciones del Botn LLENAR
Estas instrucciones llenan las cajas de texto con valores al azar entre 1 y 50.
La funcin RND, permite obtener valores al azar y para obtener valores al
azar entre un rango determinado se utiliza la siguiente formula:
Int((lmitesup - lmiteinf + 1) * Rnd + lmiteinf)
Lmitesup:
Es el valor mximo que deseamos obtener.
Lmiteinf:
Es el valor mnimo que se deseamos obtener.
Por ejemplo para obtener valores al azar slo entre 7 y 36 se escribe:
lnt( ( 3 6 - 7 + 1 ) * Rnd + 7).
Int:
Es una funcin que permite obtener slo la parte entera (sin decimales) de
un valor.
Prvate Sub Command4_Clck()
Almacena en las cajas de texto
valor al azar entre 1 y 50
ForX = OTo 15
N(X) = lnt((50 -1 + 1)* Rnd + I)
Next X
Activa el botn ORDENAR
Command2.Enabled = True
Desactiva el botn RESTAURAR
Command3.Enabled = False
Inicializa la variable Ya
YA = False
End Sub
Instrucciones del Botn ORDENAR
Prvate Sub Commandl _Click()
Dim AR( 16) Ai Integer
Copia los valores de las cajas de texto en las
variables tipo array AR y ORIGEN
F o r X = 0 T o l 5
I fN o t YA Then
ORIGEN(X) = Val(N(X))
E n d l f
AR(X) = Val(N(X))
Next
Ordena los valores que se encuentran en la variable AR
Do
sw - 0
For X = 0 7o 14
I fO p tio n l Then
IfAR(X) > AR(X + 1) Then
AX - AR(X)
AR(X) = AR(X + 1)
AR(X + 1) = AX
sw - 1
E n d l f
Else
IfAR(X) < AR(X + 1) Then
AX = AR(X)
AR(X ) =A R ( X + 1)
AR(X + 1) - AX
sw = 1
E n d l f
E n d l f
N e x t X
Loop Until sw = O
Muestra los valores ordenados en las cajas de textos
F o r X - OTo 15
N(X) = AR(X)
N e x t X
YA - True
Activa el botn restaurar
Command3.Enabled - True
End Sub
Instrucciones del Botn RESTAURAR
Estas instrucciones muestran en las cajas ele texto los valores en la
posicin original (antes ele ordenarse).
Prvate Sub Command3_Click()
For X = OTo 15
N(X) = ORICEN(X)
NextX
End Sub
VISUAL BASIC como debe. ser. _.
168 G r u p o E d i t o r i a l Megabyte
CAPTULO III: Elementos de la Programacin
APLICACIN DESARROLLADA N 20
La siguiente aplicacin permite manejar los elementos de array de 4 x 4.
Estos elementos son valores numricos de tipo entero con los cuales se
realiza los siguientes procesos:
1.- Suma las filas.
2.- Suma las columnas
3.- Sumar las diagonales, etc.
a. MANEJO DE ARRAYS
- ! n | x
C0L1 COL 2 COL 3 COLI
FILA1 [ i [2 [6 p p - LIMPIAR ELARRAY i
FIU2 |2 | - p------- f -------- |20 LIMPIALOSBESULTADOsj
FIL43 p [5 [3 j3 SUMAUS COLUMNAS |
n w . p ------- [o p ----------p p - SUMALASElLAS |
[ _ _
| SUMAS INDEPENDIENTES
-----
COLUMNA1 | COLUMNA2 | COLUMNA 3 | COLUMNA 4 |
FILAI 1 FILA 2 | FILA3 1 FILM 1 1
DIAGONAL Ni 1 | \ ) | j DIAGONALN12 [ / ) !
|25 |15
SAUR 1 1
PASO N 1: Dibujar los controles.
Labell Label2 Label3 LabeM .........................
|7^r frr [ f r l* ;
Label5
Label
: Labd7
Label8 |TexH3 Text14 |TexH5 fTextlG L-abel16
: LabeB LabellO Labdl.1 Label12 : : : : : : :
; 1Text5 Text6 |Text7 jexl8 Label14 - Command2 |
f r ^ T fiexiT f ^ T f r 3 r t 2 \ Command3 |
Command4 |
Comrraiid9 I Commandl 0 I Command'll I Commandl 2 I ;
Commandl 3 Commandl 4
Labell 8 Labell 9
Commandl 5
Utilice cualquiera de las dos formas explicadas. Asigne el nombre N a cada
una de las cajas de Texto.
PASO N" 3: Convertir las Etiquetas desde Label9 hasta Labell2
en un array de controles.
Asigne a cada una de estas etiquetas el nombre SC empezando por Label9
en forma ordenada hasta label 12, pero al final cambie el valor de la propiedad
INDEX de cada etiqueta de tal manera que Label9 se llame SC, pero que su
propiedad INDEX tenga el valor 1, LabellO tenga en su propiedad INDEX
el valor 2, Label 11 tenga en su propiedad I NDEX el valor 3, Label 12 tenga
en su propiedad INDEX el valor 4.
Para cambiar el valor de la propiedad INDEX de cada control debe empezar
por el ultimo (en el ejemplo empiece por Label 12). Esto nos permite
programar de una forma ms cmoda por que el array de controles empieza
con el Indice uno (1) y no con el cero (0).
PASO N 4: Convertir las Etiquetas desde Labell3 hasta Labell
en un nuevo array de controles.
Asigne a cada una de estas etiquetas el nombre SF empezando por Label 13
en forma ordenada hasta label 16, pero al final cambie el valor de la propiedad
INDEX de cada etiqueta de tal manera que Label 13 se llame SF, pero que
su propiedad INDEX tenga el valor 1, Label 14 tenga en su propiedad INDEX
el valor 2, Label 15 tenga en su propiedad NDEX el valor 3 y Label 16 tenga
en su propiedad I N D EX el valor 4.
MUY IMPORTANTE
No se olvide empezar por el ltimo control (en el ejemplo empiece por
Labell) para cambiar el valor de la propiedad INDEX.
PASO N 5: Asignar a los otros controles sus propiedades.
La propiedad principal a modificar es CAPTION para los botones de
comandos como para las etiquetas, algunas etiquetas tienen adems en la
propiedad BORDERSTYLE el valor 1-Single Fixed.
lll^I' VISUAL BASIC como debe ser.. .
PASO N 2: Convertir las Cajas de Texto en un array.
170 ^ G r u p o E d i t o r i a l Megabyte < ^ ||||

> CAPTULO III: Elementos de la Programacin


PASO N 6: Escribir las instrucciones para los controles.
En la ventana de declaracin del formulario defina las siguientes variables:
Dim COL, F1L, X, ST As Integer
Dim A(1 To 4, 1 To 4), SUMA(1 To 4) As Integer
Crear el siguiente procedimiento en el formulario.
Este procedimiento permite pasar los valores almacenados en las cajas
de texto al array definido en la variable A.
NOTA:
El ndice del array donde se pasan los valores de las cajas de texto
empiezan con el valor 1.
Sub PASAR()
X = 0
For COL = l To 4
For FIL = l To 4
A(COL, FIL) = Val(N(X))
X = X+1
Next FIL
Next COL
End Sub
Instrucciones para el evento FORM_ACTIVATE.
Prvate Sub Form_Activate()
Al activarse el formulario llama al procedimiento
COMMAND1JCLICK (Limpia los valores) y al
'procedimiento COMMAND2_CLICK (Limpia los resultados)
Commandl jClick
Command2_Cl ick
End Sub
Bo t n LIMPIAR EL ARRAY
Private Sub Commandl_Click()
'Limpia los valores del array
ForX - OTo 15
N(X) = ""
Next X
N(0).SetFocus
End Sub
Botn LIMPIA LOS RESULTADOS
Prvate Sub Command2_Click()
'Limpia los resultados
ForX - 1 To 4
SF(X) = ""
SC(X) = ""
Next X
End Sub
171
VISUAL BASIC como debe ser..
Instrucciones del Botn SU M A L A S C O L U M N A S
Private Sub Command3_Click()
Llama al procedimiento "PASAR"
PASAR
SUMA LAS COLUMNAS DEL ARRAY
For COL = 1 To 4
SUMA(COL) = 0
For FIL = 1 To 4
SUMA(COL) = SUMA(COL) + A(FIL, COL)
Next FIL
Next COL
F o r X = 1 To 4
SC(X) = SUMA(X)
Ne xt X
End Sub
Instrucciones del Botn SUMA L A S F I L A S
Prvate Sub Command4_Click()
Llama al procedimiento "PASAR"
PASAR
SUMA LAS FILAS DEL ARRAY
For FIL = I To 4
SUMA(FIL) = 0
For COL = 1 To 4
SUMA(FIL) = SUMA(FIL) + A(FIL, COL)
Next COL
Next FIL
For X = 1 To 4
SF(X) = SUMA(X)
Next X
End Sub
In s t r u c c i o n e s : Bo t n COLUMNA 1 In s t r u c c i o n e s : Bo t n COLUMNA 2
Prvate Sub Command5_Click() Prvate Sub Command6_Click()
Suma slo la columna 1 Suma slo la columna 2
ST = 0 PASAR
PASAR ST = 0
Command2_Click Command2_Click
ForX = 1 To 4 ForX = 1 To 4
ST = ST + A(X, 1) ST = ST +A(X, 2)
NextX NextX
SC(1) = ST SC(2) = ST
End Sub End Sub
G r u p o E d i t o r i a l Megabyte^
/
CAPITULO III: Elementos de la
Instrucciones: Botn COLUMNA 3
Prvate Sub Command7_Click()
Suma slo la columna 3
S T - 0
PASAR
Command2_Click
For X= lTo 4
ST=ST + A(X, 3)
NextX
SC(3) = ST
End Sub
Instrucciones del Botn FILA 1
Prvate Sub Command9_Click()
Suma slo la fila 1
ST = 0
PASAR
Command2_Click
ForX = I To 4
ST=ST + A(l, X)
NextX
SF( 1) = ST
End Sub
Instrucciones del Botn FILA 3
Prvate Sub Commandl 1 _Click()
Suma slo la fila 3
ST = 0
PASAR
Commcind2 _Click
For X= ITo 4
ST = ST + A(3, X)
NextX
SF(3) = ST
End Sub
Instruc.:Botn DIAGONAL 1(\)
Prvate Sub Commandl 3_Click()
Suma la diagonal 1 ( \ )
PASAR
ST = 0
ForX = 1 To 4
ST = ST +A(X, X)
NextX
Labe! 18 = ST
Eiul Sub
Instrucciones:Botn COLUMNA 4
Prvate Sub Command8_Click()
Suma slo la columna 4
S T =0
PASAR
Command2_Click
ForX = l T o 4
ST = ST + A(X, 4)
NextX
SC(4) = ST
End Sub
Instrucciones del Botn FILA 2
Prvate Sub Commandl 0_Click()
Suma slo la fila 2
ST = 0
PASAR
Command2_Click
For X = 1 To 4
ST = ST + A(2, X)
NextX
SF(2) = ST
End Sub
Instrucciones del Botn FILA 4
Prvate Sub Commandl 2_Clck()
Suma slo la fila 4
ST = 0
PASAR
Command2_Clck
For X = 1 To 4
ST = ST +A(4, X)
NextX
SF(4) = ST
End Sub
Instruc.: Botn DIAGONAL 2 (/)
Prvate Sub Commandl4_Click()
Suma la diagonal 2 ( / )
PASAR
ST = 0
For X = 1 To 4
ST = ST +A(X, 5 - X)
NextX
Lab el 19 = ST
End Sub
173
APLICACIN DESARROLLADA N 21
La siguiente aplicacin permite realizar operaciones con arrays como sumar
dos arrays, restar, multiplicar, etc.
ARRAY " A " ARRAY "B"
VISUAL BASIC como debe ser.. .
[a p 5 [5 [9 pr
I3
|7 |-4 |7 1 10
Io
|-5 |-1
I9
3 1
Transpuesta | Transpuesta |
RESULTADO
I 13 I 8 1 4
Borrar |
I 10 1 8 1 6
Llenar j
1 9 1 -2 i
Salir j
OPERACIONES :
i urna i| Resta J Multiplica [ divide | 2A * 3B
PASO N 1: Dibujar los controles
Dibuje los controles como de muestran en el ejemplo. Para el 1er. Array,
dibuje la lera., caja de texto y asgnele el nombre (ame) A, luego cpiela
hasta tener 9 (desde A(0) hasta A ( 8)). A l 2do. Array, asgnele el nombre B
y al 3er.array (etiquetas) asgnele el nombre R.
m. OPERACIONES CON ARRAYS
Labell
jTextl Textl Textl
|T extl T extl Textl
JTextl Textl Textl
Commandl
Label2
|T e x t l J T extl |Text1
jTextl |Text1~ |T extl
JTextl jT extl jTextl
- Command2 I
Label3
Label4 Label4 Label4
Label4 Label4 Label4
Label4 Label4 Label4
Command8
Commarid9 j
Commandl 0
Framel
Commands Command4 Commands Commands Command7
174
G r u p o E d itorial Megabyte^
CAPTULO III: Elementos de la Programacin
PASO N 2: Asignar las propiedades a los controles.
A las etiquetas N 1, 2 y 3, al Frame y a los Commands, asgneles en su
Caption los mensajes como en el ejemplo.
PASO N 3: Escribir las instrucciones para los controles.
Definir las variables a nivel de Formulario
Dim X, F, CAs Byte
Dim AA( 1 To 3, 1 To 3) As Inte ge r
Dim AB( To 3, 1 To 3) As Integer
Dim AR( I To 3, To 3) As Single
Instrucciones del Form_Activate.
Prvate Sub Form_Activate()
Rem Limpian el contenido de los arrays
For X = OTo 8
A(X) = "
B(X) = ""
R(X) = ""
NextX
A(0).SetFocus
End Sub
Instrucciones del Botn LLENAR.
Prvate Sub Command9_Click()
Rem Llenan los dos Arrays con valores entre -5 y 0.
Randomize
ForX= OTo 8
A(X) = Int((10 - (-5) + l ) * R n d + (-5))
B(X) = Int((10 - (-5) + ) * Rnd + (-5))
NextX
End Sub
Instrucciones del Botn BORRAR.
Prvate Sub Command8_Click()
Form_Activate
End Sub
Transpuesta para el Array A.
Private Sub Command_Click()
Rem Traspuesta del array A
PASAR
For F - To 3
For C = 1 To 3
AR(C, F) = AA(F, C)
Next C
Next F
MOSTRAR
End Sub
Transpuesta para el Array B.
Prvate Sub Commandl_Click()
Rem Traspuesta del array B
PASAR
For F= 1 To 3
For C - To 3
AR(C, F) = AB(F, C)
Next C
Next F
MOSTRAR
End Sub
Ufo VISUAL BASIC como debe ser.. .
Instrucciones del Botn SUMAR.
Prvate Sub Command3_Click()
Rem Suma los valores.
PASAR
For F =1 To3
For C = 1 To 3
AR(F,C)=AA(F,C)+AB(F,C)
Next C
Next F
MOSTRAR
End Sub
Instrucciones del Botn RESTAR.
Prvate Sub CommandA_Click()
Rem Resta los valores.
PASAR
For F - 1 To 3
For C = 1 To 3
AR(F,C)=AA(F,C)-AB(F,C)
Next C
Next F
MOSTRAR
End Sub
Instrucciones del Botn MULTIPLICAR.
Prvate Sub Command5_Click()
Rem Multiplicacin los valores de los Arrays
Dim Y As Byte
PASAR
For F - 1 To 3
For C - 1 To 3
AR(F, C) = 0
For Y = 1 To 3
AR(F, C) = AR(F, C) + (AA(F Y) * AB( Y, C))
Next Y
Next C
Next F
MOSTRAR
End Sub
Instrucciones del Botn 2A + 3B (Multiplicacin Escalar).
Prvate Sub Command7_Click()
Rem Multiplicacin Escalar 2A.3B
PASAR
For F = 1 To 3
ForC= 1 To 3
AR(F, C) =AA(F, C)*2 + AB(F, C) * 3
Next C
Next F
MOSTRAR
End Sub
176
G r u p o E d i t o r i a l Megabyte
Instrucciones del Botn DIVIDIR.
Prvate Sub Command6_Click()
Rem Divide los valores de los Arrays
PASAR
For F = 1 To 3
For C = 1 To 3
I f AB(F, C) o O Then
AR(F, C) =AA(F, C)/AB(F, C)
End If
Next C
Next F
Rem Muestra los resultados con 2 decimales
Dim N As Byte
For F = 1 To 3
For C = 1 To 3
R(N) = Format(AR(F, C), "##0.00")
N = N+ 1
Next C
Next F
End Sub
Instrucciones del PROCEDIMIENTO PASAR.
Sub PASAR()
'Pasan los elementos desde los Text al Array Bidimesional.
Dim N As Byte
For F = 1 To 3
ForC= 1 To 3
AA(F, C) = A(N)
AB(F, O = B(N)
N = N+ 1
Next C
Next F
End Sub
Instrucciones del Botn MOSTRAR.
'Muestran los resultados en el array R (etiquetas).
Sub MOSTRARO
Dim N As Byte
For F= 1 To 3
For C = 1 To 3
R(N) =AR(F, C)
N = N+ I
Next C
Next F
End Sub
CAPITULO III: Elementos de la Programacin
177
A S i f r VISUAL BASIC como debe ser.. .
ERRORES MAS COMUNES
Si al ejecutar o desarrollar una aplicacin se muestra un mensaje de
error, trate de solucionarlo Ud., mismo, de esa manera es poco probable
cue lo vuelva a cometer.
Microsoft Visual Basic
Compile error:
Variable not defined
Aceptar Ayuda
Variable no definida. Est usando una
variable sin definirla. Defina la variable o
borre OPTION EXPLICIT del objeto
GENERAL.
Microsoft Visual Basic
Compile error:
* Expected: list separator o r )
[ Aceptar ] Ayuda
Se esperaba separador de lista o
parntesis.
Verifique que ha cerrado parntesis.
Microsoft Visual Basic
Compile error:
Expected: Then or GoTo
Aceptar j l Avuda
Run-time error '13':
Type mismatch
End Debug
178
Se esperaba THEN.
Probablemente se olvido de escribir
THEN despus de la condicin en la
instruccin IF.
I
Help
Error de Tipo
Los Datos o variables
son de diferente tipo.
G r u p o E d i t o r i a l Megabyte
CAPTULO III: Elementos de la Programacin
PREGUNTAS DE R E PAS O N g 0 3
1. Por defecto una variable es de tipo:
2. Escriba la sintaxis de la funcin Msgbox.
3. Por qu es importante Setfocus.
4. Qu debe hacer para que no se produzca un error cuando se quiere
utilizar una variable no declarada o definida?
5. Explique los atributos de una variable.
6. Explique las caractersticas de una variable, Local, a Nivel de Formulario
y Global.
7. Cmo se activa la ventana para declarar variables a Nivel de Mdulo?
8. Cmo se declara la variable A de tipo Integer y de mbito Global.
9. Una variable numrica por defecto tiene el v a l o r .....y la de tipo cadena
10. Cmo se borra el contenido de una caja de textos?
11. Qu ventana se v i s u a l i z a con la si g u i e n t e i n s t r u c c i n ?
R=MSGBOX( ACCESO DENEGADO ,2 l , LO SIENTO )
12. De la pregunta anterior Qu valor toma la variable R si el usuario
hace click en Cancelar?
13. Qu ventana se v i s u a l i z a con la si g u i e n t e i n s t r u c c i n ?
T=MSGBOX( F I N A L I Z A L A A P L I C A C I O N ,36, RESPONDA )
14. Qu ventana se visualiza con la siguiente instruccin? MSGBOX
Bienvenido al Sistema .
15. Escriba los Iconos y Botones con su respectivo valor que podemos
visualizar en el Msgbox.
16. Qu valores puede devolver el Msgbox y a qu botn pertenece?
17. Qu funcin cumple: CHR(13)?
18. Qu es una palabra reservada y con qu palabra reservada se define
una variable y qu funcin cumple?
19. Si en la ventana de declaracin de variables se tiene la instruccin
OPTION EXPLICIT qu significa?
20 Cuantos tipos de procedimientos existente?
I M P O R T A N T E
Con los conocimientos adquiridos hasta ahora ya est en condiciones de
desarrollar muchas Aplicaciones.
1 7 9
CAPITULO IV
MEJORANDO EL ASPECTO
DE LOS FORMULARIOS
SISTEMA
DE
VENTAS
Castaeda O 54:42 AM
H O R A
mm
: |11:18:25 PM
Salir
'v'rrr-
I
f
I
M A R C O ( F R A M E ) :
I I B p
Es un control que se utiliza para mejorar el aspecto de un formulario y para
agrupar controles de tal manera que se puedan manejar como un slo control.
Se puede dibujar sobre controles que estn en el formulario, los
cuales quedarn ocultos. Pulse las teclas <CTRL> + <K > para restaurar o
visualizar los controles ocultados. Esto no sucede con las etiquetas, por lo
que se recomienda dibujar primero el FRAME y luego las etiquetas (Label).
PRINCIPALES PROPIEDADES DE UN FRAME:
A M E
Permite asignarle un nombre. Por defecto el nombre es Framel, Frame2,
Frame3 etc. Segn el nmero de marcos que se dibujen en el formulario.
B A C K C O L O R
Selecciona un color de fondo para el marco.
B O R D E R S T Y L E
Selecciona el estilo del borde.
C A P T I O N
Asigna un Ttulo al marco.
E N A B L E D
Permite que el marco se encuentre activo o no.
F O N T
Para cambiar el tipo, tamao y estilo de letra.
F O R E C O L O R
Asigna un color de las letra.
M O U S E P O I N T E R
Para seleccionar el tipo de puntero de mouse.
V I S I B L E
Para indicar si se debe mostrar el marco.
N OTA :
Para agrupar varios controles en un marco, primero dibuje el marco y encima los
controles. Cualquier propiedad que le cambia al marco ser tambin para los
controles que se encuentran dentro de l.
w m m m
VISUAL BASIC como debe ser.. . -
Ejemplo :
Ud. puede desarrollar la siguiente aplicacin usando marcos.
a.. M A T R I C U L A D E A L U M N O S
- D A T O S P E R S O N A L E S
Nombre
Direccin
Telfono j"
ASIGNANDO COLORES
Q B C O L O R :
Es una funcin que permite asignar colores.
Su sintaxis es QBCOLOR(Valor). El valor es un numero entre 0 y 15 que
representa el valor a asignar:
COLOR OSCURO CLARO
Negro 0 8
Azul 1 9
Verde 2 10
Aguamarina 3 11
Ro j o 4 12
Fucsia 5 13
Amarillo 6 14
Blanco 7 15
La siguiente instruccin asigna el color azul claro al formulario N 1:
Forml.BackColor = QBColor(9)
R G B :
Es una funcin que permite asignar un color que se obtiene de los colores
Rojo, Verde y Azul.
Su sintaxis es: RGB (Valorl, Valor2, Valor3). Los tres valores pueden ser
un nmero entre 0 y 255 que representan la intensidad asignada a los colores
Rojo, Verde y Azul para obtener el color deseado. El Va l or l representa la
intensidad asignada al color Rojo, el Valor2 representa la intensidad asignada
al color Verde y el valor3 la intensidad para el color Azul.
La siguiente inst ruccin asigna un co lo r rosado al f o r m u la r i o N l :
Forml.BackColor = RGB(255, 0, 190)
G r u p o E d i t o r i a l Megabyte
184
F I G U R A S (SHAPE):
0
Es un control que se utiliza para mejorar el aspecto de un formulario dibujando
figuras de diferente forma.
P R I N C I P A L E S P R O P I E D A D E S D E UN S H A P E :
A M E
Permite asignarle un nombre. Por defecto el nombre es Shapel, Shape2,
Shape3 etc. Segn el nmero de figuras que se dibujen en el formulario.
B A C K S T Y L E
Selecciona el estilo del fondo para la figura.
B O R D E R C O L O R
Asigna un color para el borde de la figura.
B O R D E R S T Y L E
Asigna el estilo del borde.
B O R D E R W I D T H
Para cambiar el ancho del borde.
F I L L C O L O R
Asigna el color que rellena la figura.
F I L L S T Y L E
Para indicar el estilo del llenado de la figura.
SHAPE
Para seleccionar el tipo de la figura que deseamos
I Shape lo - RectanaleHffSS*
0 - Rectangle
1 - Square
2 - Oval
3 - Circle
4 - Rounded Rectangle
5 - Rounded Square
___________________ ____ o
MI
W t& m VISUAL BASIC como debe ser.. .
LINEA (LINE):
Es un control que se utiliza para mejorar el aspecto de un formulario dibujando
lneas.
PRINCIPALES PROPIEDADES DEL CONTROL LINE:
AME
Permite asignarle un nombre. Por defecto el nombre es L i n e l , Line2, Line3
etc. Segn el nmero de lneas que se dibujen en el formulario.
BORDERCOLOR
Asigna un color para el borde de la lnea.
BORDERSTYLE
Asigna el estilo del borde.
BORDERWIDTH
Para cambiar el ancho del borde.
DRAWMODE
Asigna el modo de la lnea.
VISIBLE
Para indicar si se desea visualizar la figura.
Ejemplo :
El siguiente formulario presenta algunos ejemplos de figuras y lneas que se
pueden dibujar en una aplicacin.
O
\ \
Y\
\ \
Etiqueta dentro de la Ftguid
.......
18 6 G r u p o E d i t o r i a l Megabyte^
P I C T U R E B O X ( C A J A DE I M A G E N ) :
Es un control que se utiliza para mejorar el aspecto de un formulario
insertando dibujos o grficos. Estos grficos pueden ser Mapa de Bits, Iconos
o Metarchivos. Los grficos que se muestran en este control toman
automticamente el mismo tamao del control.
Los archivos mapa de bits, son imgenes representadas por pixeles.
Normalmente estos archivos tienen la extensin *.BMP.
Los Iconos son grficos que se utilizan normalmente para representar
aplicaciones minimizadas en Microsoft Windows. Estos archivos tienen la
extensin *.ICO.
Los Metarchivos representan grficos como lneas, crculos, etc., como
pixeles. Estos archivos normalmente tienen la extensin *.WMF. El este control
tambin puede mostrar archivos Metarchivos mejorados con la extensin *.JPG
y *.GIF.
Ud., puede utilizar cualquiera de los grficos que estn instalados en su
computadora o crear sus propios grficos utilizando por ejemplo el Paintbrush.
PRINCIPALES PROPIEDADES DE UN PICTURE BOX:
AME
Permite asignarle un nombre. Por defecto el nombre es Picturel, Picture2,
Picture3, etc.
APPEARANCE
Para seleccionar la apariencia del control.
AUTOSIZE
Para indicar si el grfico debe visualizarse con su tamao original o segn el
tamao del PictureBox.
BACKCOLOR
Selecciona un color para el fondo.
BORDERSTYLE
Asigna el estilo del borde.
DRAWSTYLE
Asigna el estilo de lnea de los crculos y cuadros creados con los mtodos grficos.
DRAWWIDTH
Asigna el ancho de lnea de los crculos y cuadros creados con los mtodos grficos.
E N A B L E D
Activa o desactiva el control.
Ufo VISUAL BASIC como debe ser.
FILLCOLOR
Asigna el color que se usado para llenar formas, tambin se usa para llenar
crculos y cuadros creados con los mtodos grficos Circle y Line.
FILLSTYLE
Asigna el estilo de relleno para los controles Shape, as como los crculos y
los cuadros creados con los mtodos grficos Circle y Line.
FONTTRANSPARENT
Indica si el texto y los grficos de fondo de un objeto Form o Printer, o de un
control PictureBox, se muestran en el espacio situado entre los caracteres.
FORECOLOR
Asigna el color para los crculos y los cuadros creados con los mtodos
grficos Circle y Line. Para que se active el color asignado, la propiedad
Drawmode debe tener el valor 13 - Copy Pen
PICTURE
Selecciona el grfico o dibujo que se desea insertar en el formulario. Ud.
debe buscar el directorio donde se encuentran estos grficos.
SCALEMODE
Indica mediante un valor la unidad de medida de las coordenadas del control.
l = T w i p , 2=Puntos, 3=Pixe l, 4=Carcter, 5=Pulgada, 6= M i l m e t r o ,
7=centmetro.
SCALEWIDTH
Indica el valor mximo del ancho de un control cuando se utiliza instrucciones
para grficos.
SCALEHEIGHT
Indica el valor mximo de la altura de un control cuando se utiliza instrucciones
para grficos.
VISIBLE
Para indicar si se desea visualizar el dibujo o grfico.
Ejemplo de una aplicacin con el control PictureBox.
n r m n i mi 11 miman m i n i n a ...........
i - Informacin dei Alumno...... -...................................
Alumno j
I Curso !
Nota N* 01 |
Nota N902 I
Promedio
Observacin
Opc/onesDispan/bfes:
Nuevo Calcular el Promedio Salir
188
G r u p o E d i t o r i a l Megabyte^
METODOS GRFICOS

Son instrucciones que operan sobre un objeto como un Form, PictureBox,


Printer y efecta operaciones de dibujo en tiempo de ejecucin como una
animacin o simulacin. Los mtodos grficos son:
CIRCLE
Permite dibujar crculos, una elipses o arcos. Sintaxis:
Circle (x,y), radio, color
Si se omite el color se toma el de la propiedad Forecolor. Los argumentos
X , Y es el punto central del crculo. Por ejemplo, la siguiente instruccin
dibuja un crculo en un control PictureBox de color rojo.
Picturel.Circle (1000,400), 250, RGB(255,0,0)
Las caractersticas del crculo dependen de los valores asignados a las pro
piedades: Drawstyle, Fillcolor, etc.
Para crear elipses o arcos utilice la sintaxis:
Circle (x,y), radio, color, inicio, fin, aspecto
Inicio y Fin, se utilizan para especificar en radianes las posiciones de inicio
y de f i n del arco. El intervalo para ambos es de -2 pi radianes a 2 pi radianes.
El valor predeterminado para inicio es 0 radianes; el valor predeterminado
para f i n es 2 * pi radianes.
Aspecto, es un valor de precisin simple que indica la relacin de aspecto
del crculo. El valor predeterminado es 1.0, lo que produce un crculo perfecto.
LINE
Permite dibujar lneas o rectngulos. Sintaxis:
Line (xl, yl) - (x2, y2), [color], [B][F]
X I y Y l , es el punto inicial de la lnea o rectngulo.
X2 y Y2, es el punto final de la lnea o rectngulo.
B Es opcional. Si se incluye, hace que se dibuje un cuadro usando las
coordenadas para especificar las esquinas opuestas del cuadro.
F Es opcional. Si se utiliza la opcin B, la opcin F especifica que el
cuadro se llena con el mismo color utilizado para dibujar el cuadro. No puede
utilizar F sin B. Si se utiliza B sin F, el cuadro se llena con los valores actuales de
FillColor y FillStyle. El valor predeterminado para FillStyle es transparente.
BBfa- VISUAL BASIC como debe ser.. .
La siguiente instruccin dibuja una lnea en el control PictureBox.
P ic tu re l. L in e (100, I00)-(800, 1000)
La siguiente instruccin dibuja un rectngulo en el control PictureBox.
Picturel.Line (100, 100)-(800, 1000), , B
El color de los grficos que se dibujan en el ejemplo, depende de la propie
dad Forecolor porque no se a especificado el color.
CLS
Borra el texto o los grficos dibujado en el formulario o en el control
PictureBox.
Por ejemplo la siguiente instruccin borra lo dibujado en el primer control
PictureBox.
P ict u r el . cls
P R I N T
Muestra un texto en un formulario o en el control PictureBox.
Por ejemplo la siguiente instruccin muestra el texto DIBUJANDO en el
primer control PictureBox.
Picturel.Print "DIBUJANDO
APLICACIN DESARROLLADA N 22
En la siguiente aplicacin se muestra dentro de tres controles Picturebox
crculos, lneas y rectngulos con un tamao, color y posicin al azar.
Finalizar
G r u p o E d i t o r i a l Megabyte ~4l p l i |
Mtodos Grficos
PASO N 1: D i b u j a r los controles:
Dibuje 3 PictureBox, un botn de comandos y un Timer.
i . Formi
Command!
PASO N 2: Escribir las instrucciones para los controles.
Debe crear 3 procedimientos para que cada uno de ellos dibuje crculos,
lneas y rectngulos.
Rem Definicin de las variables
Public maxcolumna, maxfila, color As Integer
Public coll, col2, fill, fil2 As Integer
Sub lineas()
maxcolumna = Picture2.ScaleWidth
maxfila = Picture2.ScaleHeight
coll = Int((maxcolumna - 1 + 1 ) * Rnd + 1)
fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = Int((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = Int((maxfila - 1 + 1 ) * Rnd + 1)
color = Int((14 - 1 + 1) * Rnd + 1)
Picture2.ForeColor = QBColor(color)
Picture2.Line (coll, fill)-(col2, fil2)
End Sub
P r i v a t e S u b T i m e r l _ T i m e r ()
c r c u l o s
l i n e a s
r e c t n g u l o s
End S ub
P r i v a t e S u b Fo r m_ Loa d( )
R a n d o mi z e
T i m e r l . I n t e r v a l = 100
End S u b
191
Sub crculos()
Dim columna, fila, margder, margsup, margderm As
Integer
Dim margsupm, maxradioder, maxradiosup, radio As
Integer
maxcolumna = Picturel.ScaleWidth
maxfila = Picturel.ScaleHeight
columna = Int((maxcolumna - 1 + 1 ) * Rnd + 1)
fila = Int((maxfila - 1 + 1 ) * Rnd + 1)
margder = Picturel.ScaleWidth 'mximo ancho
margsup = Picturel.ScaleHeight ' mxima altura
Re7i Obtiene el punto central del. control picture
margderm = Picturel.ScaleWidth / 2
margsupm = Picturel.ScaleHeight / 2
color = Int((14 - 1 + 1 ) * Rnd + 1) 'Color al azar
If columna>margderm Then
maxradioder=margder-columna
El se
maxradioder = columna
End If
If fila > margsupm Then
maxradiosup = margsup - fila
El se
maxradiosup = fila
End If
If maxradioder > maxradiosup Then
radio = maxradiosup
El se
radio = maxradioder
End If
Picturel.ForeColor = QBColor(color)
Picturel.Circle (columna, fila), radio
If (Int(Timer) Mod 10) = O Then
Picturel.Cls
Picture2.Cls
Picture3.Cls
Randomize
End If
End Sub
S i k > VISUAL BASIC como debe ser.. .
Sub rectngulos()
maxcolumna - Picture3.ScaleWidth
maxfila = Picture3.ScaleHeight
coll = Int((maxcolumna - 1 + 1 ) * Rnd + 1)
fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = Int((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = Int((maxfila - 1 + 1 ) * Rnd + 1)
color = Int((14 - 1 + 1) * Rnd + 1)
Picture3.ForeColor = QBColor(color)
Picture3.Line (coll, fill)- (col2, fil2), , B
End Sub
192 G r u p o E d i t o r i a l Megabyte <
BUSCANDO GRAFICOS EN LA COMPUTADORA
Normalmente los grficos que Ud. puede insertar se encuentran en la carpeta
Graphics que se encuentra dentro de Vb. Tambin puede insertar grficos
del Microsoft Office que normalmente se encuentran en la siguiente ruta:
C:\Archivo de Pmgrgmas\Microsoft Office\Clipart\Popular
Si desea buscar en el disco de su computadora todos los grficos que puede
insertar, siga los siguientes pasos:
Haga un Click en el Botn Inicio de la barra de
tareas del Windows y elija la opcin Buscar y
luego Archivos o Carpetas.
Archivos o carpetas...
PC...
^ Mediante Miciosoft Outlook...
l ~1
Programas
----- 3
Documentos
m
Configuracin
\ Buscar |
1 ^
Ayuda
Ejecutar...
y j
Suspender
^ j j
Apagar el sistema...
| i ; H jniciqi
2. Vi s u a l i za r l a s i g u i e n t e v e n t a n a :
m Buscai: todos los archivos
Archivo Edicin Ver Opciones Ayuda
Nombre y ubicacin | Fecha de modificacin ] Avanzadas j
Nombre:
Buscar en: |Mi PC -wj Examinar.,
incluir subcarpetas
Buscar ahora |
Nueva bsqueda
A
En la caja de textos N O M B R E : escriba un asterisco ( * ) y luego un punto
seguido de la extensin del tipo de archivo grfico que desea buscar.
Por ejemplo: Para buscar todos los archivos grficos que tengan la extensin
BMP, se debe escribir: *.BMP
Si desea buscar varios tipos de archivos grficos a la vez, indquelos separados
por un espacio en blanco.
Por ejemplo: para buscar todos los grficos con la extensin BMP, ICO y
WMF, debe escribir: *.BMP *.ICO * . W M F
En la caja de textos BUSCAR EN: seleccione M I PC para que los archivos
grficos se busquen en todos los discos de su computadora. As:
Arc hiv o Edicin Ver Opciones Ayda
Nombre y ubicacin j Fecha de modificaci n | Avanzadas j
--------------- 3
H- VISUAL BASIC como debe ser..
Nombre: |*.BMP " ICO X.WMP
Buscar en: |Mi PC Examinar..
W i n c l u i r subcarpetasj
Buscar ahora I
Nueva bsqueda
A
3.
Haga click en el botn BUSCAR A H O R A para que empiece la bs
queda de todos los archivos que tienen las extensiones indicadas (ar
chivos grficos). Por cada archivo que se encuentra se visualiza la ruta
exacta donde est ubicado para que al utilizar la propiedad PICTURE
Ud., pueda buscar la carpeta y ubicarlos rpidamente.
H Buscar: archivos con nombre .BMP .ICO " WMP
Archivo Edicin Ver Qpciones Ayjd
Nombre y ubicacin j Fecha de modificacin ] Avanzadas j
|qx i
Nombre |- BMP ICG WMP
Buscar jMiPC
fv? incluir subcarpetas
~Ei
I Buscar ahora
I
Jueva bsqueda I
I En carpeta | Tama... | Tipo Modificado *-I
Notel 6.ico
Notel 7.ico
Notel 8.ico
PenOI .ico
Pen02.ico
^*Pen03.ico

C:\Archivos de prograrrtaSDevStudioWBSGraphi...
C:\Archivos de programaSDevStudioWBSGraphi...
C:\Archivos de prograrna\DevStudo\VB\Graphi...
C:\Archivos de programa\DevStudio\VB\Graphi...
C:\Archivos de programa\DevStudioW/B\.Graphi ..
C:VArchivos de programa\DevStudio\VB\Graphi
2KB Icono
2KB Icono
2KB Icono
2KB Icono
2KB Icono
2KB Icono
20/02/97 12:00 AM
20/02/97 12:00 AM
20/02/97 12:00 AM -----1
20/02/97 12:00 AM
20/02/97 12:00 AM
20/02/97 12:00 AM |
1616 archivo(s) encontrado(s)
NOTA:
Para visualizar la ruta completa de cada archivo ample la columna En Carpeta.
Archivos que se muestren depende de los que tenga instalados en su computadora.
, n ,
194 G r u p o E d i t o r i a l Megabyte^
I M A G E ( I M A G E N ) :
Este control permite mostrar grficos en un formulario, similar al control
PictureBox. Se diferencian porque el control Imagen no tiene ninguno de
los mtodos grficos ni todas las propiedades y otros mtodos que el control
PictureBox tiene.
El tamao del grfico que se almacena en este control no depende del
tamao del control, si no que utiliza su propio tamao. La propiedad Stretch
determina si el tamao del grfico depende del tamao del control.
T I M E R ( R E L O J ) :
Es un control que se utiliza para poder ejecutar instrucciones cada cierta
cantidad de segundos. Puede ayudar a mejorar el aspecto de un formulario.
PRINCIPALES PROPIEDADES DE UN TIMER:
A M E
Permite asignarle un nombre. Por defecto el nombre es T i me rl , Timer2,
Timer3 etc. Segn el nmero de controles que se dibujen en el formulario.
E N A B L E D
Permite que el control se encuentre activo o no.
I N T E R V A L
Indica el tiempo en que se deben ejecutar las instrucciones. El valor 1000
indica cada segundo.
Las instrucciones que queremos que se ejecuten cada cierto tiempo se deben
escribir en el Evento T i m e r de este control.
VISUAL BASIC como debe ser.. <
APLICACIN DESARROLLADA N 23
En la siguiente aplicacin se utilizan funciones tratadas anteriormente y
ejemplos de cmo mejorar el aspecto del formulario:
FECHA : J21 -07-1S
-Ve ni a de Productos :
Nombre del Producto JJ-
Precio Unitario
Cantidad T
I.G.V. J
Total I-
Lo que puede hacer :
^ I
J j u e v o ] f e s u l t a d o s
PASO N 1: DIBUJAR LOS CONTROLES:
Labell Label2
Framel----------------
Label5 (Textl
Label6 |jext2
Label7
| t ext3
Label3 Label4
Label8 Labell 1
Label9 Labell 2
Labell 0 Labell 3

-Frame2------------
Command! Command2 Command3
PASO N 02: ASIGNAR LAS PROPIEDADES.
Asgnele las propiedades a cada uno de los controles que se muestran en el
formulario, de tal manera que tenga un aspecto similar a la aplicacin planteada.
NOTA:
Los botones de comandos deben tener en su propiedad S YTLE el valor 1Grfico y
en su propiedad PICTURE asgnele los grficos indicados.
Los nombres de los grficos en el orden que se muestran en la aplicacin a desarrollar
son: PAINT.BMP, PREVIEW.BMP, POINT4.1CO, que normalmente se encuentran
en la siguiente carpeta: Archivos de Programa\DevStudio\Vb\Graphics
^|||jj|f^ 196 G r u p o E d i t o r i a l Megabyte
T
> CAPITULO IV: Mejorando el Aspecto de los Formularios ^
El grfico del control PICTUREBOX se llama DINERO.WMF, que
normalmente se encuentra en la carpeta: Archivos de ProgramaSMicrosoft
O ffice\Clipart\Popular
Bsquelos, y si no los encuentra practique insertando otros grficos.
A las etiquetas donde se muestran la fecha y hora no les asigne ninguna
propiedad, porque se visualizan cuando se ejecuta el programa.
El control Timer lo puede dibujar en cualquier parte del formulario porque
cuando ejecuta la aplicacin no se visualiza y tiene un solo tamao.
PASO N 03: Escribir las instrucciones de cada control.
In s t r u c c i o n e s d e l B. Ca l c u l a r
Prvate Sub Command2_Click()
Dim ST, IGV, TPAs Single
ST = Val(Text2) * Val(Text3)
IGV= ST* 18/100
TP = ST+IGV
Labell 1=Format(ST, "###,##0.00")
Labell2=Format(IGV, "###,##0.00")
Labell3=Format(TP, "###,##0.00")
End Sub
In s t r u c c i o n e s Fo r m Ac t i v a t e
Prvate Sub Form_Acvate()
Textl = ""
Text2 = ""
Text3 = ""
Labelll = ""
Labell2 = ""
Labell3 = ""
Textl.SetFocus
End Sub
In s t r u c c i o n e s d e l b o t n Nu e v o .
Private Sub Commandl_Click()
Form_Activa te
End Sub
In s t r u c c i o n e s d e l b o t n Sa l i r
Prvate Sub Command3_Click()
Dim R As Integer
R = MsgBox("Est seguro de salir", 36, "Cuidado")
If R = 6 Then End
End Sub
Instrucciones del Evento LOAD: Visualizan la fecha del sistema en la etiqueta 2, y la
palabra VENTAS en el Caption del formulario y activan las instrucciones del control TIMER.
P r v a t e S u b Fo r m_ Lo a d ( )
L a b e l 2 = F o r m a t ( D a t e , " d d - m m - y y y y " )
F o r m l . C a p t i o n = "VENTAS" + S p a c e ( 50)
T i m e r 1 . I n t e r v a l = 100
End S ub
Instrucciones del control TIMER: Visualizan la hora en la etiqueta 4 y mueven la palabra
VENTAS en el ttulo del formulario.
P r i v a t e S u b T i m e r l _ T i m e r ()
L a b e l 4 = F o r m a t ( T i m e , " h h :mm: s s AMPM")
Forml.Caption = Mid(Forml.Caption, 2) + LeftfForml.Caption, 1)
End S ub
1 9 7 i n *
APLICACIN DESARROLLADA N 24
En esta aplicacin se utiliza la instruccin P R I N T que permite escribir
mensajes directamente en el formulario y TAB para dejar espacios antes
de imprimir.
Esta aplicacin es una pantalla de presentacin con un texto de fondo, una
etiqueta cuyo contenido va modificando su tamao y un grfico que se mueve
de derecha a izquierda.
l^ VISUAL BASIC como debe ser.. .
PANTALLA DE PRESENTACION
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser..
Visual Basic como debe ser.
V IS U A L
IA%I4
HSI3E3
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser..
Visual Basic como debe ser. OK
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser...
Visual Basic como debe ser... Juan Jos Castaeda Len
Visual Basic como debe ser... Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
j Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
Juan Jos Castaeda Len
PASO N 01: Debe dibuj ar en el formulario una etiqueta(Label), un
grfico(picturebox), un reloj (timer) y un botn de comandos (command). A
la etiqueta, al botn de comando y al formulario, modifqueles su propiedad
Caption como se muestra en la figura anterior:
i. Form!
Labell
a m
G rupo Editorial M t
PASO N 2 02: Escribir las instrucciones.
Def inir las variables a utilizar en la seccin de declaracin del formulario.
101 Project! - Formi (Code)
r M
|(General) jrJ 1(Declarations)
Dirn T, N As Irxteger
:
-ill jlP
Escribir las instrucciones en el evento ACTIVATE del formulario para que
se ejecutan cuando el formulario se activa. Estas instrucciones muestran un
texto de fondo en el formulario.
Prvate Sub Form_Activate()
Dm X As Integer
'Ancho del Formulario
Forml.Wdth - 6400
'Altura del Formulario
Forml.Height = 3330
Labell.AutoSze = True
For X = 1 To 35
Print Tab(X)"Visual Basic como debe ser. . .
Print Tab(60 - X); "Juan Jos Castaeda Len"
Next X
'Posicin inicial del Grfico
T = 6000
'Puesta en marcha del Reloj
Timerl.Interval = 1 0
End Sub
Instrucciones del Evento TIMER
Prvate Sub Timerl_Timer ()
N = N + 1
If N > 30 Then
N = 1
End If
T = T - 50
If T < -600 Then
T = 6000
End If
Picturel.Left = T
Labell.FontSize = N
End Sub
El botn O K debe tener la instruccin END.
IMAGELIST (LISTA DE IMAGENES):
S 1
Este control permite almacenar imgenes o grficos con la extensin ICO
(*.ICO) y con la extensin BMP ( *.BMP) en la memoria de la computadora
para poder manipularlos en nuestro programa.
Si no se encuentra en la caja de herramientas debe seguir cualquiera de los
siguientes pasos:
1. En la caja de herramientas haga click con el botn derecho y elija la
opcin COMPONENTES.
2. De la opcin Project elija COMPONENTES.
3. Pulse las teclas <CRTL> + <T>.
De la lista de componentes haga click en la casilla del control llamada:
Microsoft Windows Common Controls 5.0.
Tambin se puede llamar este control, si elegimos la opcin CONTROLES
DE VB EDICION EMPRESARIAL, en el momento de ingresar a Visual
Basic o crear un nuevo proyecto.
PRINCIPALES PROPIEDADES DE UN IMAGELIST:
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza la siguiente ventana con tres hojas
o fichas: General, Imgenes y color.
| ! l i > VISUAL BASIC como debe ser.. .
Pginas de propiedades
j n * r . * ! j ] I m g e n e s J Co l o r
He i g h t : |
W i d t h : f
r - 1 6 X 1 6
32 x 32
r - 4 8 X 4 8
Custom
1 ^ JUseMaskColor
t m \
A c e p t a r | C a n c e l a r | A y u d a
La hoja General, permite asignar la altura y el ancho para los grficos que
se van a almacenar en este control. Estos valores se pueden cambiar
solamente cuando el control no tenga ningn grfico almacenado.
200 G r u p o E d i t o r i a l Megabyte
El contenido de la Hoja Imgenes es:
wn
G e n e r a l [ i m g e n e s |) C o l o r
Imagen actual
Index:
h &ey: 1
lag: 1
Imgenes:
U
Insertar imagen.. ! Quitar imagen I Nmero de imgenes:
Aceptar j Cancelar
En esta hoja podemos adicionar o eliminar ms grficos del control imagelist.
El botn Insertar Imagen permite buscar y seleccionar una imagen para
adicionarla.
El botn Quitar Imagen permite borrar una imagen.
En la caja de textos Key, se puede asignar uno o ms caracteres que van a
identificar a cada imagen almacena en el control.
En la caja de textos Tag se puede escribir un texto el cual queda almacena
do para poder utilizarlo en cualquier momento si lo deseamos.
En la caja de textos Index se visualiza el nmero de imagen activa y permi
te activar a cualquier otra imagen.
En la etiqueta Nmero de Imgenes se visualiza la cantidad de imgenes
que tiene el control Imagelist.
Ejemplo de algunos grficos que puede insertar en el control Imagelist:
Pginas de propiedades
General Imgenes | col or
Imagen actual
index: [ g Key: p
lag: r
Imgenes:
LE]
[ insertar imagen... | Quitar imagen | Nmero de imgenes: J?
A c e p t a r j C ancelar j Aplicar A y u d a
201
3 ^ VISUAL BASIC como debe ser.
El contenido de la Hoja Color es:
Pginas de propiedades
General ) Imgenes Color j
Propiedades: Conjunto de colores:
r - T
laskColor
j Colores estndar
Paleta de colores:
| Cara del botn g ] - i
Escritorio
m
Espacio de trabajo de la aplicacin
Fondo de la ventana
jlJ
Editar control personalizado...
A c e p t a r ~| C a n c e l a r A p lica r
BackColor permite asignar un color de fondo y MaskCoIor asigna un color
para la mascara del control.
El control tambin tiene la propiedad UsemaskColor para establecer un valor
que determina si el color asignado en la propiedad MaskCoIor es utilizado
como una mscara.
MAN ETO DE L AS I M G E N E S D E L C O N T R O L I M A G E L I S T
Para obtener cualquiera de las imgenes que se encuentran almacenas en
el control Imagelist se utiliza la siguiente sintaxis:
Control_ImageList.Listlmages(ndice).picture
El ndice es un valor que indica el nmero de la imagen que se quiere
obtener.Por ejemplo, para mostrar en el control Picture 1 la imagen N 3 del
control Imagelist N 1 se escribe.
Picturel = ImageListl.Listlmages(3).Picture
Para saber cuantas imgenes tiene el control ImageList utilice la propiedad
Count. Por ejemplo, la siguiente instruccin almacena en la variable N, la
cantidad de imgenes del control Imagelist 1.
N = ImageListl.Listlmages.Count
G r u p o E d i t o r i a l Megabyte <|| f |
2 0 2
>CAPTULO IV: Mejorando el Aspecto de los Formularios
APLICACIN DESARROLLADA N 25
Inserte en el control Imagelist una cantidad determinada de imgenes para
que luego se muestren una a continuacin de otra al hacer click en el botn
M O S T R A R S I G U IEN T E. Dibuje en un formulario un control Imagelist,
un Picture y dos command.
E H J . MUESTRA DE IMAGENES
Mostrar Siguiente
SALIR
Una vez que insert imgenes en el control ImageListl, use la propiedad
Personalizado, escriba las siguientes instrucciones en el botn Mostrar Siguiente:
Prvate Sub Commandl_Click()
S t a t i c P A s I n t e g e r
P = P + 1
I f P > I m a g e L i s t l . L i s t l m a g e s . C o u n t Then
P = 1
End I f
P i c t u r e l = I m a g e L i s t l . L i s t l m a g e s ( P ) . P i c t u r e
End Sub
Las instrucciones anteriores permiten mostrar las imgenes una a continuacin
de otra y cuando se llega a la ultima muestra nuevamente la primera.
FUNCION LOADPICTURE
Es una funcin que permite colocar en un control Image o PictureBox un
grfico. Su sintaxis es:
Nombre_del_Control=loadpicture (ruta y nombre de grfico)
Ej empl os:
Picturel = LoadPicture( "graphics\icons\computer\key04. ico ")
Image 1 = LoadPicture("graphics\icons\computer\key04.ico")
Picturel = LoadPicture( "c:\vb\metafiles\computer.wmf")
MUY IMPORTANTE
Ud., debe escribir correctamente la ruta de donde se encuentra el grfico que desea
colocar en el control PictureBox o en el control Image.
203
VISUAL BASIC como debe ser.. .
CALENDAR: (CALENDARIO)
Es un control que se utiliza para manejar la fecha del sistema de una manera
personalizada. Este control muestra en el formulario un calendario con la fecha
actual seleccionada y nos permite buscar otra fecha en cualquier mes o ao. De la
lista de componentes haga click en la casilla del control llamado: Mi c r o s o f t c a
l e n d a r Co n t r o l .
PRINCIPALES PROPIEDADES DE UN CALENDAR:
CUSTOM
Permite personalizar el control Calendar.
DAY
Obtiene el da de la fecha seleccionada y permite seleccionar un
nuevo da.
DAYFONTCOLOR
Asigna el color para los nombres de los das.
DAYLENGTH
Indica la forma de visualizar el nombre de los das de la semana.
FIRSTDAY
Permite indicar el primer da de la semana a visualizar en el
calendario.
GRIDCELLEFFECT
Cambia el estilo de las lneas del calendario.
GRIDFONTCOLOR
Asigna un color para los das del mes.
MONTH
Obtiene el nmero del mes seleccionado y permite seleccionar un
nuevo mes.
MONTHLENGTH
Indica la forma de visualizar el nombre de los meses.
SHOWDATESELECT
Permite que se muestren los botones para seleccionar una nueva
fecha del calendario.
SHOWDAY
Permite que se muestren los nombres de los das de la semana en
el calendario.
SHOWVERTICALGRID
Permite visualizar las lneas verticales del calendario.
VALUE
Permite obtener la fecha seleccionada del calendario.
YEAR
Obtiene el ao de la fecha seleccionada y permite seleccionar un
nuevo ao.
2 0 4 G rupo E ditorial M e g a b y t e ^ ^
' CAPITULO IV: Mejorando el Aspecto de los Formularios
APLICACIN DESARROLLADA N 26
La aplicacin muestra la fecha seleccionada en una etiqueta, pero en letras.
ig g ig w ag ta i'gi'ai y; i is tii ggggj
O ctu b re 1998|octubre ~\ j-ms _-J
Dom Lun Mar Mi Jue Vie Sb
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 .............i
18 19 20 21 22 23 24
25 26 27 28 29 30 31
4
6
DESARROLLO DE LA APLICACIN
Para desarrollar esta aplicacin dibuje en el formulario el control Calendar y dos
etiquetas. Luego se debe programar en el evento Click del control Calendar.
El signo dlar ($) al final de una variable indica que la variable es de tipo String.
INSTRUCCIONES DEL CONTROL CALENDAR.
Prvate Sub Calendarl_Click()
Labell = Calendar1.Valu
diasemana = WeekDay(Labell)
dia$ = Day(Labell)
mes = Month(LabellJ
ao$ = Year(Labell)
Select Case diasemana
Case
Case
Case
Case
1 :
2 :
3:
4:
diasem
diasem
diasem
diasem
"Domingo"
"Lunes"
"Martes"
"Mi rcol es "
Case 5: diasem = "Jueves"
Case 6: diasem = "Viernes"
Case 7: diasem = "Sbado"
End Select
Select Case mes
Case 1: nmes = "Enero"
Case 2: nmes = "Febrero"
Case 3: nmes = "Marzo"
Case 4: nmes = "Abril"
Case 5: nmes = "Mayo"
Case 6: nmes = "Junio"
Case 7: nmes = "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes = "Setiembre"
Case 10 : nmes = "Octubre"
Case 11 : nmes = "Noviembre
Case 12 : nmes = "Diciembre
End Select
Label2 = diasem
End Sub
+ dia$ + " de " + tunes + " de " + ao$
VISUAL BASIC corno debe ser.. .
STATUSBAR (BARRA DE ESTADO)
' ts;;::
r ~ r
Este control se utiliza para mostrar una barra de estado en un formulario
normalmente en la parte inferior en la cual se puede mostrar informacin
como por ejemplo la fecha y hora del sistema, el estado del teclado, o
cualquier otro tipo de mensaje.
Esta informacin se visualiza en determinados espacios dentro de la barra
de estado llamados paneles los cuales pueden ser hasta 16.
Si no se visualiza en la caja de herramientas, haga click en la casilla del
control llamado: Microsoft Windows Common Controls 5.0 de la lista
de componentes.
PRINCIPALES PROPIEDADES DE UN STATUSBARS:
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza la siguiente ventana con cuatro hojas
o fichas: General, Paneles, Fuente e Imagen.
El contenido de la hoja General es:
a m a r
General j Paneles ] Fuente | Imagen j
Style: H f WBfflllTO
MousePointer: j o - c c D e a u l t
G imple T ext.
QLEDrop Mod e: j o - c c O L E D r o p N o n e
E n able d fs? Sh owTi ps
A c e p t a r j Cancelar | Aplicar, Ayu da
206
G r u p o E d i t o r i a l Mega
CAPITULO IV: Mejorando el Aspecto de los Formularios
STYLE
Permite indicar el estilo de la barra de estado. El estilo 0-strNormal, muestra
la barra de estado con todos los paneles asignados y el estilo 1-sbrSimple
muestra slo el texto escrito en la propiedad Simple Text.
MOUSEPOINTER
Se utiliza para indicar la forma que tendr el puntero del mouse cada vez
que ste pase por la barra de estado. Si desea como puntero del mouse un
grfico seleccionado por Ud. Debe elegir la ltima opcin (99-ccCustom).
La seleccin del grfico los puede hacer en la pgina Imagen como se ver
ms adelante.
SIMPLE TEXT
Permite escribir un texto el cual se visualiza en la barra de estado cuando
en la propiedad Style se elige el estilo 1-sbrSimple.
OLEDDROPMODE
Devuelve o establece el modo en que un componente de destino realiza las
operaciones de colocacin.
ENABLED
Indica si la barra de estado debe estar activada o desactivada.
SHOWTIPS
Indica si la barra de estado debe mostrar el texto de ayuda que se escribe
en la propiedad Tooltiptext de la hoja Paneles.
El contenido de la hoja Paneles es:
Ge n er al Paneles j F u e n t e ) I m a ge n ]
Incjex:
Te x t:
T o o l T i p T ext:
Key:
T aa
Alignment:
Sfttle:
Bev el :
A u t o S ize:
f p an e l j Quitar panel
Mnimum W i d t h :
A c t u a l W i d t h :
Imagen
11440.00
11440 00
0 - s b r T e x t
1 - s b r l n s e t 'W I
E xaminar...
O - s b r N o A u t c ^ ~ | E n a b l e d Jv'
J J
A y u d a
INDEX
Visualiza o selecciona cualquiera de los paneles creados en la barra de estado.
TKXT
Permite escribir un texto el cual se va a visualizar en el panel siempre y cuando la
propiedad Style de esta hoja tenga el valor 0-sbrText.
TOOLTIPTEXT
Permite escribir un texto de ayuda que se visualiza cuando el puntero del mouse se
encuentre en el panel siempre y cuando la propiedad Show Tips de la hoja General
se encuentre activada.
KEY
Permite asignar uno o ms caracteres que van a identificar a cada panel. No acepta
nmeros.
TAG
Permite escribir un texto el cual queda almacenado para poder utilizarlo en cualquier
momento si lo deseamos.
ALIGNMENT
Alinea el texto o el grfico dentro del panel a la izquierda, centro o derecha.
STYLE
Permite seleccionar el tipo de informacin que desea mostrar en el panel. Si desea
visualizar el texto escrito en la propiedad Text, debe elegir el estilo 0-sbrText. Aqu
puede elegir que se muestre la fecha u hora del sistema, el estado del teclado, etc.
BEVEL
Selecciona el tipo de borde del panel (sin relieve, bajo relieve o en alto relieve).
AITOSIZE
Para indicar si el tamao del panel debe estar de acuerdo al tamao de lo que
contiene o no.
MINIMUM WIDTH
Para indicar el ancho mnimo que puede tener el panel.
EXAMINAR
Permite seleccionar un grfico que va a acompaar a la informacin que mostramos
en el panel. Ud., debe conocer previamente la ruta de la carpeta donde se encuen
tran los archivos de grficos en su computadora.
Una de las rutas donde puede encontrar archivos de grficos es:
C:\Archivos de Programa\DevStudio\Vb\Graphics'Sicons Y luego en cualquiera
de las carpetas que contiene.
SIN IMAGEN
Borra el grfico asignado al panel
ENABLED
Para indicar si el panel debe estar activado o no.
VISIBLE
Para indicar si el panel debe estar visualizar o no.
S S t t VISUAL BASIC como debe ser.. .
208 G r u p o E d i t o r i a l Megabyte
<CAPITULO IV: Mejorando el Aspecto de los Formularios^
El contenido de la hoja Fuente es:
- \
General ] Paneles Fuente Imagen )
Propiedades: Fuente: Xamao:
MS Sans Serif
z] I826 J
Efectos
r Negrita r Subrayado
1 Cursiva r T a chado
T exto de ejemplo:
MS Sans Serif
A c e p t a r |
Permite cambiar el tipo
de letra, tamao y
asignar efectos al texto
que se muestra en la
barra de estado.
El contenido de la hoja Imagen es:
G e n e r a l | P a n e l e s j F u e n t e I m a g e n j
Vista previa: Propiedades:
. ______
Examinar...
VJMzi
i
A c e p t a r I Ca n c e l a r
J ____ I
--------
Esta hoja permite
seleccionar un grfico el
cual va a reemplazar al
puntero del mouse cundo
lo ubiquemos en cualquier
parte de la barra de estado.
El grfico que Ud. elija se
visualiza siempre y cuando
se halla seleccionado la
opcin 99-ccCustom de la
propiedad MousePointer
de la hoja General..
EJEMPLO DE UNAAPLICAGON USANDO ELCONTROLSTATUSBAR
tm iSMmmn i ^'mrr T - idi *i
S I S T E M A
D E
1
V E N T A S
?
/ X 8/ 0 5 / 9 9 Jos Castaeda 4 42 AM
I
209
Asigne las propiedades al control Toolsbar de tal manera que tenga el mismo
aspecto de la aplicacin mostrada. Tambin se puede programar dentro de
este control, por ejemplo: Se desea que al hacer cl i c k en la calculadora, se
active la calculadora del windows.
La propiedad INDEX del PANEL nos permite saber en cul de ellos el
usuario hizo click. A l hacer click en el primer panel la propiedad Index toma
el valor 1, al hacer cli ck en el segundo panel, la propiedad Index toma el
valor 2, etc.
Entonces las siguientes instrucciones para el control son:
Prvate Sub StatusBarl _PanelClick(ByVal Panel As ComctlLib. Panel)
If Panel.Index = 4 Then
Shell "c:\windows\calc.exe", 1
End If
End Sub
Si Ud., ha asignado uno o ms caracteres en la propiedad KEY, entonces
tambin puede identificar el panel donde se hizo C l ic k , mediante esta
propiedad. Por ejemplo: Si ha asignado las letras CAL en la propiedad KEY
del panel nmero 4 (calculadora), entonces puede escribir tambin las
siguientes instrucciones en el control:
Prvate Sub StatusBar l_PanelClick(By Val Panel As ComctlLib.Panel)
I f P a n e l . K e y = "CAL" Then
S h e l l " c : \ w i n d o w s \ c a l c . e x e , 1
End I f
End Sub
NOTA
SHELL permite ejecutar programas (*.exe) desde el Visual Basic y el valor l le
indica que el programa se debe ejecutar con el tamao de ventana normal. Debe
especificar correctamente la ruta y el nombre del archivo.
CALCULADORA DEL WINDOWS 3*
Edicin Ver Ayuda
^ lll|> VISUAL BASIC como debe ser.. .
r ~
B a c k 1 CE 1
C 1
MC 8 9 / s q r t
M R 4 5 6 %
MS 1 2 3 1 / x
M+ 0 +h f
G r u p o E d i t o r i a l Megabyte
210
PANTALLAS DE PRESENTACIN
1. Pantalla desarrollada en Power Point.
>CAPITULO IV: Mejorando el Aspecto de los Formularios ^
' rm *
o t t j R a n r r j i t
T R A N S P O R T S . A
f; sai is 1
Ud., puede disear su pantalla en Power Point y pegarla en su formulario o
activarla. Si usted pega la pantalla, sta se visualizar esttica (sin los
movimientos o efectos asignados) Para ello una vez que termin de disearla,
presntela (Click en el Botn P R E S E N T A C I O N CON DI APO S I TI V A) y
pulse IMPR PANT (Print Screen), luego vaya al Visual Basic y,haga
cli ck en cualquier parte del formulario y pulse CTRL+V. Si desea borrar la
pantalla, borre el contenido de la propiedad Picture del formulario.
Para activar una pantalla en Power Point desde Visual Basic y visualizar
los movimientos y efectos que le asign, puede utilizar el control OLE.
EL CONTROL OLE
Permite insertar objetos. A l dibujarlos se visualiza una caja de dilogo donde
se puede elegir el objeto a insertar. Si puls CANCELAR y sali de la caja
de dialogo, para regresar haga un click con el botn derecho del mouse en
el control OLE y elija la opcin INSERTAR OBJETO.
E l
I In s e l l a i o b j e t o
... . ........ . S I
Tips de objeto: I Aceptar
< Crear Quevo
Adobe-Table 2.5
Clip de multimedia
Corel PHOTO-PAINT 5.0 Imagen
CorelCHART! 5.0 Chart
CorelDRAW! 5.0 Grfico
CorelDRAW! 5.0 Presentation Exchar ,
CorelEquation! 1.0 Equation .TI
Cancelar
f " Crear desde archivo
I postrar como icono
Resultado
Inserta un nuevo objeto deAdobe Photoshop
Image en el documento.
La opcin Crear desde Archivo permite seleccionar el archivo previamente
creado
ACTIVAR UNA PRESENTACIN EN POWER POINT
Una vez creada y grabada la presentacin en Power Point, active el Visual
Basic y en un formulario en blanco pegue el control OLE y en la ventana que se
visualiza elija la opcin Crear desde Archivo, luego haga clic en el botn Exa
minar para buscar y seleccionar la presentacin creada en Power Point ha
ciendo clic en el botn Insertar y luego en Aceptar. En el evento Form Load
del formulario debe escribir:
P r i v a t e Sub Form_Load()
O l e l . V i s i b l e = Fa l s e
O l e l . A c t i n o = 7
End Sub
2. Muestra la palabra SISTEMA letra por letra.
VISUAL BASIC como debe ser.. .
SISTEMA
i c s ^ ' l
o* ..j
En un formulario debe crear un array de 7 etiquetas. Para ello, Dibuje la etiqueta
N 01, luego pulse CTRL+C y luego CTRL+V hasta completar las siete (desde
Labell(O) hasta Labell(6)). Tambin debe dibujar un control TIMER y un
botn de comandos el cual tiene el grfico llamado: POINT4.ICO (opcional).
A cada etiqueta debe asignarle una letra de la palabra SISTEMA. Labe] 1(0)
debe tener en su propiedad Caption la letra S, L a b e l l ( l ) la letra I, etc.
INSTRUCCIONES:
Definir las variable en la seccin de declaracin del formulario
P u b l i c P As I n t e g e r
P u b l i c FI N A s I n t e g e r
Instrucciones del procedimiento FORM ACTIVATE
Prvate Sub Form_Activate()
Dim X As Byte
Formt. WindowState = 2 Maximiza el Formulario
For X = OTo 6
Labell(X).FontName = "Courer New" Tipo de letra
Labell(X).FontSize = 72 'Tamao de letra
Labell(X). Visible = False Oculto
Labell(X).BackStyle = 0 Transparente
Labell(X).AutoSize = True
Next X
FIN = 2500 Ubicacin de la primera letra
Commandl. Visible = False Oculta el Botn OK
Timerl Anterval = 100
End Sub
- *- Grupo Editorial Megabyte
7
CAPTULO IV: Mejorando el Aspecto de los Formularios
Instrucciones del control TIMER
Private Sub TimerI JTimer()
Static N As Byte
Labell(N). Visible = True Muestra de la letra
Labell(N).Top = 2000 'Ubicacin vertical
Labell(N).Left = P Ubicacin horizontal
P = P + 500 Velocidad de movimiento de las letras
I fP > FIN Then
FIN = FIN + Label 1(N). Width + 200
P = 0
N= N+ 1
End I f
I f N > 6 Then
Timerl.Intenal = 0
Commandl .Visible - True
End I f
End Sub
3. Mueve las palabras y oscurece y aclara el formulario
1-JSlJ'
. P R ESEN T A C I O N
BIENVENIDOS
AL SISTEMA
Dibuje en el formulario dos
etiquetas, dos control Tirner, un
PictureBox y un botn de
comandos. A las etiquetas,
PictureBox y botn de
comando asgneles las
propiedades como se muestran
en la figura anterior.
Labell
Label2
Commandl
De f i n i r l a s v a r i a b l e e n l a s e c c i n d e d e c l a r a c i n d e l f o r m u l a r i o
P u b l i c N, I A s I n t e g e r
Public sw, CLARO As Boolean
m m
In s t r u c c i o n e s d e l pr o c e d i m i e n t o Fo r m Ac t i v a t e
P r v a t e S u b F o r m _ A c t i v a t e ()
F o r m l . W i n d o w S t a t e = 2
T i m e r l . I n t e r v a l = 100
T i m e r 2 . I n t e r v a l = 100
End Sub
Instrucciones del TIMER1
Suben y bajan las palabras
Prvate Sub Timerl_Timer()
Ifsw Then
N = N - 200
If N < 0 Then
sw = False
Endlf
Else
N = N + 200
IfN > 7000 Then
sw = True
Endlf
Endlf
Labell.Top = N
Label2. Top = 7000 - N
End Sub
Practique cambiando la posicin del de la variable I en RGB.
Existen muchas otras formas de crear pantallas de presentacin y muchas
veces depende de la creatividad de cada uno.
Tambin puede insertar otros objetos como por ejemplo: imgenes de
Microsoft, galera de imgenes, Hojas y grficos de Excel etc.
Para ello, haga click con el botn derecho del mouse en cualquier parte de la
caja de herramientas y elija la opcin componentes y de la pantalla que se
visualiza elija la hoja OBJETOS INSERTABLES.
VISUAL BASIC como debe ser.. .
Instrucciones del TIMER2
Aclaran y oscurecen el formulario.
Prvate SubTimer2_Timer()
If CLARO Then
1= 1-5
If 1= 0 Then
CLARO = False
End If
Else
1= 1+ 5
If I = 255 Then
CLARO = True
End If
End If
Form 1.BackColor=RGB(0,1,0)
End Sub
Selected Items Only
Adobe PhiotoshopImaj-
Location: \\COM13\D\ADOBE\PHOTOSHP.EXE
= J
214
Grupo E d i t o r i a l Megabyte'1
HSCROLL Y VSCROLL (Barras de Desplazamiento)
j j i l
i l
i l
Las barras de desplazamiento son controles que se pueden utilizar para
varias aplicaciones como por ejemplo para visualizar informacin cuando
se encuentra en un control donde no se puede visualizar toda al mismo
tiempo, para incrementar o disminuir el valor de una variable, etc.
Sus p ri ncipales propiedades son:
L A R G E C H A N G E
Para indicar el incremento o decremento de la propiedad Valu cada vez
que el usuario haga click en el rea de desplazamiento.
S M A L L C H A N G E
Para indicar el incremento o decremento de la propiedad Valu cada vez
que el usuario haga cli ck en la flecha de desplazamiento.
M A X
Para indicar el valor mximo que puede tomar el valor de la propiedad
Valu. El valor predeterminado es 32767.
M I N
Para indicar el valor mnimo que puede tomar el valor de la propiedad Valu.
El valor predeterminado es 0.
V A L U E
Indica la posicin actual del cuadro de desplazamiento. Esta propiedad es la
predeterminada de las barras de desplazamiento, esto quiere decir que para
referirmos a esta propiedad slo se necesita escribir el nombre del control
Por ejemplo: las dos instrucciones realizan lo mismo: R=Hscrolll. Valu y
R = H s c r o l ll
APLICACIN DESARROLLADA N 27
Esta aplicacin permite modificar el color del fondo del formulario con
diferentes tonalidades, y mover un grfico.
M 3
Mueve el Grfico
USO DE SCROLLBARS
Intensidad
ROJO j J
M 1255
VE RD E j J
1 1 1255
A Z U L j J
M 1255
Empezar 1 Salir 1
A.
j d
215
PASO N 01: D I B U J A R LOS CONTROLE S.
Dibuje los controles como se muestra a continuacin:
S l b VISUAL BASIC como debe ser. . ,
I t i Forml i m i .Inlxl
Labell
jlU
Label4
Labe!5 LabeIS
Label2 Label6
1
Label3
<1 1 j
Label7
Command! | Command2 |
PASO N 02: A S I G N A R L AS PROPIEDADES.
Asigne las propiedades a las etiquetas y botones de comandos como de
muestra en la aplicacin a desarrollar.
Instrucciones del Form_Load para que al ejecutar la aplicacin se asignen
las propiedades a las barras de desplazamiento.
Prvate Sub Form_Load()
HScrolll.Min = 0
HScrolll.Max = 255
HScrolll.LargeChange = 5
HScrolll .SmallChange = 5
HScroll2.Min = 0
HScrolll.Max = 255
HScroll2.LargeCh.ange - 5
HScroll2.SmallChange - 5
HScroll3.Min = 0
HScroll3.Max = 255
HScroll3.LargeChange - 5
HScrollJ. SmallChange = 5
VScrolll.Min = 0
VScrolll.Max = Forml .ScaleHeight
VScrolll .LargeChange = 100
VScrolll.SmallChange = 25
End Sub
- l * G rupo E ditorial M e g a b y t e < | f | | | j j f
Instrucciones del Form_Activate para que al activarse el formulario las
barras de desplazamiento y las etiquetas N 5,6 y 7 tengan el valor cero (0).
Priv a t e Su b F o r m _ A c t i v a t e ()
H S c r o l l l . V a l u = 0
H S c r o l l 2 . V a l u = 0
H S c r o l l 3 . V a l u = 0
V S c r o l l l . V a l u = 0
P i c t u r e l . T o p = 0
L a b e l 5 = 0
L a b e 16 = 0
L a b e l 7 = 0
End S u b
Instrucciones del procedimiento CAMBIO , que permiten cambiar el color
del fondo del formulario de acuerdo al valor de la propiedad Valu de cada
una de las barras de desplazamiento.
S u b CAMBIO()
Di m ROJO, VERDE, AZUL A s B y t e
ROJO = H S c r o l l l
VERDE = H S c r o l l 2
AZUL = H S c r o l l 3
F o r m l . B a c k C o l o r = RGB(ROJO, VERDE, AZUL)
L a b e l 5 = H S c r o l l l
L a b e l 6 = H S c r o l l 2
L a b e l 7 = H S c r o l l 3
End Su b
Instrucciones del Botn E M P E Z A R .
P r v a t e S u b C o mma n d l _ C l i c k ()
F o r m _ A c t i v a t e
End Su b
Dentro de cada Barra se llama al procedimiento C A M B I O .
Prvate Sub HScrolll_Change()
CAMBIO
End Sub
Prvate Sub HScroll2_Change()
CAMBIO
End Sub
Prvate Sub HScroll3_Change()
CAMBIO
End Sub
Instrucciones del control VSCROLL1.
P r v a t e S u b V S c r o l l l _ C h a n g e ()
P i c t u r e l . T o p = V S c r o l l l
End S u b
PROGRESSBAR (Barra de Progreso)
m
Muestra una barra que refleja la ejecucin de un proceso en la computado
ra. En la ventana de componentes se llama: Microsoft Windows Common
Controls 6.0. Sus principales propiedades son:
M A X
Indica el valor mximo que puede tomar el control.
M I N
Indica el valor mnimo que puede tomar el control.
V A L U E
ndica el valor del control en un determinado momento.
^lliil?' VISUAL BASIC como debe ser. .
Para d e s a r r o l l a r un
ejemplo, pegue en un
formulario en blanco el
control ProgressBar y
en su p ro c e d i m i e n t o
Form Actvate escriba:
C O N T R O L S L I D E R
tr.
Es un control que permite desplazar una barra a travs de una marca que
tiene el control. Se puede manejar de manera casi igual a los controles
Hscroll y Vscroll. En la ventana de componentes se llama: Microsoft
Windows Common Controls 6.0.
Sus principales propiedades son:
L A R G E C H A N G E
Indica el nmero de marcas que se desplazar la barra al presionar las
teclas RE PG o AV PG o al hacer clic en el control.
S M A L L C H A N G E
Indica el nmero de marcas que se desplazar la barra al presionar las
teclas Flecha Izquierda o Flecha Derecha.
M A X y M I N
Son similares a las del control ProgressBar.
O R I E N T A T I O N
Indica la posicin del control (Horizontal o Vertical)
V A L U E
Indica el valor del control en un determinado momento.
NOTA: Desarrolle la aplicacin N 27 usando este control.
jfjjj l l p l 218 G r u p o E d i t o r i a l Megabyte * | j | |
m P r o y e c t o l - Forml (Cdigo) | _ | a | x |
j F o r m jrj j Actvate + j
Prvate Sub F o rm_Act i v at e ( )
Dim x As Integer
P r o g r e s s B a r 1.Max = 1000
For x = 1 To 1000
Pr o g r e s s B a r 1.Valu = x
N e xt x
End Sub
< 1 1 Jl f l
CAPTULO IV: Mejorando el Aspecto c los Formularios
PREGUNTAS DE REPASO N2 04
1. Qu casilla debe activar en las lista de componentes si en
la caja de herramientas no encuentra el control ImageList?
2. Explique los mtodos grficos.
3. Con qu propiedad se puede saber el panel donde el usuario
hizo click en el control StatusBar?
4. Cul es la diferencia entre Qbcolor y RGB?
5. Cul es la utilidad del control Calendar?
6. Explique cmo se pueden buscar los grficos que tenemos
disponibles en nuestra computadora.
7. Qu significa el signo de dlar ($) al final de una variable?
8. Qu valor debe tener el control Timer en su propiedad
Interval para que las instrucciones que contiene se ejecuten
cada segundo?
9. Qu diferencia encuentra entre el control Hscroll y Vscroll?
10. Qu es un mtodo grfico?
11. Cmo podemos saber la ruta exacta de un archivo grfico?
12 . Cul es el valor predeterminado de la propiedad Max y Min di>
los controles Hscroll y Vscroll?
13. Cul es la diferencia entre los controles Image y PictureBox?
14. Cuntos tipos de figuras se pueden dibujar con el control
Shape?
15. Cul es la ventaja de usar el control Frame?
16. Cul es la utilidad del control ImageList?
17. Cuales son los tipo de grficos que se pueden insertar en el
control PictureBox?
18. Con qu funcin se puede colocar un grfico en un control
PictureBox o Image?
19. Cmo le indicamos a Visual Basic que deje de ejecutar las
instrucciones que se encuentran en el control Timer.?
20. Qu funcin cumple las pulsacin de las tecla CTRL+K cuando
trabajamos con el control Frame?
Es muy importante que Ud., se formule nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de estudio
y desarrollarlas con la finalidad de enriquecer sus conocimientos.
r
CAPITULO V
TA DE PASAJES
Agencia de Transporte "EL PROVINCIANO S.,
Pasajero | H T 0 RAMIREZ
D.N.I.
|16895654
Hora de Salida
C 8: 0 0 pm.
(* 9:00 prn.
Destino :
Lima
annan
OBSERVACr
Precio
p 1p e s c u t
ffiLSoft Dat S.A n i s i E a g
1 PROFORMA
' ............
Fecha 7/Z3/9B
.Wc |XIMENA TORREE
leccin 1CAS TI LLA 2565
^omputadaroa | p ker Bell - | 7DOLOO
yre soias |Dasket 40a - ] 270.00
^ u b Total 970.00 I.G.V. 174.G0 Total 1144. EO
\ _ Q t r a F W q r n a - j
INGRESO
PERSONALIZADO
DE DATOS
V-lA
< X > CAPTULO V: Ingreso Personalizado de Datos
COMBO (LISTA DESPLEGABLE):
Es un control que combina una caja de textos con una lista y se utiliza para
ingresar datos de una manera muy sencilla para el usuario.
PRINCIPALES PROPIEDADES DE UN COMBO:
AME
Permite asignarle un nombre. Por defecto el nombre es Combol, Combo2,
Combo3 etc. Segn el nmero de controles que se dibujen en el formulario.
ENABLED
Para indicar si debe estar activo o no.
FONT
Permite seleccionar el tipo, tamao y estilo de letra.
LIST
Permite ingresar los valores o datos que el usuario puede elegir de este
control. Por cada elemento que se ingrese se debe pulsar <CTRL> +
<ENTER>. Para insertar un elemento, ubique el cursor al inicio de donde lo
desea insertar y pulse <CTRL> + <ENTER>.
LISTINDEX
Obtiene el numero del elemento seleccionado. Si se elige el 1er elemento
devuelve cero(O), el segundo uno(l), etc.
LOCKED
Para indicar si se puede cambiar el contenido del control.
SORTED
t
Para indicar si los elementos deben salir ordenados.
STYLE
Selecciona el modo de elegir los elementos del control. TEXT
Para indicar lo que se va a mostrar automticamente en el control y
almacena el texto seleccionado.
VISIBLE
Para indicar si se debe visualizar el combo.
VISUAL BASIC como debe ser..
APLICACION DESARROLLADA N 28
Esta aplicacin debe permitir al usuario ingresar el nombre del alumno, su
especialidad y tumo. Al hacer click en cualquiera de los Combo se debe
desplegar las opciones posibles a elegir.
J n J x j
Especialidad JComputacin j r ]
^ U! ri Maana j - ]
OtroAlumno Finalizar
Alumno
Daniel Rivea
Especialidad ^ 3
Turno
Arquitectura
Secretariado
Sistemas
Olio Alumno Finaliza!
PASO N 01: Dibujar los controles.
Labell
Label2 jcombol
Label3 |Combo2
Command!
3
Command2
PASO N 02: Asignar las propiedades.
EOQUEIA CAPTION
Label 1 Alumno
Label2 Especialidad
Label3 Turno
COMANDO CAPTION
Command I &Otro Alumno
Command2 &Finalizar
1EXTO
Textl
TEXT
En Blanco
224 :
COMBO TEXT
Combol Computacin
Combo2 Maana
G rupo E ditorial
LIST
Computacin
Arquitectura
Secretariado
Sistemas
Maana
Tarde
Noche
CAPTULO V: Ingreso Personalizado de Datos ;l l | | |
PASO N 03: Escribir las instrucciones para los controles.
Instrucciones del botn OTRO ALUMNO
Prvate Sub Commandl_Click()
Borra el contenido de Textl
Textl =
Muestra el elemento predeterminado del Combol (Computacin)
Combol. Listlndex = 0
'Muestra el elemento predeterminado del Combo2 (Maana)
Combo2.Listlndex - 0
Ubica el cursor en Textl para ingresar un nuevo alumno
Textl. SetFocus
End Sub
El botn FINALIZAR debe tener la instruccin END.
APLICACION PROPUESTA N 07
e . 4 V i
Nombre
1
Tipo
[Permanente
z \
Estado Civil
1Casado
Z
Categoria
|a -i
Ingresar Otro Salir
I
Tipo : Permanente, Contratado, Eventual.
Estado Civil : Casado, Soltero, Viudo, Divorciado.
Categora : A-l, A-2, A-3 B-l, B-2, B-3.
VISUAL BASIC como debe ser...
APLICACION DESARROLLADA N 29
P a g o p o r H o r a [ 1 5 . 0 0
H o r a s T r a b a j a d a s |
T 0 T A L A P A G A R f p |
N u e v o Sal ir
La aplicacin debe tener las siguientes caractersticas:
1. Al ejecutar la aplicacin, el grfico debe estar oculto y el botn Nuevo
desactivado hasta que se comience a ingresar el nombre del trabajador.
2. El pago por hora se visualiza en forma automtica y depende del tipo de
empleado: Permanente S/.15.00, Contratado S/.10.00 y Eventual SI.
5.00.
3. No existe el botn Calcular, entonces el total a pagar debe visualizarse
automticamente cuando el usuario ingrese el N de horas trabajadas o
cuando cambie el tipo de empleado.
4. En el nmero de horas trabajadas no se permite el ingreso de letras (no se
activa el botn Nuevo).
PASO N 1: Dibujar los controles.
L a b e l l j l T e x t l
L a b e l 2 j C o m b o l ^ |
L a b e l 3 L a b e l G ----------
L a b e M | T e x t 2
L a b e l 5 L a b e l 7
C o m m a n d l C o m m a n d 2
CAPTULO V: Ingreso Personalizado de Datos
PASO N 02: Asignar las propiedades.
EITQUETA CAPITON BORDERSTYLE
Labell Nombre 0 - None
Label2 Tipo 0 - None
Label 3 Pago por Hora 0 - None
Label4 Horas Trabajadas 0 - None
Label5 TOTALA PAGAR 0 - None
Label En Blanco 1- Fixed Single
Label7 En Blanco 2 - Fixed Single
COMANDO CAPTION ENABLED
Commandl &Nuevo False
Command2 &Salir True
FIGURA VISIBLE PICTURE
Picture 1 False Grfico que se indica
COMBO TEXT LIST
Combo 1 Permanente Permanente
Contratado
Eventual
Ud. Puede cambiar otras propiedades que crea conveniente.
PASO N 03: Escribir las instrucciones de los controles.
MUY IMPORTANTE:
El valor cero (0) puede reemplazar al valor False y el valor uno (1) puede
reemplazar al valor True. Ejemplo:
Commandl.Visible=True es igual a Commandl.Visible=l
Commandl.Visible=False es igual a Commandl.Visible=0
Instrucciones del botn Nuevo: limpia las cajas de texto y las etiquetas,
adems muestra el tipo de empleado por defecto y oculta el grfico.
Prvate Sub CommandI_Click()
Textl =
Combol .Listlndex = 0
Label =
Text2 =
Label7
Picture! .Visible = 0
End Sub
Instrucciones del Combol: permiten visualizar en forma automtica el
pago por hora, segn el tipo de empleado que se elija y si ya se ingres las
horas trabajas visualiza el total a pagar.
Prvate Sub Combol_Click()
N = Combol .Listlndex
Select Case N
Si N vale 0 a elegido la primera opcin
Case 0
Label = "15.00
Case 1
Si N vale 1 a elegido la segunda opcin
Label = "10.00
Case 2
Si N vale 2 a elegido la tercera opcin
Label = 5.00
End Select
Pregunta si no se ha ingresado el pagos por hora
I f Trim(Text2) = Then
Si no ha sido ingresado pide N" de horas trabajadas
Text2.SetFocus
Else
Si se ha ingresado calcula el total a pagar
Label7 = Format(Val(Label) * Val(Text2), "###,##0.00)
End I f
End Sub
Instrucciones de Textl: Verifica si se ha comenzado a ingresar el nombre.
Si es verdad activa el botn Nuevo y visualiza el grfico.
Prvate Sub Textl_Change()
I f Trim( Textl) = Then
Command2.Enabled = 0
Pie ture 1.Visible - 0
Else
Command2.Enabled = 1
Picturel.Visible = 1
End I f
> VISUAL BASIC como debe ser...
Instrucciones de Text2: Verifica que se ingrese slo nmeros en las
horas trabajas y calcula en forma automtica el total a pagar. Se puede
realizar la misma operacin usando la funcin ISNUMERIC.
Prvate Sub Textl_Cliange()
I f Trim(Text2) = Or Val(Text2) = 0 Then
Command 1 .Enabled = 0
Else
Command 1 .Enabled = 1
Label?-Format(Val(Label) * Val(Text2), "###,##0.00)
End I f
End Sub
APLICACIN PROPUESTA N 08
CAPTULO V: Ingreso Personalizado de Datos
Si es Soltero debe pedir la edad y el N de hermanos y si es casado debe
pedir el tiempo de casado y el N de hijos.
Nombre
Estado Civil |Soltero
Edad |
N5 de hermanos |
Nuevo J Sal J
Nombre
Estado Civil [Casado
Tiempo de Casado j
N s de hijos j
Nuevo j Salir
MUY IMPORTANTE
Ud., formlese nuevas aplicaciones o intercambie aplicaciones
propuestas entre sus compaeros y desarrllelas con
la finalidad de enriquecer sus conocimientos.
El que a p r e n d e y a p r e n d e y no pr actica, es como el
que a r a y a r a y nunca siembra
o
# VISlAL BASIC como debe ser..
APLICACION DESARROLLADA N 31
JQI-xJ
Tipo de Curso |a p u w TIVS ^
Nombre del Curso |WINDOWS 95 j r ]
Nuevo Salir
Esta aplicacin permite asignar un curso a cada profesor. Primero se debe
ingresar su nombre y luego seleccionar el tipo de curso: Aplicativos,
Programacin, Otros. Segn el tipo de curso, se mostrar una lista de cursos:
APLICATIVOS
Windows 95
Word
Excel
Power Point
PROGRAMACION
Foxpro
Visual Basic
Visual Foxpro
Power Builder
OTROS
Internet
Correo Electrnico
Ingls Tcnico
IMPORTANTE:
CLEAR : Permite limpiar el contenido de un combo.
Nombre del Control. Clear
ADD1TEM : Permite adicionar un elemento a un combo.
Nombre del Control. Additem Elemento
En est aplicacin de ejemplo, las propiedades de cada combo se
asignan en el Evento Form_Load.
PASO N 1: Dibujar los controles.
a ; .=..l.s l->d
L a b e l l jfT e x t l
L a b e l 2 [ C o m b o l
zJ
L a b e l 3 | C o m b o 2
.... -1
C o m m a n d l | Comr na nd 2 I
230
G rupo E ditorial Megabyte-^
CAPITULO V: Ingreso Personalizado de Datos
PASO N 02: Asignar las propiedades.
EITQUEI
Labell
Label2
Label3
COMANDO
Command 1
Command2
TEXTO
Textl
COMBO
Combol
Combo2
CAPTION
Profesor
Tipo de Curso
Nombre del Curso
CAPTION
&Nuevo
&Salir
TEXT
En Blanco
BORDERSTYLE
0 - None
0 - None
0 - None
ENABLED
True
True
TEXT
En Blanco
En Blanco
LIST
En Blanco
En Blanco
Ud. Puede cambiar otras propiedades que crea conveniente.
PASO N 03: Escribir las instrucciones de los controles.
Instrucciones del FormJLoad para asignar las propiedades o valores iniciales
de cada Combo.
Prvate Sub Form_Load()
Limpia el contenido del combol
Combol.Clear
'Adiciona elementos al combol
Combol.Additem APLICATIVOS
Combol.Additem PROGRAMACIN
Combo 1.Additem OTROS
Limpia el contenido del combo2
Combo2.Clear
Adiciona elementos al combo2
Combo2.Additem WINDOWS 95
Combo2.Additem WORD
Combo2.Additem EXCEL
Combo2.Additem POINT
Permite que se visualice el ler. elemento de cada combo
Combo l.Listlndex = 0
Combo2.Listlndex - 0
End Sub
Instrucciones del Combol para que de acuerdo al tipo de curso que se
seleccione, se muestre en el combo2 los nombres de los cursos.
P r v a t e S u b C o m b o l _ C l c k ()
n = Co mb o l . L s t l n d e x
S e l e c t Ca s e n
Ca s e 0
Combo2. C1 e a r
Combo2. A d d l t e m "WINDOWS 95"
Combo2 . A d d l t e m "WORD"
Combo2. A d d l t e m "EXCEL"
Combo2. A d d l t e m "POINT" m
Combo2. L s t l n d e x = 0
Ca s e 1
Combo2. C1 e a r
Combo2. A d d l t e m "FOXPRO"
Co mb o 2 . A d d l t e m "VISUAL BASI C"
Co mb o 2 . A d d l t e m "VISUAL FOXPRO"
Co mb o 2 . A d d l t e m POWER BUILDER"
Combo2. L s t l n d e x = 0
Ca s e 2
Combo2. C1 e a r
Combo2 . A d d l t e m "I NTERNET"
Co mb o 2 . A d d l t e m "CORREO ELECTRNICO"
Combo2 . A d d l t e m "INGLS TCNICO"
Combo2. L s t l n d e x = 0
End S e l e c t
End Sub
Instrucciones del Commandl (Nuevo), para ingresar un nuevo profesor.
Asigna los valores por defecto a cada combo y para ello, llama el
procedimiento Form_Load que contiene dichas instrucciones.
P r v a t e S u b C o m m a n d l _ C l c k ()
' L i m p i a y u b i c a e l c u r s o r e n T e x t l
T e x t l =
T e x t l . S e t F o c u s
' Ll ama a l p r o c e d i m i e n t o Form_Load
For m_Load
End Su b
En e l command2 s e e s c r i b e l a i n s t r u c c i n E N D .
S t VISUAL BASIC como debe ser...
232 G rupo E ditorial Megabvte
CAPITULO V: Ingreso Personalizado de Datos " l l l i J S P '
APLICACIN DESARROLLADA N 32
Una empresa de venta de computadoras necesita un formulario que permita
realizar su proforma. Dicha empresa tiene los siguientes productos:
Co m pu t a d o r a s Pr e c i o
IBM 850.00
Packer Bell 700.00
Acer 600.00
Im pr e s o r a s
Epson LX-300
Deskject 400
IBM graphics
Pr e c i o
180.00'
270.00
380.00
t S o it Data S.A
P R O F O R M A
Cliente | XIMEN A TORRES
Direcci n
n s i x i
Fe cha 0 7 / 2 3 / 9 8
(CASTILLA 2565
Computadoras | p acke r Bell [ 700.00
Impresoras | D e s k j e t 4 0 0 - | 270.00
Sub Total 970.00 I.G.V. 174 .60 To ta l 1144.60
Calcular j Otra Proforma | _______ Salir |
El botn Calcular permitir obtener el Sub Total, IGV (18%) y el Total.
El botn Otra Proforma permitir limpiar los datos y pedir otros.
El botn Salir finalizar el programa.
PASO N 01: Dibujar los controles.
I in. Formi m m
LabeH Label2
Labe!3
T extl

Label4
| e x t 2
Label5
I Combol
Label7
LabelB
|Combo2
Labe!8
Label9 Labell 0 Labell 1
Commandl Command2 Command3 |
1
PASO N 02: Asignar las propiedades.
A las etiquetas y botones de comandos, asgneles la propiedad Caption, como
se muestra en la aplicacin.
| S S ^ VISUAL BASIC como debe ser...
TEXTO TEXT
Textl En Blanco
Text2 En Blanco
LINEA BORDEWIDTH
Linei 4
Line2 4
LIST
IBM
Packer Bell
Acer
Combo2 Epson LX-300 Epson LX-300
Deskject 400
IBM graphics
Ud. Puede cambiar otras propiedades que crea conveniente.
PASO N 03: Escribir las instrucciones de los controles.
c o m b o text
Combol IBM
Instrucciones del Combol.
Estas instrucciones permiten visualizar el precio de la computadora cuando
el usuario la selecciona en el combo N1 haciendo click.
P r v a t e S u b C o m b o l _ C l i c k ()
Dim n A s I n t e g e r
n = Combo1 . L i s t i n d e x
Se l e c t Ca s e n
Cas e 0
L a b e l 7 = " 8 5 0 . 0 0 "
Ca s e 1
L a b e l 7 = " 7 0 0 . 0 0 "
Ca s e 2
L a b e l 7 = " 6 0 0 . 0 0 "
End S e l e c t
End S ub
w
234
G rupo E ditorial Megabyte'^|
CAPTULO V: Ingreso Personalizado de Datos
Instrucciones del-Combo2.
Estas instrucciones permiten visualizar el precio de la impresora cuando el
usuario la selecciona.
P r i v a t e Su b C o m b o 2 _ C l i c k ( )
Dim n A s I n t e g e r
n = Combo2. L i s t l n d e x .
S e l e c t Cas e n
Ca s e 0 : L a b e l 8 = " 1 8 0 . 0 0 "
Cas e 1 : L a b e l 8 = " 2 7 0 . 0 0 "
Cas e 2 : L a b e l 8 = " 3 8 0 . 0 0 "
End S e l e c t
End Sub
In s t r u c c i o n e s d e l Bo t n CALCULAR.
P r v a t e S u b C o m m a n d l _ C l i c k ()
Dim s t , i g v , t t A s S i n g l e
s t = V a l ( L a b e l 7 ) + V a l ( L a b e l 8 )
i g v = s t * 18 / 100
t t = s t + i g v
L a b e 19 = " Sub T o t a l " + F o r m a t $ ( s t , " # # # , # # 0 . 0 0 " )
L a b e l l O = " I . G . V . " + F o r ma t $ ( i g v , " # # # , # # 0 . 0 0 " )
L a b e l l l = " T o t a l " + F o r m a t $ ( t t , " # # # , # # 0 . 0 0 " )
End S ub
In s t r u c c i o n e s d e l Bo t n OTRA PROFORMA.
P r v a t e S u b Co mma n d 2 _ C l i c k ()
T e x t l = "
T e x t 2 = ""
' M u e s t r a e n l o s combos e l p r i m e r e l e m e n t o
Co mb o l . L i s t l n d e x = 0
Combo2. L i s t l n d e x = 0
L a b e l 9 = "
L a b e l l O = ""
L a b e l l l = ""
T e x t l . S e t F o c u s
End Su b
El botn SALIR debe tener la instruccin END.

Es un control que permite ingresar datos por seleccin. De esta forma slo
se puede seleccionar una opcin de un grupo de ellas.
PRINCIPALES PROPIEDADES DE UN OPTION BUTTON:
AME
Permite asignarle un nombre. Por defecto el nombre es
Optionl, 0ption2, 0ption3 etc.
A I J G N M E N T
Para indicar la ubicacin del texto y del botn.
CAPTION
Para escribir el texto que acompaa al botn.
ENABLED
Para indicar si debe estar activo o no.
FONT
Permite seleccionar el tipo, tamao y estilo de letra.
FORECOLOR
Selecciona un color de la letra.
VALUE
Permite saber si un botn ha sido elegido o seleccionado.
VISIBLE
Para indicar si se debe visualizar.
MUY IMPORTANTE
Para preguntar si un botn de opcin est seleccionado se utiliza la
propiedad Valu. Por ejemplo, para preguntar si el botn N1 est
seleccionado se escribe:
I f O p t i o n l . V a l u = T r u e t h e n
Tambin se puede preguntar asi: I f O p t i o n l t h e n
Par a s e l e c c i o n a r un b o t n m e d i a n t e un comando s e l e
a s i g n a e l v a l o r TRUE y p a r a q u i t a r l a s e l e c c i n s e l e
a s i g n a e l v a l o r FALSE, E j e m p l o :
O p t i o n l . v a l u e = T r u e o O p t i o n l = T r u e Lo s e l e c c i o n a .
O p t i o n l , v a l u e = F a l s e o O p t i o n l = F a l s e Q u i t a l a s e l e c c i n .
VISUAL BASIC como debe ser...
OPTION BUTTON (BOTON DE OPCION):
^ 236 G rupo E ditorial Megabyte
CAPTULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N 33
Si es Soltero debe pedir la edad y el N- de hermanos y su sueldo debe ser
S/. 200.00. Si es Casado debe pedir el tiempo de casado y el N- de hijos, su
sueldo debe ser S/. 250.00.
Nombre
Estado Civil :
< Soltero (a)
C Casado [a)
Sueldo
Edad
N! de hermanos
n s i r
Nuevo
Salir
:i J n j x j
Nombre |
- Estado Civil:-.......
r Soltero [a)
( Casado [a]
Nuevo
Salir
Sueldo (250.00
Tiempo de Servicio |
N! de Hijos I
PASO N 1: Dibujar los controles.
Labell | Texti
Framel
Commandl I
C Optionl
f ' 0ption2
Command2
Label2 LabeB
Label3 |Texl2
LabeW |Text3
PASO N 02: Asignar las propiedades.
Asigne las propiedades como se muestra en la aplicacin planteada.
PASO N 03: Escribir las instrucciones de los controles.
P r v a t e Su b Conunandl __Cl ck ()
T e x t l = ""
T e x t 2 = ""
T e x t 3 = ""
O p t i o n l . V a l u = 1
L a b e 13 = "Edad"
L a b e l 4 = "Ns d e H e r m a n o s "
L a b e 15 = " 2 0 0 . 0 0 "
T e x t l . S e t F o c u s
E n d S u b
Si el usuario hace un click en el botn N 1, se cambia el contenido de las etiquetas N
1, N 2 y N 3 por: Edad, Nde hermanos y 200.00 respectivamente.
P r v a t e S u b O p t i o n l _ C l i c k ()
L a b e l 3 = " Ed ad "
L a b e l 4 = "Ng d e He r ma no s "
L a b e l 5 = " 2 0 0 . 0 0 "
T e x t 2 . S e t F o c u s
End Su b
Si el usuario hace un click en el botn N 2, se cambia el contenido de las etiquetas
N 1, N 2 y N 3 por: Tiempo de Servicio, N de hijos y 250.00
P r v a t e S u b O p t i o n 2 _ C l i c k ()
L a b e 13 = " Ti e mpo d e S e r v i c i o "
L a b e l 4 = "NB d e H i j o s "
L a b e l 5 = " 2 5 0 . 0 0 "
T e x t 2 . S e t F o c u s
End Su b
Si no desea escribir las instrucciones en el evento Click de los botones de opciones,
puede agregar un botn de comandos (Command3) que realiza lo mismo:
P r i v a t e S u b C o m m a n d 3 _ C l i c k ()
I f O p t i o n l Then
L a b e 13 = "Edad"
L a b e l 4 = "Ne d e H e r m a n o s "
L a b e l 5 = " 2 0 0 . 0 0 "
Text2.SetFocus
End I f
I f O p t i o n 2 Then
L a b e 13 = "T i e m p o d e S e r v i c i o "
L a b e l 4 = "NB d e H i j o s "
L a b e l 5 = " 2 5 0 . 0 0 "
T e x t 2 . S e t F o c u s
End I f
End Sub
VISUAL BASIC como debe ser. . .
G rupo E ditorial Megabyte(
O
CAPTULO V: Ingreso Personalizado de Datos
APLICACIN DESARROLLADA N 34
Esta aplicacin permite ingresar dos valores numricos y segn el botn de
opcin que se elija, se mostrar el resultado.
Labell
Label2
( i exl1
(0 phon1
C 0plon2
C 0ption3
r 0ption4
|Text2
Label3
Label4
Commandl Command2
PASO N 01: Dibujar los controles.
OPERACIONES ARITMETICAS Pits]
Valor N* 01
Valor NS 02
C Suma
( " Resta
r * Multiplica
r Divide
j RESULTADO
OK SALIR
PASO N 02: Asignar las propiedades.
PASO N 03: Escribir las instrucciones de los controles.
In s t r u c c i o n e s d e Co m m a n d l ( OK) :
P r i v a t e S u b C o m m a n d l _ C l i c k ( )
I f O p t i o n l Then L a b e l 4 = V a l ( T e x t l ) + V a l ( T e x t 2 )
I f O p t i o n 2 The n L a b e l 4 = V a l ( T e x t l ) - V a l ( T e x t 2 )
I f O p t i o n 3 Then L a b e l 4 = V a l ( T e x t l ) * V a l ( T e x t 2 )
I f O p t i o n 4 Then L a b e l 4 = V a l ( T e x t l ) / V a l ( T e x t 2 )
E n d Sub
CHECK BOX (CAJA DE VERIFICACION):
P
Es un control que permite seleccionar una opcin. Se diferencia de los botones
de opciones porque se puede seleccionar varias opciones de un grupo.
PRINCIPALES PROPIEDADES DE UN CHECK BOX:
AME
Permite asignarle un nombre. Por defecto el nombre es
Checkl, Check2, Check3 etc.
AUGNMENT
Para indicar la ubicacin del texto y de la caja.
CAPTION
Para escribir el texto que acompaa a la caja.
ENABLED
Para indicar si debe estar activo o no.
PONT
Permite seleccionar el tipo, tamao y estilo de letra.
FORECOLOR
Selecciona un color de la letra.
VALUE
Permite saber si una caja ha sido elegida o seleccionada.
VISIBLE
Para indicar si se debe visualizar.
APLICACIN DESARROLLADA N 35
Esta aplicacin es un ejemplo de cmo se puede usar las cajas de verificacin.
Para preguntar si una caja de verificacin est seleccionada se utiliza la
propiedad Valu. Para preguntar si la caja de verificacin N 1 est
seleccionada se escribe:
If Checkl. Valu = 1 Then
Tambin se puede preguntar de la siguiente manera:
If Checkl Then
A l i g u a l q u e l o s O p t i o n B u t t o n s e p u e d e n s e l e c c i o n a r o
q u i t a r l a s e l e c c i n c o n l o s v a l o r e s TRUE o F A L S E :
C h e c k l . v a l u e = T r u e o C h e c k l = T r u e Lo selecciona.
C h e c k l . v a l u e = F a l s e o C h e c k l = F a l s e Le quita la seleccin.
VISUAL BASIC como debe ser. . .
f ^ 2 4 0 G rupo E ditorial Megabyte
| > CAPITULO V: Ingreso Personalizado de Datos
LA APLICACION A DESARROLLAR ES:
t
VI SUAL BASI C
1 [Negritai f " Subrayado T~ Cursiva
Salir
PASO N 01: Dibujar los controles.
3
L a b e l !
iCheckl r Check2
Commandl
PASO N 02: Asignar las propiedades.
ETIQUETA
Labell
CAJA DE VERIF.
Checkl
Check2
Check3
COMANDOS
Commandl
CAPTION
Visual Basic
CAPTION
Negrita
Subrayado
Cursiva
CAPTION
&Salir
J Check3
BORDERSTYLE
1 - Fixed Single
VALUE
0 - Unchecked
0 - Unchecked
0 - Unchecked
FORMULARIO
Formi
CAPTION
Estilos de Letra
PASO N 03: Escribir las instrucciones de los controles.
Si el usuario hace un click en la caja N 1, se verifica s est seleccionada.
Para activar la letra negrita, a la propiedad FontBold de la etiqueta se le
asigna el valor True.
P r v a t e S u b C h e c k l _ C l i c k ()
l ' f C h e c k l . V a l u = 1 Then
L a b e 1 1 . F o n t B o l d = Tr u e
E l s e
L a b e l l . F o n t B o l d = F a l s e
End I f
End Su b
Si el usuario hace un click en la caja N 2, se verifica s est seleccionada.
Para activar la letra subrayada, a la propiedad FontUnderline de la etiqueta
se le asigna el valor True.
P r v a t e S u b C h e c k 2 _ C l c k ()
I f C h e c k 2 . V a l u = 1 Then
L a b e l l . F o n t U n d e r l i n e = T r u e
E l s e
L a b e l l . F o n t U n d e r l i n e = F a l s e
End I f
End S u b
Si el usuario hace un click en la caja N 3, se verifica s est seleccionada.
Para activar la letra cursiva, a la propiedad Fontltalic de la etiqueta se le
asigna el valor True.
P r v a t e S u b C h e c k 3 _ C l i c k ()
I f C h e c k 3 . V a l u = 1 Then
L a b e l l . F o n t l t a l i c = T r u e
E l s e
L a b e l l . F o n t l t a l i c = F a l s e
End I f
End S u b
| l l t y | > VISUAL BASIC como debe ser. . .
G rupo E ditorial Megabyte^
CAPITULO V: Ingreso
LISTBOX (CAJA DE LISTA)
Es un control que permite mostrar en una lista un conjunto de elementos o
alternativas que el usuario puede seleccionar.
PRINCIPALES PROPIEDADES DE UN LISTBOX:
AME
Permite asignarle un nombre. Por defecto el nombre es
Listl, List2, List3 etc.
ENABLED
Para indicar si debe estar activo o no.
FONT
Permite seleccionar el tipo, tamao y estilo de letra.
FORECOLOR
Selecciona un color de la letra.
LIST
Permite ingresar los elementos o alternativas que el
usuario puede elegir de este control. Por cada elemento
que se ingrese se debe pulsar <CTRL> + <ENTER>. Para
insertar un elemento, ubique el cursor al inicio de
donde lo desea insertar y pulse <CTRL> + <ENTER>.
LISTCOUNT
Permite obtene el nmero de elementos de la lista.
LISTINDEX
Para saber el elemento que el usuario ha elegido. El
valor -1 indica que no se ha seleccionado ningn
elemento, 0 indica el primer elemento, 1 el segundo,etc.
SORTED
Para indicar si los elementos deben salir ordenador.
STYLE
Para indicar la forma de seleccionar un elemento:
O-Standard 1-Checkbox. La opcin 1-Checkbox permite
que cada elemento funcione como una casilla de
verificacin.
TOOLTIPTEXT
Para mostrar un mensaje de ayuda cuando el puntero
del mouse se encuentre sobre el control.
VISIBLE
Para indicar si el control se debe visualizar.
APLICACION DESARROLLADA N 36
t * V E N T A D E P A S A J E * 5 3 * 3 1
A g e n c i a d e T r a n s p o r t e " S I N R E T O R N O S . A . "
P a s a j e r o ( R u b n C a s t i l l o
D . N . I .
| l 6 3 7 4 6 5 7
D e s t i n o :
L i m a ^
s e r a s *
P r e c i o 150.00
P? [ D e s c u e n t o ! js.OO
T r u j i l l o -----
P i u r a
T O T A L S / . 4 5 . 0 0
N u e v o j S a l i r
D.N.I, y el lugar de destino que se debe seleccionar de una lista, luego debe
mostrar en forma automtica su precio y opcionalmente un descuento del
10%. Los lugares de destino y su precio son: Lima S/. 60.00, Chimbte S/.
50.00, Trujillo S/. 30.00, Piura S/. 30.00 y Tumbes S/. 50.00. El precio debe
estar almacenado en un array.
PASO N 1 : Dibujar los controles.
L a h > a t 3 -----------------------
Latol3 j T ext2
Label5 Lobol7
----- I C he c k l Loboie
L a b e l B L a b e I S
Commandl | Command2 1
NOTA:
La barra de desplazamiento vertical del control List se muestra en forma automtica cuando no
se puede visualizar todos los elementos que contiene.
PASO N 02: Asignar las propiedades a los controles.
Ud., est en condiciones de asignar las propiedades a los controles como se
muestra en la aplicacin a desarrollar. Los elementos se ingresan a la lista
de la misma forma que en un Combo. Las cajas de texto deben estar en
blanco.
PASO N 03: Escribir las instrucciones de los controles.
Definir la variable PRECIO de tipo Array para cinco elementos en la ventana
de declaracin del formulario (General - Declarations).
CINCO ELEMENTO (DE 0 A 4)
Dim PREClO(5) As Single
FnrrnRiAr M e g a b y , e S
Asignar los valores al array; es decir los precios de los pasajes. Se ejecutan
cuando se activa el formulario.
Al hacer Doble Click o pulsar F7 en cualquier parte libre del formulario elija
el evento ACTIVATE.
CAPTULO V: Ingreso Personalizado de Datos
Prvate Sub Form_Activate()
PRECIO(0)
PRECIO(1)
PRECIO( 2 )
PRECIO(3)
PRECIO(4)
End Sub
60
50
30
30
50
In s t r u c c i o n e s d e l Bo t n Nu e v o .
P r v a t e S u b Commandl_Cli ck ()
L i s t l . L i s t l n d e x = 0
C h e c k l . V a l u = 0
T e x t l = ""
Te x t 2 =
L a b e l 7 =
Labe l 8 =
L a b e l 9 =
T e x t l . Set Focus
End Sub
Instrucciones de la Casilla de Verificacin (CHECK1), para que al activar
o desactivar el descuento se visualicen los resultados.
P r v a t e S u b C h e c k l _ C l i c k ()
Dim D e s , T o t A s S i n g l e
' P r e g u n t a s i t i e n e d e s c u e n t o
I f C h e c k l Then
Des = V a l ( L a b e l 7 ) * 10 / 100
L a b e l 8 = F o r m a t ( D e s , " # # 0 . 0 0 " )
E l s e
L a b e l 8 = 0
End I f
T o t = V a l ( L a b e l 7 ) - V a l ( L a b e l 8 )
L a b e l 9 = F o r m a t ( T o t , " # # 0 . 0 0 " )
End S u b ?
Instrucciones del Control LIST1, para que al seleccionar un elemento
(destino), se visualicen los resultados.
P r v a t e S u b L i s t l _ C l i c k ( ) '
Dim N A s I n t e g e r
Dim D e s , T o t A s S i n g l e
N = L i s t l . L i s t l n d e x
L a b e l 7 = F o r m a t ( P R E C I O ( N ) , " # # 0 . 0 0 )
I f C h e c k l Then
Des = V a l ( L a b e l 7 ) * 10 / 100
L a b e l 8 = F o r m a t ( D e s , " # # 0 . 0 0 " )
E l s e
L a b e l 8 = 0
End I f
T o t = V a l ( L a b e l 7 ) + V a l ( L a b e l 8 )
L a b e l 9 - F o r m a t ( T o t , " # # 0 . 0 0 " )
End S u b
w VISU A L BASIC como debe ser.. .
CALCULWiWSDAS DE FERTILIDAD SEGN ELMTODODELRITMO
GCliS MENSTRUALES REGULARES
Si una mujer tiene ciclos Menstruales Regulares, sus das probables de fertilidad empiezan
a losdasde su primer da de menstruacin y duran 13 das. Por ejemplo: Si su primer
da de menstruacin fue el 01 de Oct, sus das frtiles empiezan el 7 de Oct y terminan en
19deOct.
OCLQ8 MENSTRUALES IRREGULARES
Para determinar los das probables de fertilidad en mujeres con ciclos Menstruales
Irregulares, se tiene que saber cul es el perodo de das mas largo y mas corto en los
ltimos 6 (seis) ciclos menstruales. A la cantidad de das mas corto se le resta 18
(dieciocho) para obtener a los cuantos das de su primer da de menstruacin empieza
sus das frtiles y al periodo de das mas largo se le resta 11 (once) para obtener a los
cuantos das de su primer da de menstruacin terminan sus das frtiles. Por ejemplo,
si el periodo de das mas corto fue de 24 das y el ciclo mas largo fue de 32 das,
entonces, sus das frtiles empiezan a los seis das de su primer da de menstruacin
(contando uno el primer da de su menstruacin) y terminan a los 21 das de iniciado su
periodo menstrual.
. M t T ODO " D E L R I T M O " O ME T O DO " N A T U R A L "
DI Ai P R O B A R L E S DE E E R T I I IDAD EN
M i t r . * l i u c i n l l r g u l . I M c n i l i u o c i n l i i a g u l a i
r D a d o Menstruacin: Domingo, 2 3 ck Ener o d e 20 0 0
AS P R O B A B L E S E N CIC
NO FERTILIDAD
LO M E N S T R U A L R E G
F E R T I L I D A D
JL A R D E : ..............................
NO FERTILIDAD
2 3 / 0 1 / 0 0 2 9 / 0 1 /OU 1 1 / 0 2 / 0 0
2 4 / 0 1 / 0 0 3 0 / 0 1 / 0 0 1 2 / 0 2 / 0 0
2 5 / 0 1 / 0 0 3 1 / 0 1 / 0 0 1 3 / 0 2 / 0 0
2 6 / 0 1 / 0 0 0 1 / 0 2 / 0 0 1 4 / 0 2 / 0 0
2 7 / 0 1 / 0 0 0 2 / 0 2 / 0 0 1 5 / 0 2 / 0 0
2 8 / 0 1 / 0 0 0 3 / 0 2 / 0 0 1 6 / 0 2 / 0 0
0 4 / 0 2 / 0 0 1 7 / 0 2 / 0 0
0 5 / 0 2 / 0 0 1 0 / 0 2 / 0 0
0 6 / 0 2 / 0 0 JT J 1 9 / 0 2 / 0 0
FUENTE OBSTETRIZ Mat allana Hurt ado - Cop. 75 9 7 S e i vicio d e Consejer a INNPARES * Chiciayo
DIAS P R O B A B L E S DE F E R T I L I D A D EN
M e n s t r u a c i n R g u l a i M e n s t r u a c i n li r g u l a i
1et. D a d e Menstruacin: M altes, 0 4 d e Ener o d e 20 0 0
Pe odo m a s coito: 2 6 d a s y p e iodo mas largo: 31 d a s
D IA S P R O B A B L E S E N CI CLO M E N S T R U A L I R E G U L A R DE.
NO FERTILIDAD F E R T I L I D A D NO FERTILIDAD
0 4 / 0 1 / 0 0
0 5 / 0 1 / 0 0
0 6 / 0 1 / 0 0
0 7 / 0 1 / 0 0
0 8 / 0 1 / 0 0
0 9 / 0 1 / 0 0
10/01/00
11/01/00
12/01/00
1 3 / 0 1 / 0 0
1 4 / 0 1 / 0 0
1 5 / 0 1 / 0 0
1 6 / 0 1 / 0 0
1 7 / 0 1 / 0 0
1 8 / 0 1 / 0 0
1 9 / 0 1 / 0 0
2 5 / 0 1 / 0 0
2 6 / 0 1 / 0 0
2 7 / 0 1 / 0 0
2 8 / 0 1 / 0 0
2 9 / 0 1 / 0 0
3 0 / 0 1 / 0 0
3 1 / 0 1 / 0 0
01/02/00
02/02/00
FUENTE OBSTETRIZ: S u s a n a M a t a l a n a Hurl ado - Cop 75 9 7 Se ivicio d e Consejer a INNPARES - CNd a y o
Para desarrollar esta aplicacin, dibuje en un formulario 2 controles Frame, 2 boto
nes de comandos, 4 etiquetas y 3 ListBox.
246
G rupo Editorial Megabyte^
CAPTULO V: Ingreso Personalizado de Datos
i n s t r u c c i o n e s d e l o s b o t o n e s
BOTN P E R I O D O MENSTRUAL REGULAR
Prvate Sub Commandl_Click()
Dim fecha As String
Dim R, X As Integer
Listl.Clear : ListClear : List3.Clear
fecha = InputBox(Ingrese la Fecha del Primer Da + Chr(13) + de la
ltima menstruacin, MENSTRUACION REGULAR)
If Not IsDate(fecha) Then
MsgBox HA INGRESADO UNA FECHA INCORRECTA, 16, CUIDADO
Else
R = MsgBox( ler. Da de Menstruacin + Format(CDate(fecha), Long
Date), 36, ES LA FECHA CORRECTA)
If R = 6 Then
Labell=ler. Da de Menstruacin:+Format(CDate(fecha),Long Date)
Frame2 = DIAS PROBABLES EN CICLO MENSTRUAL REGULAR DE:
For X = 0 To 5
Listl.Addltem (CDate(fecha) + X) 'DIAS PROBABLES DE NO FERTILIDAD
Next X
For X = 6 To 18
List2.AddItem (CDate(fecha) + X) DIAS PROBABLES DE FERTILIDAD
Next X
For X = 19 To 27
List3.AddItem (CDate(fecha) + X) DIAS PROBABLES DE FERTILIDAD
Next X
End If
Endlf
End Sub
BOTN PERIODO MENSTRUAL REGULAR
Prvate Sub Command2_Click()
Dim fecha As String
Dim L, C, INICIO, FINAL, R, x As Integer
C = Val(InputBox(Nmero de das ms corto,"DE LOS ULTIMOS 6 CICLOS MENSTRUALES"))
L = Val(InputBox(Nmero de das ms largo , DE LOS ULTIMOS 6 CICLOS MENSTRUALES'))
INICIO = C - 18
FINAL = L - 11
MsgBox El perodo frtil empieza a los & INICIO & das de la menstruacin & Chr(13) & y
termina despus de & FINAL & dias de tu mestruacin, 64, CUlDAIX V
fecha=InputBox(ingresa ek da de tu ltima menstruacin,MENSTRUACION IREGULAR)
If Not IsDate(fecha) Then
MsgBox HA INGRESADO UNA FECHA INCORRECTA , 16, CUIDADO
Else
If R = 6 Then
Labell = 1er. Da de Menstruacin: + Format(CDate(fecha), Long Date)
Labell = Labell & Chr(13) & Periodo mas corto: & C & " das y
periodo mas largo: & L & das
Frame2 = DIAS PROBABLES EN CICLO MENSTRUAL IREGULAR DE:
For x = 0 To INICIO - 2
Listl.Addltem (CDate(fecha) + x) DIAS PROBABLES DE NO FERTILIDAD
Next x
For x = INICIO - 1 To FINAL
List2.AddItem (CDate(fecha) + x) DIAS PROBABLES DE FERTILIDAD
Next x
For x = FINAL + 1 To 30
List3.AddItem (CDate(fecha) + x) DIAS PROBABLES DE FERTILIDAD
Next x
End If
End If
End Sub
UPDOWN
1:
Este control muestra dos botones con flechas que nos permiten incrementar
o disminuir un valor. Se puede relacionar o no con otro control como por
ejemplo con una caja de textos para que funcionen como un solo control.
PRINCIPALES PROPIEDADES DE CONTROL UPDOWN:
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas:
General, Relaciones y Desplazamiento.
la^TTiT-Tl-'MdJ III I I II I E l
General | Relaciones | Desplazamiento j
Qriontnton |0 c-c20rntonVricoil _~]
OLEDrouMode j - cc20LEDropNone j - ]
i VISUAL BASIC como debe ser...
_J Cancel ar j ______________|Ayuda
ALIGMENT
Coloca el control UpDown a la derecha o izquierda del control con el que se
ha relacionado.
ORIENTATION
Coloca el control en forma vertical o en forma horizontal
OLEDROPMODE
Devuelve o establece el modo en que un componente de destino realiza las
operaciones de colocacin.
El contenido de la hoja Relaciones es:
General Relaciones JDesplazamiento j
B u d d y C o n t r o l |
f~AutoBucyj ~
I
I Aceptar | Cancelar | Apliar j Ayuda
248 G rupo E ditorial Megab
CAPTULO V: Ingreso Personalizado de Datos
BUDDYCONTROL
Se utiliza para escribir el nombre de un control que se encuentre dibujado en
el formulario y con el cual desea relacionar el control UpDown. Por ejemplo,
si tiene dibujado 5 cajas de texto y desea relacionar el control con Text3,
entonces debe escribir Text3 o el nombre que le a asignado en ame.
AUTOBUDDY
Permite que el control UpDown se relacione automticamente con el control
que usted ha dibujado inmediatamente antes o despues de dibujar del
control UpDown.
SYNCBUDDY
Se utiliza para indicar si la propiedad Valu del control UpDown debe estai
sincronizada con la propiedad predeterminada o seleccionada del control
con el que se encuentra relacionado. Si se relaciona con una caja de textos,
la propiedad predeterminada es Text, esto quiere decir que en la propiedad
Text de la caja de texto se muestra el valor la propiedad Valu del control
UpDown.
BUDDYPROPERTY
Se utiliza para seleccionar una propiedad para la relacin diferente a la
predeterminada.
El contenido de la hoja Desplazamiento es:
r-j'.i.mi'. f 'i'i'.mumiii.Kiii.i-' m ^ ^ n a i
Genera! | Relaciones Desplazamiento |
Inteivalo de despl azamiento ,
y e l u e Min: Max
B f ful r Wmp
T a s a d e desplazamiento
Increment j
! ir'
| Aceptar j Cancetai' J Aphj. y | Ayixl .
VALUE
Contiene un valor que depende de los botones donde se hizo clck. Este
valor se visualiza en el control relacionado.
MIN
Se utiliza para indicar el valor mnimo para el control UpDown.
MAX
Se utiliza para indicar el valor mximo para el control UpDown.
WRAP
Esta propiedad permite establecer si el valor regresa al valor mnimo cada
vez que se llegue al valor mximo o viceversa.
INCREMENT
Esta propiedad permite establecer el valor del incremento o decremento
para cada vez que se haga clik en los botones del control UpDown.
MASKEDBOX
##|
Este control permite ingresar y visualizar datos con un formato determinado.
Si no le asignamos ningn formato de ingreso o visualizacin se comporta de
una manera similar al de una caja de textos.
PRINCIPALES PROPIEDADES DEL CONTROL MASKEDBOX:
FORMAT
Sirve para seleccionar el formado de visualizacin de los
datos. Estos datos pueden ser de tipo numrico, fecha, hora
y texto. Por ejemplo: Formato monetario $#,##0.00; ($#,##0.00)
Utiliza separador de miles; presenta los nmeros negativos entre parntesis.
Formato de porcentaje. 0%
Multiplica el valor por 100 y agrega un signo de porcentaje.
Formato de fecha largo, dddddd
Ejemplo: Domingo 13 de Junio de 1999
Formato de fecha medio, dd-mrm-yy
Ejemplo: 13-Jun-99.
Formato de fecha corto, ddddd
Ejemplo: 13/06/99.
Formato de hora largo, tttt
Ejemplo: 1:30:42 A.M.
Formato de hora medio. hh:mm AM/PM
Ejemplo: 1:30 A.M.
Formato de hora corto. hh:mm
Ejemplo: 1:30.
MASK
Sirve para asignar un formado para ingresar datos.
Los caracteres ms utilizados son:
# .- Indica que slo se deben ingresar dgitos.
? .- Indica que slo se deben ingresar letras.
. .-Se utiliza para separar decimales.
, .- Se utiliza para separar miles.
: .-Se utiliza para separar en las horas.
/ .-Se utiliza para separar en las fechas.
En los cuatro caracteres anteriores verifique la configuracin
de su computadora (Configuracin regional).
A . -- Indica que slo se deben ingresar letras o nmeros.
> .- Convierte las siguientes letras a maysculas.
< .- Convierte las siguientes letras a minsculas.
C .- Indica que slo debe aceptar espacios.
\ .- Permite incluir cualquier carcter anterior dentro de
la mscara.
M B ? VISUAL BASIC como debe ser...
2 5 0 G rupo E ditorial M e g a b y t e < | ^
Ejemplo: Si en la propiedad Mask Ud., escribe:
#### .- Permite ingresar cuatro dgitos.
???? .- Permite ingresar cuatro letras.
##??## .- Permite ingresar dos dgitos, luego dos letras y
luego dos dgitos mas.
##/##/## o ##-##-## .- Facilita el ingreso de un fecha, pero
no controla si la fecha ingresada es correcta.
##:##.## .- Facilita el ingreso de las horas, minutos y
segundos, pero no controla si se ingresada correctamente.
###,###.## .- Facilita el ingreso de cantidades utilizando
miles y dos decimales.
>?<??????? .- Permite ingresar ocho letras, la primera la
convierte a mayscula y el resto en minsculas.
\<####\> .- Permite ingresar cuatro dgitos entre los signos
mayor y menor.
##CAAAAA .- Permite ingresar dos dgitos, -un espacio (opcional)
y luego cinco valores alfanumricos (letras o nmeros).
NOTA:
Para borrar dentro de un programa el contenido de este control, primero debe borrar lo que
contiene en la propiedad Mask y luego se borra lo que contiene la propiedad Text.
MaskedBox 1.Mask =""
MaskedBox 1.Text=""
ALLOWPROMPT
Se utiliza para indicar el carcter de peticin se puede considerar como un
ingreso vlido.
PROMPTCHAR
Se utiliza para indicar el carcter de peticin de los datos. El carcter
predeterminado es el subrayado (_), pero Ud., puede utilizar cualquier otro
carcter.
MUY IMPORTANTE
Si no desea visualizar ningn carcter de peticin de datos, borre el carcter
que se encuentra en la propiedad PromptChar y luego pulse la tecla ALT y
el nmero 255.
PROMPTINCLUDE
Se utiliza para indicar si al referirnos al contenido de la propiedad Text se va
a tomar en cuenta el carcter de peticin.
NOTA:
( uando se ingresa un valor incorrecto; es decir, no cumple el formato establecido, entonces
se ejecutan las instrucciones del evento ValidationError.
> CAPTULO V: Ingreso Personalizado de Datos s S S P
como debe ser...
APLICACION DESARROLLADA N 37
i, INGRESO DE PACIENTES
E s z i
Nombre del P ac i en t e j j O R G E RIOS
F e cha de Ingreso | 0 4 / 0 8 / 1 9 99 -
Hora de I ngres o (24 Hs.) 1 6 : 2 0 : 1 5 - I
3
Sal a N s [ I - 1 2 )
A s eg u rad o ( S / N ) ?
Dal os del Sistema :
Fe c ha j M ircoles 4 d e A g o s t o de 1999
Ac tu a l i za r el S i s t e m a j ]
Actu a l i z a r el Sistema
N u e v o
Salir
Hora 16: 2 0: 3 0
Debe tener las siguientes caractersticas:
1. La Fecha y la hora de ingreso se pueden modificar con el control UpDown.
2. Para actualizar la hora el usuario debe ubicar primero el cursor en las horas,
minutos o segundos. En forma predeterminada se modifican los segundos.
3. Para ingresar la sala se deben utilizar un caja de textos y un control UpDown.
4. En Asegurado slo se debe aceptar las letras S(si) o N(no).
5. Los botones Actualizar el Sistema, deben actualizar la fecha y hora del
sistema.
6. Se deben visualizar la fecha y hora del sistema.
PASO N 1: Dibujar los controles.
NOTA: Cuando dibuje los controles MaskedBox, no se visualizaran los nombres
(salen en blanco).
S i
G rupo Editorial M e g a b y t e *
CAPITULO V: Ingreso Personalizado de Datos ^
PASO N 2: Asignar las propiedades a los controles.
AL formulado, frame, etiquetas y botones de comandos asgneles la propiedad
Caption como se muestra en la aplicacin a desarrollar.
Las cajas de texto: Text2, Text4 y Text deben tener en su propiedad
BorderStyle el valor 0-None y en su propiedad Width el valor 200.
Las cajas de texto: Text3 y Text5 deben tener en su propiedad BorderStyle
el valor 0-None, en su propiedad Width el valor 90 y en su propiedad Texl
dos punto (:).
Las cajas de texto desde Text2 hasta Text, deben estar lo mas juntas
posibles. Esto lo puede lograr usando la propiedad Left.
Los controles UpDown 1 y UpDown2 no deben tener ninguna propiedad
porque no estn ligados a ningn control, trabajan en forma independiente.
El control UpDown3 est ligado al control Text7, por lo tanto, debe tener las
siguientes propiedades:
UPDOWN BUDDYCONTROL SYNCBUDDY BUDDYPROPERTY MIN MAX WRAP
UpDown3 Text7 True Predeterminado 1 12 True
Las propiedades de los controles MASKEDBOX son:
MASKEDBOX
MaskedBoxl
MaskedBox2
MaskedBox3
Maskedbox4
FORMAT
En Blanco
En Blanco
dddddd
ttttt
MASK
#/##/####
>?
En Blanco
En Blanco
ENABLED
True
True
False
False
PASO N 3: Escribir las instrucciones para los controles.
Definir las variables a nivel de formulario:
jjl Proyeclol - Form! (Cdigo) m u
(General) (Declaraciones)
Option E x p l i c i t
Dim CAJA, HORAS, MINUTOS, SEGUNDOS As Byte
Dim FECHA As Date
Instrucciones del Procedimiento MUESTRATIEMPO
S u b MUESTRATIEMPO ()
T e x t 2 = Format (HORAS, " 00")
T e x t 4 = Format ( MINUTOS, " 00")
T e x t 6 = Format(SEGUNDOS, " 00")
End S u b
Instrucciones del evento Form_activate
P r v a t e Sub F o r m _ A c t i v a t e ()
T i m e r l . I n t e r v a l = 1000 ' A c t i v a l a s i n s t r u c c i o n e s d e l Ti me r
CAJA = 6 ' Los s e g u n d o s de m o d i f i c a n en f orma p r e d e t e r m i n a d a
FECHA = Dat e
Mas kEdBoxl . T e x t = Format(FECHA, " d d/ mm/ y y y y " )
MaskEdBox2. T e x t = "N"
MaskEdBox3. T e x t = Dat e ' Mu e s t r a l a Fecha d e l S i s t e m a
MaskEdBox4. T e x t = Ti me ' Mue s t r a l a Hora d e l S i s t e m a
HORAS = Hour( Ti me)
MINUTOS = Mi n u t e ( Ti me )
SEGUNDOS = Se c ond( Ti me )
MUESTRATIEMPO
T e x t l = ""
T e x t 7 = 1
T e x t l . S e t F o c u s
End Sub
Instrucciones del Control Timer
'Muestra la hora del sistema
P r v a t e S u b T i m e r l _ T i m e r ()
Ma s k Ed Bo x 4 . T e x t = Ti me
End S u b
Instrucciones del Control UpDownl
' Al h a c e r c l i c k en l a f l e c h a h a c i a a b a j o d i s m i n u y e l a f e c h a .
P r v a t e Sub UpDownl _DownCl i ck()
FECHA = CVDat e ( Mas k EdBox l . Te xt ) - 1
Mas kEdBoxl . T e x t = Format(FECHA, "dd/ mm/ yyyy" )
End Sub
' Al h a c e r c l i c k en l a f l e c h a h a c i a a r r i b a aument a l a f e c h a .
P r v a t e Sub UpDownl _UpCl i ck()
FECHA = CVDat e ( Mas k EdBox l . Te xt ) + 1
Mas k EdBox l . T e x t - Format(FECHA, " d d / mm/ y y y y " )
End Sub
2 5 4 G rupo .............R, al M e g a b y t e # *
CAPTULO V: Ingreso Personalizado de Datos
Instrucciones del Control UpDown2
Al hacer click en la flecha hacia abajo disminuye las horas, los minutos o
segundos, dependiendo de donde se encuentre el cursor. En forma
predetermina disminuyen los segundos.
P r v a t e S ub UpDown2_DownCl i ck()
S e l e c t Ca s e CAJA
Ca s e 2
HORAS = HORAS - 1
I f HORAS = - 1 Then HORAS = 23
Ca s e 4
MINUTOS = MINUTOS - 1
I f MINUTOS = - 1 Then MINUTOS = 59
Ca s e 6
SEGUNDOS = SEGUNDOS - 1
I f SEGUNDOS = - 1 Then SEGUNDOS = 5 9
End S e l e c t
MUESTRATIEMPO
End Su b
Al hacer click en la flecha hacia arriba aumentan las horas, los minutos o
segundos, dependiendo de donde se encuentre el cursor. En forma
predetermina aumentan los segundos.
P r v a t e Sub UpDown2_UpCl ick()
S e l e c t Case CAJA
Case 2
HORAS = HORAS + 1
I f HORAS = 24 Then HORAS = 0
Case 4
MINUTOS = MINUTOS + 1
I f MINUTOS = 6 0 Then MINUTOS = 0
Case 6
SEGUNDOS = SEGUNDOS + 1
I f SEGUNDOS = 6 0 Then SEGUNDOS = 0
End S e l e c t
MUESTRATIEMPO
End Sub
Instrucciones del Botn Actualizar el Sistema (Fecha)
P r v a t e Sub Commandl _Cl i c k ()
Dat e = CVDat e( Mas kEdBoxl . Text )
MaskEdBox3. T e x t = Dat e
End Sub
Instrucciones del Botn Actualizar el Sistema (Hora)
P r v a t e Sub Command2_Cl i ck( )
HORAS = Val ( T e x t 2 )
MINUTOS = V a l ( T e x t 4 )
SEGUNDOS = V a l ( T e x t 2)
Time = CVDate ( S t r (HORAS) + ": "+Str (MINUTOS) + *: "+Str (SEGUNDOS))
MaskEdBox4. T e x t = Ti me
End Sub
Instrucciones del Control MaskEdBoxl
Al dejar de ingresar la fecha de ingreso, verifica que la fecha es correcta.
P r v a t e Sub Ma s k Ed Box l _ Los t Foc us ()
I f Not ( I s D a t e ( Ma s k E d B o x l . T e x t ) ) Then
MsgBox "No e s una f e c h a C o r r e c t a " , 16, " R e c t i f i q u e "
MaskEdBoxl . S e t F o c u s
End I f
Erid Sub
Instrucciones del Control MaskEdBox2
Permiten que slo se ingresen las letras N o S.
P r v a t e Sub Mas k EdBox 2_Ke y Pr es s ( Key As c i i As I n t e g e r )
Dim K As I n t e g e r
K = A s e (UCase(Ch r (K e y A s c i i ) ) )
I f No t (K = 83 Or K = 78 Or K = 27 Or K = 13 Or K = 8) Then
K e y A s c i i = 0 ' I n g n o r a e l c a r a c t e r i n g r e s a d o
End I f
End Sub
f ^ VISUAL BASIC como debe ser. . . < 3
Instrucciones de las Cajas de Texto
Al ubicar el cursor en una caja de textos la variable Caja indica dnde de
hizo Click y selecciona lo que contienen.
P r i v a t e Sub Text 2_Got Focus ()
CAJA=2 ' Hi z o c l i c k en T e x t 2
T e x t 2 . S e l S t a r t = 0
T e x t 2 . S e l L e n g t h =
L e n ( T e x t 2)
T e x t 2 = T e x t 2 . S e l T e x c
End Sub
P r i v a t e Sub T e x t 4 _ Go t F o c u s ()
CAJA=4 ' Hi z o c l i c k en T e x t 4
T e x t 4 . S e l S t a r t = 0
T e x t 4 . S e l L e n g t h = L e n ( T e x t 4 )
T e x t 4 = T e x t 4 . S e i T e x t
End Sub
P r i v a t e Sub T e x t 6 _ Go t F o c u s ()
CAJA=6 ' Hi z o c l i c k en T e x t 6
T e x t 6 . S e l S t a r t - 0
T e x t 6 . S e l L e n g t h = L e n ( T e x t )
T e x t 6 = T e x t 6 . S e i T e x t
End Sub
P r i v a t e Sub Te x t 7_Got Foc us ()
T e x t 7 . S e l S t a r t = 0
T e x t 7 . S e l L e n g t h = Le n ( Te x t 7 )
T e x t 7 = T e x t 7 . S e i T e x t
End S u b
I n s t r u c c i o n e s d e l B o t n Nuevo
P r i v a t e S u b C o n m a n d 3 _ C l i c k ()
F o r m _ A c t i v a t e
End S u b
El Botn salir debe tener la instruccin END.
2 5 6 G r u p o E d i t o r i a l Megabyte
CAPTULO V: Ingreso Personalizado de Datos '%
INSTRUCCIN SENDKEYS
Hace que Visual Basic considera que se han pulsado teclas como si
hubisemos utilizado el teclado. Esto quiere decir que con esta instruccin
podemos presionar automticamente las teclas ENTER, ESCAPE,
BACKSPACE, TAB, etc., o escribir algn texto sin que el usuario, es decir,
la persona que esta usando la computadora lo haga. Por ejemplo, para enviar
el texto Visual, se escribe: SendKeys "Visual
Los signos ms(+), intercalacin(A), porcentaje(%), tilde(~), los parntesisO
y las teclas especiales deben de estar entre llaves ({}). Debe utilizar el
nombre correcto de las teclas especiales en maysculas o minsculas.
TECLA
RETROCESO
INTER
BLOQMAYS
SUPR
FLECHA ABAJO
FIN
ENTRAR
ESC
AYUDA
INICIO
NOMBRE
{BACKSPACE}, {BSJ
(BREAK)
CAPSLOCKj
(DELETE} o (DEL)
(DOWN}
(END)
{ENTER}o ~
{ESC}
{HELP}
(HOME)
TECLA
INSERT
FLECHA IZQ
BLOQ NM
RE PAG
AVPG
IMPR PANT
FLECHA DER
BLOQ DESPL
TAB
FLECHA ARRIBA {UP}
NOMBRE
{INSERT} o {INS}
{LEFT}
{NUMLOCK}
{PGDN}
{PGUP}
{PRTSC}
{RIGHT}
{SCROLLLOCK}
{TAB}
Las teclas de funcin Fl, F2, etc., tienen el mismo nombre.
Ejemplos:
Las siguientes instrucciones ubican el cursor en Textl y pulsan en
forma automtica la tecla TAB.
Textl.setfocus
Sendkeys "{TAB}"
Las siguientes instrucciones ubican el cursor en el Command2 y pulsan
en forma automtica la tecla ENTER que equivale a hacer click, por lo
tanto ejecutarn las instrucciones que se encuentran en dicho botn
de comandos.
Command2.SetFocus
SendKeys ''{enter}"
La siguiente instruccin pulsa en forma automticas las teclas 'AB y
ENTER:
SendKeys "{tab}{enter}"
Para combinar las teclas con CTRL, MAYS (SHIFT) y ALT, debe escribir
primero el cdigo de la tecla:
CTRL (CONTROL) A MAYS (SHIFT) + ALT %.
Y luego el nombre de la tecla que desea entre parntesis. Por
ejemplo, La siguiente instruccin pulsa en forma automtica F4,
manteniendo presionada la tecla ALT. SendKeys "%({F4})
La siguiente instruccin mantiene presionada la tecla Shift, mientras
escribe la palabra trabajo. SendKeys "+( t r a b a j o ) "
Se puede indicar tambin la cantidad de veces que desea que se pulse
la tecla. Por ejemplo, la siguiente instruccin pulsa 6 veces la
tecla BACKSPACE: S en d K eys " (BS 6} "
i y,SY. VIL BA SIC como debe ser.
APLICACION DESARROLLADA N 38
Esta aplicacin permite ingresar datos, pero tiene un botn que hace una
demostracin de cmo ingresarlos.
Nombre
Edad
Direccin
T elfoho
r
(Demostracin
Estudios
j Primaria
Nuevo S a l i r
PASO N 1: Dibujar los controles.
-IPI *1
Labell
Label2
Label3
Labe!4
LabeIS
Textl
|Text2
|Text3
| f ext4
Command3
Combol
Command!
" 3 : :
Command2
PASO N 2: Asignar las propiedades a los controles.
A las etiquetas y botones de comandos asgneles su propiedad Caption como
se muestra en la aplicacin a desarrollar.
El Combol debe tener en su propiedad List, los valores: Primaria,
Secundaria y Superior.
PASO N" 3: Escribir las instrucciones para los controles.
Definir las variables a nivel de formulario.
P u b l i c DATO, Y, N A s B y t e
P u b l i c NOMBRE, EDAD, DIRECCION, TELEFONO A s S t r i n g
Procedimiento Cambio
S u b CAMBIO ()
DATO = DATO + 1
Y = 0
S e n d K e y s " { TAB}'
End S ub
258
Instrucciones del botn Nuevo
P r v a t e S u b C o m m a n d l _ C l c k ()
F o r m _ A c t i v a t e
End S u b
G rupo E ditorial Megabyte*
Instrucciones del procedimiento Form_Activate
P r i v a t e Sub F o r m _ A c t i v a t e ()
Rem D a to s a v i s u a l i z a r en l a d e m o s t r a c i n
NOMBRE = "OLGA UBILLUS D. "
EDAD = "25 ANOS"
DIRECCION = "Av. IMELDA LOPEZ 285"
TELEFONO = "222324"
DATO = 1
Y = 0
T e x t l = : T e x t 2 = "" : T e x t 3 = "" : T e x t 4 =
Combol. L i s t l n d e x = 0 : T e x t l . S e t F o c u s
End Sub
Instrucciones del botn Demostracin.
P r i v a t e Sub Command3_Click()
F o r m _ Ac t i v a t e
Commandl. E n a b l e d = F a l s e
Command2. E n a b l e d = F a l s e
Command3. E n a b l e d = F a l s e
T i m e r 1 . I n t e r v a l = 100
End Sub
Instrucciones del-control Timerl
P r i v a t e Sub T i m e r l _ T i m e r ()
Y = Y + 1
S e l e c t Case DATO
Case 1
SendKeys Mid (NOMBRE, Y, 1)
I f Y = L e n (NOMBRE) Then CAMBIO
Case 2
SendKeys Mid (EDAD, Y, 1)
I f Y = L e n (EDAD) Then CAMBIO
Case 3
SendKeys Mid (DIRECCION, Y, 1)
I f Y = Len (DIRECCION) Then CAMBIO
Case 4
SendKeys M i d (TELEFONO, Y, 1)
I f Y = Len (TELEFONO) Then CAMBIO
Case 5
T i m e r l . I n t e r v a l = 700 'A m p lia e l i n t e r v a l o d e t i e m p o
SendKeys " ( { f 4 } ) " ' M u e s t r a l o s e l e m e n t o s d e l Combol
DATO = DATO + 1
Case 6
S endKeys " ( { down})"
DATO = DATO + 1
Case 7
SendKeys " ( {down})"
DATO = DATO + 1
Case E l s e
T i m e r l . I n t e r v a l = 0
Commandl. E n a b l e d = T r u e
Command2. E n a b l e d = T r u e
Command3. E n a b l e d = T r u e
Commandl. S e t F o c u s
End S e l e c t
End Sub
2 5 9 g
VISUAL BASIC como debe ser..
ARRASTRAR Y COLOCAR
Para que usted pueda desarrollar programas donde se permita Arrastrar y
Colocar Objetos, primero debe saber siguiente:
EVENTO DRAGDROP
Es un evento cuyas instrucciones que contiene se ejecutan cuando se termina
el proceso de Arrastrar y Colocar.
Recibe normalmente tres valores en las siguientes variables:
SOURCE: Es una variable que representa al control que se esta arrastrando.
Puede utilizar esta variable para asignar valores a las propiedades de dicho
control.
X: Es una variable que representa la posicin Horizontal del puntero del mouse.
Y: Es una variable que representa la posicin Vertical del puntero del mouse.
Si trabajamos con array de controles tambin devuelve un valor en la variable
INDEX que representa al N del control del array que se est utilizando.
EVENTO DRAGOVER
Es un evento cuyas instrucciones que contiene se ejecutan cuando el proceso
de Arrastrar y Colocar se esta realizando.
Recibe los mismos valores que el evento DragDrop, pero adems:
STATE: Es una variable que representa cul es la situacin del control que
se esta arrastrando en el control de destino. Devuelve los valores 1, 2 3.
0 : El control que se est arrastrando entra al control destino.
1 : El control que se est arrastrando sale del control destino.
2: El control que se est arrastrando se ha movido sobre el control destino.
PROPIEDAD DRAGMODE
Cuando un control tiene esta propiedad se utiliza para indicar cmo se debe
iniciar el proceso Arrastrar y Colocar.
Si se le asigna el valor 0 (Manual) se necesita utilizar el mtodo Drag para
iniciar el proceso.
Si se le asigna el valor 1(Automtico) el proceso se inicia automticamente
cuando usted lo requiera.
MTODO DRAG
Este mtodo se utiliza para iniciar, terminar o cancelar un proceso de
Arrastrar y Colocar. Su sintaxis es:
Nombre del Control.Drag Valor
El valor puede ser:
0 : Cancela el proceso de Arrastrar y Colocar.
1 : Inicia el proceso de Arrastrar y Colocar.
2 : Termina el proceso de Arrastrar y Colocar.
La siguiente aplicacin muestra un ejemplo de Arrastrar y Colocar:
260
G rupo E ditorial Megabyte ^ ||i |||
O
CAPTULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N 39
Esta aplicacin consiste en el juego TRES EN RAYA para lo cual se
utiliza el proceso de Arrastrar y Colocar.
yjS*
? r ***
r~ m r fe
i x : r p ^
... ..... .
p B t m & x W 01 corneto
j & l i x a Muela
PASO N 1: Dibujar los controles.
Picturel Picture2 Array de Picture Picture3 Picture4
(de0a8)
Hcture5
Labell
Label3
jTextl
mm
Labe(2
LabeM
IT ext2
Frame4
r Check!
-Picture7
PASO N 2: Asignar las propiedades.
Coloque el Picture2 sobre el Picturel y el Picture4 sobre el Picture3.
Slo al Picture5 y Picture7 asigneles en su propiedad DragMode el valor I
(Automtico). Los grficos utilizados en la propiedad picture de algunos
controles son: Face03.ico (Alegre), Face04.ico (Triste), House.ico (Casa),
Match.ico (Fuego), TrffclOa.ico (Semforo), EraseOl .ico (Borrador). Si no
los tiene utilice cualquier otro.
A los otros controles asigneles las propiedades como se indica en la
aplicacin.
PASO N 3: Escribir las instrucciones para los controles
Instrucciones del botn Nuevo Juego.
Private Sub Commandl_Click()
Dim x As Byte
Rem Oculta las figuras alegre y triste
Picture 1. Visible = False
Picture2.Visible = False
Picture3.Visible = False
Picture4.Visible = False
Rem Limpia el tablero del tres en raya
For x = 0 To 8
Picturefx) = LoadPicture("")
Next x
Rem Pregunta quin juega primero
I f Check2 Then
Frame .Enabled = True
Frame 3. Enabled = False
Else
Frame 1. Enabled = False
Frame3. Enabled - True
End I f
Rem Activa el tablero del tres en raya
Frame2. Enabled = True
End Sub
Instrucciones del botn Inicializar el Puntaje.
Private Sub Command!_Click()
Labell = 0
Label2 = 0
End Sub
Instrucciones del Checkl
Private Sub Checkl j Click()
I f Checkl Then
Labell .Visible = True
Label2.Visible = True
Else
Label .Visible = False
luibel2.Visible = False
End I f
End Sub
S ^ VISUAL BASIC como debe ser. . .
262 G rupo E ditorial Megabyte
Instrucciones del Form_Activate
Prvate Sub Form_Activatef)
Checkl. Valu = 1
Check2. Valu - 1
Commandl _Click
End Sub
Instrucciones del Array Picture (Programa en cualquiera de ellos)
Private Sub Picture6_DragDrop(Index As Integer, Source As Control, xAs Single,
Y As Single)
Rem Coloca la figura
Picturef Index) = Source
Rem Activa el jugador de turno
If Source = Picture5 Then
Frame .Enabled = False
Frame 3. Enabled = True
Else
Frame 1. Enabled - True
Frame 3. Enabled = False
End If
Rem Pregunta si hubo un ganador (Tres en raya horizontal)
IfPicture(O) = Picturef 1) And Picture6( 1) = Picturef2) Then Call ganadorfO)
If Picturef 3) = Picturef4) And Picturef 4) = Picturef 5) Then Call ganado rf3)
IfPicturef) = Picturef 7) And Picture(7) - Picture(8) Then Call ganadorf)
Rem Pregunta si hubo un ganador f Tres en raya vertical)
If Picturef 0) = Picturef 3) And Picture(3) - Picturef ) Then Call ganadorfO)
If Picturef 1) = Picturef4) And Picturef 4) = Picturef 7) Then Call ganado rf I)
If Picturef 2) = Picturef 5) And Picturef5) = Picturef 8) Then Call ganado rf 2)
Rem Pregunta si hubo un ganador (Tres en raya diagonal)
IfPicture(O) = Picture(4) And Picture(4) = Picture(8) Then Call ganadorfO)
If Picturef 2) = Picturef4) And Picturef4) = Picturef 6) Then Call ganado rf 2)
End Sub
Instrucciones del Procedimiento GANADOR.
Sub ganadorfcarta)
Rem Pregunta si gan el jugar N 01
If Picturef carta) - Picture5 Then
Picturel. Visible = True
Picture4. Visible = True
MsgBox Gan el Jugador N 01 +Chr(13)+Chr(34)+Textl+Chr(34),4,
Felicitaciones
Labell = Labell + 10
Frame2. Enabled = False
End If
Rem Pregunta si gan el jugar N 02
If Picturef carta) = Picture7 Then
Picture2. Visible = True
Picture3. Visible = True
MsgBox Gan el Jugador N 02 +Chr(13)+Chr(34)+Text2+Chr(34), 4,
Felicitaciones
Label2 = Label2 + 10
Frame2.Enabled = False
End If
End Sub
CAPTULO V: Ingreso Personalizado de Datos

I VISUAL BASIC como debe ser...


AHORRE TIEMPO AL PROGRAMAR
INSTRUCCIN WITH
Esta instruccin permite ahorrar tiempo al momento de programar, porque
evita referirnos varias veces al nombre de un control.
Su sintaxis en la siguiente:
With Nombre del Control
Instruccin (es)
End With
Dentro del bloque de instrucciones, usted puede referirse a cualquier
propiedad o mtodo del control indicado con slo escribir un punto (.) antes
de la propiedad o mtodo.
Ejemplo:
Las siguientes instrucciones:
Co mb o l . A d d l t e m "Api i c a t i v o s "
Co mb o l . A d d l t e m " P r o g r a m a d n "
Co mb o l . A d d l t e m " O t r o s "
Co mb o l . L i s t l n d e x = 0
Se pueden escribir de la siguiente manera
Wi t h Combo1
. A d d l t e m " A p l i c a t i v o s "
. A d d l t e m " P r o g r a m a c i n "
. A d d l t e m " O t r o s "
. L i s t l n d e x = 0
End Wi t h
IMPORTANTE:
Cuando tengas que repetir instrucciones similares es un programa, utiliza las
herramientas de Copiar y Pegar, la cuales tambin permiten ahorrar tiempo
durante la programacin.
COPIAR -> Ctrl + C o Edicin/Copiar
PEGAR -> Ctrl + V o Edicin/Pegar
264 G rupo E ditorial Megabyte
PREGUNTAS DE REPASO N 05
1. Cmo se pregunta si un control OptionButton est activado?
2. Qu instruccin o mtodo permite quitar un elemento del control
ComboBox y ListBox?
3. Cul es la diferencia entre las propiedades Format y Mask del control
MaskEdBox?
4. Cmo sabemos el elemento que el usuario a elegido de un control,
ComboBox o ListBox?
5. Cmo se puede verificar que la fecha ingresada en el control
MaskEdBox es correcta?
6. Cul es la diferencia entre en un OptionButton y CheckBox?
7. Qu ventaja tiene el control MaskEdBox sobre un TextBox?
8. Qu utilidad tiene la propiedad Warp en el control UpDown?
9. Qu teclas se deben pulsar por cada elemento que desea adicionar al
control ListBox o ComboBox?
10. Cmo se pregunta si un control Checkbox est activado?
11. Qu debe hacer si no desea visualizar el caracter de peticin en el
control MaskEdBox?
12. El Valor True se puede reemplazar por el nmero____y el valor False
por el nmero____.
13. Cul es la propiedad que permite saber si un control OptionButton o
CheckBox se encuentran activados o no?
14. Qu utilidad tiene la instruccin Sendkeys?
15. Cul sera el formato de la propiedad Mask del MaskEdBox para
ingresar una fecha apartir del ao 2000 (4 digitos)?
16. Con qu instruccin o mtodo se puede agregar elementos al control
ComboBox y ListBox?
17. Cmo se borra el contenido de un control MaskEdBox?
18. Qu utilidad tiene la propiedad Buddycontrol de un UpDown?
19. Qu evento se ejecuta en el control MaskEdBox cuando se ingresan
los que se cumple el formato establecido?
20. Cmo podemos hacer que se muestren los elementos de un ComboBox
en forma automatica con la instruccin SendKeys?
Es muy importante que usted, se formule nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de
estudio y desarrollarlas con la finalidad de enriquecer sus
conocimientos.
BASIC como debe ser.. .
PREGUNTAS DE REPASO N 06
1. Cmo quita un formulario de sus aplicacin?
2. Qu debe hacer si desea evitar que se muestre la ventana de dilogo
cada vez que agrega un formulario a su aplicacin?
3. Se puede grabar dos formularios con el mismo nombre?
4. Cules son los pasos para agregar la calculadora de Visual Basic a una
aplicacin?
5. Es obligatorio ocultar un formulario para visualizar otro durante la
ejecucin de una aplicacin?
6. Se puede agregar a una aplicacin un formulario que en su propiedad
ame tenga el mismo nombre de uno de los formularios de dicha
aplicacin?
7. Cul es la diferencia entre Hide y Unload?
8. Qu debe hacer si en una aplicacin tiene varios formularios y desea
visualiza o modifcar uno de ellos?
9. Explique cmo se adiciona un formulario ya creado a una nueva aplicacin.
10. Cuando se ejecuta una aplicacin, Visual Basic en forma predeterminada
ejecuta el formulario N___.
11. Qu mensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicacin y a qu se deben?
12. Cmo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
13. Cul es la diferencia entre Show y Load?
14. Explique la palabra clave Me.
15. Explique cmo se adiciona un formulario en blanco a una aplicacin.
16. Si tiene una aplicacin con 5 formularios. Cuando grabe la aplicacin
cuntos nombres debe ingresar.
17. Qu debe hacer para que Visual Basic ejecute primero un formulario
diferente al que ejecuta en forma predeterminada?
18. Cmo se declara una variable o procedimiento para poder usarlo en
cualquier formulario de una aplicacin?
19. Cul es la diferencia entre la calculadora del Visual Basic y la
calculadora del Windows?
20. Cuando quita un formulario de su aplicacin, se borra fsicamente del
disco de su computadora?
La creatividad es muy importante, formlese nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de estudio
y desarrollarlas con la finalidad de enriquecer sus conocimientos.
266
G rupo E ditorial Megabyte
CAPITULO VI
Aqirfior Inrmulino
N u o t o I Eistenlt I
E M t M M t VB Data /Wfitfint A b o ut Log In Opti on s Splash Tip O f
F arm e para O a i o g Dialog D ld a q S creen T he Dew
f-rwfrvii J b.i<
\
W\2ard f o mi d ar i
as de
datas . . .
Q- en a o. a o. en. &
Addin O D B C Efro w ser CvstaGrid Q u e r y s Acerca Entelo d e p e t o . ..
LoaIn de sesin
Abrir
L-eneelei
jiuda
-08-98
BIENVENIDOS
AL
SISTEMA
"lDKlDl Cancelar
MANEJO DE
VARIOS
FORMULARIOS
CAPTULO VI: Manejo de Varios Formularios
MANEJO DE VARIOS FORMULARIOS RIOS
r-
Cada vez que ingresa al Visual Basic, muestra una aplicacin que tiene en
forma predeterminada un formulario (Forml). Pero puede agregar ms
formularios.
AGREGAR FORMULARIOS A UNA APLICACIN:
Existen 3 formas de agregar formularios:
1. De la opcin Project (Proyecto) de la Barra de Men elija Add Form
(Agregar Formulario).
2. Haga Click en el botn Add Form de la barra de Herramientas.
3. En la ventana de proyecto haga click con el botn derecho del Mouse y
elija la opcin Agregar, luego formulario.
3 - BOTON ADD FORM
Segn como est configurado el Visual Basic puede visualizar la siguiente
ventana:
?|x|
Nuevo | Existente |
a V V Q D Q D Q .
2 2 2 2 3 8 1 VB D a t a Asis t e n t About Log In O p t ions Splash Tip Of
Form e p a r a Dialog Dialog Dialog Sc r e e n The Day
Wizard formulan
o s d e
d a t o s . ..
O O O O O Q O CJ '
Addiri ODBC Browser DataGrid Q u e r y s Acerca Inicio d e Opcio. . . f
Log In d e sesin
Abtir
Cancelar |
Ayyda | >
f Nfi mostrar esfe cuadro de dilogo en el futuro
Si no desea visualizar esta ventana active la casilla:
No mostrar este cuadro de dilogo en el futuro.
Si desea visualizarla: Active la opcin Tools (Herramientas), luego Options
(Opciones) y de la hoja Environment (Entorno) active la casilla Foms (Formularios).
En la hoja Nuevo, se muestra el icono formulario (Form), que permite agregar
un nuevo formulario en blanco a nuestra aplicacin. Para ello, seleccinelo
y haga click en el botn Abrir.
Agregar formulario
En la hoja Existente, se muestran los formularios que Ud., a diseo y
permite agregarlos a su nueva aplicacin. Para que esto tenga xito debe
de tener cuidado que los nuevos formularios existentes que desea agregar
no tengan el mismo nombre (propiedad ame) de los formularios que tiene
en su aplicacin actual.
Por ejemplo, se desea agregar a la aplicacin actual un formulario que tiene en
su propiedad ame el nombre Forml, pero en la aplicacin actual ya existe un
formulario que en sus propiedad ame tiene dicho nombre. Entonces se visualizan
los siguientes mensajes de error:
U l l b - VISUAL BASIC como debe ser: . .
Microsoft Visual Basic
&
Errores de carga. Consulte 'C:\Archivos de programa\DevStudio\V B\Form1 log' para
obtener ms detalles
Aceptar j | Ayuda
Microsoft Visual Basic
f \ N o se cargar 'Forml* El nombre ya est en uso.
I r ^ A c j ^ c i r ) | Ayuda j
Para solucionar este problema cambie el nombre de la propiedad ame a cualquiera
de los formularios.
Para visualizar todos los formularios que tienen nuestra aplicacin podemos
acticar la ventana de proyectos. Por ejemplo, la siguiente ventana indica
que tenemos 4 formularios:
' CD
C3 F o r m l ( F o r m i )
a Form2 ( F o r m 2 )
a Form3 ( F o r m 3 )
a Forrn4 ( F o r m 4 )
Haga click en el signo ms (+) si no se visualizan los formularios.
Los nombres de los formularios que se visualizan dependen del asignado en
su propiedad ame.
Para visualizar o modificar cualquier formulario, haga doble click en su
nombre o pulse SHIFT+F7.
p 270
Grupo Editorial Megabyte
CAPTULO VI: Manejo de Varios Formularios < 1 1 1 1 1
QUITAR FORMULARIOS DE UNA APLICACIN:
Para quitar un formulario de su aplicacin pude seguir cualquiera de los
siguientes pasos:
1. De la opcin Project (Proyecto) de la Barra de Men elija Remove
Form (Quitar Formulario).
2. En la ventana de proyecto haga click con el botn derecho del Mouse en
el nombre del formulario que desea quitar y elija la opcin Remove
Form.
NOTA:
Cuando Ud., quita formularios de su aplicacin que previamente a grabado,
Visual Basic no los borra de su computadora, slo los quita de la aplicacin
actual. Esto quiere decir que Ud., puede volver a agregar dicho formulario a su
aplicacin o en cualquier otra.
SELECCIONAR EL FORMULARIO A EJECUTARSE PRIMERO:
Visual Basic en forma predeterminada ejecuta el formulario N 1 cuando
Ud., ejecuta su aplicacin. Si desea indicarle que ejecute otro formulario
puede seguir cualquiera de los siguientes pasos:
1. De la opcin Project (Proyecto) de la Barra de Men elija Properties
Project (Propiedades del Proyecto)
2. En la ventana de proyecto haga click con el botn derecho del Mouse en
el nombre del proyecto y elija la opcin Propiedades del Proyecto.
Se visualiza la siguiente ventana:
G e n e r a l j G e n e r a r j C o m p i l a r | C o m p o n e n t e |
T i p o d e p r o y e c t o : O b j e t o i n i c i a l :
Nont>f d p r o y e c t o :
j P r o y e c t o 1 I d . d e c o n t e x t o ,
d e l a A y u d a d e l
h o m b r e d e l a r c h i v o d e A y u d a : p r o y e c t o :
i----------------------------------------- n '
d e s c r i p c i n d e l p r o y e c t o :
I-----------------------------------------------------------------
r~
A c t u a l i z a r c o n t r o l e s A c t i v e X C
r I 3
A c e p t a r } C a n c e l a r __ | A y u d a
Haga click en la flecha hacia ahajo de Startup Object (Objeto Inicial) y seleccione
el formulario que desea que se ejecute primero.
MUY IMPORTANTE
Si desea referirse a la propiedad de un control que se encuentra en
otro formulario, debe utiliza el signo de admiracin:
Nombre del Formulario!Control. Propiedad = Valor
Ejemplo:
La siguiente instruccin muestra en la etiqueta N 2 del formulario
Form3 la palabra HOLA. Esto se puede realizar desde cualquier for
mulario.
Form3!Label2 = "Hola"
Los nombres de los formularios en forma predeterminada son: Form 1, Form2,
Form3, etc. segn la cantidad de formularios que adicione a su aplicacin.
INSTRUCCIONES PARA MANEJAR FORMULARIOS
LOAD :
Permite cargar un formulario en la memoria, pero no lo visualiza. Para tener
acceso a los controles y propiedades de un formulario, ste debe estar car
gado en memoria.
LOAD Nombre del Formulario
UNLOAD :
Permite descargar (cierra) un formulario de la memoria independientemen
te de que se est o no visualizando.
UNLOAD Nombre del Formulario
HIDE :
Permite ocultar un formulario.
Nombre del Formulario.HIDE
SHOW :
Permite visualizar un formulario.
Nombre del Formulario.SHOW
Ejemplos:
FORM2.SHOW Muestra el formulario N 2.
UNLOAD FORM2 Descarga el formulario N 2.
La palabra clave ME puede reemplazar al nombre del formulario actual.
UNLOAD ME Descarga el formulario activo.
^ I - VISUAL BASIC como debe ser. . .
272 G rupo E ditorial Megabvte
CAPITULO VI:
io de Varios Formularios 'M,
APLICACION DESARROLLADA NH40
Esta aplicacin es un ejemplo de cmo se manejan varios formulario en una
aplicacin.
PASO N 01
Agregue y dibuje los formularios siguientes:
INGRESOLE DA
FORMI FORM2
Centrode Estudios
Especialidad
Ciclo
Turno
Aula [
MUEVO I SAUR I
FORM3
INGRESO DE DATOS:
DATOS EERSONALES |
DATOS ACADEMICOS j
DATO FAMILIARES I
IR ]|
X.

Apodeiado(a) J~
N* de Hermanos |
Lugar de Origen j
Tipo deVivienda |
NUEVO {
FORM4
* Nombre J[~
Direccin f
Telfono | ~
Fecha de Nac. | ~
Sexo |
MUEVO I SALIR
FORM5
Sjxl
Hora: 4;30pm.
Fecha: 21-08-98
BIENVENIDOS
AL
SI STEMA
I Cancelar I
FORM6
Ingiese los Datos Correctos :
Usuario Jj
P a s s w o r d i
PASO N 02
INSTRUCCIONES DEL FORM1
Las instrucciones del Commandl (OK) permiten ocultar el formulario N 1
y visualizar el formulario N 2 .
P r v a t e S u b C o m m a n d l _ C l i c k ()
F o r m l . H d e
For m2 . Show
End Su b
Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicacin.
P r v a t e S u b Command2__Cl ick ()
Dm R As I n t e g e r
R = M s g B o x ( " E s t a s e g u r o " , 36, " Cu i d a d o " )
I f R = 6 Then End
End Su b
INSTRUCCIONES DEL FORM2
Las instrucciones del Commandl (OK) verifica que se ha ingresado
correctamente el nombre del usuario y su password. El nombre del usuario
es JUAN JOSE y su password VISUAL.
La caja dE textos N 2 (Text2) debe tener en la propiedad Passwordchar el
asterisco (*) para que no se vea el password cuando es ingresado.
P r v a t e Sub Commandl _Cl i ck( )
I f UCa s e ( T r i m( T e x t l ) ) = "JUAN JOSE" And UCase ( T r i m ( T e x t 2 ) )
= "VISUAL" Then
Form2. H de
Form3. Show
El s e
MsgBox "DATOS INCORRECTOS", 16, "ACCESO DENEGADO"
T e x t l = ""
T e x t 2 = ""
T e x t l . S e t F o c u s
End I f
End Sub
Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicacin.
P r v a t e Sub Command2_Cl i ck()
Dim R As I n t e g e r
R = MsgBox( " Es t a s e g u r o " , 36, "Cui dado" )
I f R = 6 Then End
CAPTULO VI: Manejo de Varios Formularios ^ | f | |
INSTRUCCIONES DEL FORM3
Las instrucciones del Commandl (Datos Personales) oculta el Form3 (Men
Principal) y visualiza el Form4 (Ingreso de datos Personales).
P r v a t e Sub C o m m a n d i t a i c k ( )
F o r m 3 . H d e
Fo r m4 . Show
End S ub
Las instrucciones del Command2 (Datos Acadmicos) oculta ei Form3
(Men Principal) y visualiza el Form5 (Ingreso de datos Acadmicos).
P r i v a t e S u b Co mma n d 2 _ Cl i c k ( )
Fo r m3 . H d e
For m5 . Show
End Su b
Las instrucciones del Command3 (Datos Familiares) oculta el Form3 (Men
Principal) y visualiza el Form (Ingreso de datos Personales).
P r v a t e S u b Co mma n d 3 _ Cl i c k ()
Fo r m3. H d e
Fo r m6 . Show
End Sub
Las instrucciones del Command4 (Salir) permiten finalizar la aplicacin.
P r v a t e Sub Co mma n d 4 _ Cl i c k ()
R = Ms g B o x ( " E s t a s e g u r o " , 3 6 , " C u i d a d o " )
I f R = 6 Then End
End S u b
INSTRUCCIONES DEL FORM4
Instrucciones del botn Nuevo.
^ P r v a t e S u b C o m m a n d l _ C l i c k ()
T e x t l
_
T e x t 2
_ n
T e x t 3
_ il n
T e x t 4
= " "
T e x t 5 = " "
T e x t l S e t F o c u s
End S u b
Instrucciones del botn Salir.
P r v a t e S u b Co mma n d 2 _ Cl i c k ()
Fo r m4 . H d e
Fo r m3 . Show
End Su b
275
INSTRUCCIONES DEL FORM5
Instrucciones del botn Nuevo.
P r v a t e S u b C o m m a n d l _ C l c k ()
T e x t l =
T e x t 2 =
T e x t 3 =
T e x t =
T e x t 5 =
T e x t l . S e t F o c u s
End Sub
Instrucciones del botn Salir.
P r v a t e S ub C o m m a n d 2 _ C l i c k ()
F o r m 5 . H i d e
F orm 3. Show
End S u b
INSTRUCCIONES DEL FORM
Instrucciones del botn Nuevo.
P r i v a t e S u b C o m m a n d l _ C l i c k ()
T e x t l = ""
T e x t 2 = ""
T e x t 3 = ""
T e x t 4 = ""
T e x t l . S e t F o c u s
End Su b
Instrucciones del botn Salir.
P r v a t e S u b C o m m a n d 2 _ C l i c k ()
Fo rm . H i d e
F o r m 3 . Show
End Sub
Qu instrucciones debe tener el botn OK si se quiere desarrollar la aplicac.
anterior con botones de opciones?
wXfo VISUAL BASIC como debe ser..
f . _ | | x |
I n g i e r o de Dato.-
( .Datos Personales
C ' D a t o s A ca d mi co s
D ato s Familiares
r Salir
O K |
276 G rupo E di tori al Megabyte <
CAPTULO VI: Manejo de Varios Formularios
TIPOS DE FORMULARIOS
Formulario Modal:
Consiste en un formulario que NO permite continuar ejecutando la aplicacin
o pasar a otro formulario sin que se cierre correctamente. Para mostrar un
formulario y que funcione de tipo Modal slo debe escribir del mtodo Show
el nmero 1 o la palabra vbModal. Ejempo: FormS.Show 1
Formulario No Modal
Consiste en un formulario que SI permite continuar con la ejecucin de la
aplicacin o pasar a otro formulario sin necesidad que el formulario se cierre.
Para mostrar un formulario y que funcione de tipo No Modal se debe escribir
del mtodo Show sin ningn parmetro. Ejempo: Form3.Show
TIPO DE INTERFAZ
SDI (Interfaz de Documentos Simples)
Permiten crear aplicaciones con los formularios estndar o normales como
los utilizados en los ejemplos anteriores.
MDI (Interfaz de Documentos Mltiples)
Permiten crear aplicaciones que mantienen varios formularios (secundarios)
dentro de un formulario principal llamado MDI. Los MDI slo aceptan
controles que tengan la propiedad Align como StatusBar, ToolBar y Picture
(puede dibujar otros sobre este control) o aquellos que no se visualicen al
momento de ejecutarse el formulario como el control Timer.
DESARROLLAR UNA APLICACIN CON UN FORMULARIO MDI
Para desarrollar la aplicacin anterior con formularios MDI y secundarios
siga los siguientes pasos:
Elija la opcin Proyecto y luego Agregar Formulario MDI. En este formulario
MDI disee el Men Principal y al resto de formularios asgneles en su
propiedad MDIChild el valor TRUE.
PROCEDIMIENTO MAIN
Si desea que su aplicacin ejecute primero un procedimiento, entonces en la
opcin Proyecto/Propiedades del Proyecto/Objeto Inicial, elija Sub Main. El
procedimiento Sub Main lo debe crear en un mdulo. Por ejemplo, en la aplicacin
anterior agregue un mdulo y un formulario (Form7) y disee en l una pantalla
de presentacin la cual se visualizar por 3 segundos antes de mostrar el formulario
N 1(Bienvenida). En este formulario debe dibujar un control Timer.
Instrucciones del Timer Instrucciones del procedimiento Main
Prvate Sub Timerl_Timer() Prvate Sub Main ()
n Form7.Show
Timer 1. Intenal = 0 Fonn 7Timer. Interval = 3000
Forml.Show End Suh
End Sub
IMPORTANTE: Cada aplicacin Slo acepta un formulario MDI y los formularios
secundarios no se pueden llamar de tipo Modal.
I p f i ^ G rupo E ditorial Megabyte 277 9
Desarrolle una aplicacin que permita manejar y compartir informacin de
tres formularios.
El primer formulario debe permitir el ingreso o adicin de registros como se
muestra en la figura siguiente:
o
VISUAL BASIC como debe ser.. .
APLICACION DESARROLLADA N 41
NOMBRE
EDAD
DISTRITO
SEXO ( M /F )
ADICION AR
VER REGISTROS
SALIR
El ingreso de datos debe tener las siguientes caractersticas:
1. El nombre, distrito y sexo se deben convertir automticamente a
maysculas.
2. En la edad slo se debe permitir el ingreso de nmeros y con un mximo
de dos dgitos.
3. En el sexo slo se debe ingresar la letra M o la letra F.
4. Slo de debe activar el botn adicionar cuando se hallan ingresado los
cuatro datos.
5. Al hacer click en el botn ADICIONAR, los registros ingresados se
deben almacenar en la lista que se encuentran en el formulario N 2.
6. El botn VER REGISTROS, debe mostrar el formulario N2 para
visualizar los registros adicionados.
El segundo formulario debe permitir visualizar y manipular los registros que se
adicionaron en el formulario N 1.
N O M B R E
J U A N : ^
R O D O L F O
M A R I A
L U I S
K A R I N A
L U K Y
A D R I A N A
- Ini xj
D I S T R I T O S E X O
12
5 6
2 3
22
14
9 0
1
A D I C I O N A R V E R E S T A D I S T I C A
L A M B A Y E Q U E
C H I C L A Y O
R E Q U E
M O N S E F U
F E R R E A F E
C H I C L A Y O
O L M O S
M O D I F I C A R
M -
M
F
M
F
M
F j d
E L I M I N A R
278 G rupo E ditorial Megabyte"
Los botones MODIFICAR y ELIMINAR slo se deben activarse cuando
el usuario selecciona un registro.
El botn ADICIONAR debe permitir regresar al formulario N 1 para seguir
adicionando registros.
El botn VER ESTADISTICA debe permitir pasar al siguiente formulario
(N 3) para visualizar una estadstica de los registros que se van adicionando.
El botn MODIFICAR debe llevar los datos del registro seleccionado al
formularios N 1y eliminarlo del formulario actual para poder modificarlos y
si despus de modificarlo se hace un click en el botn adicionar se vuelve a
adicionar el registro, con los datos ya modificados.
El botn ELIMINAR debe permitir eliminar el registro que el usuario a
seleccionado. Antes de eliminar el registro se debe pedir una confirmacin.
El formulario N 3 debe mostrar la estadstica de los registros adicionales como se
muestra en la siguiente figura.
CAPTULO VI: Manejo de Varios Formularios
- E S T A D I S T I C A D E L O S R E G I S T R O S I N G R E S A D O S M C T E 3
M A Y O R E S D E E D A D [ 5 ( 6 2 . 5 * )
M E N O R E S D E E D A D I 3 ( 3 7 . 5 * )
H O M B R E S |~4 ( 5 0 . 0 * )
M U J E R E S
[ 4 ( 5 0 . 0 * )
|{ V E R R E G I S T R O S ]|
_ A D I C I O N A R
H O M B R E S M A Y O R E S I 3 ( 3 7 . 5 * )
T O T A L D E R E G I S T R O S
H O M B R E S M E N O R E S
| l ( 1 2 5 * )
1 8 ( 1 0 0 5 * )
M U J E R E S M A Y O R E S | 2 ( 2 5 . 0 * )
M U J E R E S M E N O R E S f T ~ ( 2 5 T o * r
El botn VER REGISTROS de mostrar el formulario N 2 para visualizar
los registros adicionados.
El botn ADICIONAR debe mostrar el formularios N 1para poder ingresar
nuevos registros.
Grupo Editorial Megabyte , 279 m m
PASO NH01: Debe adicionar a su proyecto 3 formularios y luego a cada
uno de ellos le debe dibujar sus controles y propiedades. As:
FORMULARIO N 2 01
VISUAL BASIC como debe ser...
DESARROLLO DE LA APLICACIN
Labell
Label2
Label3
Label4
|Te xt 2
] Text3 Gommandl
Command2
Command3
Asigne la propiedad Caption a los controles, como se muestra en la aplicacin
a desarrollar. El botn adicionar debe tener el valor False en su propiedad
Enabled y las etiquetes el valor True en su propiedad Autosize.
F O R M U L A R I O N 2 02
AL formulario, etiquetas y botones de comandos asgneles su propiedad
Caption como se muestra en la aplicacin. Los botones Adicionar y Eliminar
debe estar desactivados. Los List deben estar en blanco. Las propiedades
de las cajas de texto son:
CONTROL TEXT MAXLENGTH
Textl En Blanco 0
Text2 En Blanco 2
Text3 En Blanco 0
Text4 En Blanco 1
2 8 0 G r u p o E d i t o r i a l M e g a b y t e <
CAPTULO VI: Manejo de Varios Formularios
.o
FORMULARIO N e 03
L a b e l l
Label2
Labe)4
Label5
LabelS
Label7
Lat>el8
LabeIS
Labell O
Labell 1
Labell 2
Labell 3
Labell 4
Labell 5
Labell 6
Commandl
Command2
Labell 7
Labell 8
Las etiquetas desde la N 9 hasta la N 16 y la N 18 deben quedar en
blanco y en su propiedad BorderStyle deben tener el valor 1- Fixed Single.
PASO N" 02:Escribir las instrucciones para los controles.
Instrucciones de los controles del FORMULARIO N 1.
Debajo de cualquier instruccin END SUB escriba: SUB VERIFICA.
jForm Load j
Pr i v a t e Su b Fo r m Lo a d ()
a.
En d Su b
SUB v e r i f i c a |
s j l LI

r
Y luego pulse la tecla ENTER para crear el procedimiento a nivel de
formulario llamado VERIFICA:
j (General) | VERIFICA
d
Pr i v a t e Su b Fo r m Lo a d ()

En d Su b
Su b VERIFICA()
I
1
E n d S u b
m < 11
Este procedimiento permite controlar que se halla escrito informacin en
las cuatro cajas de texto para poder activar el botn ADICIONAR, de lo
contrario lo desactiva.
iiI^ G rupo E ditorial Megabyte 281
Las instrucciones que se deben escribir en este procedimiento Son:
Sub v e r i f i c a ()
I f T r i m ( T e x t l ) <> "" And T r i m( T e x t 2 ) <> "" And T r i m( T e x t 3 )
o "" And Tri m ( T e x t 4) <> "" Then
Commandl. En ab l e d = True
E l s e
Commandl. E n a b l e d = F a l s e
End I f
End Sub
VISUAL BASIC corno debe ser...
En el evento CHANGE de cada Caja de Textos se debe llamar a este
procedimiento. As:
P r i v a t e Sub T e x t l _ C h a n g e () P r i v a t e Sub Te x t 3 _ Ch a n g e ()
V e r i f i c a v e r i f i c a
End Sub End Sub
P r i v a t e Sub Te x t 2 _Chan ge () P r v a t e Sub T e x t 4 _ Ch a n g e ()
v e r i f i c a v e r i f i ca
End Sub End Sub
Instrucciones del botn ADICIONAR
Permite pasar los datos ingresados en las cajas de texto a sus respectivas
listas que se encuentran en el formularios N 02.
P r i v a t e S u b C o m m a n d l _ C l i c k ()
For m2 ! L i s t i . A d d l t e m T e x 1 1
For m2 ! L i s t 2 . A d d l t e m T e x t 2
For m2 ! L i s t 3 . A d d l t e m T e x t 3
Fo r m2 ! L i s t 4 . A d d l t e m T e x t 4
T e x t l = ""
T e x t 2 = ""
T e x t 3 = ""
T e x t 4 = ""
T e x t l . S e t F o c u s
End Sub
Instrucciones del botn VER REGISTROS
Permite activar el formulario N 02 para visualizar los registros adicionados.
P r v a t e Sub Co mma n d 2 _ Cl i c k ()
Fo r m2. Show
F o r m l . Hi d e
End Su b
El botn SALIR debe tener la instruccin END
2 8 2 G rupo E ditorial Megabyte<
CAPTULO VI: Manejo de Varios Formularios
Las instrucciones de la caja de texto N 1que permiten convertir a maysculas
el texto que se ingresa, se deben escribir en el evento Keypress el cual
almacena en la variable Keyascii el valor ASCII de cada carcter que se
escribe en la caja de textos.
Las letras minsculas en el cdigo ASCII comienzan a partir del numero 97
hasta el 122 (a=97, b=98, etc.).
Las letras maysculas en el cdigo ASCII comienzan a partir del numero 65
hasta el 90 (A=65, B=66, etc.), por lo tanto, la diferencia entre maysculas
y minsculas es 32. Si se quiere convertir una letra minscula a mayscula,
entonces a su valor ASCII de dicha letra se le debe restar 32.
Otra forma de convertir cada carcter a maysculas es usando la siguiente
instruccin:
KeyAscii = Ase(UCase(Chr(KeyAscii)))
Instrucciones del evento Keypress de TEXTL
P r v a t e S u b T e x t l _ K e y P r e s s ( K e y A s c i i A s I n t e g e r )
' P r e g u n t a s i l a l e t r a p u l s a d a e s t a en m i n s c u l a .
I f K e y A s c i i >= 97 And K e y A s c i i <= 122 Then
' S i e s m i n s c u l a l e r e s t a 3 2.
K e y A s c i i = K e y A s c i i - 32
End I f
End Sub
Para que una caja de textos acepte slo valores numricos tambin se le
debe programa en el evento Keyascii.
El Valor ASCII de la tecla pulsada se convierte en el carcter ASCII
correspondiente y se pregunta si es menor a cero (0) o mayor a nueve (9),
si la respuesta es verdad significa que no se ingreso un numero, entonces
hacemos que Visual Basic ignore el carcter ingresado asignndole el valor
cero a la variable Keyascii. Tambin se debe ignorar la tecla pulsada cuando
el valor ASCII sea diferente de 8 que pertenece a la tecla de Retroceso
para que se pueda borrar lo que se escribe.
G rupo E ditorial Megabyte 2 8 3
Instrucciones del evento Keypress de TEXT2.
P r i v a t e Sub T e x t 2 _ K e y P r e s s ( K e y A s c i i As I n t e g e r )
Dim TECLA As S t r i n g * 1
TECLA = Ch r ( Ke y A s c i i )
I f (TECLA < "0" Or TECLA > "9") And K e y A s c i i <> 8 Then
Ke y A s c i i = 0
End I f
End Sub
Las instrucciones de la caja de textos N 3 son similares a las de la caja de
textos N 1.
Instrucciones del evento Keypress de TEXT3.
P r v a t e Sub T e x t 3 _ K e y P r e s s ( K e y A s c i i As I n t e g e r )
' S I SE INGRESA EN MINUSCULAS LO CONVIERTE A MAYUSCULAS
I f K e y A s c i i >= 97 And K e y A s c i i <= 122 Then
K e y A s c i i = K e y A s c i i - 32
End I f
End Sub
Las instrucciones de la caja de texto N 4.
Permiten aceptar slo las letras F o M y si se ingresan en minsculas se
deben convertir a maysculas.
Primero se pregunta si el valor ASCII del carcter pulsado es 102 109 que
corresponden a las letras <f> o <m> en minsculas. Si la respuesta es
verdad se le resta 32 y si el valor ASCII es diferente de 70, 77 y 8 que
corresponden a las letras <F>, <M> en maysculas y a la tecla de Retroceso
(BackSpace <-), el carcter es ignorado, es decir no se visualiza, porque le
asignamos el valor cero (0) a la variable Keyascii.
Instrucciones del evento Keypress de TEXT4.
P r i v a t e Sub Text 4__KeyPress ( K e y A s c i i As I n t e g e r )
'SOLO ACEPTA LAS LETRA "F" o "M" Y S I SE INGRESAN
'EN MINUSCULAS LAS CONVIERTE A MAYUSCULAS
I f ( Ke y As c i i = 102 Or K e y A s c i i = 109) Then
Ke y A s c i i = K e y A s c i i - 32
E l s e l f KeyAsci i <>70 And KeyAs ci i <>77 And KeyAsci i <>8 Then
K e y A s c i i = 0
End I f
End Sub
| l l l l I > VISUAL BASIC como debe ser...
l | ! ^ 2 8 4 G r u p o E d i t o r i a l Megabyte
CAPTULO VI: Manejo de Varios Formularios
Instrucciones de los controles del FORMULARIO N 2.
Definir la variable NUM de tipo entero a nivel del formulario. Esto se hace
en el Objeto GENERAL y el Evento DECLARATIONS. Dim NUM As
Integer
(General) -r (Declarations)
Dira MUM As Integer
<11
Crear un nuevo procedimiento llamado SELECCIONA, que permite
seleccionar todo el registro cuando el usuario hace click en cualquiera de las
listas adems permite activar los botones de comandos Command3 y
Command4.
Para ello en cualquier parte libre de la ventana de cdigo escriba: SUB
SELECCIONA y luego pulse la tecla ENTER.
1tWP r o i e c l l - Form3 ( C o d e )
F o r m [Load
P r i v a t e S u b Corraneinci2_C 1 i c k ( ) H
F o r m l . S ho w ^
F o r r n 3 . H i c i e
E n d S u b
P r i v a t e S u b F o r m A c t v a t e ( )
E n d S u b
y
S U B S E L E C C I O N A .
m 11 i n
Se visualizar la siguiente pantalla:
* G r u p o E d i t o r i a l Megabyte 2 8 5
Luego escriba dentro del procedimiento las instrucciones.
Estas instrucciones permiten seleccionar todo un registro cuando el usuario
hace click en cualquiera de las listas.
L i s t l . L i s t l n d e x = NUM
L i s t 2 . L i s t l n d e x = NUM
L i s t 3 . L i s t l n d e x = NUM
L i s t 4 . L i s t l n d e x = NUM
Command3. E n a b l e d = T r u e
Command4. E n a b l e d = T r u e
La ventana de cdigo tendr el siguiente aspecto:
^ f | | | | VISUAL BASIC como debe ser.. .
(General) -* SELECCIONA
zl
Suta SELECCIONA()
Li s t 1.L i s t In d e x = NUM
i
Li s t 2.Li s t l n d e x = NUM
Li s t 3 . Li s t l n d e x = NU11
Li s t 4.Li s t l n d e x = NUM
Co n m a n d 3.En a b l e d = Tr u e
Co m m a n d 4.En a b l e d = Tr u e
En d Su b
k h j l L!
Este procedimiento es invocado cuando el usuario hace click en cualquiera
de la lista, para ello se tiene que programar en el evento Click de cada Lista.
P r v a t e S u b L i s t l _ C l i c k ()
NUM = L i s t l . L i s t l n d e x
SELECCIONA
End Sub
P r v a t e Sub L i s t 2 _ C l i c k ()
NUM = L i s t 2 . L i s t l n d e x
SELECCIONA
End Sub
P r v a t e S ub L i s t 3 _ C l i c k ()
NUM = L i s t 3 . L i s t l n d e x
SELECCIONA
End S u b
P r v a t e Sub L i s t 4 _ C l i c k ( )
NUM = L i s t 4 . L i s t l n d e x
SELECCIONA
End S ub
Instrucciones del Botn ADICIONAR.
Permiten mostrar el formulario N 1 para poder adicionar ms registros.
P r v a t e S u b C o m m a n d l _ C l i c k ()
F o r m l . Show
F o r m2 . H i d e
End Su b
2 8 6 G rupo E ditorial Megabyte^
m
Instrucciones del Botn VER ESTADISTICA.
Permiten pasar al Formulario N 3 para visualizar la estadstica de los regis
tros que se van adicionando.
Prvate Sub Command2_Click()
Dim N, EDAD, MAYORES, MENORES, HOMBRES As Inte ge r
Dim MUJERES,HOMMAY, HOMMEN, MUJMAY, MUJMENAs Integer
Dim SEXO A' String * 1
Cuenta la cantidad de registros adicionados.
N = Listl.ListCount
For X = 1 ToN
Activa en forma secuencial una edad ingresada.
List2. Listlndex = X - 1
Almacena en la variable EDAD, la edad activa.
EDAD = Val(List2.Text)
Activa en forma secuencial un sexo ingresado.
List4. Listlndex - X - 1
Almacena en la variable SEXO, el sexo activado.
SEXO - Trim( List4. Text)
Cuenta los mayores y menores de edad.
IfEDAD > = 18 Then
MAYORES = MAYORES + 1
Else
MENORES = MENORES + 1
Endlf
Cuenta los hombres y las mujeres.
IfSEXO = "M" Then
HOMBRES = HOMBRES + 1
Else
MUJERES = MUJERES + 1
Endlf
Cuenta los hombres mayores y menores de edad.
IfSEXO="M"AndEDAD>=18 Then HOMMAY = HOMMAY + 1
IfSEXO- "M"And EDAD< 18 Then HOMMEN = HOMMEN + 1
Cuenta las mujeres mayores y menores de edad.
IfSEXO= "F" And EDAD>=18 Then MUJMAY - MUJMAY + 1
IfSEXO= "F" And EDAD<18 Then MUJMEN = MUJMEN + 1
NextX
Obtiene los respectivos porcentajes.
PORCMAY = MAYORES * 100/ N
PORCMEN = MENORES * 100/ N
PORCHOM = HOMBRES * 100/ N
PORCMUJ = MUJERES * 1 0 0 / N
PORCHOMMAY = HOMMAY * 100/N
PORCHOMMEN = HOMMEN * 100/N
PORCMUJMAY = MUJMAY * 100/N
PORCMUJMEN = MUJMEN * 100/N
CAPTULO VI: Manejo de Varios Formularios
G rupo E ditorial Megabyte 2 8 7
'Muestra los resultados en el formulario N 03
Form3!Label9=Str(MAYORES)+"("+Format(PORCMAY, "##0.0")+ "%)"
Form3!Label 10-Str(MENORES) + "("+Format(PORCMEN, "##0.0)+ "%)"
Form3!Labelll=Str(HOMBRES)+ "("+Format(PORCHOM, "##0.0")+ "%)"
Form3!Labell2=Str(MUJERES)+ "("+Format(PORCMUJ, "##0.0")+ "%)"
Form3!Labell3-Str(HOMMAY)+ "("+Format(PORCHOMMAY, "##0.0")+ "%)"
Form3!Label 14=StrHOMMEN)+ "("+Format(PORCHOMMEN, "##0.0")+ "%)"
Form3!Label 1 5 - Str(MUJMAY)+ "("+Format(PORCMUJMAY, "##0.0")+ "%)"
Form3!Labell6=Str(MUJMEN)+ "("+Fonnat(PORCMUJMEN, ##0.0")+ "%)"
Form3!Label 18 = Str(N) + " (100%)"
'Muestra el formulario N 3
Form3.Show
Form2.Hide
End Sub
Instrucciones del Botn MODIFICAR.
Permiten pasar al Formulario N 1 los datos del registro seleccionado para
poder modificarlos y borra estos datos originales de las listas.
Prvate Sub Command3_Click()
Dim E A Integer
Forml ITextl = Listl.Text
Forml !Text2 = List2.Text
Forml !Text3 = List3.Text
Forml!Text4 - List4.Text
E - Listl.Listlndex
Listl.Removeltem (E)
List2.RemoveItem (E)
List3.RemoveItem (E)
List4.RemoveItem (E)
Forml .Show
Form2.Hide
End Sub
Instrucciones del Botn ELIMINAR.
Borra de las listas el registro seleccionado, pidiendo una respuesta de con
firmacin.
Prvate Sub Command4_Click()
Dim E, RAs Integer
R-MsgBox( "ESTA SEGURO DE ELIMINAR EL REGISTRO",36,"CUIDADO")
IfR = 6 Then
E = Listl.Listlndex
Listl.Removeltem (E)
List2.Removeltem (E)
List3.Removeltem (E)
List4.Removeltem (E)
End If
Command3. Enabled = False
Command4.Enabled = False
End Sub
J ^ VISUAL BASIC como debe ser...
2 8 8 G rupo E ditorial Megabyte < g
CAPITULO VI: Manejo de Varios Formularios
Instrucciones del Evento ACTIVATE del Formulario.
Estas instrucciones se ejecutan cuando el formulario es activado y permiten
que no se encuentre seleccionado ningn registro y a dems desactiva los
botones MODIFICAR y ELIMINAR.
P r v a t e Su b F o r m _ A c t v a t e ()
L i s t l . L i s t l n d e x = - 1
L i s t 2 . L s t l n d e x = - 1
L i s t 3 . L i s t l n d e x = - 1
L i s t 4 . L s t l n d e x = - 1
Comman d3 . Ena bl e d = F a l s e
Command4. E n a b l e d = F a l s e
End S u b
Instrucciones de los controles del FORMULARIO N 3
Instrucciones del Botn VER REGISTROS.
Permiten visualizar el formulario N 2 donde se encuentran todos los registros
adicionados.
P r v a t e S u b C o m m a n d l _ C l c k ()
For m2. Show
Fo r m3. H d e
End S ub
Instrucciones del Botn ADICIONAR.
Permiten visualizar el formulario N 1para poder adicionar ms registros.
P r i v a t e S u b C o m m a n d 2 _ C l i c k ()
F o r m l . Show
F o r w 3 . H i d e
End S u b
G rupo E ditorial Megabyte 289 ^
VKvk/ VISUAL BASIC como debe ser. . .
ERRORES MAS COMUNES
Microsoft V isual Basic
Debe haber un formulario de inicio o un procedimiento Sub Man[)
Ayuda Aceptar
Su aplicacin no tiene
especificado un formulario
para ejecutar primero.
Haga clic en el botn
Aceptar y seleccione un
formulario en Objeto
Inicial.
Microsoft Visual Basic
Error '424' en tiernpo de ejecucin :
Se requiere un objeto
Terminar Ayuda
Est tratando de utilizar un
formulario que no tiene en
su aplicacin o escribi
en forma incorrecta
su nombre.
10 Proyecto! - Fornii (Cdigo)
Form Load
AI ejecutar el programa finaliza inmediatamente.
Seguramente por
casualidad escribi la
instruccin END en el
evento Form Load o
en Activate del
formulario que se
ejecuta primero.
Private Sub Form_Load()
End
End Sub
Al llamar a un formulario, no se muestra ninguno.
S e g u r a m e n t e
escribi Hide en
lugar de Show.
mProyectol - Foiml (Cdigo)
jcommandl Click
Private Sub Commandl_Click( ) Tj
Fo rml.Hide
Fo rm2.Hide
End Sub
J
ill
_l T
290 G rupo E ditorial Megabyte"
CAPTULO VI: Manejo de Varios Formularios
PREGUNTAS DE REPASO N 06
1. Cmo quita un formulario de sus aplicacin?
2. Qu debe hacer si desea evitar que se muestre la ventana de dilogo
cada vez que agrega un formulario a su aplicacin?
3. Se puede grabar dos formularios con el mismo nombre? ,
4. Cules son los pasos para agregar la calculadora de Visual Basic a una
aplicacin?
5. Es obligatorio ocultar un formulario para visualizar otro durante la
ejecucin de una aplicacin?
6. Se puede agregar a una aplicacin un formulario que en su propiedad
ame tenga el mismo nombre de uno de los formularios de dicha
aplicacin?
7. Cul es la diferencia entre Hide y Unload?
8. Qu debe hacer si en una aplicacin tiene varios formularios y desea
visualiza o modificar uno de ellos?
9. Explique cmo se adiciona un formulario ya creado a una nueva aplicacin.
10. Cuando se ejecuta una aplicacin, Visual Basic en forma predeterminada
ejecuta el formulario N___.
11. Qu mensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicacin y a qu se deben?
12. Cmo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
13. Cul es la diferencia entre Show y Load?
14. Explique la palabra clave Me.
15. Explique cmo se adiciona un formulario en blanco a una aplicacin.
16. Si tiene una aplicacin con 5 formularios. Cuando grabe la aplicacin
cuntos nombres debe ingresar.
17. Qu debe hacer para que Visual Basic ejecute primero un formulario
diferente al que ejecuta en forma predeterminada?
18. Cmo se declara una variable o procedimiento para poder usarlo en
cualquier formulario de una aplicacin?
19. Cul es la diferencia entre la calculadora del Visual Basic y la
calculadora del Windows?
20. Cuando quita un formulario de su aplicacin, se borra fsicamente del
disco de su computadora?
La creatividad es muy importante, formlese nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de
estudio y desarrollarlas con la finalidad de enriquecer sus
conocimientos.
I p l l ^ G rupo E ditorial Megabyte 291 m m
CAPITULO VII
Caclen; CONGRESO
Name :
Indes.:
"IgrescT
tlPlP-CintextlD: J o
Chcke>d T? ELnabl&d
NeaotlatePccsIbciri
R? risible
SISTEMA
DISEO
DE
MEN
CAPITULO VII: Diseo de Men
D I SE O DE MEN
Para activar el editor de men puede seguir uno de los siguientes pasos:
1. De la barra de men elegir la opcin Tools (Herramientas) y luego Men
Editor.
2. Presionar las tecla <CRTL> + E.
3. Hacer un click en el botn de Diseo de Men.
CAPTION
Permite escribir la opcin que deseamos visualizar en el men.
Puede usar el & para subrayar una letra de una opcin.
AME
Permite asignarle un nombre a cada opcin. Es obligatorio que toda opcin
tenga un nombre. Este nombre debe ser nico, es decir, no deben, existir dos
opciones con el mismo nombre y adems los nombres no pueden tener
espacios en blanco.
INDEX
Se utiliza en caso que queremos usar un array de opciones.
SHORTCUT
Permite asignar teclas de acceso rpido a cada opcin. No puede usarse
para las opciones principales.
CHECKED
Sirve para indicar con un aspa si una opcin est activa.
I p f l ^ G rupo E ditorial Megabyte 295 a
H BOTN DE DISEO DE MEN
El editor de men es:
ENABLED
Permite desactivar una opcin para que no se pueda elegir.
VISIBLE
Permite que una opcin se pueda visualizar o no.
WINDOWLIST
Permite especificar si un men mantiene una lista de las ventanas abiertas
usando un aspa a la izquierda del elemento de la lista que representa la
ventana activa.
FLECHA IZQUIERDA
Permite mover una opcin ms a la izquierda dentro del men con la finali
dad que se ubique en un nivel ms alto.
FLECHA DERECHA
Mueve una opcin ms a la derecha con la finalidad que sea una subopcin
de la que se encuentra en la parte superior. Las opciones principales deben
estar bien a la izquierda y las subopciones ms a la derecha segn el nivel
que le corresponde.
. . . permjte mover una opcin hacia arriba.
: Permite mover una opcin hacia abajo.
: Permite ir a la opcin siguiente.
: Permite insertar una nueva opcin.
: Permite borrar una nueva opcin.
V4s?0k ', VISUAL BASIC como debe ser.
FLECHA ARRIBA
FLECHA ABAJO
NEXT (Siguiente)
INSERT (Insertar)
DELETE (Eliminar)
NOTA
Para crear una lnea de separacin entre grupos de opciones, escriba
slo un guin en el CAPTION y especificar cualquier nombre en AME.
La aplicacin desarrollada anterior puede tener tambin un men de opcio
nes. Por ejemplo en el formulario N 03 se puede escribir el men siguiente
menu.
C a Q t i o n : ] S J N G R E S O
N a m e : j I N G R E S O |
I n d e & : | ~
C a n c e l
H e l p C o n t e x t I D : j o
r ~ C h e c k e d *7 E n a b l e d
Next
Shortcut: [(None)
NegotiatePosition:
fP Risible f
1 insert j
3
Jo - N o n e T 1
W i n d o W L i s t
D e l e t e I
DATOS &PERSONALES C t r l + P
DATOS &ACADEMI COS Ctrl-t-A
DATOS &FAMILIARES C t r l + F
FI&NALIZAR
NO
SI C t r l + Q
2 9 6 G rupo E ditorial Megabyte <
CAPITULO VII: Diseo de Men
Al ejecutar la aplicacin se visualiza las ventanas siguientes. El grfico es
opcional y est diseado con un Picture Box.
INGRESO FINALIZAR
NOTA:
Cada opcin se considera un botn de comandos, esto quiere decir
que Ud. puede escribir instrucciones dentro de cada una de ellas, las
cuales se ejecutan cuando el usuario elige dicha opcin.
Las instrucciones de cada opcin en esta aplicacin son las mismas de los
botones de comandos del formulario N 03 de la aplicacin N 30.
Si no desea ocultar el formulario del men principal cuando se llame a un
formulario, no escriba la instruccin FORM3.HIDE
PrivaleSubDATOSPER_Click()
Fom.Hide
Fonn4.Show
EndSub
Private SiDATOSACA_Qkk()
Fom.Hide
Fom.Sliow
EjtdSub
Private Sub DATOSFAR__Qi<M)
Forrn3.Hide
FomSIiow
EtidSub
La opcin Salir debe tener la instruccin END.
G rupo E ditorial Megabyte 2 9 7
INGRESO
INSTRUCCIN PQPUPMENU
Detiene la ejecucin del programa y activa el men en el formulario. El
programa continua su ejecucin cuando deja de utilizar el men. Su sintaxis
es:
PopupMenu Nombre, Ubicacin,X, Y,Opcin,Negrita
Nombre
Es el nombre del men que desea activar.
Ubicacin
Para indicar en qu parte de la pantalla se va a ubicar el men en relacin
a la posicin del formulario donde hizo clic y qu comportamiento debe
tener. Sus valores pueden ser:
Para Ubicacin
0 (Predeterminado). El men a la derecha de donde hizo clic.
4 El men se muestra en el centro de donde hizo clic.
6 El men se muestra a la izquierda de donde hizo clic.
Para Comportamiento
0 Ignora la pulsacin del botn derecho del Mouse.
2 El men reconoce la pulsacin del botn derecho del Mouse.
Para cambiar la Ubicacin y el Comportamiento se utiliza la palabra OR.
Por ejemplo, la siguiente instruccin activa el men Ingreso en el centro de
donde hace Clic y reconoce el botn derecho del Mouse. PopupMenu In
greso 4 Or 3.
X, Y
Es la posicin horizontal (X) y vertical (Y) del formulario donde desea mos
trar el men.
Opcin_Negrita
Sirve para indicar el nombre de una de las opciones del men que desea
visualizar en negrita cuando se muestra el men.
Por ejemplo, La siguiente instruccin activa el men INGRESO en las co
ordenadas 5000, 6000 y pone en negrita la opcin DATOSPER.
No reconoce la pulsacin del botn derecho del Mouse (si un valor no se
indica, se deja una coma).
PopupMenu Ingreso5000.6000,DatosPer
NOTA:
Slo el nombre del men es obligatorio. Esta instruccin normalmente se
escribe en el evento MouseDown o MouseUp explicado en la pgina N 52.
Por ejemplo, la instruccin anterior se ejecua cuando el usuario hace clic
con el botn Derecho del Mouse en cualquier parte libre del formulario.
l i l i l VISUAL BASIC como debe ser...
2 9 8 G r u p o E d i t o r i a l Megabyte ^ ||| |f
CAPITULO Vil: Diseo de Men
mm
CONTROL TOOLBAR
^J
Permite crear junto con el control Imagelist, barras de herramientas para
que acompaen a un men de opciones. La barra de herramientas son un
conjunto de botones con un texto y/o grfico que se utilizan para acceder de
una manera rpida a las opciones ms utilizadas de un men. Como por
ejemplo:
D & s

zl X f
Nuevo Abrir Grabar Imprimir Ordenar Eliminar Ayuda Salir
Estos grficos Ud. los puede colocar en la barra de herramientas de cual
quier men, siempre y cuando existan en su computadora. Los nombres de
cada uno de ellos en el orden en que se visualizan son: New.bmp, Open.bmp,
Save.bmp, Print.bmo, Sortasc.bmp, Delete.bmp, Help.bmp. y Trffc 14.ico
Puede utilizar en la barra de herramientas cualquier otro grfico con la ex
tensin *.BMP o *.ICO.
Si este control no se encuentra en la caja de herramientas debe seguir cual
quiera de los siguientes pasos:
1. En la caja de herramientas haga click con el botn derecho y elija la
opcin COMPONENTES.
2. De la opcin Project de la barra de men elija COMPONENTES.
3. Pulse las teclas <CRTL> + <T>.
De la lista de componentes haga click en la casilla del control llamada:
Microsoft Windows Common Controls.
Tambin se puede llamar este control, si elegimos la opcin CONTROLAS
DE VB EDICION EMPRESARIAL, en el momento de ingresar a Visual
Basic o crear un nuevo proyecto.
G r u p o E d i t o r i a l Megabyte 2 9 9
VISUAL BASIC como debe ser.. .
PRINCIPALES PROPIEDADES DEL CONTROL TOOLBAR:
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas:
General, Botones e Imagen.
El contenido de la hoja General es:
v \ : ' ' -v m <- - ; ; . . .w >, ? . " - j
Gon or al JBotones | I m a g e n J
fcjousePo inter: ................
: - i
imoigeList j < N in g u n o > -J
BordeirSlyl ] ti - c c N o n a
rJ
Ajaptaorancra: j 1 - c c 3 D
.zJ
Q L E P r o p M o c l o : J c c O LEID r o p 1' Jo o
j d
1 leJpCont ext lD 1" M l p l e : |
DuttontJoight. J2 6 4 \H r? Al l o w Cu s t a t r ii z e W W r o p p a b l e
ButtonWidth: j ? 88.00 S ho w T i p s Fs E n a b l e d
L
Acepte Cancel ar Ayude
MOUSEPOINTER
Se utiliza para indicar la forma que tendr el puntero del mouse cada vez
que lo ubiquemos dentro de la barra de herramientas. Si desea como puntero
del mouse un grfico seleccionado por Ud. Debe elegir la ltima opcin
(99-ccCustom). La seleccin del grfico los puede hacer en la pgina Imagen
como se ver ms adelante.
IMAGELIST
Se utiliza para seleccionar el control ImageList desde donde queremos
obtener los grficos para la barra de herramientas.
Ud., debe dibujar primero el control ImageList en el formulario y asignar los
grficos antes de comenzar a darle las propiedades al control ToolsBar
(Capitulo IV).
BORDERSTYLE
Selecciona el estilo del borde de la barra de herramientas.
APPEARANCE
Selecciona la apariencia de la barra de herramientas.
OLEDROPMODE
Establece el modo en que un componente de destino realiza las operaciones
de colocacin.
HELPCONTEXTID
Permite indicar un nmero de contexto asociado a un objeto. Se utiliza para
proporciona Ayuda interactiva para la aplicacin.
BUTTONHEIGHT
Permite indicar la altura de los botones.
300 G rupo E ditorial Megabyte ^j|f|f
BUTTONWIDTH
Permite indicar el ancho de los botones.
HELPFILE
Aqu se indica la ruta de acceso y el nombre de un archivo de Ayuda de
Microsoft Windows usado por la aplicacin para presentar Ayuda o
documentacin en pantalla.
ALLOWCOSTOMIZE
Se utiliza para indicar si el usuario final puede personalizar un control Tool bar
con el cuadro de dilogo Personalizar barra de herramientas.
SHOWTIPS
Se utiliza para indicar si se debe visualizar el texto de ayuda asignado a
cada botn.
WRAPPABLE
Se utiliza para indicar si el tamao de los botones de la barra de herramientas
depende del tamao del formulario.
ENABLED
Permite activar o desactivar la barra de herramientas.
El contenido de la hoja Botones es:
General Botone# j i ma g e n j
Index: - J T * | 1 | Insertar b o t n | Quito/ botn
CAPITULO Vil: Diseo de Men
CoptiQn | d e s c r ip t i o n : | '
>lue [o t b r U n p r e s s e d ' ~^|
SM jo tbrOefeult V^idth ( P l a c e h o l d e r ) |
lag |
T o o l T t p T e g t J~ 1 1
I mage.
F? V i s i b l e & f c n e b le d f~ h j i x e d S t a i e
INDEX
Visualiza o selecciona cualquiera de los paneles creados en la barra de
estado. Tambin sirve para identificar a cada uno de los botones.
CAPTION
Permite escribir un texto el cual se va a visualizar en el botn de la barra de
herramientas.
KEY
Permite asignar uno o ms caracteres que van a identificar a cada panel.
No acepta nmeros.
STYLE
Permite seleccionar estilo de cada botn.
G rupo E ditorial Megabyte 301 ^
i l
VISUAL BASIC como debe ser.. .
Ejemplo de una aplicacin utilizando Men, ToolBar y StatusBar.
Sub Men de Ventas:
BIENVE
Calculadora
Actualizar la Fecha y Hora
Copia de Seguridad
D..S.
AL
SISTEMA
2 9 / 0 5 / 9 9 C h i c l a y o - P e r \ ' I 6:44 A M
Nuevos Usuarios
Borrar Usuarios
Cambiar Clave
Sub Men de Utilitarios:
PRODUCTOS CUENTES UTILITARIOS SALIR
Realizar Ctil+R I
mili 1,1') ' U .I.IMUMMWI
Presupuestos
Registro de Ventas
AL
SISTEMA
Por Vendedor Qrl+V
Por Linea Ctrl+L
Por Producto Ctrl+P
Por Fecha Ctil+F
Por Turno Ctrl+T
A . 2 9 / 0 5 / 9 9 C h i c l a y o - P e r 6:44 A M
3 0 2 G rupo E ditorial Megabyte
Si la opcin VENTAS es la ms utilizada, podemos programar de tal mane
ra que el usuario la active haciendo un Click con el botn derecho del Mouse
en cualquier parte del formulario.
.^ .5 CAPTULO VII: Diseo de Men < 1
P R O D U C T O S C L I E N T E S V E N T A S U T I L I T A R I O S S A L I R
M
W\ a
BIENVENIDOS
AL
S I S T E M I
Realizar Qrl+R
------------- Consultar Ventas
Presupuestos
Registro de Ventas
f \ 29 /05/99 C hi c l a y o - P e r > 1 3:1 4 A M
......
Para esto, debe programar en el evento MouseDown del formulario:
Private Sub FonnMouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu Ventas
End If
End Sub
PROGRAMAR DENTRO DEL TOOLBAR
Suponiendo que el primer botn est ligado a la opcin Nuevos Clientes
(Form7), el 2do a Realizar Ventas (Form 19), el 3ro al Cuentas Corrientes
(Form 13) y el 4to a la Calculadora. Entonces debe hacer doble clic en
cualquiera de los botones y programar:
Private Sub Toolbarl JButtonClick(ByVal Button As MSComctlLib.Button)
If Button.Index = 1 Then Form7.Show
If Button. Index = 2 Then Forml9.Show
If Button.Index = 3 Then Forml3.Show
If Button.Index = 4 Then Shell C:\Windows\Calc.exe", 1
End Sub
|| |j ^ G ru p o E d i t o r i a l Megabyte 3 0 3 ^ | ||l
S S t ' VISUAL BASIC como debe ser.. .
Dentro de las propiedades de la Barra de Herramientas, en la hoja Botones
tambin se muestra el siguiente marco:
ButtonMenus
Index: [1 Insertar ButtonMenu | Quitar ButtonMenu |
Text: | Keji: | Tag: |
l>7 Enabled 17 Visible
Esto permite agregar Sub Opciones a cualquier botn de la Barra de
Herramientas, como por ejemplo:
Para realizar esto, debe seleccionar en la hoja botones (Propiedad Index) el
botn al cual desea asignarles sub opciones y en su propiedad Style asignar
el valor 5 - tbrDropDown, luego dentro del marco ButtonMenus insertarle
(Insert ButtonMenu) las sub opciones que desea, usando la propiedad Text
para escribir el ttulo de cada opcin.
Para saber qu sub opcin ha elegido el usuario se debe programar
en el evento ButtonMenuClick usando la propiedad Text.
Prvate Sub Toolbarl_ButtonMenuClick(ByVal ButtonMenu As ...)
I f ButtonMenu.Text = Ordenado Then
Escriba aqu las instrucciones para la opcin Ordenados
MsgBox Ordenado, 64, Bienvenido
End I f
I f ButtonMenu.Text = Sin Ordenar Then
Escriba aqu las instrucciones para la opcin Sin Ordenar
MsgBox Sin Ordenado, 64, Bienvenido
End I f
End Sub
| | | | | | ^ 3 0 4 G rupo E ditorial M e g a b y t e ^ j j j ^ l
Esta aplicacin consiste en adicionar dos formularios ms al men anterior
(form2 y form3).
En el formulario N 2 se debe ingresar el nombre de un usuario y su respectiva
clave de acceso (password).
Son 3 usuarios los que acepta el sistema:
USUARIO PASSWORD
JULIO XYZ
PEDRO ABCD
ANA 1234
El programa debe dar hasta tres oportunidades para ingresar.
Si se termina las oportunidades, se activa el formulario N 03 donde se
muestra un mensaje para cerrar la aplicacin llenndose de puntos de color
negros el formulario. Para salir de la aplicacin se debe presionar CTRL +
ALT + SUPR o apagar la computadora.
El usuario JULIO es el dueo de la empresa, por lo tanto debe tener acceso
a todas las opciones del men.
El usuario PEDRO no debe ingresar a las opciones Actualizar los Precios
ni a Cuentas Corrientes (deben estar desactivadas), adems no debe
visualizar la opcin Usuarios.
El usuario ANA debe tener desactivadas las opciones Mantenimiento que
se encuentra dentro de Productos e Internet que se encuentra dentro de
Utilitarios. Adems no debe visualizar la opcin VENTAS.
CAPITULO Vil: Diseo de Men
APLICACIN DESARROLLADA N 43
Grupo Editorial Megabyte 305 K
<>
| BASIC como debe ser.
PASO N 01:
Agregar dos formularios ms a la aplicacin anterior que contiene el men.
El formulario N 02 debe tener dos etiquetas, dos cajas de texto y dos botones
de comandos.
El formulario N 03 no debe tener ningn control.
.ACCESO AL SISTEMA
USUARIO
CLAV E
OK CANCELAR
i, Form3
NOTA;
Para llenar un formulario con puntos se debe utilizar la instruccin PSET,
cuya sintaxis es:
NombrejControl.Pset (x,y), (color)
Donde X, Y son las coordenadas del control donde desea escribir el punto y
COLOR, es un valor que indica el color del punto, puede utilizar la funcin
RGB o QBCOLOR.
Si no se especifica el nombre del control, el punto se dibuja en el formulario
activo.
Las propiedades DrawWidth se utiliza para indicar el grosor del punto.
Por ejemplo, las siguientes instrucciones muestran un punto de color celeste
en el formulario activo.
DrawWidth - 0
Pset (2000,6000), Qbcolor (11)
PASO N 02: Asignar las propiedades a los controles
Al formulario N 02, a las etiquetas y botones de comandos asgneles la
propiedad Caption como se indica.
El formulario N 03 debe tener el valor FALSE en sus propiedades ControlBox
y ShowinTaskbar y en su propiedad WindowState el valor 2 (Maximizado).
@!{j? 306 G rupo E ditorial Megabyte
CAPTULO VII: Diseo de Men
PASO N 03: Escribir las instrucciones para los controles.
Declarar la variable US en un mdulo para poder compartirla entre los
lormularios de la aplicacin. Para ello, de la opcin Proyecto elija Agregar
Mdulo. ____________
aa
Proyectol - Modulel (Cdigo)
(General) (Declaraciones)
Pu b l i c US As St r i n g
Instrucciones del procedimiento Form_Activate del Formulario N 01,
para que al activarse este formulario que contiene el men, se asignen las
restricciones de acuerdo al usuario que se ingres en el formulario N 02.
P r i v a t e S u b F o r m _ A c t i v a t e ()
S e l e c t Ca s e US
Ca s e "JULIO"
Rem NO TIENE NINGUNA RESTRICCIN
Ca s e "PEDRO"
A c t u a l i z a r _ P r e c i o s . E n a b l e d = F a l s e
C u e n t a _ C o r r i e n t e . E n a b l e d = F a l s e
U s u a r i o s . V i s i b l e = F a l s e
Ca s e "ANA"
M a n t e m i e n t o . E n a b l e d = F a l s e
I n t e r n e t . E n a b l e d = F a l s e
V e n t a s . V i s i b l e = F a l s e
End S e l e c t
End Sub
NOTA:
No olvide de utilizar el nombre correcto que asign en la propiedad AME a cada opcin.
Cuando grabe el mdulo creado obtiene la extensin *.BAS.
INSTRUCCIONES DEL FORMULARIO N 02
Instrucciones del Procedimiento Form_Activate.
P r v a t e S u b F o r m_ _ A c t i v a t e ()
T e x t l = "
T e x t 2 = ""
T e x t l . S e t F o c u s
End Sub
Instrucciones del Botn OK.
Verifican si se ingreso el usuario y su password correcto y brindar hasta tres opor
tunidades para ingresar.
Prvate Sub Command 1_Click()
Static OP As Byte
Dim PW As String
US = UCasefTextl)
P W TJ Cn sp( T e x t 2 )
l f U S - JULIO And PW = XYZ OrUS = PEDRO" And
PW = ABCD Or US = ANA And PW = 1234 Then
Unload Form2
Forml.Show
Else
OP = OP + 1
IfOP = 3 Then
MsgBox Datos Incorrectos" + Chr(13) + Chr(13) + Tiene _
+ Str(3 - OP) + oportunidades, 16, ACCESO DENEGADO
Form3.Show
Else
MsgBox Datos Incorrectos + Chr(13) + Chr(13) + Tiene _
+ Str(3 - OP) + oportunidades", 16, ACCESO DENEGADO
Form_Activate
End If
End If
End Sub
INSTRUCCIONES DEL FORMULARIO N 03
instrucciones del procedimiento Form_Activate
Prvate Sub Form_Activate()
Form3.Caption - Cierre la aplicacin, no tiene acceso + Space(135)
Mensaje
End Sub
instrucciones del Procedimiento MENSAJE
Sub Mensaje()
Dim x, y As Integer
DrawWidth = 10 Establece el grosor de los puntos a Imprimir
Do
Form3.Caption Mid(Form3.Caption, 2) + Left(Form3.Caption, 1)
Forx - lT o 35000
Ncxt x
PSet (Rnd * ScaleWidth, Rnd * SaleHeight), QBColor(O)
Loop
End Sub
IMPORTANTE
Configure el Visual Basic de tal manera que ejecute primero el formulario N 02.
| j |^ 308 Grupo Editorial Megabyte ^ 1
i l l l l * VISUAL BASIC como debe ser...
CAPITULO VII: Diseo de Men
CONTROL SSTAB
fSS,
Permite disear varias pginas en un solo formulario con lo cual podemos
tambin crear mens.
Si este control no se encuentra en la caja de herramientas active la lista de
componentes y haga clic en la casilla de Microsoft:
Microsoft Tabbed Dialog Control
PRINCIPALES PROPIEDADES DE UN CONTROL SSTAB:
AME
Permite asignarle un nombre. Por default el nombre es Sstabl, Sstab2, Sstab3,
etc.
CAPTION
Para escribir el ttulo de la pgina que est seleccionada.
ENABLED
Para indicar si el control debe estar activado o no.
FONT
Para indicar el tipo, tamao y estilo de letra.
FORECOLOR
Para seleccionar el color de las letras.
TAB
Para indicar la pgina que debe estar activa.
TABORIENTATION
Para indicar la posicin del ttulo de las pginas..
TABS
Para indicar el nmero de pginas que debe tener el control.
TABSPERROW
Para indicar el nmero de pginas por fila.
VISIBLE
Para indicar si el control se del?e visualizar.
* G r u p o E d i t o r i a l Megabyte 309 ^
VISUAL BASIC como debe ser.. .
EJEMPLO:

Usando SSTAB, los formularios 03, 04, 05 y 06 de la aplicacin N 30 se
pueden desarrollar en un solo, como se puede observar a continuacin.
Las propiedades que debe asignar al control SSTAB es CAPTION:
PERSONALES ACADMICOS FAMILIARES
Dentro de cada hoja se deben dibujar las etiquetas, cajas de texto y botones
de comandos correspondiente.
fidisi
Labell
JSL5I
INGRESO DE DATOS
PERSHL|s|T ACADEMICOS J FAMILIARES
Nombre
Direccin
Telfono
Fecha de Nac.
Sexo
NUEVO SALIR
f f l I l l l l i i f a i M T M
| INGRESO DE DATOS
PERSONALES ; ACADEMICSfl FAMILIARES
CentrodeEsludios ["
Especialidad p
Gclo |
Turno |
Aula |
NUEVO | SALIR [
G rupo E ditorial Megabyte 3 1 0
I INGRESO DE DATOS
' PERSONALES 7 ACADEMICOS | f M ARsT
Apoderado(a) |~
N! dehermanos [""
Lugar deOrigen |~
TipodeVivienda |
NUEVO [ SALIR [
CAPITULO VII: Diseo de Men
ERRORES MAS COMUNES
Microsoft Visual Basic
El control Menu debe tener un nombre
Aceptar j | Ayuda
Se olvido de asignarle el
nombre (ame) a la opcin
que Visual Basic tiene
seleccionada.
Toda opcin debe tener un
nombre.
Microsoft Visual Basic
Nose puedecolocar aqu unamarcadeverificacin
Aceptar ; Ayuda
Microsoft Visual Basic
O El elemento de men ha saltado un nivel
Aceptar J j | Ayuda
Microsoft Visual Basic
0
No se puede asignar una tecla de mtodo abreviado a un men de nivel superior
Aceptar i Ayuda
Microsoft V isual Basic
C
0
El elemento de lamatriz de controles de men debe tener un ndice
i Aceptar j Ayuda
A las opciones principales
no se les puede asignar
Checked, entonces
desactive esta casilla a la
opcin que Visual Basic tie
ne seleccionada.
Puls dos o ms veces la fle
cha a la derecha saltando
uno o ms niveles. Pulse la
flecha a la izquierda en la
opcin seleccionada para
corregir este error.
A asignado una tecla rpida
(Shortcut) a una opcin prin
cipal.
Las opciones que tiene sub
opciones no pueden tener
Shortcut.
Escribi dos opciones con el
mismo nombre (ame).
Dos opciones pueden tener
el mismo Caption, pero noel
mismo nombre.
G rupo E ditorial Megabyte 311
l S l l ! > VISUAL BASIC como debe ser...
PREGUNTAS DE REPASO N 07
1. Con qu finalidad se puede crear utilizar un men?
2. Cuntas y cules con las formas de ingresar al Editor de Men?
3. A qu opciones de un men se les puede asignar la propiedad Shortcut?
4. Cul es la diferencia entre la propiedad Caption y ame?
5. Qu requisitos debe cumplir la propiedad ame de una opcin?
6. Cmo se programa dentro de una opcin?
7. Cul es la importancia de un control ToolBar?
8. Con qu otros controles se puede crear un men?
9. Cmo se sabe la opcin que el usuario a elegido de un control ToolBar?
10. Para qu sirve y cmo funciona PopupMenu?
11. Cul es la ventaja y cmo funciona el control SSTAB?
12. Qu control permite asignar grficos al ToolBar?
13. Qu debe hacer si la opcin para ingresar al Editor de Men
(Herramientas/Editor de Men) se encuentra desactivado?
14. Se puede asignar propiedades a las opciones de un men dentro de un
programa?
15. Para qu sirve la flecha hacia abajo y hacia arriba dentro del Editor
de Men?
16. Cul es la ventaja de usar un men en un aplicacin?
17. Dos opciones pueden tener el mismo nombre (ame)?
18. Se puede dejar espacios en blanco en la propiedad Caption y ame
de una opcin?
19. Qu propiedades de un control Tovar se consideran ms importantes?
20. Cul es la diferencia entre las propiedades Tabs y TabsPerRow del
control SSTAB?
La CREATIVIDAD es muy importante, formlese nuevas
aplicaciones o intercambie aplicaciones propuestas entre sus
compaeros de estudio y desarrllelas con la finalidad de
enriquecer sus conocimientos.
G rupo E ditorial Megabyte ^ | | |j j i
W
3 1 2
CAPITULO VIII
C hl o l a y o
-*
P u * r t D E l ain
L r f i b r a q u a
3 Up
S3
R E S I S T R D A C T U A L | T O P O S | 5A U R |
MANEJO
DE
ARCHIVOS
> CAPTULO VIII: Manejo de Archivos < 8 1 ^
DRTVELISTBOX
O
Muestra las unidades de disco permitiendo seleccionar cualquiera de ellas.
Su principal propiedad es DRIVE que indica la unidad que se encuentra
ac tiva o que se desea activar. Slo se puede cambiar de unidad durante la
ejecucin del programa. Su nombre predeterminado es Drivel, Drive2, etc.
Al dibujarlo se visualiza
j i c: [CETDI]
DIRLISTBOX
Muestra las carpetas, llamadas tambin directorios, de la unidad de disco
que se encuentra activa. Su principal propiedad es PATH que indica la ruta
que se encuentra activa o que se desea activar. Slo se puede cambiar de
unidad durante la ejecucin del programa. Su nombre predeterminado es
Dirl, Dir2, etc. y cuando se dibuja se visualiza:
FILELISTBOX
Q l Archivos de programa
: \i DevStudio
Muestra los archivo que pertenecen a la carpeta que se encuentra activa o
a la establecida en su propiedad PATH durante la ejecucin del programa.
Su nombre predeterminado es Filel, File2, etc. y cuando se dibuja se visualiza:
ADDSCCES.DLL
ADDSCCUS.DLL !
aplicacin sueldo neto, ene
aplicacin sueldo neto.vbp H
G rupo E ditorial Megabyte
3 1 5
Las principales propiedades del control FileListBox son:
ARCHIVE
Para indicar si muestra los archivos con atributo de modificado.
FTLENAME
Obtiene el nombre del archivo seleccionado.
fflDDEN
Para indicar si muestra los archivos ocultos.
NORMAL
Para indicar si muestra los archivos con atributo de normal.
PATH
Indica la ruta del archivo seleccionado.
PATTERN
Acepta caracteres comodines (* y ?) para seleccionar los archivos que se desean
visualizar. El signo de interrogacin (?) reemplaza a un carcter y el asterisco (*) a
dos o mas.
READONLY
Para indicar si muestra los archivos de solo lectura.
SYSTEM
Para indicar si muestra los archivos de sistema.
APLICACIN DESARROLLADA N 44
La siguiente aplicacin muestra las carpetas de la unidad selecciona y los archivos
de cada carpeta que se selecciona. Para seleccionar una carpeta haga Doble Click en
ella.
VISUAL BASIC como debe ser...
MIRANDO ARCHIVOS
l e: [CETDI]

_ J C : \
Archivos de prograr-
ADDSCCES.DLL
ADDSCCUS.DLL
aplicacin sueldo neto.exe
aplicacin sueldo neto.vbp
aplicacin sueldo neto.vbw I
Para desarrollar esta aplicacin slo se debe programaren el evento Change de los
controles DriveListBox y DirListBox.
Instrucciones del control DriveListBox:
Prvate Sub Drivel_Change()
Dirl.Path = Drivel.Drive
End Sub
Instrucciones del control DirListBox:
Prvate Sub Dirl_Change()
Filel.Path = Dirl.Path
CAPITULO VIII: Manejo de Archivos
APLICACION DESARROLLADA N 45
La siguiente aplicacin muestra las carpetas de la unidad selecciona y los
archivos de la carpeta que se selecciona, adems permite establecer el tipo
de archivos a visualizar (ingresando la extensin) y cuando se muestran
archivos *.EXE, los podemos ejecutar.
UN I D A D C A R P E T A
I l e : |C. ] - I
1 S l c A *. 1
W I N D O W S

""1 Archivos recibidos
------1
_ J C O M M A N D
_ J C O N F I G
r ~ l Cookies
i i Crystal
A R C H I V O
E x t e n s i n j EX E
A C C ST A T . EX E
A R P . EX E S i
C O N T R O L EX E
C S3 K I T . EX E - r J
Unidad |c: [CUCHO]
Carpata |c:\WINDOWS
Archivo |CA4_CEXE
Ejecutar el programa | alir j
PASO N 01: DIBUJAR LOS CONTROLES.
PASO N 02: ASIGNAR LAS PROPIEDADES.
Asigne las propiedades slo a las etiquetas y a los botones de comandos
como se indica en la aplicacin a desarrollar.
La caja de texto Textl, debe estar en blanco.
G rupo E ditorial Megabyte 317 w m
VISUAL BASIC como debe ser.
PASO N 03: ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES.
Instrucciones evento Form_Load
Prvate Sub Form_Load()
Drivel jChange
End Sub
Instrucciones del control DriveListBox:
Prvate Sub Drivel_Change()
Dirl.Path = Drivel.Drive
Label7 = Drivel.Drive
End Sub
Instrucciones del control DirListBox:
Prvate Sub Dirl_Change()
Filel = Dirl.Path
Label8 = Dirl.Path
Commandl .Enabled = False
End Sub
Instrucciones del control FileListBox:
Prvate Sub Filel_Click()
Label9 = Filel.filename
I f Right(UCase(Label9), 3) = "EXE" Then
Commandl .Enabled = True
Else
Commandl .Enabled - False
End I f
End Sub
Instrucciones del control Textl:
Prvate Sub Textl_Change()
Filel. Pattern = Textl
End Sub
Prvate Sub Textl _KeyPress(KeyAscii As Integer)
c = Chr(KeyAscii)
I f c = "*" Or c = "." Or e = "?" Then
Textl JChange
End I f
End Sub
Instrucciones del botn Ejecutar el Programa.
Prvate Sub Commandl _Click()
Dim N n v JntPQpr
N = Shell( Dirl.Path + V + Filel filename, 1)
End Sub
w
3 1 8
G rupo E ditorial Megabyte ^
CAPTULO VIII: Manejo de Archivos
CONMONDIALOG
Presenta los cuadros de dilogo ms comunes del Windows. Su nombre
predeterminado es CommonDialogl, CommonDialog2, etc.
Sus principales propiedades son:
ACTION
Se utiliza para indicar el cuadro de dilogo que deseamos activar. Los valores
que puede tener son:
0 Ningn cuadro
1 Activa el cuadro de dilogo Abrir.
2 Activa el cuadro de dilogo Guardar como.
3 Activa el cuadro de dilogo Color.
4 Activa el cuadro de dilogo Fuente.
5 Activa el cuadro de dilogo Imprimir.
6 Activa la ayuda del Windows.
Tambin se puede utilizar los mtodos para activar el cuadro de dilogo que
desea: ShowOpen (Abrir), ShowSave (Guardar como), ShowColor (Color),
ShowFont (Fuente), ShowPrinter (Imprimir) y ShowHelp (Ayuda)
EJEMPLO DE CUADROS DE DIALOGO
_________lue
Colores bsicos:
i r r r r r i r r
r r r r i a s s
r i E i i a i

r r R i i r i r
Colores personalizados:
r r r r~ r
r m m b
r
Definir colores personalizados
Aceptar Cancelar
. trpnr* '
E 'lado pecM<irorvidA. Liil
T*k> Arr*o LaWiIi
UOoadr)' LPT 1:
r nmnlqrio
3
I Imprimir en un archivo
Imprima -
r- Todo
Comas
Nmero de ps;
I Aceptar. I Cancelar |
Fijante:
IAnal N <mlow
"i badi MT C o n d e m S d r l
r Aiii
't1 Ai liti Black *
1 T a c t y r t o
I u l> i a y a d o
; AaBbYyZz
f ~ ... -------
Alf ab eto :
jKassiHiMasw*wa -i
G rupo E ditorial Megabyte
3 1 9
s ,
VISUAL BASIC como debe ser.. .
PROPIEDADES PARA EL CUADRO FUENTES
Antes de usar el mtodo ShowFont tiene que asignar a la propiedad Flags
una de tres valores:
&H3 Muestra los tipos de letra que acepta el monitor y la impresora.
&H2 Muestra slo los tipos de letra que acepta la impresora.
&H 1 Muestra slo los tipos de letra que acepta el monitor.
Si no establece Flags, aparecer el siguiente mensaje de error:
N o hay fuentes instaladas.
Para instalarlas, abra la carpet a Fuentes e n el Panel de control.
Tambin puede asignar a la propiedad Flags, entre otros, los siguientes valores:
&H200 Activa el botn Aplicar en el cuadro de dilogo.
&H 100 Especifica que el cuadro de dilogo permite los efectos de tachado,
subrayado y color.
&H2000 Especifica que el cuadro de dilogo selecciona slo tamaos de
fuente dentro del intervalo especificado por las propiedades Min y
Max.
NOTA:
Utilice el operador OR para asignar dos valores a la propiedad Flags, por
ejemplo, se puede escribir en un botn de comandos:
CommonDialogl.Flags = &H2 Or &H100
CommonDialogl. ShowFont
COLOR
Obtiene el color seleccionado para la letra.
FONTBOLD
Indica si ha seleccionado negrita.
FONTITALIC
Indica si ha seleccionado cursiva.
FONTSTRIKETHRU
Indica si ha seleccionado tachado.
FONTUNDERLINE
Indica si ha seleccionado subrayado.
FONTNAME
Obtiene el nombre del tipo de letra seleccionada.
FONTSIZE
Obtiene el tamao de letra seleccionada.
^ 320 G rupo E ditorial Megabyte^
CAPITULO VIII: Manejo de Archivos %
PROPIEDADES PARA EL CUADRO COLOR
COLOR
( )btiene el color seleccionado.
I'LAGS
So utiliza para configurar el cuadro de dilogo Color.
I .os valor que puede tener son:
&H2 Presenta el cuadro con los colores personalizados.
& 114 Desactiva el botn de comando Definir colores personalizado.
PROPIEDADES PARA EL CUADRO ABRIR Y GUARDAR
DEFAULTEXT
Indica la extensin predeterminada de los archivos.
KILENAME
Obtiene el nombre del archivo seleccionado.
FILTER
I establece los filtros para los tipos de archivos a visualizar.
La sintaxis apara establecer un filtro es:
Filter = descripcinl \filtrol \descripcin2 \filtro2...
Para separar cada descripcin y filtro debe utilizar el carcter N 124 (|).
Ejemplo, las instrucciones:
C'onimonDialogl.Flter = Documentos(*.Doc)|*.Doc|Grficos(*.Bmp)|*.Bmp|Todos|*.*
CommonDialogl.ShowOpen
Muestran la siguiente ventana de Abrir:
Abrir 1
Buscar en | _j| Vfb
z J j f t j f j
_ j Clisvr _ J samples L_j Winapi
_ ] Graphics _ J Setup _ j Wizards
_ J Help __1setupkit
_J0dbc _ J Tempiate
_ j report C_1 Tsql
_ j Repostry __1vbortline
Nombre de archivo:
1 | btlf J
Archivos de tipo: j Documentos^. Doc)
_L Cancelar I
!Documenios(*.Doc1 JMNIrilrittflHpMU .......... .
Grficos( Bmp)
Todos 1--------------------------
NOTA:
Si no especifica la propiedad Filter, el combo de Archivos de Tipo se muestra
en blanco, permitiendo ver todos los archivos.
G rupo E ditorial Megabyte
321
IIITERIMMX
Para indicar el filtro predeterminado de los que se ha colocado en la propiedad Filter.
Por ejemplo, la siguiente instruccin hace que se muestre el segundo filtro de los
establecidos:
CbmnlmDial(^lEltel=',DocuI^xa^tos(*I)c)c)(*.Doc|Graficos(*.Bn^p)|*.Brnpf^odos(*.*,'
CbmrnonDialogLFilterindex=2
CommonDialogLShowOpen
FLAGS
Se utiliza para configurar el cuadro de dilogo Abrir o Guardar.
Los valor que puede tener son:
&H1000 Especifica que el usuario slo puede introducir nombres de archivos
existentes en el cuadro de texto Nombre de archivo. Si este indicador est
activado y el usuario escribe un nombre de archivo no vlido, se mostrar
una advertencia.
&H4 Oculta la casilla de verificacin Slo lectura.
&H8 Hace que el cuadro de dilogo restablezca como directorio actual el que lo
era en el momento de abrirse el cuadro de dilogo.
&H8000 Especifica que el archivo devuelto no tendr establecido el atributo de
Slo lectura y no estar en un directorio protegido contra escritura.
&H2 Hace que el cuadro de dilogo Guardar como genere un cuadro de mensajes
si el archivo seleccionado ya existe. El usuario tiene que confirmar si desea
sobrescribir! archivo.
IMTDIK
Establece la ruta de la carpeta predetermina al para Abrir o Grabar un archivo. Por
ejemplo, la siguiente instruccin hace que se muestre la carpeta del Windows en
forma predeterminada.
CommonDialogl.InitDir - "c:\windows"
CommonDialog l.ShowOpen
PROPIEDADES PARA EL CUADRO IMPRIMIR
COPIES El nmero de copias que se van a imprimir.
FROMPAGE
La pgina en la que se inicia la impresin.
TOPAGE
La pgina en la que se detiene la impresin.
Los principales valores de la propiedad Flags
&H80000 Desactiva la casilla para Imprimir en un archivo.
&H 100000 Oculta la casilla para Imprimir en un archivo.
&H40 Hace que el sistema presente el cuadro de dilogo Configurar impresora
en vez del cuadro de dilogo Imprimir.
&H20 Devuelve o establece el estado de la casilla de verificacin Imprimir en un
archivo.
&H400 Devuelve el nombre de la impresora predeterminada.
VISUAL BASIC como debe ser...
S I 5' 3 2 2 G r u p o E d i t o r i a l Megabyte < | | g
CAPITULO VIII: Manejo de Archivos
APLICACIN DESARROLLADA N 46
La siguiente aplicacin permite asignar un grfico, un color de fondo, un
tipo y color de letra utilizando las cajas de dilogo.
CUADROS OE DILOGO
azi
VISUAL BASIC
FUENTE GRFICO FONDO LETRAS
PASO N 01: DIBUJAR LOS CONTROLES.
Dibuje una etiqueta, un PictureBox, cuatro botones de comandos y un control
CommonDialog como se muestra a continuacin:
m u
LabeH
i. Formi
Commandl Command2 UommandS Command4
PASO N 02: ASIGNAR LAS PROPIEDADES A LOS CONTROLES.
Asigna la propiedad Caption a la etiqueta y a los botones de comandos. Al
control PictureBox asgnele el grfico indicado o cualquier otro. El control
CommonDialog no tiene ninguna propiedad.
| ||1 ^ G rupo E ditorial Megabyte
323
PASO N 03: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Instrucciones del botn FUENTE
Prvate Sub Commandl_Click()
CommonDialogl.FontName = "ARIAL" Tipo de letra predeterminada
CommonDialogl.Flags = &H3 Or &H100
CommonDialog 1.ShowFont
Labell. FontName = CommonDialogl .FontName
Labell .FontSize = CommonDialogl .FontSize
Labell. Fontltalic = CommonDialogl .Fontltalic
Labell. FontUnderline = CommonDialogl.FontUnderline
Labell.ForeColor = CommonDialogl .Color
End Sub
Instrucciones del botn GRFICO
Prvate Sub Command2_Click()
CommonDialogl.Filter = "WMF\*.wmf\ICO\*.ico\BMP\*.bmp\Todos\*. *"
CommonDialogl. ShowOpen
Picturel.Picture - LoadPicture(CommonDialogl.filename)
End Sub
Instrucciones del botn FONDO
Prvate Sub Command3_Click()
CommonDialogl.Flags - &H2
CommonDialogl. ShowColor
Picturel.BackColor - CommonDialogl.Color
Labell. BackColor = CommonDialogl .Color
End Sub
Instrucciones del botn LETRAS
Prvate Sub Command4_Click()
CommonDialogl .Flags - &H2
CommonDialogl.ShowColor
Labell.ForeColor = CommonDialogl.Color
End Sub
B B k VISUAL BASIC como debe ser...
l i l i l 324 G rupo E ditorial Megabyte <Ip l l
CAPTULO VIII: Manejo de Archivos %
USO DE LA IMPRESORA
Para manejar la impresora dentro de un programa se debe utilizar el objeto PRINTER.
PRINCIPALES PROPIEDADES DELOBJETO PRINTER:
COLORMODE
Se utiliza slo para impresoras a color para indicar si va a imprimir en color o negro (escala de
grises). Si le asigna el valor uno (1) imprimir en negro y dos (2) imprime en color.
COPIES
Indica el nmero de copias a imprimir.
CURRENTX
Establece la posicin Horizontal donde deseamos imprimir.
CURRENTY
Establece la posicin Vertical donde deseamos imprimir.
DEVTCENAME
Obtiene el nombre del dispositivo.
DRIYERNAME
Obtiene el nombre del controlador.
FONTBOLD
Permite indicar si se imprime en negrita.
PONTITALIC
Permite indicar si se imprime en cursiva.
FONTSTTRIKErHRU
Permite indicar si se imprime con letras tachadas.
FONTUNDERLINE
Permite indicar si se imprime con subrayado.
FONTNAME
Permite establecer el tipo de letra para la impresin.
FONTSIZE
Permite establecer el tamao de letra para la impresin.
HEJGHT
Para indicar la altura del papel donde desea imprimir.
WIDTH
Para indicar el ancho del papel donde desea imprimir
ORIENTARON
Permite establecer si se imprime en forma horizontal o vertical. Asignndole el valor
Ise imprime vertical y 0 Horizontal.
PAGE
Devuelve el nmero de la pgina que se esta imprimiendo.
PAPERBPM
Establece la forma de introducir el papel a la impresora. Los principales valores que
puede tener son:
1 Utilizar papel de la bandeja superior.
4 Esperar a la insercin manual de cada hoja.
7 (Predeterminado) Utilizar papel de la bandeja activa.
8 Utilizar papel del alimentador por traccin.
G rupo E ditorial Megabyte 325 m m
PAPERSIZE
Establece el tamao del papel donde desea imprimir. Los valores principales son:
I Carta, 216 x 279 mm
8 A3,297 x 420mm
9 A4,210 x 297mm
II A5,148x210mm
12 B4,250 x 354mm
13 B5,182x257 mm
14 Folio, 216x330 mm
39 Continuo USA estndar, 310 x 280 mm
40 Continuo alemn estndar, 216 x 305 mm
41 Continuo alemn oficio, 216 x 330 mm
256 Definido por el usuario
Cuando le asigna el valor 256 el tamao del papel ser el indicado por la propiedades
Height y Width.
PORT
Devuelve el nombre del puerto por el que se enva los documentos a la impresora.
PRINTQIAI.ITY
Establece la calidad de impresin. Sus valores pueden ser:
CONTANTE VALOR CALIDAD
vbPRPQDraft -1 Resolucin borrador
vbPRPQLow -2 Resolucin baja
vbPRPQMedium -3 Resolucin media
vbPRPQHigh -4 Resolucin alta
SCALEMODE
Establecen la unidad de medida para el objeto Printer. Los valores que puede tener
son:
1 (Predeterminado). Establece la unidad de medida Twip.
2 Punto (72 puntos por pulgada lgica).
3 Pxel (resolucin del monitor o la impresora).
4 Carcter (horizontal= 120 twips por unidad; vertical=240 twips por unidad).
5 Pulgada.
6 Milmetro.
7 Centmetro.
ZOOM
Indica el porcentaje en que se amplia o reduce el resultado impreso.
PRINCIPALES MTODOS DEL OBJETO PRINTER:
ENDDOC
Inicia el enva la informacin a la impresora.
K I L L I X X
Finaliza el trabajo de impresin en ejecucin.
NEWPAGE
Avanza a la siguiente pgina e incrementa el valor de la propiedad Page en 1(uno).
! | > VISUAL BASIC como debe ser...
326
G rupo E ditorial Megabyte
METODO PRINT
Es un mtodo que usado con el objeto Printer, permite imprimir informacin en la
impresora.
Su sintaxis para imprimir en la impresora es:
PRINTER.PRINT Expresin
Donde expresin es lo que deseamos imprimir. Si es un mensaje debe ir entre comillas
(") o apostrofes (). Ejemplos:
La siguiente instruccin imprime VISUAL BASIC en la impresora.
Printer.Print "VISUALBASIC
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., pero en dos lneas diferentes.
Printer.Print "VISUALBASIC"
Printer.Print "COMO DEBE SER... "
Despus de la expresin puede utilizar una coma (,) que permite imprimir el siguiente
mensaje en la misma lnea pero despus de ocho (8) espacios o puede utilizar un
punto y coma (;) que permite imprimir! siguiente mensaje en la misma lnea pero
junto a la anterior.
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., en la misma lnea pero separados por 8 espacios (hay una coma despus
de imprimir VISUAL BASIC).
Printer.Print "VISUALBASIC",
Printer.Print "COMO DEBE SER... "
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., en la misma lnea pero juntos (hay un punto y coma despus de
imprimir VISUAL BASIC).
Printer.Print "VISUAL BASIC";
Printer.Print "COMO DEBE SER... "
Las siguientes instrucciones imprimen: SU EDAD ES: 31 AOS.
Dim E As Integer
E = 31
Print "SU EDAD ES: Str(E); " AOS"
La instruccin Printer.Print sin ningn parmetro deja una linea en blanco.
INSTRUCCIN TAB
La instruccin Tab se utiliza junto con Print para indicar el nmero de la columna de
la lnea actual donde desea imprimir la siguiente expresin. Por ejemplo:
I.a instruccin imprime en la columna 20 la palabra COMPUTACION.
Printer.Print Tab(20); "Computacin"
La siguiente instruccin imprime en la columna 10 el texto VISUAL BASIC y en la
columna 30 el texto COMO DEBE SER...
Print Tab(10); "VISUALBASIC"; Tab(30); "COMO DEBE SER.."
CAPTULO VIII: Manejo de Archivos ^ B
G rupo E ditorial Megabyte 327 m m
VISUAL BASIC como debe ser.
'ZtS&m'
INSTRUCCIN SPC
Esta instruccin permite dejar espacios en blanco antes de imprimir.
La siguiente instruccin imprime los textos VISUAL BASIC y COMO DEBE SER...,
separados por 5 espacios en blanco.
Print "VISUAL BASIC"; Spc(5); "COMO DEBE SER..."
NOTA:
Es opcional escribir los punto y coma en las instrucciones TAB y SPC, porque se
escriben automticamente.
Cuando la columna donde trata de imprimir con la instruccin TAB est ocupada
por la expresin anterior, entonces se imprime en la columna indica pero en la
siguiente lnea.
PRINTFORM
Es un mtodo que pertenece a los formularios y permite imprimirlo incluyendo todos
los controles que contiene incluyendo grficos. Para ello asigne el valor TRUE a la
propiedad AUTOREDRAW del formulario que desea imprimir. Su sintaxis es:
Nombre_Del_Fonnulario.PRINTFORM
APLICACION DESARROLLADA N 47
La siguiente aplicacin es un ejemplo del uso de laimpresora imprimiendo los datos
de una sola persona o un listado general.
-mixi USO DE LA IMPRESORA
D a l o s Pe r s o n a l e s :
Nombre Cesar
Distrito ||_aVictoria
Edad f35
Almacenar j
Cancelar
Anaximandro -1
Ana Mara
lie 7 Fi't1'Jifflffli'wWnffT
Karina j d
IMPRIMIR
REGISTRO ACTUAL
Labell ]Textl
Label2 (7ext2
Label3 I 3
Frame2
Command3 | Command4
PASO N" 01: DIBUJAR LOS CONTROLES.
Dibuje los controles y asgnele las propiedades como se muestra a continuacin.
Las listas deben quedar en blanco:
PASO N 02: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Definir las variables a nivel de formulario.
Dim N As Byte
Instrucciones del botn Salir.
Prvate Sub CommandS_Click()
IfMsgBox("ESTA SEGURO DE SALIR", 36, "CUIDADO") =6 Then End
End Sub
328 G rupo E ditorial Megabyte^
Instrucciones del botn Nuevo o Almacenar.
P r i v a t e S u b C o m m a n d l _ C l i c k ()
I f Co m ma n d l . C a p t i o n = "&Nuevo" Then
Co mma n d l . C a p t i o n = " A l m a c e n a r "
Conunand2. E n a b l e d = T r u e
Fr ame 1 . E n a b l e d = T r u e
l i m p i a
T e x t l . S e t F o c u s
E l s e
Commandl . C a p t i o n = "&Nuevo"
Command2. E n a b l e d = F a l s e
Fr ame 1 . E n a b l e d = F a l s e
Rem p a s a l o s d a t o s de l a s Ca j a s d e T e x t o a l o s L i s t
L i s t l . A d d l t e m T e x t l
L i s t 2 . A d d l t e m T e x t 2
vL i s t 3 . A d d l t e m T e x t 3
End I f
End S u b
Inst, del FormActivate.
P r i v a t e S u b F o r m _ A c t i v a t e ()
Commandl . C a p t i o n = "&Nuevo
Command2. E n a b l e d = F a l s e
Frame1 . E n a b l e d = F a l s e
l i m p i a
End S u b
PROCEDIMIENTO LIMPIA
S u b l i m p i a ()
T e x t l = " "
T e x t 2 = ""
T e x t J = ""
End Su b
CAPTULO VIII: Manejo de Archivos
Inst, del botn Cancelar.
P r i v a t e Su b
Co mma n d 2 _ Cl i c k ( )
F o r m _ A c t i v a t e
End S u b
PROCEDIMIENTO MUESTRA
S u b MUESTRA ()
T e x t l = L i s t l
T e x t 2 = L i s t 2
T e x t 3 = L i s t 3
End Su b
INSTRUCCIONES DE LOS CONTROLES LIST
Private Sub Ustl_CUck( )
N =Listl. Listindex
List2.ListIndex - N
List3.ListIndex =N
End Sub
Private Sub lJst2_Click()
N =List2.ListIndex
List 1.List Index=N
List 3. List Index =N
MUESTRA
End Sub
Private Sub List3_Click()
N = List3.ListIndex
Listi. Ustlndex = N
List2.UstIndex =N
MUESTRA
End Sub
E ditorial Megabyte 329
Instrucciones del procedimiento ENCABEZADO
Sub ENCABEZADOO
Printer.FontName = "Arial"
Printer.FontSize - 8
Printer.Print Tab(33);"PGINA N" + Str(Printer.Page);Tab(80);
"Fecha y H o r a + Str(CVDate(Now))
Printer.CurrentY - 1 0
Printer.Print
Printer.FontName = "courier new"
Printer.FontSize = 22
Printer.Print Tab(12); "LISTADO DE REGISTROS"
Printer.FontSize = 10
Printer.Print
Printer.Print Tab(20);"NOMBRE"; Tab(40); "DISTRITO"; Tab(70); "EDAD"
Printer.Print Tab(20); String(55, "*")
End Sub
Instrucciones del Botn Registro Actual.
Prvate Sub Command3jClick()
Printer.PrintQuality = -4
Printer.ScaleMode = 6
Printer.PaperSize = 9
Printer.CurrentY = 10
Printer.FontName = "courier new"
Printer.FontSize = 20
Printer.Print Tab(17); "DATOS PERSONALES"
Printer.FontSize - 14
Printer.Print
Printer.Print Tab(20); "Nombre................: " + Textl
Printer.Print Tab(20); "Distrito...............: " + Text2
Printer.Print Tab(20); "Edad....................: "+ Text3
Printer.EndDoc
End Sub
Instrucciones del procedimiento Todos.
Prvate Sub Command4_Click()
Printer.PrintQuality = -4
Printer.ScaleMode = 6:Printer.PaperSize=9:Printer.CurrentY = 10
ENCABEZADO
ForX - 1 To Listl.ListCount
Printer.FontName = "courier new"
Printer.FontSize - 1 0
Listl.Listlndex = X - 1:List2.Listlitdex = X - 1: List3.ListIndex = X - 1
Printer.Print Tab(20);Listl; Tab(40); List2; Tab(72); List3
IfX Mod 3 - 0 Then
Printer.NewPage
ENCABEZADO
Endlf
Next X
Printer.EndDoc
End Sub
VISUAL BASIC como debe ser. . . .*,
330 G rupo E ditorial Megabyte
COMANDOS DEL D.O.S.
Todas las tareas para manejar archivos o carpetas, se pueden realizar a travs del
Windows y con las cajas de dilogo (CommonDialog), pero Visual Basic tambin
acepta instrucciones que se usan en el D.O.S:
niR
Permite obtener el nombre de un archivo, el nombre de la carpeta actual o el nombre
de la etiqueta del disco.
Su sintaxis es: DIR (RUTA, VALOR)
Ruta es el ubicacin y el nombre del archivo que desea obtener. Se pueden utilizar
los caracteres comodn:
* Que representa dos o ms caracteres.
? Que representa un solo carcter.
Es un valor que indica el atributo del archivo.
Los valores pueden ser:
vbNormal 0 Normal
vbHidden 2 Oculto
vbSystem 4 Archivo de sistema
vbVolume 8 Etiqueta de volumen; si se especifica se ignoran todos
los atributos.
vbDirectory 16 Directorio o carpeta.
FTLECOPY
Copia un archivo. Por ejemplo, la siguiente instruccin copia el archivo
INFORME.DOC AL DISCO A: FileCopy "INFORME.DOC ", "A:"
KIIJ.
Borra un archivo. Por ejemplo, la siguiente instruccin borra el archivo
INFORME.DOC: KILL INFORME.DOC
AME
Cambia el nombre de un archivo, directorio o carpeta. Por ejemplo, las instruccin
cambia el nombre DATOS.DOC por HOY.DOC
ame DATOS.DOCAs HOY.DOC
( URDIR
Devuelve la unidad y ruta actual. La siguiente instruccin almacena en Label 1, la
unidad y ruta actual: Labell=CURDIR
CHDIR
Cambia la unidad y ruta actual. Por ejemplo, la instruccin cambia a una nueva
ruta: C:\Windows.
MKDIR
Crea una nueva carpeta. Por ejemplo la siguiente instruccin crea la carpeta Agenda:
MKDIR C:\AGENDA
RMDIR
Borra una carpeta, siempre y cuando se encuentre vaca. Por ejemplo: RMDIR
C:\AGENDDA. Boira la carpeta AGENDA.
CHDRIVE
Cambia de unidad de disco. Por ejemplo, la siguiente instruccin cambia a la unidad
A:. CHDRIVE A:.
CAPITULO VIII: Manejo de Archivos ^
G rupo E ditorial Megabyte 331
VISUAL BASIC como debe ser...
CONTROL DE ERRORES
La instruccin ON ERROR
Esta instruccin permite detectar errores durante la ejecucin de los programas.
Cada vez que hay un error se puede llamar a un grupo de instruccin para poder
controlarlo y evitar que nuestro programa deje de funcionar en un momento
inesperado.
Tiene 3 sintaxis:
On Error GoTo Nombre_deIaInea
Con esta sintaxis, cada vez que se produce un error se ejecutan las instrucciones
que estn despus del nombre de la lnea. El nombre de la lnea debe terminar con
dos puntos (:). Antes del nombre de la lnea debe escribir la instruccin EXIT SUB
On Error Resume Next
Con esta sintaxis, cada vez que se produce un error la computadora ejecuta la
siguiente instruccin despus de la lnea de ocurri el error.
On Error GoToO
Con esta sintaxis, se desactiva el control de errores.
EL OBJETO ERR
El objeto ERR contiene informacin acerca del error que se a producido. Su
propiedades ms importantes son:
DESCRIPTION.- Devuelve el mensaje que muestra el sistema por el error producido.
NUMBER.- Devuelve el nmero del error.
SOURCE.- Devuelve el nombre del objeto donde ocurri el error.
EJEMPLO DE CMO CONTROLAR LOS ERRORES
Prvate Sub Command l_Click()
Dim NUMERR, R As Integer
Rem ACTIVA EL CONTROL DE ERRORES
On Error GoTo VERIFICA
Instrucciones
ExitSub
VERIFICA:
NUMERR = Err.Number
Select Case NUMERR
Case 6: MsgBox "DEFINE CORRECTAMENTE TU VARIABLE", 16, "ERROR"
Case 11: MsgBox "NO SE PUEDE DIVIDIR ENTRE CERO", 16, "ERROR"
Case 61: MsgBox "EL DISCO NO TIENE ESPACIO LIBRE", 16. "ERROR"
Case 71: MsgBox "INSERTE CORRECTAMENTE EL DISCO", 16, "ERROR"
Case Else
MsgBox "HA OCURRIDO UN ERROR NO CONTROLADO EN:" _
+ Err.Source+Chr( 13)+"Nmero de Error:"+Str(Err.Number) _
+ Chr(I3)+"Descripcin :"+Err.Description + Chr(13)
End Select
End Sub
3 3 2 G r u p o E d i t o r i a l M e g a b v t e < | | | |
ALGUNOS ERRORES INTERCEPTABLES
Nmero Descripcin
5 El argumento o la llamada al procedimiento no son vlidos
6 Desbordamiento
7 Sin memoria
9 El subndice est fuera del intervalo
11 Divisin por cero
13 No coinciden los tipos
20 Resume sin Error
35 No se ha definido Sub, Function o Property
47 Hay demasiados clientes de la aplicacin DLL
52 Nombre o nmero de archivo incorrecto
53 Imposible encontrar el archivo especificado
54 Modo de archivo incorrecto
55 El archivo ya est abierto
57 Error de E/S de dispositivo
58 El archivo ya existe
61 Disco lleno
62 La entrada de datos ha sobrepasado el final del archivo
63 El nmero de registro es incorrecto
67 Hay demasiados archivos
71 El disco no est listo
74 Imposible cambiar el nombre con una unidad de disco diferente
75 Error de acceso a la ruta o al archivo
92 El bucle For no est inicializado
94 El uso de Nuil no es vlido
321 Formato de archivo no vlido
380 Valor de propiedad no vlido
381 El ndice de la matriz de propiedades no es vlido
382 Set no se admite en tiempo ae ejecucin
383 Set no se admite (propiedad de slo lectura)
385 Se necesita un ndice de matriz de propiedad
387 Set no est permitido
393 La propiedad no se puede leer en tiempo de ejecucin
400 El formulario ya est mostrado. Imposible mostrar en forma modal
402 Primero debe cerrar u ocultar el formulario modal superior
422 No se encontr la propiedad
423 No se ha encontrado la propiedad o el mtodo
424 Se requiere un objeto
438 El objeto no acepta esta propiedad o mtodo
449 El argumento no es opcional
450 Nmero de argumentos errneo o asignacin de propiedad no valida
451 El objeto no es una coleccin
459 Este componente no acepta eventos
482 Error de impresora
483 El controlador de impresora no admite la propiedad especificada
484 Problemas al obtener informacin de la impresora desde el
sistema; asegrese de que la impresora est configurada correctamente
485 El tipo de imagen no es vlido
485 No se puede imprimir la imagen de formulario en este tipo de
impresora
520 No se puede vaciar el Portapapeles
521 No se puede abrir el Portapapeles
735 Imposible guardar el archivo en TEMP
744 No se encontr el texto de bsqueda
31001 Sin memoria
31027 Imposible activar el objeto
CAPTULO VIII: Manejo de Archivos %
G rupo E ditorial Megabyte 3 3 3
RICHTEXBOX
Es similar a una caja de textos. Se diferencia porque este control permite
asignar un formato a todo o parte del texto y tiene otras caractersticas ms
avanzadas como por ejemplo, permite abrir y grabar archivos con formato
RTF y texto ASCII normal usando los mtodos LoadFile y SaveFile.
A parte de las propiedades de la caja de texto, tiene las siguientes:
BULLETINDENT
Indica la sangra con la que debe trabajar.
DISABLENOSCROLL
Acepta un valor lgico que indica si estn activadas las barras de desplazamiento.
RIGHTMARGIN
Permite indicar el margen derecho.
SCROLLBARS
Indica si el control debe tener las barras de desplazamiento.
SELALIGNMENT
Alinea el texto asignndole los valores Nuil (ninguna), 0 (izquierda), 1
((derecha) y 3 (centro).
SELBOLD
Activa o desactiva el estilo Negrita al texto seleccionado.
SELITALIC
Activa o desactiva el estilo Cursiva al texto seleccionado.
SELSTRIKETHRU
Activa o desactiva el estilo Tachado al texto seleccionado.
SELUNDERLINE
Activa o desactiva el estilo Subrayado texto seleccionado.
SELBULLET
Activa o desactiva el estilo con Vieta texto seleccionado.
SELCOLOR
Asigna un color al texto seleccionado.
SELFONTNAME
Asigna un tipo de letra al texto seleccionado.
SELFONTSIZE
Asigna un tamao de letra al texto seleccionado.
SELPROTECTED
Acepta un valor lgico que indica si el texto seleccionado esta protegido, es
decir, no puede modificarse.
A t VISUAL BASIC como debe ser.. .
334 G rupo E ditorial Megabyte
CAPTULO VIII: Manejo de Archivos
MTODO LOADFILE
Abre un archivo con formato RTF o de tipo texto. Su sintaxis:
RichTextBox.LoadFile ruta y n o m b r e , Valor.
El valor indica el tipo de archivo: 0 RTF y 1 Texto.
MTODO SAVEFILE
Graba un archivo RTF o texto. Su sintaxis es similar a LoadFile.
Aplicacin de Ejemplo
La siguiente aplicacin que permita abrir y grabar archivos.
^ ^ rch vos H 0 E 3 I
|j BRR j | GRABAR |
CONTENIDO DEL ARCHIVO
EL SIDA
SIDA significa Sndrome de Inmuno Deficiencia Adquirida y es una enfermnedad que hasta
ahora no tiene cura, por lo tanto, trae como consecuencia la muerte sin tomar en cuenta la edad,
el color, la raza, el sexo ni el nivel econmico de una persona.
El SIDA es la etapa mas avanzada de la infeccin producida por el Virus de Inmunodeficiencia
Humana (VIH). Esto quiere decir que antes que una persona tenga SIDA primero tiene el virus
VIH y este virus se contagia principalmente por tener relaciones sexuales sin proteccin con
una persona infectada con este virus del VIH. La proteccin mas usada es el CONDN.
La persona que tiene el virus VIH que es el principio del SIDA no tiene ningn sntoma ni ninguna
forma de saber a simple vista (slo a travs de la prueba de Elisa) que tiene el virus, por eso es
muy importante, si vas a tener relaciones sexuales, el uso del Condn el cual tambin te protege
de las enfermedades de transmisin sexual (ETS) como Sfilis, Gonorrea, Herpes, Chancro
Blando, Candidiasis, Verruga, etc.
Muchas personas dicen que hacerlo con condn "no es igual, pero tu tienes que saber que una
vida con SIDA tampoco es igual y es preferible, si no tienes un condn " p e r d e r " una relacin
sexual o una noche de placer, que perder la salud y sobre todo la VIDA.
"No olvides que tu familia te quiere y t e necesita'*
DESARROLLO
Dibuje en un formulario dos botones de comandos, una etiqueta, un control
RichTextBox y un control Commondialog
INSTRUCCIONES DEL BOTN ABRIR.
Pri vate Sub Command l_Click()
On Error GoTo PRUEBA
CommonDialogl .Filter="RTF (*.RTF)|*.RTF |TEXTO (*.TXT)|*.TXT"
CommonDialogl .ShowOpen
RichTextBox 1.LoadFile CommonDialog 1.filename, CommonDialog 1.FilterI ndex-1
Exit Sub
PRUEBA:
MsgBox "NO SE PUEDE TENER ACCESO AL ARCHIVO", 64, "ERROR"
End Sub
Las instrucciones del botn Grabar son similares a la de Abrir, slo cambie la
propiedad ShowOpen por ShowSavey el mtodo LoadFilepor SaveFile.
H j ^ G rupo E ditorial Megabyte
335
VISUAL BASIC como debe ser. . .
FUNCIONES API
API significa Interfaz de Programacin de Aplicaciones y son un conjunto
de funciones que tiene el Windows que nos ayudan a desarrollar aplicaciones
o tareas de una ms rpida y sencilla.
Para utilizar una funcin API de Windows debe agregarla al mdulo de su
aplicacin. Para ello siga los siguientes pasos:
1. De la opcin Complementos elija Visor API.
Si no encuentra la opcin Visor API, ingrese a Administrador de
Complementos y active la casilla de VB API Viewer.
2. De la ventana que se visualiza al ingresar a la opcin Visor API elija
Archivo y luego Cargar Archivo de Texto.
Complementos
Administrador visual de d a t o s . ..
Diseador de informes...
Administrador de complementos.,
Visor API
Compternent os disponibles :
: Microsoft D ola To oli
: VB Act iveX Control I n t e r f a c e Wizard
1VB Act iveX Document Mwji at ion Wizard
I VB A d d I n Toolbar
tT-7.r
i VB Application Wizard
j VB Class Bui!dt Utilit y
; v o D ata Form Wizard
j VB Pr op er ty Page Wizard
) vm T-SQt. Debugger
: VB Wizai d Manager
f Acept ar |
3. Ingrese a la carpeta Winapi y seleccione el archivo Win32api.
Seleccione un archivo de texto API
uscaren: | _ j Vb
__i Clisvr C J samples
_ ] Graphics i_J Setup
_ J Help __1setupkit
_)0dbc C_] Template
_ J report - J T s q l
_ j Repostry __1vbonline
Nombre de archivo: f"
Archivos de tipo: Texto TXT)
3
_1 Winapi
_ J Wizards
f
License
Redist
mal Seleccione un archivo de texlo API
hombre de archivo: |f
Archivos de tipo: [Texto ( TXT)
Se muestra una ventana con 5 botones de comandos:
BUSCAR : Permite buscar a una funcin.
AGREGAR : Agrega a la lista la funcin seleccionada.
QUITAR : Quita una funcin de la lista de funciones seleccionadas.
COPIAR : Copia la funcin seleccionada en el portapapeles.
INSERTAR : Inserta la funcin o funciones seleccionadas en la ventana
de declaraciones el formulario activo o del mdulo.
MUY IMPORTANTE
Estas funciones deben estar en el mdulo de la aplicacin. Para ello adicione
un mdulo antes de realizar los pasos indicados.
w
336
G rupo E ditorial Megabyte <
CAPTULO VIII: Manejo de Archivos
APAGAR LA COMPUTADORA AUTOMATICAMENTE
.........
Funcin ExitWindowsEx
Es una funcin API que permite apagar en forma automtica la computadora
a travs de una aplicacin. Su sintaxis es:
ExitWindowsEx (VALOR1 ,VALOR2)
El valor2 siempre es cero (0).
Los principales valores que puede tener Valor I son 1,2,5 y 6:
1 Apaga la computadora pero si tenemos un archivo sin grabar, pregunta
si deseamos grabarlo.
2 Reinicializa la computadora pero si tenemos un archivo sin grabar,
pregunta si deseamos grabarlo.
5 Apaga la computadora sin preguntar si deseamos grabar un archivo
que tenemos sin grabar.
6 Reinicializa la computadora sin preguntar si deseamos grabar un archivo
que tenemos sin grabar.
APLICACION DE EJEMPLO
i,. FUNCION API
MZi
REINICIALIZAR LA COMPUTADORA
APAGAR LA COMPUTADORA
Crear una nueva aplicacin y adicionarle un mdulo (Proyecto Agregar
Mdulo), luego inserte en dicho mdulo la funcin API ExitWindowsEx y
escriba en los botones de comandos las instrucciones correspondientes.
Botn Reinicializar la Computadora
Prvate Sub Commandl_Click()
Dim N As Integer
N = ExitWindowsEx(6, 0)
End Sub
Botn Apagar la Computadora
Prvate Sub Command2_Click()
Dim N As Integer
N = ExitWindowsEx(5, 0)
End Sub
NOTA:
Estas instrucciones se pueden u t i li z a r cuando el usuario no ingresa
correctamente el Password o Clave.
G rupo E ditorial Megabyte
f a VISUAL BASIC como debe ser.. .
CREAR DISCOS DE INSTALACION
Visual Basic crea de una manera muy fcil y rpida los discos de instalacin
de cualquier aplicacin que usted desarrolle con la finalidad que la aplicacin
la instale y ejecute en cualquier computadora sin necesidad que sta tenga
el Visual Basic.
Para crear los discos de instalacin grabe correctamente su aplicacin y salga
del Visual Basic, luego de su ventana de acceso elija: Herramientas de
Microsoft Visual Basic 6.0\Asistente para Empaquetado y Distribucin.
_ j j favoritos
l _ j documentos
Configuracin
^ fiuscar
& Ayuda
J 3 Ejecutar..
JTJ Internet txptorer *
Microsoft Ollice 2000 Profesional
j r j Microsoft OfficeTook
^ Microsoft Visual StudioSO Herramientas de MicrosoftVisual StudioS O
LJ Herramientas empresariales de Microsoft Visual SL.. - Microsoft Web Pubfcshing
_Tj PLATINUM WotkView fot Internet Explorer MicrosoftVisual SourceSafe
*J* Apagar el sistema.
|!"!?r V
- 3 Power 8 0
^ > .3 Servicios enlnea
> - i j Sybase
. T j The Hacker Antivirus
- i j WinZip
j j Explotador de Wndows
' i- Internet Explorer
MS-OOS
Outlook Express
Microsoft Visual Basic SO
Microsoft Visual FoxPro 6.0
Se visualiza la ventana de Asistente de
Empaquetado y Distribucin donde se
debe hacer Clic en el botn Examinar
para buscar y seleccionar el proyecto
al cual le va a crear los discos de insta
lacin.
El proceso de instalacin consiste en:
3
-J
M
OM'*
.-J
1. Empaquetar la aplicacin.
Para ello haga clic en el botn Empaquetar. Si no ha creado el ejecutable
( *.EXE) para la aplicacin se visualiza el siguiente mensaje:
Asistente de empaquetado y d is t r i b u c i n
f) \ Parapoder continuar, el Asistenterequiereel archivoejecutable'Horarios.EXE'
para esteproyecto. HagaclicenExaminar para buscar el archivoo enCompilar
para compilar el proyecto.
! Compilar | Cancelar
Haga click Compilar y siga las instrucciones del Asistente.
338 Grupo Editorial Megabyte^
CAPTULO VIII: Manejo de Archivos
En tipo de Empaquetado elija Paquete de Instalacin Estndar y en opcio
nes de Cab. Elij a Mltiples Archivos Cab.
, Ot> el t* ie paquete ** deseac*ear
- > 4
J !
A '

Jifa deempqRdo:
4 Amtente de empaquetado y Sstrfcuctn - Opciones de cab
parsel paquee. Si vaa i t u k suapicacinendwjjetes
be oea mltiplescbvw ,:ab y especftcsr untamaooe
Paiola cpqnapropad.
Opdonesde .cab
Ur nicoarchivo .cab
(* archvcs .cat<
lanario deardv/o .cab:
fTre 3
Ayjda { Cancefcr | <Antcror | Squgte > |
1. Distribuir la Aplicacin
Para ello, haga click en el botn Distribuir y siga las instrucciones del
Asistente.
En Mtodos de Distribucin Elija Disquetes y en Unidades de Disco
elija la unidad donde va a crear los discos de instalacin.
Asistente de empaquetado y distribucin - Mtodo de distribucin
; Eifa el tpe dedstrucinqjc deseareafc.
,
Mtodededstrouor :
Pufccacnen Web
Qwscipdf.:
a J f r b j unpaqueteer variosdjetes.
I J
Ayuda i Cancela- | < Aerer j r<giighte >j { |
jpAsiitente de empaquetado y distribucin Unidad de duquete
a?aunauneWdecsrueteer, labtadeabafe
Fcmatear antesecoear
Obelar j <Antero- iOjjjrte>|
Al finalizar, Visual Basic le pedir que inserte los discos de usar
como instaladores.
Asistente de empaquetado y distribucin
E l
1 J Inserte el disco 1 de 2 para iniciar la creacin de disquetes.
Acept a r j j Cancelar j
G rupo E ditorial Megabyte 339
v ta m VISUAL BASIC como debe ser.
CONTROLACTIVEMOVIE
<>
Permite ejecutar archivos de multimedia, como por ejemplo los archivo *.AVI
que son archivos que tienen videos grabados. Un ejemplo de archivo * .A VI
es el que usted visualiza cuando copia un archivo utilizando Windows:
m * n i
3 4
m m i
m
Sus principales propiedades son:
AUTOREWIND
Indica si despus de terminar el vdeo retrocede al inicio.
AUTOSTART
Indica si se visualiza automticamente el vdeo cuando le asignamos el
nombre del archivo.
FILENAME
Acepta la ruta y el nombre del archivo de vdeo que deseamos visualizar.
FULLSCREENMODE
Indica si el archivo debe ocupar toda la pantalla al ejecutarse.
PLAYCOUNT
Indica la cantidad de veces que se debe visualizar el archivo.
APLICACIN DE EJEMPLO:
La siguiente aplicacin permite seleccionar un vdeo y visualizarlos. Para
ello dibuje en un formulario en blanco; un control ActiveMovie, un botn de
comandos y con control CommonDialog. En el botn Seleccionar un archivo,
escriba lo siguiente:
% VISUALIZAR VIDEOS
H SELECCIONAR UNARCHIVO
Private Sub Commandl_Click()
CommonDialogl.Filter = Videos
(*.Avi)|*.avi|Todos (*.*)|*.*
CommonDialog 1.ShowOpen
Acti veMoviel .filename=CommonDialog 1.
Filename
End Sub
340
G rupo E ditorial Megabyte<
CREACION DE ARCHIVOS DE AYUDA
Lxisten bsicamente dos tipos de archivos de ayuda. Los archivos simples,
que slo muestran el texto de ayuda en una sola ventana y los archivos con
ventanas vinculadas que consisten en llamar a una ventana desde otra ventana.
i w. Si _" ____
...I ... '.....I':}'": .........
OPCIONES OK I. M I . N l PRINCIPA!. - i
I l'UODl'CTOS
CAPTULO VIII: Manejo de Archivos ^ 1
M >viMtf:r.r
im . - ( s s j - . k ti; t s I yj". a*
I . - , - i. il - y Vi i- v r - : - : .r.v.vitt ri-krt-: y
Mi ItlHKS
> 5 tpcifn.# <;= Mir r...v ,r.vm,jin t-i V
, I .i :.a i i.: i.u,- j .s . 21 ( r..2u'-t :
I l 11ITARIOS
W Miciosot Woid - TUTOR rtf
^ rchiv} cckin er Asertar Eproiao He/rnfeTtas tabla Ventana 1 - Iffl X|
: &y 4 ? 4 * ffl E
* 12 * H X g s 31 * 1=
OPCIONES DEL MENI PRINCIPAL
PR9PVT9S
MOVIMIENTOS
BEBBm
UTILIIASIoa
p|3 al I ____________________ I lT
G I Sfc. 1 1(5 fi :.9on i r . 6 Cd 12
Para el primer caso slo necesita crear un documento en Word con el texto que
clesea mostrar en la ayuda y guardarlo con un formato RTF (Archivo/Guardar Come >)
y luego compilar este documento con el programa Microsoft Help WorkSItop que
es un utilitario del Visual Basic que debe instalar en su computadora.
En segundo caso, debe realizar lo siguiente:
Las opciones que va a explicar y que van a llamar a las otras ventanas de
ayuda se deben de separar del resto del texto de ayuda por Salto de Pgina
Manual (Pulsando CONTROL + ENTER). Cada tema a explicar tambin
debe de estar en una pgina diferente.
OPCIONES DELMENUPRINCIPAL
PRODUCTOS
MOVIMIENTOS
REPORTES
UTILITARIOS
PRODUCTOS
Esta opcin permit nininitrar toda la infamacin de lo; productos que fe
ccttnercialmn en la empresa.
Permite por ejemplo, ingresar productos nuevos, linar proiictos por laboratorio,
cambiarprecios, etc.
MOVIMIENTOS
Esta opcii permite regiarar las carras que se realisan por cada producto,registrar
sus veitas, devoluciones, controlar y visualuar el stock inventariadoy valoreado, etc.
REPORTES
Provee de la opciones que brindan iifonmcion til y oportuna al usuario como por
ejemplo D producto ms vendido, el producto menos venduto, el total de ventas
diarias, semanales,mensuales, etc.
UTILITARIO
Brinda al usuario las herramientas mas Hitadas como por ejempb : Calculadora,
Configuraciones (Panel de Ccntrol), maitenimiento de usuarios, es decir, eliminarlos,
cambiar su clave, etc.
G rupo E ditorial Megabyte
m i
Para crear el vnculo entre la opcin elegida y el texto de ayuda a visualizar,
primero debe separarlas por cambio de pgina manual (CONTROL +
ENTER), como se muestra en la figura anterior, luego a cada tema de ayuda
debe insertar una nota al pie de pgina con un carcter y un nombre de
enlace para que pueda vincularse con las opciones de la primera pgina.
Por ejemplo:
ENLAZAR LA OPCIN PRODUCTOS CON EL TEMA PRODUCTOS
1. Ubicar el cursor inmediatamente despus del ttulo del tema (segunda
pgina) y elegir Insertar/Nota al Pie. Se muestra una ventana donde
debe escribir el smbolo #. Luego Aceptar. En la ventana que visualiza
escriba el nombre que va a tener tema para que se pueda vincular con
la opcin (Ira. pgina) y luego haga clic en cualquier parte del documento
para cerrar la ventana de Nota al Pie.
En el ejemplo el nombre es PRODUCTOS (Ud. puede poner el nombre que desea)
VISUAL BASIC como debe ser. . .
olas al pie y olas al linal
Insertar
< {iptaafpie
Nota al final
Final de pgina
Final del documento
Numeracin
.utoriumeracin 1, 2, 3, .
Marca personal: |*
producto)
Pag. 2 Sec. 1 2/5 A2Scn Ih Pg. 2 5, 1 Z|5 A25cm l
Haga el mismo procedimiento para el resto de temas de ayuda.
2. Inmediatamente despus de cada opcin de la primera pgina asgnele
el mismo nombre asignado a cada tema de Nota al Pie de Pgina (paso
anterior), luego asgneles el formato de doble subrayado, y slo al nombre
asignado a cada opcin, asgneles el formato oculto.
tW n jiwft twmata its YeQiana t - Ui,*!
aPHay- ,<*'>- & a s:
-rg n * . - h X s W S * S JE
: ~ 1-7 7 :
OPCIONES DEL MENTPRINC IPAL
REPQRXfiSRErOKTfS
I II I IIARK>SUTI Ll.TABIQS
______________ ]
f .g 1
Ayuda de Windows H B T dTxI
Archivo Edicin Marcador Opciones Ayuda
Contenido] , j | Imprimir |
OPCIONES DEL MENU PRINCIPAL
PRODUCTOS
MOVIMIENTOS
REPORTES
UTILITARIOS
NOTA:
El nombre de cada opcin usted lo elige, pero slo utilice letras y sin espacios blanco.
Despus de estos pasos, grabe el documento con formato RTF y complelo.
342
G rupo E ditorial Megabyte"
CAPITULO VIII: Manejo de Archivos
%
Verifique que tenga instalado en su computadora el utilitario Work Shop del
Visual Basic. Cuando usted activa este programa se visualiza la siguiente
ventana inicial. De la opcin File de esta ventana , elija New y luego Help
Project y pulse el botn OK. Visualizar una ventana de dilogo donde debe
escribir el nombre de su archivo de ayuda a crear. Despus de indicar el
nombre del archivo a crear, se visualiza una nueva ventana:
I ?, M ic r o t o f ! Help Workshop P i f i l E3 I
Tilo Yw J e * Tycrfs tJdp j
^1 1 l _ J i x J
Ready CAP NUM
<5, M icr o sof t H e l p W o i k s h o p - ( ho la hpi)
%gi Je Ycv* V/tkJow Tost Tyorfs Help
'g|q | > i _ J a r m
Help Fio: jhola hip
IOPTIONS1
LCI-0x80<s 0x0 0x0 Esporto! M*xc.sno)
FiCPORT Y#
Save and ConipJe I
Por ejemplo, en la siguiente ventana se ha adicionado un documento *.RTF
llamado TUTOR.RTF en un archivo de ayuda llamado
tambin TUTOR. HLP De esa ventana haga click en el botn 5ave and
Compile para grabar y compilar el archivo de ayuda. Si no ha cometido
ningn error se visualiza una pantalla similar a la siguiente:------
T* TUTOR.hpi
Help File: |TUT0R.hlp
LCID0x280a 0x0 0x0 ; Espaol (Per)
REPORT-Yes
Save and Compile I
*e fc yw ^Klaw J:' Tyo*
*i a i y iti
CreaU0 me b n i p Ute i u H W . M p . ~
Processing C:\JJVrUTOH.rtl
Hr.unh/iiiij keywords...
Addjni) bitmaps...
Topics
.lump
Keywords
Created C:\JJ\tUTOH.hlp. l . O l bylcs
Compile time: 0 minute. 0 seconds
0 notea. II wairriflgii
De esta manera se ha creado un archivo de ayuda el cual se puede llamar
desde c u a l q u i e r parte de nuestra a p l i c a c i n usando el a r c h i v o
WINHELP.EXE. Por ejemplo, la siguiente instruccin ejecuta el archivo de
ayuda llamado TUTOR.HLP que se encuentra en C:\JJ y archivo WINHELP
se encuentra en C:\WINDOWS.
Shell "C:\WIIWDOWS\WINHELP C:\JJ\TUTOR", 1
N O T A : Despus de ejecutar el archivo de ayuda, cambie el formato de Doble
Subrayado por Subrayado Simple a las opciones, luego vuelva a compilar y ejecutar
el archivo de ayuda para observar el nuevo comportamiento de este archivo.
G rupo E ditorial Megabyte
343
CAPITULO IX
viViiData
: Ventana Ayyda
Abrir baso de dato:,..
1C:\AfdNvos de pfogramaNDev5tudioWBHAGENDA.mdb
2CVArchivosde prograrnaSDevStudioWBMI rutto
3 CAAichivos deprogramaVDevStudioWB\B tbliomdb
FERNANDEZ'
FERREYROS
GRANADOS
INOAN
LIMO .
LINARES _ZJ
s
Situacin
< Regular
r 1/2 Beca
C Beca
C Otro
Pensin
fil 2 j
Fecha de Inscripcin
116/08/1999 -i-j
Otros
V Traslado
Observaciones
A mejorado notablemente en los
ltimos ties meses de estudio.
Nuevo
Modificar
Eliminar
Grabar
Cancelar
Salir
MANEJO
DE
BASE DE DATOS
I Ina BASE DE DATOS es un conjunto de informacin til organizada de
iiiki forma especfica referente a un tema o propsito concreto. Por ejemplo:
l.i informacin que se maneja en un Instituto, en una farmacia, etc. La
11111il inacin almacenada en una base de datos se organizada principalmente
mediante tablas.
TABLA
I la unidad bsica de almacenamiento de una base de datos y permite
tener la informacin organizada. Ejemplo:
I a base de datos Instituto se puede organizar en las tablas:
Alumnos, Pagos, Notas, Profesores, Cursos, etc.
t Ina tabla almacena los datos en registros (filas) y campos (columnas). Los
impos son los datos que deseamos almacenar en una tabla. Ejemplo de
una Tabla: ALUMNOS.
N 2 NOMBRE CICLO TURNO
01 Cdll idles ::,: M
'2 Karina Rioia
v _______
T
03 Liliana Alarcn V M
04 Jorqe Ros IV N
05 Tito Ramrez II T
REGISTRO DE DATOS
11ii registro contiene informacin que pertenece a cada entrada de la base
<lo datos. Ejemplo de un Registro
1 03 | Liliana Alarcn 1 V 1 M ~
CAMPO DE DATOS
l iii campo es una unidad de almacenamiento para guardar un elemento de
latos simple en un registro. Ejemplo:
NOMBRE____________
Carlos Morales
Karina Rio-ja___
Liliana Alarcn
Jorge Ros_____
Tito Ramrez
ESTRUCURA DE UNA TABLA
I i estructura de una tabla consiste en los campos que contiene, su tipo y
l<ilicitud de cada uno de ellos.
I I Tipo de Campo indica qu tipo de informacin se va a almacenar en cada
impo, por ejemplo: textos, nmeros, fechas, etc. La longitud se utilizan para
indicar cuntos caracteres se pueden ingresar como mximo en cada campo.
INti ejemplo el campo nombre de un alumno se define de tipo Texto y su longitud
I mi. <le ser 30 de caracteres. Algunos tipos de campos ya tienen una longitud definida.
G rupo E ditorial Megabyte 347
vi suaL BASIC como debe ser.. .
MUY IMPORTANTE
n un centro de estudios normalmente se indican las tablas estndares
o bsicas que deben ir en una base de datos porque la base de datos
casi siempre varan de una institucin a otra.
Si Ud., es estudiante es muy importante que se organice solo o con sus
compaeros de estudios para visitar a empresas o entrevistar a diferentes
profesionales para saber exactamente la informacin que manejan y as
disear correctamente las bases de datos y tablas.
Por ejemplo:
Para saber la informacin que maneja un colegio se debe hacer una entrevista
al director.
Para saber la informacin que maneja una distribuidora u otra empresa se
debe hacer una entrevista a su administrador o persona responsable.
Para saber los campos que se deben i nclu ir en una tabla pacientes es mejor
hacer una entrevistas a una enfermera o mdico.
Para saber los campos que se deben i nclu ir en una tabla medicamentos es
mejor hacer una entrevista a un Qumico Farmacutico, etc.
En las entrevistas slo se debe investigar los campos porque el tipo de cada
campo y su longitud lo debe hacer Ud., de acuerdo a su experiencia y a los
tipos de campos que conoce.
EL EXITO DEL SISTEMA QUE DESARROLLES DEPENDE
DEL DISEO CORRECTO DE LA BASE DE DATOS
CREACIN DE UNA BASE DE DATOS
Visual Basic puede manejar base de datos de diferentes formatos como
Foxpro, Excel, etc. Si desea crear base de datos del mismo formato de
Visual Basic lo puede hacer usando el mismo Visual Basic o el Access
porque tienen el mismo formato ( * . M D B ) :
pHpl> 348 G rupo E ditorial Megabyte f i l i l i
CAPITULO IX: Manejo de Base de Datos %
CREAR BASE DE DATOS USANDO VISUAL BASIC
De la opcin Add-Ins (Complementos) de la Barra de Men, elija Visual
Data Manager (Administrador Visual de Datos). Observar la siguiente
pantalla:
Aiehivo i Ventana Ayuda
S p i B j [ i f j g l l l J - I ~
De la opcin FILE (Archivo) de la pantalla anterior elija NEW (Nueva),
luego MICROSOFT ACCESS y al final VERSION 7.0 BMD.
Ve nt an a A y y d a
I M'cosoN Ace * I MDB Versin -O...
MDB Veisirt 2 0... |
imp ac io de trabajo, .
f- rrQes .
EoxPo *
Paradox
QDBC
Ar chivo s d * texto
Compactar M D B .
Fkparar HDD..
I C . S A r chiv o s d & piogramaSD ev S t u dioW B SAG E ND A. hidb
j j C. Si chiv o s de proamaSD vS tdiSVB MI. mdb
3 CAAichivos d e p t o g ia m ^ S D e v S t u d o S V B i h h o mdb
Jjalir
Usto Usuario: admln
Le pedir el nombre de la base de datos que desea crear. Escriba el nombre
de la base de datos a crear y luego haga click en GUARDAR.
l i l i l * G rupo E ditorial Megabyte
349
H
% VISUAL BASIC como debe ser.. .
Despus de ingresar el nombre de la base de datos que desea crear se
visualiza la pantalla siguiente, (en el ejemplo la Base de datos de llama
Agenda).
Archivo Utilidad Ventana Ayyda
<3*1 1 1
MU
Borrar J ________guardar________I
j
* * "i* \
_ _ _ _ _ _ _
Usuario: admin
En la ventana Properties, haga click con el botn derecho y elija la opcin
New Table (nueva tabla), se visualiza la pantalla:
Esliuctura de la tabla
fjombre de la tabla:
li " i , j ' r ; V -
y s t a de campos: Nombre:
Tipo: r .
Tamao: r
Orden: r
1 Permitir longitud cero
Posicin:
I Necesario
Texto de validacin: 1
Regla de validacin: 1
Agregar campo | Eljminar campo 1Valor predeterminado: I
Lista de ndices:
Agregar ndice
r
Campos: |
Cerrar
Escriba el nombre de la tabla (Table ame) que desea crear dentro de la
base de datos y para empezar a ingresar los campos haga click en Add
Field (Agregar Campo), se visualiza la pantalla siguiente:
G rupo E ditorial Megabyte ,|l>f|| 350
Por cada campo definido haga cl ick en el botn Ok (Aceptar) y al f i n a l i
zar liaga click en el botn Cise (Cerrar) para cerrar la ventana. Puede
configurar a cada campo para que Visual Basic permita o no aceptar
campos con longitud cero, es decir que se ingresen valores o no en el
campo al adicionar registros.
M U Y I M P O R T A N T E
Despus de hacer click en el botn Cise debe tambin de hacer click
' n el botn BUILD T H E TAB LE (Generar la Tabla) para que la tabla
t/uede construida.
I Ina vez construida la tabla, haga cl i c k con el botn derecho en el nombre
ilc la labia construida y elija la opcin OPEN (Ab rir ) para ingresar o dar
m.mtenimiento a los registros. La pantalla que visualiza depende de los bo
iones de la barra Estndar (Debajo del Men) que tenga activados.
I I I er. Botn abre la tabla como Recordset tipo Tabla.
I I 2do. Botn abre la tabla como Recordset tipo Dynaset.
I I 3er. Botn abre la tabla como Recordset tipo Snapshot.
OH, 11' IX) RECORDSET DE TIPO HOJADE REPUESTADINAMICA
I ii objeto Recordset de tipo hoja de respuestas dinmica es una variedad
11> i ib jeto Recordset que puede utilizarse para manipular datos de una o ms
i ililas subyacentes. El objeto consiste en un conjunto dinmico de registros
iiiic puede contener campos 7de una o ms tablas o consultas de una base
di' datos y que puede ser actualizable.
<m i l l O RECORDSET DE TIPO DE RESPUESTA INSTANTANEA
I ii i ibjeto Recordset de tipo instantnea es un conjunto esttico de registros
|in* puede utilizar para examinar datos de una o ms tablas subyacentes.
I ii objeto Recordset de tipo instantnea puede contener campos de una o
m i . labias de una base de datos, pero no puede actualizarse.
<MtJKTO RECORDSET T I P O T A B L A
l ii objeto Recordset de tipo tabla es una representacin en el cdigo de una
i ilila base que puede utilizarse para agregar, modificar o eliminar registros
<l< una labia. En la memoria slo se carga el registro actual en cada momento.
I .u.i determinar el orden de los registros del objeto Recordset se utiliza un
imlii c predefinido.
Grupo Editorial Megabyte 351
yam
l> VISUAL BASIC como debe ser. fl
Por ejemplo al activar (haciendo
Click) el 1er. botn (Recordset tipo
Tabla) y el 5to., botn se muestra
la siguiente pantalla.
I m Tabla AMIGOS _ | 0| x |
Agregar | Editar | Eliminar | Buscar J Filtrar Cerrar
ndice: |
3
Nombredel campo: Valor (F4=Zoom)
NOMBRE: |
DIRECCION:
DISTRITO: !
TELEFONO:
EDAD: 1
k 1 < |CBOF)/'l ' > 1 >i
AGREGAR (ADD)
Permite ingresar registros a la tabla. Debe hacer click en esta opcin por
cada registro que desea adicionar.
A l ingresar un registro se visualizan dos opciones UPDATE, que permite
grabar el registro y CANCEL, que permite cancelar la adicin del nuevo
registro.
EDITAR (EDIT)
Permite modificar los datos de un registro.
ELIMINAR (DELETE)
Permite eliminar el registro actual. Se visualiza el mensaje: DELETE
CURRENT RECORD?. Responda SI o NO.
BUSCAR (SEEK)
Permite buscar un determinado registro
mediante un campo por el cual la tabla
debe estar indexada. Se visualiza la pan
talla:
KSParmetros do Seek
Operador :
<- [..] r~ > - r- <~ > r- <
*alor:
r _
Aceptar i Cancelar ;
1
Para indexar una tabla, haga click con el botn derecho en el nombre de la
tabla y elija la opcin Desing (Disear). De esta manera Ud puede modif i
car la estructura de la tabla e indexarla.
Para indexar haga click en el botn ADD INDEX (Agregar Indice), se
visualiza la pantalla siguiente, escriba el nombre del indexado y seleccione el
campo o campos que desea usar en el indexado.
O-arhpoS India-sido'
r.. iTt T h n i
IC Primai io
$ 7 n i c o
r * ' I o r imi ai n u los
CAPTULO IX: Manejo de Base de Datos
I ILTRAR (FILTER)
Permite f i l t r a r (seleccionar) registros de la tabla.
CERRAR (CLOSE)
Permite cerrar la ventana.
A l activar el 2do. bo
ln (Recordset tipo
Dynaset) y el 4to.,
botn se muestra la
siguiente pantalla:
DynasetiAMIGOS
Agregar Actualizar Eliminar
r r n n
Campo I Renovar [[.Cerrar
Nombre del campo: Valor:
NOMBRE: |
DIRECCION: |
DISTRITO: |
TELEFONO: |
EDAD: I
i < N l m
TTl
i'-l botn Agregar permite ingresar un nuevo registro y el botn Actualizar,
graba el nuevo registro. Cada vez que hace click en el botn Agregar, ste
se convierte en Cancelar
Al activar el 2do. botn (Recordset tipo Dynaset) y el 6to botn se mues
tra la siguiente pantalla:
H! DynaseLAMIGOS
Actualizar Ordenar
*
Los botones
permiten Gra
bar, Ordenar,
Seleccionar re
gistros y cerrar
la ventana.
filtrar
NOMBRE IDIRECCION
Ceirai
[DISTRITO ITELEFONO EDAD
| H H i Haga clic con el botn secundario del mouse para ver las propiedades del control Dat. H E
BARRA DE DESPLAZAMIENTO
h R | i / i VWi
lista barra permite desplazarnos por los registros adicionados para
visualizarlos o editarlos. Tambin indica el registro actual y la cantidad de
registros que tenemos.
G rupo E ditorial Megabyte
VISUAL BASIC como debe ser.
CREAR BASE DE DATOS USANDO MICROSOFT ACCESS
Haga click en el botn INICIO del Windows y luego en Programas, luego
busque y haga cli ck el archivo Microsoft Access que normalmente se en
cuentra en la carpeta Microsoft Office.
4 Microsoft Access
A l ingresar al Access se visualiza la siguiente ventana:
Microsoft Access
Crear una nueva base de datos usando
Base de datos en blanco
Asistente para bases de datos
brir una base de datos existente!
Ms archivos...
C:\ARCHIV~l\DEV5TU~l\VB\5YSTEM\Compra y Venta
CREDITOS
C ARCHIV-1\DEVSTU~ 1\VB\GOHAN
Aceptar Cancelar
ESTA VENTANA TIENE 3 OPCIONES:
1. BASE DE DATOS EN B L A N C O .
PERMITE CREAR UNA NUEVA BASE DE DATOS.
2. A S ISTE NTE PARA BASE DE DATOS.
PERMITE CREAR UNA NUEVA BASE DE DATOS USANDO UN
ASISTENTE ( A Y U D A)
3. A B R I R BASE DE DATOS E X I S T E N T E .
PERMITE A B R IR O V I S U A L I Z A R U N A BASE DE DATOS YA
CREADA.
Entonces haga click en el primer botn de opcin para crear una nueva base
de datos y luego haga click en el botn aceptar.
NOTA:
si se encuentra en el men principal del Access haga click en la op
cin archivo y luego en la opcin nueva base de datos.
354 Grupo Editorial Megabvte
> CAPITULO IX: Manejo de Base de Datos
Luego se visualiza la siguiente pantalla:
m i
Archivo nueva base de datos
Guardar en: | _J Misdocumentos
Vjadrrun.rridb
yalumnos.mdb
yBASEBIBLIO.nidb
yBDALUMNOS.mdb
ybdentdmdb
06CH.IBROS.mdb
Q BIBU0TECA.mdb
yCREDIT0S.mdb
DB5ISTEDU.mdb
^edwin.mdb
INFORME.mdb
ywjPP.mdb
yproductos.mdb
yTAREA.mdb
Crear
Cancelar
^ control decrditosy cobranzaseducativas.mdb ventas.mdb
Nombredearchivo: ]
Guardar comotpo: |BasesdedatosdeMicrosoft Access(*.mdb) j * ]
En esta pantalla seleccione la carpeta donde desea crear la nueva base de
datos (opcional). La carpeta predeterminada es M I S DOCUMENTOS y
escriba el nombre de la nueva base de datos luego haga click en el botn
crear. Se visualizar la siguiente ventana: (en el ejemplo la base de datos se
llama AGENDA).
AGENDA: Basededatos
Esta pantalla tiene 6 hojas o fichas. Haga click en la hoja TABLAS y luego
en el botn NUEVO para crear cada tabla de la base de datos.
G rupo E ditorial Megabyte 355
VISUAL BASIC como debe ser.
Se visualiza la siguiente ventana.
Nueva tabla
Crear una nueva tabla en vista
Hoja de datos.
Vista Diseo
Asistente para tablas
Importar tabla
[Vincular tabla
Aceptar Cancelar
De esta ventana e li j a V I S T A DE DISEO y haga c l i c k en el botn
ACEPTAR para empezar a escribir la estructura de la tabla.
Tabla! : Tabla
Nombre del campo I Tipo de datos 1Descripcin]
E
Propiedades del campo
General j Bsqueda |
j d
Tablai : Tabla i - ~ l x
Nombre del campo I Tipo de datos
tos j Descripcin |j
Propiedades del campo
General JBsqueda |
Tamao del campo
Formato
Mscara de entrada
Ttulo
Valor predeterminado
Regla de validacin
Texto de validacin
Requerido
Permitir longitud cero
Indexado
No
No
No
En la columna N O M B R E D E L CAMPO escriba el nombre de cada campo
que desea crear dentro de la tabla.
En la columna TIPO D E DATOS indique el tipo, tamao y otras caracterstica
de cada campo.
En la columna D E S C R I P C I O N puede escribir en forma opcional un texto
que permita dar una explicacin acerca de cada campo.
CAPTULO IX: Manejo de Base de Datos
Cuando termine de escribir toda la estructura de la tabla haga un click en hi
figura del disco o pulse CTRL+G para grabar la estructura.
Una vez ingresado el nombre de la tabla se visualiza la siguiente ventana:
CE3
No hay ninguna clave principal definida.
Aunque no es necesaria una clave principal, es recomendable que
exista. Una tabla debe tener una clave principal para que pueda
definir una relacin entre esta tabla y otras tablas de la base de datos.
Desea crear una clave principal?
Microsoft Access
S No Cancelar
Si Ud., desea haga click en el botn SI para que la tabla tenga un campo
clave. Estos campos se emplean ms adelante.
Una vez que grab la tabla cierre la ventana para regresar a la ventana
inicial donde debe hacer click en el botn A B R I R para ingresar los registros
o en el botn DISEO para modificar la estructura de la tabla.
MUY BIEN
Una vez ingresado los registros, grbelos y cierre el Access. De esta
manera la base de datos ya est lista para manejarla con Visual Basic.
Una vez creada la base de datos usando Visual Basic o Microsoft Access
con sus re s p e c tiv a s tablas Ud. p u e d e m a n e j a r la i nformacin en
cualquier formulario.
Cuando necesite cambiar la estructura de la tabla se recomienda utilizar
el M i c r o s o f t A c c e s s ( opcin D i s e o ), po r qu e p e r m i t e h a c e r estas
modificaciones una manera ms f c i l . Antes de ello debe cerrar la
aplicacin donde este utilizando dicha tabla.
Las tablas creadas en Visual Basic y Microsoft Access con compatibles,
por lo tanto si la cre en Access la puede llamar desde Visual Basic y
viceversa.
f l l f l j f t ^ G rupo E ditorial Megabyte 357
lllifl VISUAL BASIC como debe ser.. .
CONTROL DATA:
El control Data permite manejar los registros de una o ms tablas en un formu
lario. Ud. puede acceder a los registros para actualizarlos, imprimirlos, etc.
El control Data nos ayuda a crear de una forma muy sencilla aplicaciones
para poder acceder y administrar bases de datos sin escribir casi ninguna
instruccin. Cuando se manejan bases de datos se utiliza siempre el objeto
Recordset.
OBJETO RECORDSET
Un objeto Recordset representa registros de una tabla. Estn formados por
registros (filas) y campos (columnas).
Existen tres tipos de objetos Recordset:
Marcador no definido.Objeto Recordset de tipo hoja de repuesta Dinmica
Objeto Recordset de tipo de respuesta Instantnea
Objeto Recordset tipo Tabla
P R I N C I P A L E S PROPIEDADES D E L C O N T R O L DATA:
A M E
Permite asignarle un nombre. Por defecto el nombre es Datal, Data2, Data3
etc. Segn el nmero de controles que se dibujen en el formulario.
B O F A C T I O N
Permite indicar la accin que se debe realizar cuando se encuentre al inicio
de la tabla. La accin puede ser:
0 MOVE FIRST : se ubica en el primer registro.
1 BOF : se ubica antes del primer registro.
C A P T I O N
Para indicar el texto a visualizar en el control Data.
C O N N E C T
Para indicar el tipo de base de datos que se desea manejar. Por defecto es
A r r F s s
D A T A B A S E N A M E
Para indicar el nombre de la base de datos a manejar.
E N A B L E D
Para indicar si el control Data debe estar activo o no.
E O F A C T I O N
Permite indicar la accin que se debe realizar cuando se encuentre al final
de la tabla. La accin puede ser:
0 MOVE LAST : se ubica despus del ltimo registro.
1 EOF : se ubica en el ltimo registro.
2 AD D NEW : adiciona un nuevo registro.
CAPTULO IX: Manejo de Base de Datos
EX C L U S I V E
Permite indicar si la base de datos puede trabajar en un sistema multiusuario
(Red). El valor False indica que el sistema es de tipo multiusuario, es decir
los registros pueden ser accedidos por varios usuarios al mismo tiempo y el
valor True indica que es de tipo personal.
K E A D O N L Y
Permite indicar si la base de datos es de slo lectura. Si es de slo lectura las
modificaciones que se le haga a un registro no son reconocidas o grabadas.
KE C OR DS OU RC E
Permite indicar el nombre de la tabla que se desea manejar.
V I S I B L E
Para indicar si el control se debe visualizar.
APLICACIN DESARROLLADA N 48
Siguiendo los pasos mencionados al inicio de este captulo, crear una base
de datos llamada AGENDA que tenga una tabla llamada AMIGOS y adi
cione algunos registros.
I .a tabla debe tener la siguiente estructura:
C A M P O
T I P O T /
Nombre
Texto
25
Direccin
Texto
20
Distrito
Texto 20
Telfono Texto
10
Fecnac
Fecha/Hora
Sexo
Texto 1
Peso
Sencillo
I I lormulario debe funcionar de la siguiente manera:
Su A C C E S O A U N A B A S E D E D A T O S
Nombre
TITO RAMIREZ
Direccin
EL DORADO 456
Distrito
|j.L.O.

T elfono
(236975
Fecha de Nac.
107/1V I 970
Sexo
| m
Peso
|S7
W )
Datai 1 1 SALIR 1
I .os botones del control Data permiten ir al registro Primero, Anterior, Siguiente
y ltimo.
G rupo E ditorial Megabyte 359
DESARROLLO
El formulario debe tener 07 Etiquetas, 07 Cajas de Texto, un control Data y
un botn de Comandos.
U n i x ]
Labell | T e*t1
Label2 Text2
Label3 |Text3
LabeW |Text4
Label5 |Text5
LabelG |Tex(G
Label7 | Tex(7
| H | ^ | Pa>a1 | ! | Commandl |
VISUAL BASIC como debe ser.. .
lro . A l control Data se le debe asignar 02 propiedades:
PROPIEDAD DATABASENAME, donde se selecciona el nombre de
la base de datos con la que desea trabajar. En la aplicacin a desarrollar la
base de datos se llama AGENDA.
A
Haga click en los tres puntos que se muestran en esta propiedad para acti
var la ventana y seleccionar la base de datos.
La ventana que se visualiza es la siguiente:
Buscaren: | _>l Vb ~ T ] f i n | gj<-| j i 3 : f f | f |
J Clisvr ; _ J Repostry __| vbonline
I Graphics ___ I samples __J Winapi
I Help I Setup _JWizards
I Nueva carpeta _ J setupkit *^1 AG EN DA
1Odbc | T empiate Biblio
I report T sql Nwind
Nombre de archivo: | | Abrir
Archivos de tipo: fBases de datos ( mdb) ]] Cancelar j
Ayuda j
Es recomendable seleccionar el nombre de la base de datos, porque s Ud.
lo escribe debe indicar tambin con mucho cuidado la ruta exacta donde
est ubicada.
Si* Formi
CAPTULO IX: Manejo de Base de Datos
NOIA:
< nando crea una base de datos en Visual Basic, sta se graba en forma
I'(determina la carpeta:
C:\Archivos de Programa\DevStudio\VB
uando crea una base de datos en Access, sta se graba en forma prede-
i. i mina la carpeta: C:\Mis Documentos. Si no recuerda en qu carpeta se
i ab la base de datos, bsquela haciendo click en: Botn Inicio, Buscar;
1/ chivos o carpetas.
PROPIEDAD RECORDSOURCE, donde se selecciona el nombre de la
labia que contiene los registros. En nuestro ejemplo la tabla se llama Amigos.
RecordSource
J d
I I nombre de la tabla debe salir en forma automtica cuando haga click en
la Hecha hacia debajo de esta propiedad.
MUY IMPORTANTE
Si no se muestra el nombre de la tabla o tablas, significa que no grab la
labia dentro de la base de datos o no a asignado primero la propiedad
I )A IABASENAME. En este ltimo caso se muestra el siguiente mensaje
de error:
Microsoft Visual Basic
O
Para llevar a cabo esta operacin, debe rellenar las propiedades DatabaseNarne y
Connect del control Data.
Aceptar Ayuda
2do. A cada caja de texto se le debe asignar 02 propiedades:
DATASOURCE, donde se selecciona el nombre del control Data que se
est usando. En forma predeterminada es DATA1.
DATAFIELD, donde se selecciona el campo que desea visualizar en
cada caja de texto.
CONTROL DATASOURCE DATAFIELD
Textl Datai Nombre
Text2 Datai Direccin
Text3 Datai Distrito
Text4 Datai Telfono
Text5 Datai Fecnac
Text Datai Sexo
Text7 Datai Peso
I 11botn Salir debe tener la instruccin END.
G r u p o E d i t o r i a l Megabyte
361
^ VISUAL BASIC como debe ser... , 'v a i
APLICACION DESARROLLADA N 49
Desarrollar la aplicacin anterior usando botones de comandos.
Reg N 1 0 0 3
N o m b r e | L I L I A N A A L A R C O N
D i r e c c i n j M A R I A I Z A G A
D i s t r i t o JcHI C L A V O
T e l f o n o | 2 2 7 1 9 1
F e c h a d e N a c . J 20/ I 0 / 1 9 7 0
S e x o Jp
P e s o f 5 3
I r a l R e g i s t r o :
S i g u i e n t e f i n t e r i o r | U l t i m o | J g r i m e r o | a l i r
1.- DIBUJAR LOS CONTROLES.
Dibuje los controles como se muestran en la aplicacin.
2.- ASIGNAR LAS PROPIEDADES.
Las cajas de texto y el control Data deben tener las mismas propiedades de
la aplicacin anterior.
Label7 debe tener en su propiedad Caption: Reg. N.
LabelS debe tener en su propiedad Caption: 0001.
El control data debe tener en su propiedad visible el valor False para que no
se visualice.
NOTA:
Cuando el usuario visualiza los registros en las cajas de texto puede
tambin modificarlos los datos, p a r a evitarlo, asigne a las cajas de
texto el valor TRUE en su propiedad LOCKED.
3.- PROGRAMACIN DE LOS CONTROLES.
Se utilizan los siguientes mtodos:
MOVEFIRST : Muestra el primer registros.
MO V E N E X T : Muestra el siguiente registro.
M O V E L A S T : Muestra el ltimo registro.
MOVEPREVIOUS : Muestra el registro anterior.
Y las siguientes propiedades:
EOF : Indica si estamos al final de la tabla.
BOF : Indica si estamos al inicio de la tabla.
RECORDCOUNT : Cuenta la cantidad de registros.
La sintaxis de cada uno es:
Control_Data.Recordset.Mtodo
Ejemplo, para i r al ltimo registro de la tabla que est ligada al control DATA 1
se escribe: Datal.Recordset.Movelas t
362 - G rupo E ditorial Megabyte^
K
CAPTULO IX: Manejo de Base de Datos % m
Union P R I M E R O :
I'rivale Sub Command4_Click()
I )ata I .Recordset. Move First
( ommandl. Enabled = True
( ommand3. Enabled = True
( <nnmand2. Enabled = False
Command4.Enabled = False
NR = /
l.abelS =Format$(NR, 0000")
I nd Sub
Botn LTIMO:
Private Sub Command3_Click()
Data 1.Recordset.Mo veLast
Command I.Enabled = False
Command3. Enabled = False
Command2. Enabled = True
Command4. Enabled = True
NR = Datal. Recordset. RecordCount
Label8 = Format$(NR, 0000")
End Sub
Instrucciones del botn SIGUIENTE:
Private Sub Command 1 _Click()
D atal .Recordset. Move Next
I f Data 1. Recordset. EOF Then
MsgBox Ultimo registro, 16, Lo sie nto
Commandl.Enabled = False
Command^. Enabled = False
Datal.Recordset. MovePrevious
Else
Commandl .Enabled = True
Commands.Enabled = True
Command2. Enabled True
Command4.Enabled = True
NR = Val(Label8) + 1
Label8 = Format$(NR, 0 0 0 0 )
End I f
l.nd Sub
Instrucciones del botn ANTERIOR:
Private Sub Command2_Click()
D a ta l. Recordset. Move Previous
I f Datal.Recordset.BOF Then
MsgBox Primer registro, 16, Lo s iento
Commandl.Enabled - False
Command4. Enabled = False
Data 1. Recordset. MoveNext
Else
Commandl .Enabled = True
Command3. Enabled = True
NR = Val(Label8) - 1
Label8 = Format$(NR, 0 0 0 0 )
End I f
End Sub
El botn S A L I R debe tener la instruccin END.
G rupo E ditorial Megabyte
363
3 k > VISUAL BASIC como debe ser.. .
CONTROL DBLIST
El control Dblist permite mostrar el contenido de un campo de los registros
de una tabla. En la lista de componentes, este control se llama:
Microsoft Data Bound List Control.
PRINCIPALES PROPIEDADES DEL CONTROL DBLIST:
LISTFIELD
Permite indicar el campo cuyo contenido se debe visualizar en el control.
Primero se debe indicar en la propiedad RowSource el nombre del control
Data que est ligado la tabla donde se encuentra el campo.
MATCHENTRY
Selecciona la forma de acceder a los elementos la lista.
0. DBLBASICMATCHING :
Selecciona a un elemento por el primer carcter que se digiten.
1. DBLEXTENDEDMATCHING :
Selecciona a un elemento por los primeros caracteres que se digiten.
ROWSOURCE
Permite indicar el nombre del control data que est ligado a la tabla con la
que queremos trabajar con el control Dblist. Esta propiedad se debe asignar
antes de LISTFIELD.
CONSULTA DE REGISTROS
Existen dos formas bsicas de consultar registros de una tabla.
1. Ingresando el campo clave del registro que desea consultar. Por ejemplo
el cdigo, nombre o cualquier dato que puede identificar a un solo registro
dentro de la tabla.
2. Seleccionando el campo del registro a consultar desde un control DBlist
o desde un control DBcombo.
MUY IMPORTANTE
Cuando en la estructura de una tabla, Ud., ha creado un
campo cuyo nombre est compuesto con espacios en
blanco o caracteres especiales como por ejemplo el
guin(-), el signo nmero (s), etc., entonces, cada vez que
; se refiera a ellos dentro de un programa, los debe colocar
dentro de corchetes ([ ]). Por ejemplo:
[FECHA DE INGRESO]
[APELLIDO-PATERNO]
[eRECIBO]
CAPITULO IX: Manejo de Base de Datos
A PLICACIN DESARROLLADA N 50
- talxi
Doto* Personales :
| MAN U E L C A R BA J A L N o m b r o
D i r e c c i n
D isJr ito
T e l f o n o
F e c h a d e N a c
S e x o
P o s o
| S A L A V E R R Y 987
| C H I CLAVO
120 9 8 7 5
11 8 / 06/1 960
M
70
| M i | P - at al
ASIGNAR LAS PROPIEDADES.
I a caja de texto N 1 (donde se ingresa el nombre a consultar) NO debe
Icner ninguna propiedad. Las cajas de texto desde la N2 hasta la N8 y el
control Data deben tener las mismas propiedades de la aplicacin anterior.
I '.! control Dblist 1 debe tener en su propiedad ROWSOURCE el valor Dat al,
i*n su propiedad LISTFIELD debe seleccionar el campo Nombre y en la
propiedad MATCHENTRY el valor N1 -DBLEXTENDEDMATHING para
poder seleccionar un registro digitando sus primeros caracteres.
NOTA
Para que los nombres se visualicen ordenados cree un ndice para el campo nombre.
MTODOS UTILIZADOS:
FINDFIRST:
Husca el primer registro de la tabla que cumpla la condicin. Su sintaxis es:
<ontrol Data. Recordset. Fin d fir st Condicin.
Se recomienda que la condicin se almacena en una variable.
Por ejemplo se tiene una tabla con el campo NOMCL I y se desea buscar el
u-gistro cuyo nombre es: JULIO DELGADO.
I as instrucciones serp:
C = " N O M C L I = JULIO DELGADO "
D at al.Recordset.Findfirst C
Si el nombre se encuentra por ejemplo en Text l, las instrucciones sern:
C= " N O M C L I = " + Textl +
Datal .Recordset.Findfirst C
NOTA:
t os apostrofes slo se utilizan para buscar campos de tipo Texto y entre ellas y las
i lunillas NO debe dejar espacios en blanco.
Si el registro es encontrado, sus datos son mostrados automticamente en las cajas
le texto o etiquetas que se les a asignado la propiedad Datasource y Datafield.
G rupo E ditorial Megabyte 365
NOMATCH:
Se utiliza para preguntar si un registro fue encontrado. Devuelve el valor
Falso si el registro fue encontrado y Verdadero en caso contrario.
Sintaxis para preguntar si el registro fue encontrado:
I f Not Control Data. Recordset.Nomatch then
Sintaxis para preguntar si el regist. no fue encontrado:
I f Control Data.Recordset.Nomatch then
Ejemplo:
Dim R As String
R = NOMCLI = + Textl +
Data 1.Recordset.FindFirst R
I f D a t a l .Recordset.NoMatch Then
MsgBox "EL NOMBRE NO EXISTE", 1 6 , Lo s iento"
E n d i f
P R O G R A M A C I N DE LOS C O N T R O L E S
Instrucciones del botn O K .
Private Sub Command 1 _Click()
Dim R As String
I f Trim( Textl) = Then
MsgBox DEBEINGRESARELNOMBREA CONSULTAR,48, "LOSIENTO"
Textl =
Textl. Set Focus
Else
R = NOMBRE = * + Textl +
D atal . Recordset. FindFirst R
I f D a ta l .Recordset.NoMatch Then
MsgBox EL NOMBRE INGRESADO NO EXISTE",16, "Ingrese el
nombre exacto a consultar
Else
Textl =
Textl. SetFocus
End I f
End I f
End Sub
Instrucciones del D b l i s t l para que al elegir un registro se visualicen todos
sus datos.
Private Sub D BLis tl _Click()
Dim R As String
R = NOMBRE = + D B L i s t l . Text +
Data I .Recordset. FindFirst R
End Sub
El botn SALIR debe tener la instruccin END.
| fllllll> VISUAL BASIC como debe ser.. . CAPTULO IX: Manejo de Base de Datos
MANTENIMIENTO DE REGISTROS
I I mantenimiento de registros consiste en realizar programas para: Ad i cio
nar, Modificar y Eliminar registros.
Mtodos Utilizados:
ADDNEW: Permite adicionar un registro a una tabla.
I I ) I T : Permite modificar los datos de un registro de una tabla.
M L L E T E : Permite eliminar el registro actual de una tabla.
< AN C EL UPDATE: Permite cancelar las modificaciones realizadas a un
icgistro o la ejecucin de ADDNEW mientras el registro no este grabado.
I a sintaxis de estos mtodos es:
Control_Data.Recordset.Nombre_Mtodo
APLICACIN DESARROLLADA N 51
MANTENIMIENTO DE RESGISTROS
Amigos
CARINA RIOJA j
CARLOS MORALE
DANIEL ALARCO
IMANUEL CARBAJJ
Nombre
Direccin
Distrito
Telfono
Fecha de Nac. 115/10/1966
Sexo
Peso [S8
|WIRACHORA315
ILA VICTORIA
I232689 .......
MC
Da tos Pe rson ales :
IDANIEL ALARCON
Cancelar
Opcion es de M a n t enimie nto
Adicionar Modificar Cerrar
M M Datai H
l 'ste programa per mite dar m a n ten i mie nto a los registros de una
labia, como por ejemplo, consultarlos, m od if ic a r sus datos, eliminarlos
y a dic i on ar nuevos regist ros.
MUY IMPORTANTE
i slos son los programas bsicos para manejar registros, por lo tanto es muy
importante que Ud., los practique varias veces con diferentes tablas.
m G r u p o E d i t o r i a l Megabyte
1. Dibujar los controles.
I I x |
VISUAL BASIC como debe ser. . .
............................................ F r a m e l
L a b e l 2 | T e n t 1
!*". Labo13 [Tr-TT
' - L a b e l 4 | T e x t 3
isll
L a b e l 5 | T e x t 4
L a b e l G j T e x t S
L a b e l 7 f f e x 6
: : : : : : : : : : : : L a b e l s j T e x t 7
F r a m e 2 ....................... ........................
C o m m a n d 3 I C o m m a n d 4 | C o m m a n d 5 | C o m m a n d 6 j
: : : : : : : : 1n| ^ ]Da>ai 1m| :
NOTA:
Dibuje primero los Frame y encima los botones de comandos.
2. Asignar las propiedades.
CONTROL DATA
CONTROL DATABASENAME
RECORDSOURCE
Datal Agenda Amigos
CAJAS DE TEXTO
CONTROL DATASOURCE DATAFIELD
Textl Datal Nombre
Text2 Datal Direccin
Text3 Datal Distrito
Text4 Datal Telefono
Text5 Datal Fecnac
Text6 Datal Sexo
Text7 Datal Peso
DBLIST
CONTROL ROWSOURCE LISTFIELD
Dblistl Datal Nombre
A los botones de comandos y frames, asgneles su propiedad Caption, como
se muestra en la aplicacin a desarrollar.
I || || ^ 3 6 8 G r u p o E d i t o r i a l M e g a b y t e <^ ^ ^
C o m m a n d l
C o m m a n d 2
a Fornii
Escribir las instrucciones de los controles.
Crear dos procedimientos (Activar y Desactivar) y escribir las siguien-
CAPTULO IX: Manejo de Base de Datos ^
tes instrucciones:
SubACTIVAR()
Framel.Enabled = True
Frame2. Enabled = False
DBListl. Enabled = False
End Sub
Botn ADICIONAR
Private Sub Command3_Click()
ACTIVAR
Data 1.Recordset. AddNew
Textl.SetFocus
End Sub
Botn MODIFICAR
Private Sub Command4_Click()
ACTIVAR
Datal .Recordset.Edit
Textl.SetFocus
End Sub
Sub DESACTIVARO
Framel. Enabled = False
Frame2. Enabled = True
DBListl .Enabled = True
End Sub
Botn GRABAR
Private Sub Commandl _Click()
DESACTIVAR
Datal.Recordset. Update
Rem Actualiza el DBlistl
DBListl.ListField- nombre
End Sub
Botn CANCELAR
Private Sub Command2_Click()
DESACTIVAR
Datal. Recordset.CancelUpdate
End Sub
Instrucciones del botn ELIMINAR
Private Sub Command5_Click()
Dim R As Byte
R=MsgBox(Estsegurodeelninaresteregistro,36, CUIDADO)
I fR = 6 Then
Datal. Recordset. Delete
Datal.Refresh
End I f
End Sub
CONTROL DBLIST1
Private Sub DBListl_Click()
Dim C A? String
C="NOMBRE= +DBListl+
Datal.Recordset.FindFirst C
End Sub
Instrucciones del Form_Load
Prvate Sub Form_Load()
Framel.Enabled - False
Datal. Visible - False
End Sub
Instrucciones del botn SALIR
Prvate Sub Command6_Click()
I f MsgBox(Est seguro de Sari ir,36, CERRAR) = 6 Then End
End Sub
G rupo E ditorial Megabyte
3 6 9
M.
% VISUAL BASIC como debe ser.. .
A S I S T E N T E D E L V I S U A L B A S I C P A R A BASE DE DATOS
Visual Basic tiene un asistente que permite desarrollar en forma automtica un for
mulario con los programas bsicos para manejar y dar mantenimiento a las tablas y
registros de una base de datos.
Para ello, de la opcin Complementos de la Barra de Men elija Asistente para
Formulario de Datos.
NOTA: ,
Si no tiene la opcin Asistente para Formularios de Datos, ingrese a la opcion
Administrador de Complementos y active VB Data Form Wizard.
Cuando elige la opcin Asistente para Formularios de Datos, se puede visualizar
una ventana de introduccin y cuando hace Click en Siguiente se muestra la
ventana donde se elige el tipo de Base de Datos. El tipo predeterminado en V. Basic
es Access.
nanaas
dMf:;
dBA'iEIV
JBfSE5 0
Fo>Pro?<<
<if'fr pgmjyte>|
Despus de hacer click en el botn Siguiente de la ventana anterior, Visual Basic le
pide el nombre de la Base de Datos con la que desea trabajar y en la siguiente
ventana le pide la forma de visualizar los registros. La primera y segunda forma se
utilizan para una sola tabla y la tercera forma para dos tablas.
| | | | | | | > 370 G r u p o E d i t o r i a l Megabyte
I n la siguiente ventana debe seleccionar en Origen de Datos el nombre de
la tabla y en Campos Disponibles puede seleccionar los campos que desea
visualizar. Tambin puede seleccionar una columna (Campo) por el cual quiere
ordenar los registros. Cada uno de los botones de esta ventana muestra un
mensaje indicando su funcin con slo llevar el puntero del Mouse hasta l.
I.n la siguiente ventana, Visual Basic le pide seleccionar los botones que
ilesea tener en el formulario.
CAPTULO IX: Manejo de Base de Datos
pe
>r*jen de registros:
Campesjesjcdcnaoos: ;
_J
Orden* cok*iwaD: j * ]
Ayuda I CnccSy j : <&trfe. ;| f | j g g l 3 l :
GsrrcKcaponles
p BotanAgregar
FBotonEbr
; 17 otnEenovar
F Btntetusljai
15 BotteCerrar
J C^?T3] lermna- |
I in la ltima ventana, le pide el nombre del formulario. En forma predetermina
le asigna el nombre F R M seguido del nombre de la tabla. Para ver su
ejecucin, puede hacer que este formulario se ejecute primero (Proyecto/
Propiedades del Proyecto).
El formulario que se crea en forma automtica depende el tipo que eligi.
Por ejemplo, si ha elegido Un nico Registro, se visualiza:
.AMIGOS
NOMBRE:
DIRECCIN:'
DISTRITO:
TELEFONO:
FCNC:
SEXO:
PESO:
Agregar j
l ITfti
M 3 \
Eliminar Renovar Actualizar Cerrar
TTmI
M U Y I M P O R T A N T E
Ud., puede mirar las instrucciones de cada uno de los botones de comandos
del formulario creado.
lilil* Grupo Editorial Megabyte 37,
S B k> VISUAL BASIC como debe ser.. .
CONTROL DBCOMBO:
Es un control similar al DBlist, es decir permite mostrar el contenido de un
campo, pero adems puede mostrar una caja de texto. En la lista de compo
nentes, este control tambin se llama: Microsoft Data Bound List Control.
Tiene las mismas propiedades del control DBlist, pero adems se le puede
asignar la propiedad STYLE.
La propiedad Style, indica la forma cmo debe trabajar el DBcombo. Los
valores que se le puede asignar son:
Style fc) - dbcDroDdownComboH
0 - dbcDroodownCombo
1 - dbcSimpleCombo
2 - dbcDropdownList
0 : El DBcombo se muestra con una caja de texto y una lista desplegable,
pudiendo seleccionar a un registro en cualquiera de ellas.
1 : Muestra una caja de texto y una lista que no se despliega, pudiendo
seleccionar a un registro en cualquiera de ellas.
2 : Slo muestra y permite seleccionar cualquier registro de la lista des
plegable.
APLICACIN DESARROLLADA N 52
Desarrollar el programa de consulta anterior, usando un DBcombo, de tal
manera que a medida que se va escribiendo el nombre de una persona, se
visualicen sus datos en las cajas de texto.
TTSl
H a ga c l i c k e n e l N o m b r e
o d gi t e l a s i n i c i a l e s
D A
D A N I E L A L A R CON - I
L I L I A N A A L A R C O r
M A N U E L C A R B AJ ^
T I T O R A M I R E Z _ ZJ
N o m b r e a C o n s u l t a r
D a l o s P e r s o n a l e s
N o m b r e
D i r e c c i n
D i s t r i t o
T e l f o n o
F e c h a d e N a c .
S e x o
P e s o
| D A N I E L A L A R C O N
I W I R A C O C H A 3 1 5
| L A V I C T O R I A
| 2 3 2 6 8 9
| 1 5 / 1 0 / 1 9 6 6
M
68
m. FORMAS DE CONSULTAR REGISTROS
I H| < |Datai l'nj
372 G r u p o E d i t o r i a l M e g a b y t e ^
| > CAPTULO IX: Manejo de Base de Datos
DESARROLLO:
Dibuje todos los controles de la aplicacin de consulta anterior y asgneles
las propiedades respectivas. Slo debe cambiar el control DBli st por el con
trol DBcombo.
Al control Dbcombo asgnele las propiedades RowSource Y List fi el d como
se hizo para el DBlist. Adems debe asignar sus propiedades Text y Style.
l i l contenido de la propiedad Text brrelo para que quede en blanco y en su
propiedad Style, asgnele el valor 2.
Debe programar en los eventos Change y Click del DBCombo:
Instrucciones del evento Change
Prvate Sub DBCombol_Change()
Dim C As String
Dim L As Integer
L = Len(DBCombol)
C = "LEFT(NOMBRE," + Str(L) + + DBCombol +
Datal.Recordset.FindFirst C
I f Datal.Recordset.NoMatch Then
Framel. Visible = False
Else
Frame 1 .Visible = True
End I f
luid Sub
Instrucciones del evento Click
Prvate Sub DBCombol_Click(Area As Integer)
DBCombol jC h a n g e
End Sub
APLICACIN PROPUESTA
Modifique la aplicacin anterior de tal manera que permita consultar un
registro por el nombre o telfono.
I H 'l ii; FiYi <1=1'1 i 143EDSIBMMMMBZ[bISI
SEL EC C I O N E EL D A T O D EL R EG I ST R O
Nombre Telfono
| ' 3 1 2 2 7 1 3 1 3
Dalos Personales
N o m b r e | L I L I A N A A L A R C O N
D i r e c c i n | M A R I A I Z A G A
D i s t r i t o j C H I C L A V O
T e l f o n o | 2 2 7 1 9 1
F e c h a d e N a c f 2 0 T T 0 T l 9 7 0
S e x o | p
P e s o [ 5 3
I l < | 4 | D a t a l | M i
|||| | * G r u p o E d i t o r i a l Megabyte
373
CONTROL DBGRID:

El control DBgrid permite listar los registros de una tabla en un formulario.


A l listar los registros Ud. puede actualizarlos, y adicionar nuevos registros.
En la lista de componentes, este control se llama: Microsoft Data Bound
Grid Control.
PRINCIPALES PROPIEDADES DEL CONTROL DBGRID:
AME
Permite asignarle un nombre. Por defecto el nombre es Dbg rid l, Dbgrid2,
Dbgrid3 etc. Segn el nmero de controles que se dibujen en el formulario.
ALLOWADDNEW
Permite indicar que si al llegar al ltimo registro se puede adicionar nuevos
registros.
ALLOWARROWS
Permite usar las teclas de movimiento del cursor para moverse por los
registros.
ALLOWDELETE
Permite indicar si se puede eliminar registros.
ALLOWUPDATE
Permite indicar se pueden modificar los registros.
CAPTION
Permite escribir el ttulo para el control
COLUMNHEADERS
Para indicar si desea visualizar los encabezados de cada campo.
DATASOURCE
Para indicar el nombre del control Data que contiene la tabla donde se
encuentran los registros que se desea visualizar.
ENABLED
Para indicar si el control debe estar activado.
HEADFONT
Para seleccionar el tipo, tamao y estilo de letra para el encabezado de cada
campo.
HEADLINES
Permite indicar el nmero de lneas que desea tener como encabezado de
cada campo.
ROWDIVIDERSTYLE
Permite indicar el estilo de la lnea que divide cada registro
VISIBLE
Para indicar si el control se debe visualizar.
l i l i l , VISUAL BASIC como debe ser.. .
G r u p o E d i t o r i a l M e g a b y t e *
374
CAPITULO IX: Manejo de Base de Datos ^
APLICACIN DESARROLLADA N 53
Con la tabla Amigos desarrolle la siguiente aplicacin que permite listar
todos los registros:
j j n l
HOMBRE [d i r e c c i o h
RELACION DE AMIGOS
[d i s t r i t o It e l efonc I feciiac [sexc r
{Ta RINA RIOJA PRINCIPAL 34S LAMBAYBQUB 227191 20/10/1970 F
CARLOS LA HADRIE jLOS INCAS N" 1020 LA VICTORIA :202020 20/10/1970 H
CARLOS MORALES ;AREQUIPA N* 364 CHICLAY 2738S8 18/07/1969 H
DANIEL INFANTE :AV. LOS LAURES 234 iFERREAFE ^203347 16/12/1970 H
j______________________ _______ _______ ,_____ _ t a
iHNIOa'al TTTlI
Sala
Para disear esta aplicacin debe dibujar en un formulario un control DBgrid,
un control Data y un botn de comandos.
1ro. A l control Data se le debe asignar 02 propiedades:
DATABASENAME, donde se selecciona el nombre cela base de datos ( "Agenda").
RECORDSOURCE, donde se selecciona de la tabla que contiene los registros ( "Amigos").
2do. El control DBgrid debe tener en su propiedad DataSource el nombre del
control Data (Datal) y en su propiedad Caption el texto: RELACIN DE
AMIGOS.
El botn SALIR debe tener la instruccin END.
RECUPERAR LOS CAMPOS
Una vez que asign las propiedades al control Data y al DBgrid, haga Click con
el botn derecho en el DBgrid y seleccione RECUPERAR CAMPOS.
ASIGNAR UN ANCHO ADECUADO A CADA CAMPO.
Una vez que recuper los campos en el Dbgrid, haga Click con el botn derecho
en ste y elija EDICIN, luego, lleve el puntero a la lnea que divide cada
campo y asgnele el ancho que desea.
QUITAR UN CAMPO DEL DBGRID
Siga los pasos anteriores hasta elegir EDICIN, luego haga click en el ttulo del
campo a quitar, botn cjerecho y elija DELETE.
MODIFICAR EL TITULO (ENCABEZADO)A LOS CAMPOS.
Para ello seleccione la propiedad PERSONALIDADO del DBgrid y active la
hoja COLUMNAS. Seleccione columna por columna (campos) y en la
propiedad CAPTION asgnele el ttulo que desea. Adems puede asignarle un
formato a cada campo.
En la hoja DISEO puede activar la propiedad LOCKED de las columnas que
desea para que no se pueda modificar su contenido, adems puede alinear el
contenido del campo.
ADICIONAR REGISTROS.
Para adicionar registros en el DBGRID asigne a su propiedad ALLOWADDNEW
el valor TRUE. La propiedad ALLOWUPDATE que permite modificar o no los
datos debe tener tambin el valor verdadero.
EVITAR QUE SE MODIFIQUE LOS DATOS EN EL DBGRID.
Para ello asigne a su propiedad ALLOWUPDATE el valor FALSE.
G r u po E d i t o r i a l Megabyte 375
i S > VISUAL BASIC como debe ser.. .
INSTRUCCIONES SQL
SQL significa Structured Query Language, es decir, Lenguaje Estructurado de
Consulta. Es un lenguaje orientado a Base de Datos que permite administrar y
manipular sus componentes (tablas, registros, etc.) de una manera fcil y rpida.
INSTRUCCIN SELECT
Selecciona los registros con los que deseamos trabajar o ver en un momento
determinado. Tambin los ordenarlos, une tablas, etc.
Esta instruccin se debe asignar a la propiedad RECORDSOURCE del control
DATA cuando la utilizamos en un formulario.
LASINTAXISPARASELECaONARTODOS LOS REGISTROS ES:
SELECT * FROM NOMBRE_DE_LA_TABLA
El asterisco (*) indica que se deben seleccionar todos los campos.
Si desea seleccionar slo algunos campos debe escribirlos separados por una coma
(,). Ejemplo:
La siguiente instruccin selecciona todos los campos y todos los registros de la
tabla amigos: SELECT * FROM AMIGOS
La siguiente instruccin selecciona slo el Nombre y Telfono de todos los regis
tros: SELECT NOMBRE, TELEFONO FROM AMIGOS
Para que funcione en un formulario, primero debe de darle las propiedades corres
pondientes al control Data y al Dbgrid, luego en un botn de comandos se debe
escribir por ejemplo:
Datal.RecordSource = "Select nombre,telefono from amigos"
Datal .Refresh
CAMPOS CALCULADOS
Son campos que no se encuentran en una tabla, pero que se pueden obtener con los
campo que tiene la tabla. Por ejemplo, en la tabla Amigos, el campo EDAD se puede
considerar como campo calculado, porque se puede obtener con la fecha de naci
miento.
La sintaxis para obtener un campo calculado es:
Expresin As Nombre
Donde Expresin, es la operacin que se necesita realizar para obtener el campo
calculado y Nombre, es el nombre que le desea asignar al campo calculado. Ejemplo,
la siguiente instruccin muestra el nombre y la edad de todos los registros:
Datal .RecordSource = "Select nombre, year(now)-year(fecnac) as edad from amigos"
Datal.Refresh
MUY IMPORTANTE
Cuando desee visualizar slo algunos campos o los campos calculados en el DBgrid,
no debe haber recuperado los campos. (Botn Derecho, Recuperar Campos). Si ha
recuperado los campos, haga click con el botn derecho del Mouse en cualquier
parte del DBgrid y elija Borrar Campos.
' < 5 CAPTULO IX: Manejo de Base de Datos ^ II IP
SELECCIONAR SLO ALGUNOS REGISTROS.
Con la instruccin WHERE del SELECT, se pueden seleccionar los registros con los
cuales deseamos trabajar o visualizar.
Su sintaxis es:
SELECT * FROM Nombre_deJa_Tabla WHERE Condicin
Ejemplo:
Seleccionar los que viven en el distrito La Victoria:
SF1ECT * FROM AMK OS WHERE DISTRITO=LA VICTORIA
Seleccionar las mujeres que pesan ms de 60 kilos:
SELECT*FROMAMIGOSWHERESEXO-F ANDPESO>60
BETWEEN: Se puede utilizar junto con WHERE para seleccionar registros que
tienen un campo cuyo valor en encuentra entre dos valores dados WHERE
NOMBJCAMPO BETWEEN VALOR1 AND VALOR2
Ejemplo: Seleccionar las personas que pesan entre 60 y 73 Kilos.
SELECT* FROMAMIGOSWHEREPESOBETWEEN60AND 73
IN: Se puede utilizar junto con WHERE para seleccionar registros que tienen un
campo cuyo valor es uno de los indicados.
WHERENOmjMIPOIN(VAWRl,VAWR2,VAWR3r VAWRii)
Ejemplo: Seleccionar las personas nacieron en el mes de Febrero, Abril, Agosto o
Diciembre.
SELECT*FR0MAMIG0SWHEREM0N1H(FECNAC)1N(24,8,12)
ORDENAR LOS REGISTROS.
Con la instruccin ORDER B Y del SELECT, se pueden ordenar los registros de una
tabla. Su sintaxis es:
SELECT * FROM Nombre_deJa_Tabia ORDER BY Nombre_del_Campo
Se puede utilizar el nmero del campo en lugar del nombre.
Si se quiere ordenar por varios campos, se deben separar por una coma sin importar
el tipo de cada campo.
Si se desea ordenar en forma descendente escriba la palabra DESC, despus del
nombre del campo. La palabra ASC, ordena en forma ascendente, pero es opcional
utilizarla. Ejemplos:
Para ordenar los registros por el distrito:
SELECT*FROMAMlGOSORDERBYDlSTRnD
Para ordenar por el campo sexo en forma descendente y por el nombre en forma
ascendente:
SELECT* FROMAM1GOS ORDERBYSEXO DESC, NOMBRE
SELECCIONAR REGISTROS Y ORDENARLOS.
Utilizando las instrucciones WHERE y ORDER BY dentro de una instrucciones
SELECT, podemos seleccionar y ordenar registros.
Su sintaxis es:
SELECr*FROMNon_TablaWHEREConckinORDERBYNoinb CaiiX)
Ejemplo:
para seleccionar los que tiene sexo masculino y ordenarlos por su nombre:
SELECT* FROM AMIGOS WHERESEXO=' M ORDER B YNOMBRH
G r u p o E d i t o r i a l Megabyte 377
s ,
'% VISUAL BASIC como debe ser.. .
T O P
Es una palabra que se puede escribir despus de SELECT que permite
mostrar los N primeros registros ordenados.
Ejemplos:
La siguiente instruccin muestra las 3 primeras personas ms delgadas (de
menor peso).
SELECT TOP 3 * FROM AMIGOS ORDER BY PESO
Si se desea las tres primeras personas ms gordas, slo debe realizar la
ordenacin en forma descendente.
SELECT TOP 3 * FROM AMIGOS ORDER BY PESO DESC
NOTA:
Las siguientes personas que tiene el mismo peso de la tercera tambin se visualizan.
Despus del valor puede utilizar la palabra PERCENT para mostrar un porcentaje
determinado de registros.
La siguiente instruccin muestra el 10% de las personas ms delgadas (de
menor peso).
SELECT TOP 10 PERCENT * FROM AMIGOS ORDER BY PESO
D I S T I N C T
Se puede utilizar despus de SELECT y permite que no se visualicen registros
que estn duplicados en uno o ms campos determinados.
La siguiente instruccin muestra la relacin de distritos sin duplicacin, donde
viven las personas. Si dos o ms personas viven en un mismo distrito, el
nombre de dicho distrito slo se visualiza una vez.
SELECT DISTINCT DISTRITO FROM AMIGOS
D I S T I N C T R O W
Se puede utilizar despus de SELECT y permite que no se visualicen registros
que estn duplicados en todos sus campos. Se utiliza cuando se trabaja con
dos o ms tablas.
NOTA
Existen otras instrucciones SQL, las cuales se explican ms adelante.
p 378 G r u p o E d i t o r i a l Megabyte^
CAPTULO IX: Manejo de Base de Datos
DONDE PRACTICAR O UTILI ZAR LAS INSTRUCCIONES SQL?
Ias instrucciones SQL vistas anteriormente se pueden utilizar o practicarlas en un formulario
con el control DATA o en la ventana de administracin visual de datos (VISDATA).
1. EN UN FORMULARIO CON EL CONTROL DATA.
Cuando quiera practicar o utilizar las instrucciones S QL en un formulario, debe
asignar toda la instruccin SQLa la propiedad R E C O R D S O U R C E del control DATA
y luego actualizarlo (Refresh).
Ior ejemplo, para visualizar todas las personas que viven en el distrito La Victoria y
ordenadas por su nombre, se escribe:
I)cital.ReconEoutce-Select *fivmcunigoswheivdisnito = La Victoriaorderbynombre
Datal.Refresh
APLICACIN DESARROLADA N 54
I .a siguiente aplicacin permite seleccionar registros, ordenarlos y seleccionar cam
pos a visualizar utilizando instrucciones S Q L dentro de un formulario con el control
DATA.
i . I N S T R U C C I O N E S S Q L EN F O R M U L A R I O S
NOMBRE DIRECCION DISTRITO TELEFONO I p e s g T T
CARLOS MORALES AREQUIPA 365 CHI CLAVO 202020 18/07/1989 ;M 60;
DANIEL LARCN WIRACOCMA 31B LA VIC TORIA 23P689 5 /1Q /1 % 6 m 80 i
LILIANA ALARCON MARIA IZAGA CHI CLAVO 227131 20 /12/1990: F 50:
MANUEL CARBAJAL SAI AVI HRY a t ) / CHICLAYO 209870 8 / 0 6 / 1 3 6 0 ! M JSi
T l f lb RAMIREZ LL DORADO 466 J.L 0. 23G976 i 0 7 / 1 / I 3 / 1
, SE L E CC I O NA R .
La Victoria ) Menores | Hombres | M metes | Octubre j Peso entre 50 y 73 Serie Telt 22 | :
V I S U A L I Z A R S O L U :
Nombre y Ao de Nacimiento j Nombre. Fecha de Nacimiento y Edad
O R D E N A R POR:
Nombn- | Ff r c l i* | Poso Pete j Sexo y Pso j
V I S U A L I Z A R I O D O S |
iLii jT
DESARROLLO:
Dibuje los controles como se muestra en la aplicacin a desarrollar y asgnele las
propiedades correspondientes al control DBgrid y al Data.
Las instrucciones de cada botn de comandos en el orden que estn dibujados son:
Prvate Sub Commandl_Click()
Datal.RecordSouice- SELECT* FROMAMIGOSWHEREDISIRITO= LA VICTORIA'
Datal.Refresh
End Sub
Prvate Sub Command2_Click()
Datal.RecordSowte =SELECT* FROMAMIGOSWHEREYEAR(NOW)- YEAR(FECNAC)<17"
Datal .Refresh
End Sub
G ru po E d i t o r i a l Megabyte 379
PtwateSiConmmd3_Clkk()
DataLRecordSource ="SELECT* FROMAMGOSWHERESEXO=M
DataLRefresh
EndSub
Prh>ateSubComnand4_QicH)
DataLRecordSource ="SELECT* FROM AMIGOS WHERESEXO= F '
Datal.Refresh
E/idSub
Private Sub Command5_Click()
Datal.RecordSowce= "SELECT* FROM.AMIGOSWHEREMONIH(FECNAC)=10"
DataLRefresh
EidSub
PrhateSub Convtiand6_Qick( )
DataLRecordSource =' SELECT* FROMAMIGOS WHERE PESO BETWEEN50AND 73
DataLRefresh
EtdSub
Private Sub Convnand7_Qick()
Datal.RecoidSowve= SELECT* FROMAMLGOSWHERETELEFONOUKE22*
DataLRefresh
EndSub
Private SubConvmjOlickO
DataLRecordSource- SELECrNOMBRE,YE\R(FECNAC)AS[AODENACIMIENTOI FROMAMIGOS
DataLRefresh
EndSub
Private Si Comnand9jOltk()
Datal.RecordSowce="SELECTNOMBRE,FECNAC,YEAR(NOW)-YEAR(FECNAC)ASEDADFROMAMIGOS
Datai.Refresh
EidSub
Private Sub ConviiandlO_Click()
Datal.RecordSowve- SELECT* FROM AMIGOS ORDER BYNOMBRE
DataLRefresh
BidSi
PmateSi Command!l_Gick()
DataLRecordSource - SELECT* FROMAMIGOS ORDER BYFECNAC"
DataLRefresh
EndSub
Private Sub Commandl2_Click( )
DataLRecordSource - SELECT* FROM AMIGOS ORDERBYPESO DESC
DataLRefresh
EdSi
PriwtteSi Convnandl3_Click()
DataLRecordSource= SELECT* FROMAMIGOSORDERBYSEXO,PESO
DataLRefresh
EjidSub
PrivateSubConmiandl4_CUck()
DataLRecordSoi uve=SELECT* FROMAMIGOS
DataLRefresh
FjxlSub
|||| || ^ 380 G r u p o E d i t o r i a l Megabyte
VISUAL BASIC como debe ser.
CAPITULO IX: Manejo de Base de Datos
EN L A V E N TA N A DE A D M I N I S T R A C I O N V I S U A L DE DATOS
(VIS DA TA) .
Cuando elige la opcin C o m p l e m e n t o s , A d m i n i s t r a d o r V i s u a l de
Datos y abre una tabla, se v i s u a l i z a tambin una ventana de in s
trucciones SQL.
v g VisData:C:\Achvos de programa\DevStudio\VB\AGENDA.md
Af chivo Utilidad Ventana Ayuda
a l f i l Bal B l l eHl --
($} [f f f * Properties
+ E3 AMIGOS
Listo
3
Usuario: admin
En esta ventana puede escribir las instrucciones SQL (a partir de SELECT).
Para ver los resultados haga click en el botn EJECUTAR. De esta mane
ra se crean consultas (Query), las cuales las puede grabar haciendo click
en el botn GUARDAR y utilizarla en cualquier formulario asignndole su
nombre a la propiedad RECORDSOURCE del control DATA como lo hace
con cualquier tabla.
Ejemplo, en la figura siguiente se ha creado una consulta que consiste en la
ordenacin de los registros por el Peso y ha sido grabada con el nombre
INFORME.
VisData:C:\Archivos de piogiamaVDevSludio\VB\AGENDA.mdb I.P.|X|
Archivo Utilidad Ventana Ayuda
O F & I S H O f f i l &\ i i
S3 .=JJ3J.2Sl
_ li l i x
* fft?' Properties
it; m amigos
:+! @ INFORME
Ejecutar j gorrar | |; guardar
SELECT * FROM AMIGOS ORDER 8Y PESO j
_J
Listo Usuario; adirar,
Pruebe que esta consulta creada se puede utilizar como cualquier tabla
haciendo un programa de listado. Para ello, dibuje en un formulario un con
trol Dbgrid y un control Data y asgneles las propiedades correspondientes.
Grupo Editorial Megabyte
381
VISUAL BASIC como debe ser.. .
>r f i K -
m z
Dentro de la opcin U T I L I D A D , esta ventana tiene las opciones:
1. Generador de Consultas: Que consisten en un asistente para crear las
consultas con instrucciones SQL.
[ E l
131 F
g r e g a r al c r i t e r i o j Q . p o r c r i t e r i o
T a b l a s : C a m p o s a m o s t r a r :
r
L i s t a d p o s i b l e s v a l o r e s
A g r u p a d o p o r :
P r i m e r o s N v a l o r e s :
r
O r d e n a d o po r ' Ase f ~ " P e s e
| J
E s t a b l e c e r c o m b in a c i o n e s d e l a t a b l a |
1
" P o r c e n t a j e s u p e r i o r
G u a r d a r j B o r r a r
2 Diseador de Formularios: Que consiste en un asistente para crear fo r
mularios que administren las tablas y registros.
I I III D i s e a d o r d e f o r m u l a r i o s d e d a t o s
N o m b r e d e l f o r m u l a r i o ( c / s e x t e n s i n ) :
R e c o r d S o u r c e : | I----------------------------------------------------------------3
S e l e c c i o n e u n a l a b l a o c o n s u l t a d e l a l i s t a o e s e n b a u n a i m t r u c c i o n
C a m p o s d i s p o n i b l e s :
C a m p o s i n c l u i d o s :
G e n e r a r e l f o r m u l a r i o
3. Sustitucin Global: Que permite reemplazar el contenido de un campo
por un nuevo contenido.
E Sus t i t uc i n global
M " 111111 DIRECCION
DISTRITO
FECNAC
NOMBRE
PESO
SEXO
TELEFONO
Reemplazar con:
382
Cancelar
G r u p o E d i t o r i a l Megabyte-
CAPTULO IX: Manejo de Base de Datos
LISTADOS ORDENADOS YPOR CONDICION (FILTRADOS)
Consiste en crear programas que permitan listar los registros en forma orde
nada y por una condicin; es decir, mostrar slo un grupo de registros, aquellos
que tienen una determinada caracterstica, por ejemplo: Mostrar slo los que
viven en Lambayeque, los que nacieron en un ao determinado, etc.
APLICACIN DESARROLLADA N 55
La siguiente aplicacin permite que el usuario escriba una condicin y al
hacer click en el botn OK, se deben visualizar los registros que cumplen
dicha condicin, adems se deben ordenar de acuerdo al botn de coman
dos donde se haga Click.
CONDICION > ' |f OK 1 TODOS 1 SALIR |
RELACION DE AMIGOS
HOMBRE IDIRECCION DISTRITO TELEFONO FECNAC -
CARLOS LA MADRID LOS INCAS N* 1020 LA VICTORIA 202020 20/10/1970
CARLOS MORALES AREQUIPA N* 364 CHICLAYO 273858 18/07/1969
DANIEL INFANTE !AV. LOS LAURES 234 CHICLAYO 203347 16/12/1970
DORIS PERALES Av. BALTA 345 CHICLAYO 232224 01/05/1970
JORGE RIOS LA LIBERTAD 123 CHICLAYO 237143 18/09/1976
JUAN JOSE WIRACOCHA 335 LA VICTORIA 205048 01/05/1968
LILIANA CAMPOS MARIA IZAGA 564 CHICLAYO 237890 10/10/1972
1
LUIS BALAREZO
1
ITACNA 765 LAMBAYEQUE 287678 05/03/1958 T
_. ......_lT
ORDENADO POR:
Nombre | Dir ecci n | Distrito | Telfono | Fecha de Nac. |
Distrito y Nombre j
IJd. debe ingresar las condiciones en forma correcta. Por ejemplo, para
mostrar:
Los que viven en Chiclayo: DISTRITO = "CHICLAYO"
Los que su serie de telfono es 20: TELEFONO LIKE "20*"
Los que nacieron en 1970: YEAR(FECNAC) - 1970
I .os que su nombre empieza con la letra C: NOMBRE LIKE "C*"
Los que viven en la Victoria y nacieron en el mes de Ab ril: DISTRITO =
"IA VICTORIA" AND MONTH(FECNAC) = 4
Mostrar los que tienen sexo masculino: SEXO = "M"
NOTA:
Tara indicar los campos a visualizar en el listado y para asignarle un ancho
determinado a cada campo, debe hacer click con el botn derecho en el control
/ 'ibgrid, mientras lo est diseando y elegir la opcin editar.
P G r u p o E d i t o r i a l Megabyte 383
INSTRUCCIONES DE LOS CONTROLES:
MUY IMPORTANTE
Respete los espacios en blanco que se dejan en los ejemplos.
Entre las comillas y la palabra O R D E R y entre la palabra W H E R E
y las comill as debe d e j a r siempre un espacio en blanco.
SELECT * FROM AMIGOS WHERE
Instrucciones del botn OK.
Private Sub Commandl_Click()
On Error GoTo MIRA
Datal.ReconlSource-SELECT*FROMAMlGOSWHERE +Textl
Datal.Refresh
If Datal.Recordset.RecordCount = 0 Then
MsgBox No existen registros con la condicin ingresada ,16, Lo siento
End If
Exit Sub
MIRA:
MsgBox LACONDICIONINGRESADAESINCORRECIA, 64, VERIFIQUE"
Textl .SetFocus
End Sub
Instrucciones de botn TODOS.
Private Sub Command2_Click()
Textl =
Datal.RecordSource - SELECT * FROM AMI G O S
Datal.Refresh
End Sub
Instrucciones de botn NOMBRE.
Private Sub Command4_Click()
I f Trim(Textl) = Then
Datal.RecordSource = SELECT* FROM AMIGOS ORDER BY NOMBRE"
Else
Datal.RecordSource^ "SELECT* FROMAM1GOSWHERE+Textl+ "ORDERBY NOMBRE"
End I f
D ata! .Refresh
E nd Sub
Instrucciones de botn DIRECCION.
Private Sub Command5_Click()
I fT r i m ( T e x t l ) = Then
Datal.RecordSource = SELECT * FROM AMIGOS ORDER BY DIRECCION
Else
Datal RecoidSource= "SELECT* FROMAMIGOS WHERE+Textl+ORDER BY DIRECCION"
End I f
D a t a l .Refresh
End Sub
| S 1 | ^ VISUAL BASIC como debe ser.. .
384 G r u p o E d i t o r i a l Megabyte
Instrucciones de botn DISTRITO.
Private Sub Command6_Click()
I f Trim(Textl) - "" Then
Datal. RecordSource= SELECT * FROM AMIGOS ORDER BY DISTRITO
Else
Datal. ReconlSoi we - ' SELECT *FROM AMIGOS WHERE ' + Textl +' ORDER BYDISTRI10'
End I f
Da tal .Refresh
End Sub
Instrucciones de botn TELEFONO.
Private Sub Command?_Click()
I f Trim(Textl) = Then
Datal.RecordSource- "SELECT * FROM AMIGOS ORDER BY TELEFONO
Else
Datal.ReconISowve= "SELECT* FROMAMIGOSWHERE +Textl+ ORDER BYTELEFONO
End I f
Datal.Refresh
End Sub
Instrucciones de botn FECHA DE NACIMIENTO.
Prvate Sub Command8_Click()
I f Trm ( Te xt l) = Then
Datal.RecordSource = SELECT * FROM AMIGOS ORDER BY FECNAC
Else
Datal.RecordSource^ SELECT* FROMAMIGOSWHERE+Textl +ORDER BY FECNAC
End I f
D a t a l . Refresh
End Sub
Instrucciones de botn DISTRITO Y NOMBRE.
Prvate Sub Command9_Click()
IfTrim( Text l) = Then
Datal.ReconlSowre-SELECT*FROMAMIGOSORDERBY DISTRITO,NOMBRE"
Else
Datal .RecordSource- "SELECT * FROM AMIGOS WHERE
+Textl + ORDER BY DISTRITO,NOMBRE
End I f
D a t a l . Refresh
End Sub
CAPTULO IX: Manejo de Base de Datos
G ru po E d i t o r i a l Megabyte 385
o
H> VISUAL BASIC como debe ser..
VARIABLES TIPO RECORDSET
Podemos crear y utilizar en nuestros programas variables tipo RecordSet
con la finalidad de escribirlos con mayor facilidad.
Una variable tipo Recordset es un objeto que representa a todos los
registros de la tabla que se tiene activada.
Hasta hora cada vez que nos queremos referir a la tabla dentro de un
programa se ha utilizado la instruccin Datal.Recordset, pero esta
instruccin la podemos asignar a una variable Recordset y slo traba
j a r con esta variable.
Por ejemplo, suponiendo que hemos definido la variable R de tipo Recordset
a la cual le hemos asignado Datal.Recordset, entonces si queremos i r al
siguiente registros slo bastar con escribir R.MoveNext. En lugar de es
c r ib ir Datal.Recordset.FindFirst C, slo se escribira R.FindFirst C.
Para referirnos a un solo campo se puede utilizar FIELDS que representa a
todos los campos de una tabla. Se puede utilizar de las siguientes maneras:
R.Fields(Nombre) R.Fields![nombre] R.Fields(Nmero)
Donde Nombre, es el nombre del campo al cual se desea referir y Nmero
es la posicin del campo en la estructura de la tabla (el primer campo tiene
el nmero cero).
Para utilizar la variable tipo Recordset, debe cumplir tres (3) aspectos
importantes.
1. Declarar la variable en la ventana de declaracin del formulario o mdulo.
Proyeclol - Form! (Cdigo) HHE2I
|(General) |(Declaraciones) jrJ
g
Dim R As Recordset
SjjJ
2. Asignar Datal .Recordset a la variable en el evento Form Actvate usando
la instruccin SET.
M Pioyecto1 - Fofml (Cdigo) l - IO|x|
" 3
P r i v a t e Sub F o r m _ A c t i v a t e () ~T
Set R = D a t a l . R e c o r d s e t _ j
End Sub
f c j i i j
386 G r u p o E d i t o r i a l M e g a b y t e ^
CAPTULO IX: Manejo de Base de Datos
A c t iv a r la casilla de M ic r o s o f t DAO 3.51 Object L ib ra r y que se
encuentra en la opcin Proyecto/Referencias:
( R e f e r e n c i a s d i s p o n i b l e s :
M i c r o s o f t A g e n t S e r v e r 2.0
M i c r o s o f t A g e n t S e r v e r E x t e n s i o n s 2 . 0
M i c r o s o f t C o n n e c t i o n D e s i g n e r I n s t a n c e 1.C
; M i c r o s o f t C o n n e c t i o n D e s i g n e r v 6 . 0
M i c r o s o f t DAO 2 . 5/ 3.51 C o m p at i b i l i t y L ibr ar
M i c r o s o f t DAO 3.6 O b j e c t Li br ar y
M i c r o s o f t D a t a A d a p t e r Libr ar y
M i c r o s o f t D a t a Bi nding C o l l ec t i o n
M i c r o s o f t D a t a E n v i r o n m e n t 1.0
M i c r o s o f t D a t a E n v i r o n m e n t E x t e n s i b i l i t y O t
M i c r o s o f t D a t a E n v i r o n m e n t I n s t a n c e 1.0
M i c r o s o f t D a t a F o r m a t t i n g O b j e c t L i b r ar y
M i c r o s o f t D a t a R e D o r t D e ^ i o n e r v 6 .C
J
A y y d a
L i b r a r y ,
,0
M ic r o s of t DAO 3. 51 O b je c t Library
U b i c a c i n : C: \ARCHI VOS DE PROGRAMA\ ARCHIVOS COMUNES\MICROSt
I d i o m a : E s t n d a r
Si no se activa esta casilla, se visualiza el siguiente mensaje de error al
ejecutar la aplicacin:
Microsoft Visual Basic
Error de compilacin:
No se ha definido el tipo definido por el usuario
Ayuda
Cada campo se considera como un objeto FIELD que contiene propiedades
como por ejemplo:
PROPIEDAD VALUE
Devuelve el contenido del campo, Por ejemplo, para mostrar el nmero
telefnico del registro activo de la tabla Amigos en Labell se puede escribir:
Labell = R.Fields! [telefono]. Valu
Label 1= R.Fields( telefono ). Valu
Label l = R.Fields(3). Valu
NOTA:
La coleccin FIELDS y la propiedad VALUE, Visual Basic las asume en forma
predeterminada, esto quiere decir que es opcional escribirlas. Por ejemplo, las
instrucciones anteriores tambin se pueden escribir de la siguiente manera:
Label 1 = R ! [telefono]
Label 1 = R(telefono)
Label 1 = R(3)
G r u p o E d i t o r i a l Megabyte 387
d ,
VA
% VISUAL BASIC corno debe ser..
PROPIEDAD TYPE
Devuelve un nmero que representa el tipo de campo como se ha definido
en la estructura de la tabla.
Los valores devueltos son:
TIPO DE CAMPO
(Lgico Si/No)
(Entero)
(Entero Largo)
(Monetario)
(Sencillo)
(doble)
(Fecha)
(Texto)
PROPIEDAD AME
Devuelve el nombre del campo exactamente como esta en la estructura de
la tabla.
PROPIEDAD COUNT DEL OBJETO FIELDS
Devuelve el nmero de campos quetiene la tabla.
APLICACIN DESARROLLADA N 56
Modificar el programa anterior de tal manera que el usuario pueda formar la
condicin que desea que cumplan los registros para poder visualizarse.
Para desarrollar ste programa s e deben mostrar en un ListBox los nom
bres de los campos y en otro los operadores para que el usuario pueda
seleccionarlos y luego en una cajade textos ingresar el valor. A s :
OR TIPO
1 Boolean
2 Byte
3 Integer
4 Long
5 Currency
6 Single
7 Double
8 Date
10 Text
11 Binario
12 Memo
l l * l
P O N P T i f l N : SEXO.. M-------------------------- ----------------------------------------------------------
N O M B R E 1D I R EC C I O N
[i RT RIT O
L UI S B A L A R EZ O
C A R L O S M O R A L ES
J O R G E R I O S
J O SE C A S T A E D A
T I T n R A M I R F 7
M A N UE L C A R B A J A L
P U M A C A H U A 122
A R E Q U I P A 2 56
L A L I B E R T A D 123
W R C O C H A 335
1f i n n R A n n 4Fr
S A L A V E R R Y 345
CHI CLAVO
CHI CLAVO
2 7 3 8 5 8
2 3 7 1 4 3
1 8 / 0 7 / 6 9 M
1 8 / 0 9 / 7 6 M
6 0
7 0
-------- 2 0 5 0 4 8 5 / 0 1 / 6 8 M 6 5
-------- .1 i n
?^RS7S
2 0 5 8 9 7
7/1 1 /7fl M
1 8 / 0 6 / 6 0 M
F7
6 6
REG I STR OS MOSTRADOS > SA L I R I
NOTA:
En l a p r o p ie d a d CAPTION del DBgridsedebe mostrar l a co n d i c i n que e l us uario a
f o r m a d o y en una e t i q u e t a se debe mostrar la cantidad de regi stros mostrados.
CAPTULO IX: Manejo de Base de Datos
PASO N 01: Dibujar los Controles.
PASO N 02: Asignar las propiedades.
ETIQUETA
Labell
Label2.
Label3
Label4
TEXTO
Textl
CAPTION
Campo
Operador
Valor
En Blanco
TEXT
En Blanco
COMANDO
Command 1
Command2
Command3
CAPTION
Ok
Todos
&Salir
ENABLED
False
True
True
CONTROL
Datai
CONTROLDATA
DATABASENAME RECORDSOURCE VISIBLE
Agenda Amigos False
CONTROL DBGRID
CONTROL
Dbgri 1
DATASOURCE
Datai
PASO N 03: Escribir las instrucciones de los controles.
Primero debe activar la casilla de Microsoft DAO 3.51 Object Library luego definir
la variable R de tipo Recordset.
EJapa
JProyectol - Formi (Cdigo)
I(General) T J f(Declaraciones)
Di m R As Re c o r d s e t
a a i
G r u po E d i t o r i a l Megabyte 389
Instrucciones del Evento Forni Actvate.
Estas instrucciones muestran en L i s t l los nombres de los campos y en List2
los operadores lgicos, adems asigna a la variable R el Datal.Recordset.
Dim N, X As Integer
Set R = Datal.Recordset
N = R.Fields.Count
Rem Muestra los nombre de los campos en Listl
For X = 1 To N
L i s t l .Addltem (R(X).Name)
N e x t X
Rem Muestra los operadores lgicos en L i s t l
List2.Addltem =
List2.AddItem >
Listl.Addltem <
Listl.Addltem
Listl.Addltem <=
Listl.Addltem < >
Listl.Addltem Like
Textl =
End Sub
Instrucciones de la Cajas de Texto.
Estas instrucciones permiten activar el botn OK cuando el usuario ingresa
el valor que forma la condicin. Se debe programar en el Evento Change.
Prvate Sub Textl_Change()
I f Trim(Textl) = Then
Commandl .Enabled = False
Else
Commandl .Enabled = True
End I f
End Sub
Instrucciones del Botn TODOS.
Estas instrucciones visualizan todos los registros.
Prvate Sub Commandl _Click()
Datal.RecordSource = SELECT * FROM AMIGOS"
D a t a l .Refresh
Textl -
End Sub
|1 VISUAL BASIC como debe ser.. .
390 Gr u p o E d i t o r i a l Megabyte ^
CAPTULO IX: Manejo de Base de Datos
Instrucciones del Botn OK.
listas instrucciones permite visualizar los registros que cumplen la condi
cin que el usuario a formado.
Irivate Sub Commandl_Click()
Dim TIPO A i Byte
Dim C As String
On Error GoTo MIRA
TIPO - R(Listl.ListIndex).Type
Select Case TIPO
Case 1
C = L ist l + Space(l) + L i s t l + S pace(l) + Textl
Case 2 To 7
C = L i s t l + Space( 1) + L i s t l + Space( 1) + Textl
Case 8
C=Listl+Space( 1 )+Listl+Space( 1)+ CVDATE( +Textl + ' )
Case 10
C - L i s t l + S p a c e ( l ) + L i s t l + Space ( l ) + + Textl +
End Select
DBGrid l. Caption = CONDICIN : + C
Datal.RecordSource = "SELECT* FROM AMIGOS WHERE" + Space(I )+C
Datal.Refresh
NR = Da ta l .Recordset.RecordCount
I f NR = 0 Then
MsgBox NO HAY REGISTROS CON LA CONDICIN, 16, VERIFIQUE"
Else
Label4 = REGISTROS MOSTRADOS > + Str(NR)
End I f
Exit Sub
MIRA:
MsgBox No for m la condicin correctamente, 64, VERIFIQUE
End Sub
El botn Salir debe tener la instruccin END.
NOTA
Para que la condicin se forme correctamente tenga cuidado al escribir los espacios
en blanco y los apostrofes ( ) que se utilizan en el botn de OK (Commandl).
En algunos casos se utiliza la funcin Space(l) para asegurar que se escriba im
espacio en blanco y la funcin Cdate, similar a CvDate para convertir un dato
tipo texto a fecha.
G r u p o E d i t o r i \ i . Megabyte 391
VISUAL BASIC como debe ser.
APLICACIN DESARROLLADA N57
La siguiente aplicacin permite ingresar datos utilizando diversos controles de en
trada como Option Buttom, Check, etc.
Adems se muestra el ejemplo de cmo utilizar una variable tipo Recordset para
programar de una manera ms fcil y rpida.
MAN I I NIMII
; di a m
Apellidos jfx
Nombres f u uJO
<*' M ar'iaria
C ' Varde
Cicto jl
El
.P5T
Icha .te lr.tstipoi<i
. ( G/8/1 a a y -g-j
I roslado
U b40IVOCIOI'5
m
(><)
m
Cancelo
I i l
Base de Datos: Instituto.
Apellidos
Nombres
Tumo
Ciclo
Aula
Situacin
Pensin
Traslado
Trabaja
Fecha
Observaciones
Tabla: Alumnos.
Text 25
Text 25
Text 1
Integer
Text 3
Text 1
Single
Boolean (Si/No)
Boolean (Si/No)
Date/Time
Memo
DESARROLLO:
En la ventana de declaraciones del formulario, declare la variable R E G de tipo
Recordset y en Form Actvate asigne Datal.Recordset a la variable REG. Esto
permite reemplazar durante todo el programa Datal.Recordset por REG. Puede
utilizar cualquier otra variable y si desea utilizarla en varios formularios de una
aplicacin, debe declarar la variable en un mdulo.
n g m
1
392
G r u p o E d i t o r i a l Megabyte
CAPITULO IX: Manejo de Base de Datos
D I B U J A R LOS C O N T RO L E S
IgE
TI Z L
f l e x i l
Label2
Frame2
Text2
' f * Q ption2 ;
; "~ OplionS
Frame3
f~~ Option4 I
; r - options i
: <" Option6
: <" Option?
Frame4
I C h e ck 1
Labels jCombol
_ d
Label4 Combo2
LabeIS
( ext3
Label6
1T exl4
; | t ex(5
j H | 4 I Dat ai
NOTA
En la segunda ventana slo debe dibujar un Dbgridl.
ASIGNAR LAS PROPIEDADES
El control Datal, Dblistl y Dbgrid (pgina N 2), deben tener las propiedades que
los ligan con la base de datos.
CONTROLDATA
CONTROL DATABASENAME RECORDSOURCE
Datal Agenda Amigos
CONTROL DBLIST
CONTROL ROWSOURCE LISTFIELD
Dblistl Datal Apellidos
CONTROL DBGRID
CONTROL DATASOURCE
Dbgril Datal
El resto de controles deben tener las propiedades como se muestra en la aplicacin
a desarrollar.
El Combol debe tener en su propiedad LIST las palabras desde Primero hasta
Dcimo. El Combo2 debe tener en su propiedad LIST los nmeros desde 101 hasta
108. El control UpDown 1 debe tener:
Propiedad Valor
Buddy Control Text4
Increment 1
Max 160
Min 1
Value 50
Wrap True
yg|r Grupo Editorial Megabyte
393
INSTRUCCIONES DE LOS CONTROLES
Crear los procedimientos: Activar, Desactivar y Pregunta.
Sub Activar()
Frame 1. Enabled = False
DBListl .Enabled True
Command .Enabled = True
Command!.Enabled = True
Commands.Enabled = True
Command4.Enabled = False
Command5. Enabled = False
End Sub
Sub Pregunta()
Rem Pregunta si no hay registros
I f REG.RecordCount = 0 Then
DBListl.Enabled False
Command2. Enabled = False
Command3. Enabled = False
End I f
End Sub
i S S l ^ VISUAL BASIC como debe ser.. .
Sub Desactivar()
Frame 1.Enabled = True
DBListl.Enabled = False
Commandl. Enabled False
Command2. Enabled = False
Commands .Enabled = False
Command4. Enabled = True
Command5.Enabled = True
End Sub
Instrucciones del Form Activate
Private Sub Form_Activate()
Set REG = Datal.Recordset
Textl =
Text2 =
Text3 = 160"
Text4 - Date
Text5 =
Combo 1.Listlndex = 0
Combo2.ListIndex = 0
Option 1. Value = True
Option4. Value - True
Check 1.Value = False
Check2. Value = False
UpDownl. Visible - False
Frame 1 .Enabled = False
Command4. Enabled = False
Commands.Enabled = False
Pregunta
End Sub
Instrucciones del Botn Nuevo
Private Sub Command!_Click()
REGAddNew
Form_Activate
Desactivar
Textl.SetFocus
End Sub
394
Instrucciones del Botn Modificar
Private Sub Command!_Click()
REG Edit
Desactivar
Textl.SetFocus
End Sub
G r u p o E d i t o r i a l Megabyte
Instrucciones del Botn Eliminar
Private Sub Command3_Click()
Dim RESP As Byte
KESP=MsgBax(ESlASEGURODEELIMINARESrEREGISrRO}36,"CUIDADO)
I f RESP = 6 Then
REG. Delete
REGMoveFirst
Form_Activate
DBListl.ListField = APELLIDOS
End I f
Pregunta
End Sub
Instrucciones del Botn Grabar
Private Sub Command4_Click()
REG(O) = Textl APELLIDOS
REG( 1) = Text2 NOMBRES
Rem TURNO
IfOptionl Then REG(2) - M
I f Opt ion2 Then REG(2) = T"
I f Option3 Then REG(2) = N
REG(3) - Combo 1.Listlndex + 1 CICLO
REG(4) = Combo2. Text AULA
Rem SITUACION
lfOption4 Then REG(5) = "R" REGULAR
I f OptionS Then REG(5) = M 1/2 BECHA
I f Option Then REG(S) = B" BECA
I f Option7 Then REG(S) = O" OTRO
REG(6) = Val(Text3) PENSION
I f Check 1 Then REG(7) = True Else REG(7) = False
IfCheck2 Then REG(8) = True Else REG(8) = False
REG(9) = CVDate(Text4) FECHA DE INGRESO
Rem SI NOMBRE OBSERVACIONES SE GRABA UN ESPACIO EN BLANCO
I f Text5 = Then
REG(IO) =
Else
REG(IO) = TextS
End I f
REG Update
DBListl .ListField = APELLIDOS"
Activar
End Sub
Instrucciones del Botn Cancelar
Private Sub Command5_Click()
REG CancelUpdate
Datal.Refresh Primer Registro
DBListl jClick
Activar
End Sub
CAPTULO IX: Manejo de Base de Dalos
G r u p o E d i t o r i a l Megabyte 395
Instrucciones del Control Dblistl
Private Sub DBListl_Click()
Dim C As String
C = APELLIDOS = + DBListl +
Datal.Recordset.FindFirst C
Textl = REG(O) APELLIDOS
Text2 = REG( 1) NOMBRES
Rem TURNO
IfREG(2) = M Then Optionl = True
IfREG(2) = T" Then Option2 = True
IfREG(2) = N Then Option3 = True
Combol.Listlndex = REG(3) -1 CICLO
Combo2.Text = REG(4) AULA
Rem SITUACION
IfREG(5) = R Then Option4 = True REGULAR
IfREG(5) = M Then Option5 = True 1/2 BECA
IfREG(5) = B " Then Option - True BECA
IfREG(5) = O" Then Option7 = True OTRO
Text3 = REG(6) PENSION
lfREG(7) Then Checkl = 1 Else Checkl ~ 0
IfREG(8) Then Check2 = 1 Else Check2 = 0
Text4 = REG(9) FECHA DE INGRESO
TextS = REG(IO)
End Sub
9 3 ^ VISUAL BASIC como debe ser..
Instrucciones de los Option Button (Muestran la Pension)
Private Sub Option4_Click()
Text3 = 160
UpDownl. Visible = False
End Sub
Prvate Sub Option5_Click()
Text3 = 80
UpDownl.Visible = False
End Sub
Prvate Sub Option_Click()
Text3 = 0
UpDownl.Visible = False
End Sub
Prvate Sub Option7_Click()
Text3 = 50
UpDownl.Visible = True
End Sub
Instrucciones del Control UpDown2 (Fechla de Inscripcin)
Prvate Sub UpDown2_DownClick() Prvate Sub UpDown2_UpClick()
Text4 = CVDate(Text4) - 1 \ Text4 = CVDate(Text4) + 1
End Sub End Sub
Instrucciones del Botn Salir
Prvate Sub Command_Click()
I f MsgBox( ESTA SEGURO DE SALIR , 36, CUIDADO ") = 6 Then End
End Sub
CAPTULO IX: Manejo de Base de Datos j
MODIFICAR VARIOS REGISTROS A LA VEZ
Se puede hacer un programa para modificar o adicionar varios registros al
mismo tiempo usando el control DBgrid y los mtodos de transacciones:
BeginTrans, CommitTrans y RollbackTrans.
BEGINTRANS
Comienza una nueva transaccin.
COMMITTRANS
Finaliza la transaccin actual y guarda los cambios.
ROLLBACKTRANS
Finaliza la transaccin actual e ignora las modificaciones realizadas. Res
taura las bases de datos al estado en que estaban cuando comenz la tran
saccin actual.
APLICACION DESARROLLADA N 58
s. MODIFICACION DE REGISTROS
NOMBRE DIRECCION DISTRITO TELEFONO FECNAC
CARLOS MORALES AREQUIPA 365 CHICLAYO 202020 1 8/0 7 / 1 9 6 9
DANIEL ALARCON WIRACOCHA 315 LA VICTORIA 232G89 15/10 / 1 9 6 6
LILIANA ALARCON MARIA IZAGA CHICLAYO 227191 20/12 / 1 9 9 0
MANUEL CARBAJAL SALAVERRY 987 CHICLAYO 209875 18/06 / 1 9 6 0
MARIA CASTAEDA WIRACOCHA 325 LA VICTORIA 205048 23/ 12/ 1998
TITO RAMIREZ EL DORADO 45G J.L.O. 236975 07 /11 / 1 9 7 0
1 .......

i mpezaf tas Modificaciones~ij Grabar todas las s Modificaciones i Ignorar todas las Modificaciones
M
1 Dibuje los controles y asgneles sus propiedades respectivas.
2 Escriba las siguientes instrucciones:
Instrucciones del Form^Load
Prvate Sub Form_Load()
Command! .Enabled = True
Command2.Enabled = False
Command3. Enabled = False
DBGridl .AllowUpdate = False
DBGridl .AllowAddNew = False
Datal.Refresh
End Sub
Instrucciones Botn Grabar
Private Sub Command2_Click()
CommitTrans
Form_Load
End Sub
Instrucciones Botn Empezar
Private Sub Commandl_Click()
BeginTrans
DBGridl .AllowUpdate = True
DBGridl .AllowAddNew = True
Commandl .Enabled = False
Command2. Enabled = True
Command3. Enabled = True
End Sub
Instrucciones Botn Ignorar
Private Sub Command3_Click()
Rollback
FormJLoad
End Sub
G r u p o E d i t o r i a l Megabyte
397

VISUAL BASIC como debe ser.. . '"-.y


MANEJO DE FOTOS
Usando Visual Basic usted puede grabar fotos en sus tablas. Para ello, debe
definir el campo tipo Binario si la tabla la crea con Visual Basic o de tipo
Objeto OLE si la crea con Access.
Para mostrar la foto grabada en un registro puede utilizar el control Image.
Este control tiene las propiedades DataSource y DataField igual que las
cajas de texto para poder conectarse con el campo que tiene la foto. Las
fotos a utilizar deben estar escaneadas y almacenas en una carpeta deter
minada. En esta aplicacin la base de datos se llama Personal y la tabla
Empleados cuya estructura tiene cuatro campos es:
Nombre Text 30 Direccin Text 25 Telefono Text 10 Foto Binario
APLICACIN DESARROLLADA N 59
La siguiente aplicacin permite consultar, adicionar, modificar y eliminar
registros incluyendo la foto de cada uno de ellos.
-|Pl*l
IALARCON GARCIA LILIANA
CASTAEDA PACHECOJUAN
MEDINA CHISCUL CESAR
PORRO CHILLI MARCO
RAMIREZ VASQUEZ TITO
TERRONES PALACIOS LOURDES
d
Opciones Disponibles
ADICIONAR I MODIFICAR I ELIMINAR
Informacin de los Empleados
FOTO
NOMBRE |ALARC0N GARCIA LILIANA
f e * - V -
DIRECCION |SANJ0SE 6786
W W . .
TELEFONO | a2124
t i L k
Cuando se elige la opcin Adicionar o Mod if ica r se muestran otros botones
para poder cumplir con dicha opcin:
PO
[ALARCON GARCIA LILIANA
CASTAEDA PACHECO JUAN
MEDINA CHISCUL CESAR
PORRO INFANTES OSCAR
RAMIREZ VASQUEZ TITO
TERRONES PALACIOS LOURDES
Opciones Disponibles
.ADICIONAR I MODIFICAR I ELIk
Informacin de los Empleados
NOMBRE P
IRRO INFANTES OSCAR
DIRECCION 456
TELEFONO 666968
. Sinf ote___J
CAPITULO IX: Manejo de Base de Datos ^ H
Cuando se elige la opcin eliminai; se muestra una ventana de advertencia:
%EMPLEADOS
NOMBRES
TE
ALARCON GARCIA LILIANA
CASTAEDA PACHECrgri i j i .t
MEDINA CHISCUL CE!
PORRO INFANTES OS
RAMIREZ VASQUEZ T JJ
TERRONES PALACIOS
Opci ones Disponibles
ADICIONAR I MODIFIc w i i n
Informacin de los Empleados
NOMBRE
FOTO
[TERRONES PALACIOS LOURDES
ESTASEGURODEELIMINARA ESTE EMPLEADO
GRABAR CANCELAR
Seleccionar su Foto
Siojffto 1
Cuando hace cl ick en el botn Seleccionar su Foto debe buscar la carpeta
donde grab las fotos escaneadas. En el ejemplo, las fotos han sido graba
das como *.BMP:
Buscar en. f EMPLEA DO S
Jgaj e| HST m l
^ C A ST A ED A PACH ECO JUAN. bmp
j Sj C H I R I N O S P A ST O R OSCAR.bmp
j gf C OR O N A D O V EN T UR A HECTOR. bmp
JPf F ER N A N D EZ G UER R ER O ANAXIMANDRO.bmp
45% LIZA A R A UJ O CARLOS.bmp
ggf M EDI NA C H I SC UL CESAR.bmp
JLl_________________________________1
^ M O R A L E S J UL I A N CARL
^ P A C H EC O R O Q UE MIRE
l ^ r POR RO CHULLI MARCO
P O R T A L ES G RA N A D OS
d S R AMI REZ SUA R EZ LILI/
R AM I R EZ V A SQ UEZ T IT
-J
. No m b r e d e a r c h i v o :
A r c h i v o s d e tipo:
Abr ir
F o t o s D i s p o n i b l e s
I A b r i r c o m o 3 I0 le c t ur a
" 3
DESARROLLO DE LA APLICACIN
PASO N 01: D I B U J A R LOS C ON TRO LE S.
Labell
Frame2
LabeC t S J T
Ramel
Command! ! Command2 1 Command31
Label3 ( f ex(2
LabeM (r^T
Command4 I
| n| <|Pa(a1 T j I
Command5
G r u p o E d i t o r i a l Megabyte
Label5
CommandG
Command?
399
PASO N 02: ASIGNAR LAS PROPIEDADES A LOS CONTROLES.
Al control Datal asgnele las propiedades DataBaseName y RecordSource,
al Dbcombol las propiedades RowSource, Listfield y en su propiedad Style
asgnele el valor 1 y estire el control para visualizar varios registros. A las
cajas de texto y al control Image 1 asgneles en su propiedad DataSource y
DataField los campos correspondientes. A los botones de comandos, asg
neles en su propiedad Caption el texto como se muestra en la aplicacin a
desarrollar.
PASO N 03: E S C R I B I R L AS INSTR U C CI ON ES.
D e f i n i r las variables a nivel de f o r m u l a r i o .
Option Explicit
Dim REG As Recordset
Instrucciones de los procedimientos a crear
Sub DESACTIVARO
Frame 1.Enabled = False
Command4.Visible = False
Commands.Visible = False
Command.Visible = False
Command7.Visible = False
Image 1.Stretch = True
Image 1 .BorderStyle = 1
End Sub
Instrucciones del Evento Form_Activate
Private Sub Form_Activate()
DESACTIVAR
Datal.Visible = False
Set REG = Datal.Recordset
End Sub
Instrucciones del botn A d i c i o n a r
Private Sub Command 1_Click()
ACTIVAR
REGAddNew
Textl .Set Focus
End Sub
Instrucciones del botn M o d i f i c a r
Private Sub Command2_Click()
ACTIVAR
REG. Edit
Textl. Set Focus
End Sub
|1111|> VISUAL BASIC como debe ser.. .
G r u p o E d i t o r i a l Megabyte 400
Sub ACTIVARQ
F rame 1.Enabled = True
Command4. Visible = True
Command5. Visible = True
Command.Visible = True
Command7. Visible = True
Image 1.Stretch = True
End Sub
Instrucciones del botn E l i m i n a r
Prvate Sub Command3_Click()
IfMsgBox( "ESTA SEGURO DE ELIMINARA ESTE EMPLEADO",36, "CUIDADO ")=6 Then
REGDelete
Datal.Refresh
End I f
End Sub
Instrucciones del botn G r a b a r
Prvate Sub Command4_Click()
REG. Update
DBCombol .ListField = "NOMBRE"
DESACTIVAR
End Sub
Instrucciones del botn Cancelar
Prvate Sub Command5_Click()
REG. Cancel Update
DESACTIVAR
End Sub
Instrucciones del botn Seleccionar su Foto
Prvate Sub Command_Click() ____________ ___________
Rem Carcter N A L T + 124
CommonDialogl . F i l t e r - "Fotos Disponibles\*.bmp\Todas (*. * j | * . * "
CommonDialogl. ShowOpen
I magel.Picture = LoadPicture( CommonDialogl.filename)
End Sub
Instrucciones del botn Sin Foto
Prvate Sub Command7_Click()
Image 1 .Picture = LoadPicture("")
End Sub
Instrucciones del c o n t r o l D B c o m b o l - Evento Change
Prvate Sub DBCombol_Change()
Dim C As String
C = "NOMBRE L1KE + DBCombol +
REGFindFirst C
I f REGNoMatch Then
Framel .Visible = False
Else
Frame 1 .Visible = True
End I f
End Sub
Instrucciones del c o n t r o l D B c o m b o l - Evento C l ic k
Prvate Sub DBCombol_Click(Area As Integer)
DBCombol JChange
End Sub
CAPTULO IX: Manejo de Base de Datos ^11I^
G r u p o E d i t o r i a l Megabyte 401
VISUAL BASIC como debe ser.. .
MANEJO DE VARIAS TABLAS
Para manejar dos o ms tablas de una base de datos se puede utilizar un
control Data para cada una de ellas o unir las tablas y utilizarlas con un solo
control Data. Esto depende del tipo de aplicacin que se desea desarrollar.
La siguiente aplicacin muestra un ejemplo de manejar dos tablas con un
solo control Data para cada una de ellas y tambin un solo control Data para
las dos.
Se tiene una Base de Datos llama T IEN D A que contiene dos tablas: VEN
DEDORES y VENTAS con la siguiente estructura:
VENDEDORES
Codigo Text 3
Nombre Text 30
Telefono Text 10
VENTAS
Codigo Text 3
FechaVenta Date
Monto Currency
DistritoVenta Text 20
FechaVenta es la fecha en la cual cada vendedor realiza la venta y
DistritoVenta es el nombre del distrito donde se realiza la venta.
La aplicacin debe permitir visualizar las ventas realizadas por cada vende
dor, registrar las ventas y listarlas en forma general, por distrito o por fecha.
Para una mayor comodidad, se debe realizar en un slo formulario usando el
control SsTab, como se muestra a continuacin:
:TaP
U S O D E V A R I A S T A B L A S
v e n t a s !
VENDEDORES
T
REGISTRAR
X
JU por
JULIO D AVI LA
TERESA UBILLUS
NOEMI MONTAO
JORGE CASTRO
VER SUS VENTAS
D A T O S D E L V E N D E D O R
CODIGO
NOMBRE
TELFONO
1232426
001
001
001
VENTAS REALIZADAS
FE CHAI
0 3 / 0 1 / 0 0
10/02/00
22/02/ 00
MONTOlDISTRITO
50 ETEN
50 J.L.O
600 TU MAN
[ Mi < [ v e n d e d o r e s T h! h] <[ v e n t a s | h) | n|< [ i n f o r m e [ h] SALIR
402
G r u p o E d i t o r i a l Megabyte"
CAPITULO IX: Manejo de Base de Datos
USO DE V A R I A S TABLAS
RE G I S T R A R
VENDEDORES DATOS D E L V E N D E D O R
CODIGO
J4
NOMBRE
TELFONO
ORGE CASTRO
|201665
I N F OR M AC I N DE L A V E N T A R E A L I Z A D A
CODIGO 1004
( y
FECHA DE VENTA 114/02/02 GRABAR
DISTRITO DE VENTA
" " X
MONTO
I..
CANCELAR
I H| < IVENDEDORES | i ) I h I < [ VENTAS | H | | l < H INFORME | H ] SAUF!
En las dos primeras pginas cada tabla se maneja con su respectivo control
Data, pero en la tercera se encuentran unidas y se utiliza un solo control Data.
En esta aplicacin se utilizan 3 controles Data, el Datai maneja la informa
cin de la tabla VENDEDORES, el Data2 la informacin de la tabla VEN
TAS y el control Data3 maneja la informacin de las dos tablas que se
encuentran unidas a travs de una instruccin SQL en una consulta (Query)
llamada INFORME.
r T n r a
VENTAS f REGISTRAR f L I S T A D O
POR : _____________________________
( * DISTRITO Ingrese el Distrito | V E r | TODOS |
r FECHA
CODIGO NOMBRE TELEFONO FECHAl MONTOl DISTRITO
001 JULIO DAVILA 232426 03 / 0 1 / 0 0 ! 50 ETEN
001 JULIO DAVILA 232426 1 0 / 0 2 / 0 0 50 J.L.O.
001 JULIO DAVILA 232426 2 2 / 0 2 / 0 0 ! 600 TUMAN
002 TERESA UBILLUS 362166 2 5 / 1 2 / 9 9 250 LA VICTORIA
002 TERESA UBILLUS 362166 0 6 / 0 1 /0 0 ! 100 J.L O.
002 TERESA UBILLUS 362166 0 2 / 0 2 / 0 0 ! 100 PO MALCA
002 TERESA UBILLUS 362166 0 5 / 0 2 / 0 0 50 PO MALCA
002 TERESA UBILLUS 362166 2 2 / 1 0 / 9 9 100 PCI MALCA
004 JORGE CASTRO 201665 15/ 0 2 / 0 0 200 LA VICTORIA
< | --------------- > r
U SO D E V A R I A S T A B L A S
[T<| < VENDEDORES TTl | l < | < VENTAS | m | Il<[ 4 IINFORME | h ] SALIR |
Antes de comenzar a desarrollar la aplicacin debe crear la base de datos y las
dos tablas, luego crear una consulta donde se unan las dos tablas anteriores.
G r u p o E d i t o r i a l Megabyte
403
.......... _ ................................ o
S R k > VISUAL BASIC como debe ser.. . <
UNIENDO TABLAS DE UNA BASE DE DATOS
Para unir dos o ms tablas se utiliza la instruccin SQL llama SELECT
explicada en la pgina N 343. Su sintaxis para unir tablas es:
SELECT * FROM Nomb_Tablal INNER JOIN Nomb_Tabla2 ON Condicin
El asterisco ( * ) indica que al unirse las tablas deben pasarse todos los cam
pos de ambas tablas.
Si Usted, desea indicar slo algunos campos debe escribirlos en lugar del
asterisco separados por una coma.
Por ejemplo:
Para unir la tabla Vendedores con la tabla Ventas con todos sus campos se
debe escribir lo siguiente:
Select * From Vendedores InnerJoin Ventas On Vendedores.Codigo=Ventas.Codigo
Para unir la tabla Vendedores con la tabla Ventas pero slo los campos
Codigo, Nombre Fecha y Monto, se debe escribir en una sola lnea lo si
guiente:
Select Vendedores.Codigo, Nombre, Fechaventa, Monto From Vendedores Inner Join
Ventas On Vendedores.Codigo=Ventas.Codigo
Estas instrucciones se deben escribir en la ventana de Instrucciones SQL
que se visualiza al crear las tablas para que al grabarla se obtenga una
consulta, donde estn unidas las dos anteriores la cual se puede utilizar casi
como cualquier otra tabla, pero donde no puede adicionar, modificar, etc.,
porque es de slo lectura.
N O T A :
1. Cuando especif ique los nombres a v is u a l iz a r , debe e s c r i b i r l o s
correctamente, como se encuentran en la estructura. Por ejemplo, si
escribe Nombres en lugar de Nombre, se muestra el mensaje:
E s c r i b a u n v a l o r p a r a e l p a r m e t r o : | A c e p t a r
C a n c e l a r
2. Al unir las tablas puede aplicar todo lo explicado en el tema de instrucciones
SQL (pgina N 343) como por ejemplo Where, Order By, etc.
404 G r u p o E d i t o r i a l Megabyte
CAPITULO IX: Manejo de Base de Datos
VENTANA PARA ESCRIBIR LAS INSTRUCCIONES SQL
i wVi sDat a: C:\ Aichivos de programa\DevStudio\VB\TIENDA.mdb
Archivo Utilidad Ventana Ayuda
i L a j w m _ L d
JDJXJ me
SI f 1 Properties
.+: 1 0 VENDEDORES
1 0 VENTAS
H I nstruccin SQL
~ I
-J
L i s t o U s u a r i o : ad m*n ^
En esta ventana debe escribir las instrucciones para unir las dos tablas.
Cuando la i n s t r u c c i n no alcanza en la ventana, el cu rs o r salta
automticamente a la siguiente lnea (no pulse a tecla ENTER).
El botn Eje cuta r (Excut), permite ejecutar las instrucciones SQL. Debe
utilizar este botn para probar la instruccin escrita.
El botn B o r r a r (Clear), borra la instruccin SQL de la ventana para escribir
una nueva.
El botn G u a r d a r (Save), pide el nombre de la Consulta a crear donde se
almacenar el contenido de las dos tablas unidas.
Cuando un click en el botn Guardar se muestra el siguiente mensaje, pidiendo
el nombre de la consulta a crear:
VisData
Escriba el nombre del QueryDef:
Aceptar
Cancelar
G ru p o E d i t o r i a l Megabyte 405
^ VISUAL BASIC como debe ser.. . <
Despus de asignar el nombre y hacer click en Aceptar, Visual Basic
le pregunta si es una consulta de paso a travs de. Haga cl ick en No.
Luego, se muestra el nombre de la consulta creada junto a las dos tablas. En
el ejemplo la consulta se llama Informe.
Archi vo Utilidad Ventana A^
a l i g o l I b
EBS5mBH3ZEI
Si
g ; ES * P r o p e r t i e s
+ M i VENDEDORES
l f . ( p VENTAS
J P I N F O R M E _____
gi l I n s t r u c c i n SQ L
Ejecutar
SELECT * F RO M VENDEDORES INNER J O I N VENTAS O N
VENDEDORES, c o d i g o VENT AS . C O D I G O
:
L i s t o
U s u a r i o : a d m in
DESARROLLO DE LA APLICACIN N 60
PASO N 01: DIBUJAR LOS CONTROLES
!Ti. o
Lot. ol
(DBConiol
C o m m a n d l
L a b e l 2
L a b e l J
LaboM Labol/
B =
I m I <l oXTi I h I I m'I I d<<..? V 1!] Mi i rv.^-) 1il Command?
j r
Lbl8
Jr . ........
C o r n m a n d 2
I O I.bel13
Laboli I Loboli 4
Label I6
7
Laboll 0
fr'^rr
| t i*
Commands
IjLjl],. j t E a l i i l i J ' j t f l U i L s J " * ^ ' .*JD ^ 1-
406
G r u p o E d i t o r i a l Megabyte-^
CAPITULO IX: Manejo de Base de Datos
f H ? IM1 Ih ^rsrn
Fi arne4
<* O p t i o n l
C o m m a n d s j CommandC
EF
I h I * | pta1 I l l | l < | 4 l oal2 1M i | w l 0ala3 | H l CornMnd? |
----------- --------- --------------.--- ------- ---...................... .... ...........................|
PASO N 02: ASIGNAR LAS PROPIEDADES A LOS CONTROLES
CONTROL
Datai
Data2
Data3
CONTROL DATA
DATABASENAME RECORDSOURCE CAPTION
Tienda Vendedores Vendedores
Tienda Ventas
Tienda Informe
DECOMBO
CONTROL ROWSOURCE LISTFIELD
DBcombol Datai Nombre
DBcombo2 Datai Nombre
ETIQUETAS
CONTROL DATASOURCE
Label5 Datai
Label Datai
Label7 Datai
Label 12 Datai
Label 13 Datai
Label 14 Datai
Ventas
Infome
STYLE
1
1
DATAFIELD
Codigo
Nombre
Telefono
Codigo
Nombre
Telefono
El resto de Etiquetas y Comandos slo la propiedad Caption como se muestra en
la aplicacin
CAJAS DE TEXTO
CONTROL DATASOURCE DATAEIELD
Textl Data2 Codigo
Text2 Data2 Fechaventa
Text3 Data2 Distritoventa
Text4 Data2 Monto
Text5 En Blanco En Blanco
DBGRID
CONTROL DATASOURCE
DBgridl Data3
G r u p o E d i t o r i a l Megabyte
407
PASO N"(ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Instr.. del evento FORM ACTIVATE Instrucciones del botn SALIR
Prvate Sub Form_Activate() Prvate Sub Command7_Chck()
Frame3. Visible = False End
End Sub End Sub
PAGINA N 01 - VENTAS
Instrucciones del botn VER SUS VENTAS
Prvate Sub Commandl_Click()
DBGridl .Visible = True
DatcHRecoidSource ="SELECT*FROMVENIASWHERECODIGO "&Label5&
Data2.Refresh
If Data2.Recordset.RecordCount = 0 Then
MsgBox "El vendedor no ha realizado ninguna venta",64, "Lo siento"
Endlf
DBCombol .SetFocus
End Sub
Instrucciones del Control DBcombol (eventos Changey Click)
Prvate Sub DBCombol_Change()
Dim DATOS As String
DATOS = "NOMBRELIKE & DBCombol &
Datal.Recordset.FindFirst DATOS
DBGridl. Visible = False
If Datal .Recordset.NoMatch Then
Frame 1.Visible = False
Else
Framel.Visible = True
Endlf
End Sub
Prvate Sub DBCombol_Click(Area As Integer)
DB Combo lJChange
End Sub
PAGINA N 02 - REGISTRAR
Instrucciones del Control Dbcombo2 (eventos Change y Click)
Prvate Sub DBCombo2_Change()
Dim DATOS As String
DATOS = "NOMBRE LIKE & DBCombo2 &
Data 1. Recordset. FindFirst DA TOS
If Datal.Recordset.NoMatch Then
Frame2. Visible = False : Command2.EnabIed = False
Else
Frame2. Visible = True : Command2.Enabled = True
Endlf
End Sub
Prvate Sub DBCombo2_Click(Area As Integer)
DBCombo2_Change
End Sub
d S S f e VISUAL BASIC como debe ser.. .
4 0 8 G r u p o E d i t o r i a l
Instrucciones del botn CANCELAR
Private Sub Command4_Click()
Data2.Recordset. CancelUpdate
Frame3. Visible = False
DBCombo2.Enabled = True
Command2. Enabled = True
End Sub
CAPTULO IX: Manejo de Base de Datos
Instrucciones del botn REGISTRAR SU VENTA
Prvate Sub Command2_Click()
Frame3. Visible = True
DBCombo2. Enabled = False
Commandl.Enabled = False
Data2.Recordset.AddNew
Textl = Label 12 : Texl2 = Date
Text3. SetFocus
End Sub
Instrucciones del botn GRABAR
P r v a t e Su b C o m m a n d 3 _ C l i c k ( )
D a t a l . R e c o r d s e t . Update
Frame3.Visible = False
DBCombo2. Enabled = True
Command2.Enabled - True
Data3. Refresh
D a t a l .Refresh
D a t a l . Refresh
E n d S u b
PAGINA N 03 - LISTADO
Instrucciones del botn VER
Private Sub Command5_Click()
I f Option 1 Then
Data3.RecordSource= "SELECT*FROMINFORMEWHEREDISTRITOVENTA= "&Text5&
Else
I f IsDate(Text5) Then
Data3.RecordSource= "SELECT* FROM INFORME WHERE FECHAVENTA=CDATE( Text5 &'")"
Else
MsgBox "NO HA INGRESADO UN FECHA CORRECTA", 16, "VERIFIQUE"
E n d l f
E n d l f
Data3. Refresh
DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS
I f Data3.Recordset.RecordCount = 0 Then
MsgBox "NO HAY REGISTROS QUE CUMPLEN LA CONDICIN",64, "LO SIENTO"
End I f
End Sub
Instrucciones del botn TODOS
Private Sub Command_Click()
Data3.RecordSource = "SELECT * FROM INFORME"
Data3. Refresh
DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS"
End Sub
Instrucciones del control OPTION1
Prvate Sub Optionl_Click()
Labell9="Ingrese el Distrito"
End Sub
G r u p o E d i t o r i a l Megabyte
Instrucciones del control OPTION2
Prvate Sub Option2_Click()
Labell9 - "Ingrese la Fecha"
End Sub
40 9
VISUAL BASIC como debe ser.. .
ERRORES MAS COMUNES
Microsoft Visual Basic
Error '3131' en tiempo de ejecucin :
Error de sintaxis en la clusula FROM.
lerminar Depurar Ayuda
Ha escrito en forma incorrecta
la instruccin Select. Por ejem
plo, no dej espacio despus
de la palabra WHERE.
I Microsoft Visual Basic
No ha ingresado informacin
en el campo indicado antes de
grabar.
Por cada campo creado se pue
de indicar que puede quedar
vaco o no, activando o
desactivando la siguiente ca
silla del campo:
Error '3315' en tiempo de ejecucin :
El campo 'ALUMNOS.OBSERVACIONES' no puede ser una cadena de
longitud cero.
. . i - - i K "
-jf,L-, j Terminar Depurar =J Ayuda
P Permitir longitud cero
Le asign al DBlist las propie
dades DataSource y Datafield.
En un programa de consulta el
control DBlist debe tener slo
las propiedades Rowsource y
Listfield.
Microsoft Visual Basic
Error '3426' en tiempo de ejecucin :
Esta accin fue cancelada por el objeto asociado.
Terminar i Depurar j] Ayuda
Microsoft Visual Basic
Error '3020' en tiempo de ejecucin :
Update oCancelUpdate sin AddNewo Edit.
Depurar Ayuda
No se puede grabar o cancelar
un nuevo registro o las modifi
caciones realizadas sin antes
usar Addnew (botn adicionar)
o Edit (botn modificar).
410
G r u p o E d i t o r i a l Megabyte'5
CAPTULO IX: Manejo de Base de Datos
PREGUNTAS DE REPASO N 09
1. Explique los componentes de una base de datos.
2. Qu es la estructura de una tabla?
3. Qu propiedades como mnimo se le deben asignar a una caja de textos
o etiquetas para mostrar el contenido de un campo?
4. Explique las principales propiedades del control Data.
5. Cul es la diferencia entre los controles DBlist y DBcombo?
6. Cules son los mtodos que permiten manejar registros?
7. Qu es un campo calculado?. Explique cmo se pueden obtener
8. Explique todo lo referente a la instruccin SQL Select.
9. Cul es la ventaja de utilizar variables tipo Recordset?
10. Explique las propiedades del objeto Field.
11. Explique los mtodos BeginTrans, CommitTrans y RollbackTrans
12. Explique cmo se puede almacenar una fotografa en un campo.
13. Explique la instruccin Inner Join.
14. Qu requisitos deben cumplir las tablas para que se unan?
15. Cules son los errores ms comunes cuando trabaja con base de datos
y cuales son las posibles causas.
16. Cul es la d i f e r e n c i a entre las propiedades A l l o w U p d a t e y
AllowAddnew del control DBgrid?
17. Cules son las propiedades bsicas que se le deben asignar al control
Data?
18. Cul es la diferencia entre DBcombo y el Combo?
19. Cmo se evita que el contenido de los campos que se muestran en las
cajas de texto se puedan modificar.
20. Cul es la diferencia entre los controles DBlist y List?
Es muy importante que usted, se formule nuevas aplicaciones
o intercambie aplicaciones propuestas entre sus compaeros
de estudio y desarrollarlas con la finalidad de enriquecer
sus conocimientos
G r u p o E d i t o r i a l Megabyte
411
CAPITULO X
Doten doi Pioducto---------
Nombre
V a l e r d e C o m p r a
uuikjjd
F a c h a eJb V a n c r n i a n l d
{a r r o z
I.Q.V. r
R r # o b d * C o m p r a
U t l i d n d S / T
Ft t c i de Vento (PbJicol f
10.000
m:ms
TTSuC
PROGRAMACION
DAO
CAPTULO X: Programacin DAO
En este captulo se desarrollan entre otras, las siguientes aplicad -es:
%. MANTENIMIENTO DE REGISTROS OSANDO << D.A.O. >>
Datos del Producto
Nombre
A
ACEITE - 1
ALGODON
ARROZ
|ARROZ
Valor de Compra jlOO
Utilidad % j-jo
Fecha de Vencimiento j 30-09-2001
grabar
Cancelar
I.G.V.
Precio de Compra
Utilidad S/.
Precio de Venta (Pblico)
Opciones Disponibles
Adicionar I Modificar I
&
d ?
. PROGRA MAS DE L I ST A D O V EST A D I ST I C A
LISTADOS
rfclCMEIMtta
TOTAL POR VENDEDOR
TOTAL POR DISTRITO
TO TA L POR VENDEDOR V DISTRITO
N V E N D ED O RE S CON MAS VENTAS
DISTRITO CON MAYOR VEN TA
MONTO TOTAL VENDIDO
CANTIDAD TO TA L DE VEN TAS
35E1
\LIZADAS
I k i m i m I I I
SEGUN EL MONTO
SEGUN LA CANTIDAD
Li_l
002
005
004
001
J5
06-01 -2000
06-01 -2000
15-02-2000
1 0- 02-2000
50
100
600
200
C A N T I D A D DE R EG I ST R O S M O ST R A D O S
C A N I i b b
R E G R E S A R I
G r u p o E d i t o r i a l Megabyte
415 4 g $
m > VISUAL BASIC como debe ser.. .
PROGRAMACIN DAO
La programacin DAO (Objetos de Acceso a Datos) permite manejar la
informacin de una base de datos sin el control DATA. En este tipo de
programacin la informacin se maneja a travs de determinados objetos
que tiene Visual Basic.
Los objetos de acceso a datos ms utilizados son:
DBENGINE
El objeto DBEngine representa al motor de bases de datos Microsoft Jet.
Es el objeto de nivel ms alto y contiene y controla todos los dems de la
jerarqua de objetos de acceso a datos.
WORKSPACE
Un objeto Workspace representa una sesin de un usuario. La sesin de un
usuario empieza cuando ste se conecta a la base de datos y termina cuando
cierra la base de datos.
DATABASE
Representa a la Base de Datos que se encuentra activa.
RECORDSET
Representa todos los registros de una tabla o los que resultan de una consulta
con la instruccin SELECT.
FIELD
Representa un campo de una tabla.
FIELDS
Es una coleccin de objetos FIELD y representa a todos los campos de una
tabla. La forma de referirnos a un solo campo est explicado en la pgina
N 353 (Variables tipo Recordset).
NOTA
Cuando inicia una aplicacin, Visual Basic crea en forma predetermina
da los objetos DBENGINE Y WORKSPACE (DBEngine. Workspaces(0)).
Estos objetos se deben utilizar cuando necesite manipular bases de datos
que tengan activada la seguridad o crear un alcance distinto de transaccin.
Todos los objetos Database abiertos en un objeto Workspace comparten un
mismo alcance de transaccin comn. Es decir, cuando se usa el mtodo
BeginTrans en una base de datos, se aplica a todas las dems bases de
datos abiertas en el objeto Workspace. Del mismo modo, el uso del mtodo
CommitTrans contra una base de datos se aplica al resto de las bases de
datos abiertas en el objeto Workspace.
G r u p o E d i t o r i a l M e g a b y t e 416
O
MTODOS PARA MANEJAR LAS BASE DE DATOS
CAPITULO X: Programacin DAO
OPENDATABASE
Abre una base de datos. Su sintaxis es:
SetVariable_BD=Opendatabase( Nomb_Base_Datos ,Exclusivo,Modo,Origen)
Variable_BD
Es el nombre de la variable (Objeto) que va a representar a la Base de
Datos en la aplicacin. Se debe declarar tipo DATABASE a nivel de for
mulario (en la ventana de declaracin del formulario) si slo se va a utilizar
en un formulario, o a nivel de mdulo (en la ventana de declaracin del
mdulo) si se va a utilizar en varios formularios de una aplicacin.
Nomb_Base_Datos
Es el nombre de la base de datos que desea abrir. Si esta en una carpeta
diferente a la actual, debe especificar tambin la ruta.
Exclusivo
Es un valor lgico (True o False). El valor True indica que la base de datos
se abre en forma exclusiva (para un slo usuario). El valor False indica que
la base de datos se abre en forma compartida (para varios usuarios).
Modo
Es un valor lgico (True o False). El valor True indica que la base de datos
se abre en modo slo de lectura, es decir, no se puede modificar. El valor
False indica que la base de datos se abre en modo de lectura y escritura, es
decir se puede modificar.
Origen
Se utiliza para indicar los argumentos de conexin al momento de abrir una
base de datos. El argumento origen se expresa en dos partes: el tipo de la
base de datos, seguido de un punto y coma (;) y los parmetros opcionales.
El tipo de la base de datos, como por ejemplo "ODBC;" o "FoxPro 2.5" debe
indicarse en primer lugar. Los argumentos opcionales van a continuacin sin
un orden especfico y separados por caracteres punto y coma.
NOTA:
Slo el nombre de la base de datos es obligatorio, el resto de parmetros
es opcional.
S i no especifica el v a lo r pa r a los parmetros Exclusivo y Modo, su
valor predeterminado es FALSE.
G r u p o E d i t o r i a l M e g a b y t e
417
OPENRECORDSET
Abre una tabla de una base de datos activada previamente. Su sintaxis es:
Set Variable_RS = Variable_DB.OpenRecordset( Nomb_Tabla ,Tipo,Restricciones)
Variable_RS
Es la variable que va a representar a los registros de la tabla en la aplicacin.
Se debe declarar tipo RECORDSET en el mismo nivel que declar la variable
de tipo DATABASE.
Variable_DB
Es la variable tipo DataBase que utiliz para abrir la base de datos.
Nomb_Tabla
Es el nombre de la tabla que desea abrir. Tambin puede escribir el nombre
de una consulta que cre y grab en la ventana de instrucciones SQL, ade
ms puede escribir tambin directamente una instruccin SQL.
Tipo
Es opcional y se puede utilizar slo cuando abre una tabla, para indica el tipo
de Recordset con el que desea abrirla. Estos tipos pueden ser:
DbOpenTable DbOpenDynaset DbOpenSnapshot
Restricciones
Es opcional y consiste en una constante que asigna una restriccin para el
manejo de la tabla que esta abriendo.
Estas constantes son:
DbDenyWrite:
Los dems usuarios no pueden modificar ni agregar registros.
DbDenyRead:
Los dems usuarios no pueden ver los registros (slo objetos Recordset de
tipo tabla).
dbReadOnly
Slo puede ver los registros y los dems usuarios pueden modificarlos.
DbAppendOnly
Slo puede agregar registros nuevos(slo objetos Recordset de tipo hojas de
respuestas dinmica).
dblnconsistent
Se permiten actualizaciones inconsistentes (slo objetos Recordset de tipo
hoja de respuestas dinmica).
DbConsistent
Slo se permiten actualizaciones consistentes (slo objetos Recordset de
tipo hoja de respuestas dinmica).
f r VISUAL BASIC como debe ser.. .
DbF orwardOnly
El objeto Recordset es una snapshot de desplazamiento hacia adelante.
Observe que los objetos Recordset creados con esta opcin no pueden
duplicarse y que slo admiten el mtodo MoveNext para desplazarse por
los registros.
DbSQLPassThrough
Se evita el procesador de consultas del motor de base de datos Microsoft
Jet. La consulta especificada en el argumento origen de OpenRecordset
se traslada a un servidor de ODBC para su procesamiento.
DbSeeChanges
Genera un error en tiempo de ejecucin si otro usuario modifica los datos
que se estn editando.
CLOSE
Cierra los objetos de acceso a datos, como por ejemplo la base de datos y
tablas. Su sintaxis es :
Variable.Close
Donde Variable es el nombre del objeto que desea cerrar.
NOTA
Las constantes dbConsistent y dbl nconsi stent son mutuamente
excluyentes. Puede utilizar una o la otra, pero no ambas en la misma
instancia de OpenRecordset.
Utilice el indicador dbSeeChanges cuando desee interceptar los cambios
realizados por otro usuario u otro programa de su sistema mientras est
editando o eliminando el mismo registro.
Todos los eventos utilizados con el control DATA, como por ejmplo,
FindFirst, MoveNext, etc., tambin se pueden utilizar en la programacin
DAO.
CAPTULO X: Programacin BAO 4 1 1 1 1
G ru po E d i t o r i a l Megabyte
419
ANTES DE PROGRAMAR CON PAO
Para manejar la informacin de una base de datos usando DAO, debe rea
lizar los siguientes pasos:
1. Declarar las variables tipo DataBase y tipo RecordSet en la ventana de
declaracin del formulario o del mdulo.
Por ejemplo, las siguientes instrucciones declaran la variable DB tipo
DataBase y la variable RS tipo RecordSet para que se utilicen en un
solo formulario porque de declaran en la ventana de declaraciones del
formulario.
_________ I 3 H E !
| (Ge ner al) -r | j ( Decla racion es) |
b > VISUAL BASIC como debe ser. . . < 3
D i r a DB As D a t a b a s e
Di m RS As R e c o r d s e t TT
hr njJJ r
2. A b r ir la Base de Datos y la tabla o tablas en el evento Form_Activate
del formulario.
Por ejemplo, las siguientes instrucciones abren la base de datos llamada
VENTAS que se encuentra en C:\MIS DOCUMENTOS y la tabla llamada
PRODUCTOS de tipo Dynaset. Si la base de datos se encuentra en la
carpeta predetermina del Visual Basic, no es necesario indicar su ruta.
jForm
.............. ............d
j Activate
3
Private
Set DB
Sub Form Activate ()
= OpenDatabase ("C:\MIS DOCUMENTOS\ VENT AS" )
z l
Set RS
End Sub
= DB.OpenRecordset("PRODUCTOS", dtoOpenPynaset)
.... . -
a <I 1
.
3. Verificar que se encuentre activada la casilla de Microsoft DAO 3.5 Object
Libraiy (o similar) en la opcin Proyecto/Referencias (Ver pgina N 354).
Si no se encuentra activada esta casilla se mostrar el siguiente mensaje
al ejecutar la aplicacin:
11 i i i i i i i n
Error de compilacin:
No se ha de finido el tipo de finido por el usuario
A c e p t a r ] | A y u d a |
420 G r u p o E d i t o r i a l Megabyte
fP Proyeclol - Formi (Cdigo)
APLICACIN DESARROLLADA N 61
La siguiente aplicacin permite dar mantenimiento a los registros de una
tabla llamada PRODUCTOS que pertenece a una base de datos llamada
VENTAS. La estructura de la tabla es:
C AM PO T I P O T A M A O
Nombr e del Producto Text 25
Valor de Compra Sin gle ( S e n c i l lo )
Porcentaje de U t i l i d a d Single ( S e n c i l lo )
Fecha de Vencimiento Date/Time (Fecha/Hora)
Por cada registro que se visualiza se debe mostrar el IG V que se obtiene
del Valor de Compra (18%), el Precio de Compra ( I G V ms Valor de
Compra), la Utilidad en soles y el Precio de Venta (Precio de Compra ms
la Utilidad).
CAPITULO X: Programacin DAO
MANTENIMIENTO DE REGISTROS USANDO << D A O. >>
D a l o s d e l P r o d u c t o
N om br e
Ja r r o z
Va l o r d e Compra
{Too
1 *
U t i l id a d % j 10 g r a b a r |
[ a c e i t e
A L G O D O N
H e c h a d e V e n c i m i e n t o 130-09-2001
C a n c e l a r |
( A R R O Z J l
P r e c i o d e Compra
U t i l id a d S / .
P r e c i o d e V e n t a ( P b l i c o ) f 129.81X1
r
t t y a
Opciones I
A d i c io n a r
PASO N 01: D I B U J A R LOS C O N T RO L E S
En esta aplicacin ya no se utiliza el control Data, entonces no se utiliza
tampoco el control Dbcombo, ni Dblist. Los nombres de los productos se
muestran en un control Combo para que se puedan consultar y a las cajas
de texto ya no se les asigna las propiedades Datasource ni DataField.
EB2EQI
j C o m b o l I
Fremei
La b e l l
Label2
Label3
LabeM
JfTexH
j Text2
] T e x t 3
JT ext4
Label5
Label6
Label7
Label8
Label9
L a b e l l O
L a b e l l 1
L a b e l l 2
Frame3
Command6 I Command7 j
Frame2
Command3 j Command4 j Command5 j
Command! O
G r u p o E d i t o r i a l Megabyte 421
PASO N 02: ASIGNAR LAS PROPIEDADESALOS CONTROLES.
Para desarrollar esta aplicacin, debe asignar la propiedad Caption a las
etiquetas, botones de comandos y Frame como se muestra en la aplicacin
a desarrollar y adems:
Las etiquetas N 9, 10, 11 y 12 deben tener en su propiedad BorderStyle el
valor 1 - F ix ed Single.
Los botones de comandos N 6, 7, 8 y 9, deben tener en su propiedad Style
el valor 1 - Graphical y en su propiedad Picture el grfico indicado o
cualquier otro que usted desee.
El control Combol debe tener en su propiedad Style el valor 1-Simple
Combo para consultar a los registros escribiendo las iniciales de su nombre
y para visualizar los nombres de los productos ordenados alfabticamente,
debe tener en su propiedad Sort el valor True.
PASON"03:ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES.
Defini r las variables tipo Database y Recordset y otras variables que se
utilizan en la aplicacin en la ventana de declaracin del formulario.
S k ' VISUAL BASIC como debe ser.. .
HProyectol - Form! (Cdigo) 1-lnH
[(General) (Declaraciones)
5
DimDB As Database *
DimRS As Recordset
DimXNOHBRE, XVALOR, XUTILIDAD, XFECHAAs String v|
H
|
1
J
i
n
n
Crear los siguientes procedimientos:
Sub ACTUALIZAR JJOMBOQ
Combo l.Clear
RS.MoveFirst
Do While Not RS.EOF
Combol.Addltem (RS(0))
RS.MoveNext
Loop
RS.MoveFirst
End Sub
SubMUESTRA()
Textl = RS(0)
Text2 = RS( 1)
Text3 = RS(2)
Text4 = RS(3)
CALCULAR
End Sub
El procedimiento ActualizarjCombo, borra el contenido del Combol y muestra
nuevamente todos los nombres de los productos. El procedimiento Muestra, visualiza
los datos del registro actual en las cajas de texto y llama al procedimiento Calcular.
Sub DESACTIVAR()
Combo 1.Enabled = False
Frame .Enabled - True
Frame2.Enabled = False
Frame 3. Enabled = False
End Sub
Sub ACTIVAR()
Combo 1.Enabled = True
Frame .Enabled - False
Frame2. Enabled = True
Frame 3. Enabled = True
End Sub
422 Grupo Editorial Megabyte-^
Sub CALCULARO
Label9=Format(Val(Text2) *18/100, "###,##0.000")
lflsNioneric(Text2)TheiiLabell0=Fom\at{CDec{label9)+CDec(Text2), "###,##0.000")
fIsNianeric(Text3)ThenLabelll=Fonnat(CDec(LabeU0)*CDec(Text3yi00, ###,##0.000")
Labell2=Fomiat(CDec(LabeU0)+CDec(labelll), ###,##0.000")
End Sub
NOTA : La fu n c i n Cdec, convierte un v a l o r a Decim al.
Instrucciones del evento Form_Load
Prvate Sub Form_Activate()
Set DB = OpenDatabase( C:\MIS DOCUMENTOSWENTAS )
Set RS = DB.OpenRecordset( PRODUCTOS, dbOpenDynaset)
ACTUALIZAR,COMBO
Frame l.Enabled = Falsea
MUESTRA
End Sub
Instrucciones del Botn Grabar
Prvate Sub Command_Click()
On Error GoTo INFORMA
RS(0) = Textl
RS(1) = CDec(Text2)
RS(2) = CDec(Text3)
RS(3) = CDate(Text4)
RS. Update
A CTUALIZAR JCOMBO
ACTIVAR
Exit Sub
NFORMA:
MsgBox No Se Pueden Grabar, 64,
Verifique
End Sub
Instruc. del Botn Cancelar
Prvate Sub Command2_Click()
Textl = XNOMBRE
Text2 = XVALOR
Text3 = XUTILIDAD
Text4 = XFECHA
ACTIVAR
End Sub
CAPTULO X: Programacin DAO
Instrucciones del Botn Eliminar
Prvate Sub CommandS_Click()
IfMsgBox("ESTASEGURO DE ELIMINARESTEPRODUCTO", 36, "CUIDADO")- 6 Tlien
RS.Delete
CommandSjClick
Endlf
ACTUALIZARJCOMBO
End Su
G r u p o E d i t o r i a l Megabyte 423
Instruc. del Botn Adicionar
Prvate Sub Command3_Click()
RS.AddNew
DESACTIVAR
XNOMBRE = Textl
XVALOR = Text2
XUTILIDAD = Text3
XFECHA = Text4
DESACTIVAR
Textl =
Text2 - 0
Text3 = 0
Text4 = Date
Textl.SetFocus
End Sub
Instruc. del Botn Modificar
Prvate Sub Command4_Click()
RS.Edit
DESACTIVAR
XNOMBRE = Textl
XVALOR = Text 2
XUTILIDAD = Text3
XFECHA = Text4
Textl.SetFocus
End Sub
VISUAL BASIC como debe ser.. .
Instruc. del Botn Siguiente
Prvate Sub Command6_Click()
RS.MoveNext
IfRS.EOF Then
MsgBoxUltimo registro, 64, Cuidado
RS.MovePrevious
Else
MUESTRA
E n d l f
End Sub
Instruc. del Botn Primero
Prvate Sub Command8_Click()
RS.MoveFirst
MUESTRA
End Sub
Instruc. del Botn Anterior
Prvate Sub Command7_Click()
RS.MovePrevious
IfRS.BOF Then
MsgBox Primer registro , 64,
Cuidado"
RS.MoveNext
Else
MUESTRA
E n d lf
End Sub
Instrucciones del Botn Ultimo
Prvate Sub Command9_Click()
RS.MoveLast
MUESTRA
End Sub
Instrucciones del Control Combol (Evento Change)
Prvate Sub Combol_Change()
Dim C A String
C= [NOMBRE DEL PRODUCTO] LIKE + Combol +
RS.FindFirst C
MUESTRA
End Sub
Instrucciones del Control Combol (Evento Click)
Prvate Sub Combo 1 _Click()
Combol jChange
End Sub
Instrucciones del evento Change de Text2 y text3.
Estas instrucciones llaman al procedimiento Calcular para que al ingresar o modificar
el Valor de Compra y la Utilidad se muestren inmediatamente los resultado.
Prvate Sub Text2_Change()
CALCULAR
End Sub
Prvate Sub Text3_Change()
CALCULAR
End Sub
Instrucciones del Botn Salir
Prvate Sub CommandlO_Click()
RS. Cise
DB. Cise
End
End Sub
424 G r u p o E d i t o r i a l Megabyte <
CAPTULO X: Programacin DAO * 1
CONTROL MSFLEXGRID
El MsFlexgrid es un control que permite mostrar informacin de una o mas
tablas en forma de listado similar al control DBgrid. Se diferencian porque
el Msflexgrid permite trabajar usando el control Data y con la programacin
DAO, en cambio el DBgrid slo trabaja con el control Data. Si va a utilizar
el Msflexgrid con un control Data, slo le debe asignar la propiedad
DataSource. Otra diferencia entre estos es que el Msflexgrid no permite
modificar los registros que muestra (slo de lectura), pero permite ordenar
y realizar clculos con los datos. En la ventana de componentes este control
se llama Microsoft FlexGrid Control.
Sus principales propiedades son:
ALLOWBIGSELECTION
Indica si al hacer un click en el encabezado de la f ila o columna se selecciona
todo su contenido.
ALLOWUSERRESIZING
Indica si el usuario puede modificar el tamao de las filas y/o columnas. Los
valores que se le puede asignar son:
0 No permite modificar
1 Permite modificar el tamao slo de las columnas.
2 Permite modificar el tamao slo de las filas.
3 Permite modificar el tamao de filas y columnas.
BACKCOLOR
Asigna el color de fondo para todas las celdas no fijas.
BACKCOLORBKG
Asigna el color para el fondo del control.
BACKCOLORFIXED
Asigna el color de fondo para las filas y columnas fijas
BACKCOLORSEL
Asigna el color de fondo para las celdas seleccionadas.
COL
Selecciona la columna de una celda. Esto se realiza dentro de un programa.
COLALIGNMENT
Establece cmo se deben alinear los datos en una columna. Los valores que
puede tomar son:
0 izquierda 1 Alineacin derecha 2 Centrado
Por ejemplo, la siguiente instruccin muestra en el centro los datos de la
columna N2.
MSFlexGridl .ColAlignment(2) = 3
G r u p o E d i t o r i a l Megabyte 425
C O L W I D T H
Asigna un ancho a una columna. Por ejemplo la siguiente instruccin asigna
un ancho de 500 twips a la columna nmero 1.
MSFlexGridl. ColWidtli(1) = 2000
COLS
Indica la cantidad de columnas que debe tener el control.
D A T A S O U R C E
Se utiliza cuando trabajamos con un control Data y permite indicar la tabla
cuyo contenido queremos mostrar en este control.
F I X E D C O L S
ndica la cantidad de columnas fijas que debe tener este control. El valor
que se indique debe ser menor que la cantidad de columnas.
F I X E D R O W S
Indica la cantidad de filas fijas que debe tener este control. El valor que se
indique debe ser menor que la cantidad de filas.
F O R E C O L O R
Asigna el color de las letras de todas las celdas no fijas.
F O R E C O L O R F I X E D
Asigna el color de las letras para las filas y columnas fijas
F O R E C O L O R S E L
Asigna el color de las letras de las celdas seleccionadas.
F O R M A T S T R I N G
Asigna un formato para las filas y columnas fijas. En este formato se puede
indicar el tamao de las celdas, su alineacin y el texto que deben visualizar.
El formato de cada columna se debe separar por el carcter AL T + 124 (|).
A l inici o de cada formato puede escribir los caracteres de alineacin <
(Izquierda), A (Centro) o > (Derecha). Tambin puede escribir un punto y
coma el cual indica que el texto formato ser para las filas, en stos casos
ya no se usan los caracteres de alineacin.
Ejemplo:
Las siguientes instrucciones asignan un formato para las columnas. Los
nombres se visualizarn alineados por la izquierda, el telfono en el centro y
el sueldo a la derecha. Los espacios que se dejan en blando indican el ancho
para cada columna.
F = "< NOMBRES |A TELEFONO \> SUELDO"
MSFlexGridl. FonnatStng = F
G R I D C O L O R
Asigna un color para las lineas no fijas del control. Por ejemplo, la siguiente
instruccin asigna el color azul a las lineas no fijas del M s f l e x g r i d l .
M S FlexGridl .GridColor = RGB(0, 0, 255)
G R I D C O L O R F I X E D
Asigna un color para las lneas fijas del control.
VISUAL BASIC como debe ser. . .
M E R G E C E L L S
Permite que las celdas con el mismo contenido se puedan agrupar. Para ello
debe de ordenar las filas o columnas. Esta propiedad se utihzajunto con las
propiedades MargeCol y MergeRow.
Los valores que puede tener son:
T E X x l l ^ Y L E ^1'3re ^ Restrin2e ^ ^ as 3 Restringe las columnas 4 Restringe ambas
Establece el estilo de las letras de las celdas no fijas.
M E R G E C O L
Permite indicar qu columna se debe agrupar. Por ejemplo, para indicar
que se agrupen los registros por la 2do. Columna (campo) se escribe
M sflexg rid 1.Col(2) = True
M E R G E R O W
Permite indicar qu f i l a se debe agrupar.
R O W H E I G H T
Establee la altura de una fila. Por ejemplo la siguiente instruccin asigna
una altura de 500 twips a la f ila nmero 1
MSF le xG r id l . R o w H e i g h t ( l ) = 500
S C R O L L B A R S
Permite asignar una barra de desplazamitno que se visualizar cuando los datos no
alcancen en el tamao asignado al control. Los valores que se le pueden asignar son:
0 Ninguna 1 Horizontal 2 Vertical 3 Ambas
SORT
Indica la forma de ordenar los datos mostrados en el control. Para indicar la
columna por la cual se deben ordenar, debe utilizar la propiedad Col. Los valo
res que puede tomar son:
0 Ninguna
0 Genrica ascendente
1 Genrica descendente
3 Numrica ascendente. Convierte las cadenas a nmeros
4 Numrica descendente
5 Cadena ascendente. No distingue maysculas y minsculas
6 Cadena descendente. No distingue maysculas y minsculas
7 Cadena ascendente. Distingue maysculas y minsculas
8 Cadena descendente. Distingue maysculas y minsculas
Por ejemplo, las siguientes instrucciones ordenan los datos por la segunda
columna en forma ascendente.
M s Fle x g r id l .Col = 2
M s F l e x e r i d l . S o r t = I
T E X T
Permite obtener el contenido de la celda activa o asignarle un valor. Por
ejemplo, las siguientes instrucciones asignan el texto Informacin a la
celda de la columna 2 y f i l a 1.
M SFlexGridl .Col = 2
MS FlexGridl .Row = 1
M S F le x G r id l .Text = "Informacin"
CAPTULO X: Programacin DAO *111111^
G r u p o E d i t o r i a l Megabyte
4 2 7 W
||> VISUAL BASIC como debe ser.. .
TEXTMATRIX
Permite obtener el contenido de una celda indicada por el numero de f i l a y
columna. Por ejemplo, la siguiente instruccin muestra en Label 1el conteni
do de la celda de la f i l a 2 y columna 1.
Label 1 = MS FlexGridl .TextMatrix(2, 1)
TEXTSTYLEFIXED
Establece el estilo de las letras de las celdas fijas.
Los valores que se les puede asignar a las propiedades anteriores son: 0
texto normal, 1 Relieve, 2 Incrustado,3 Relieve con sombreado y 4
Incrustado con sombreado.
WORDWRAP
Acepta un valor True o False que indica si el texto de una celda se puede truncar
entre dos palabras o si una palabra se extender pasado el borde de la celda.
MTODOS DEL CONTROL MSFLEXGRIP
ADDITEM
Permite adicionar filas al control MsFlexgrid.
Su sintaxis es: MsFlexgrid.Additem (Texto", Posicin)
Texto es el texto de desea almacenar en la f i l a que adiciona. En forma
predeterminada, este texto se coloca en la primera columna (Izquierda). Si
deseamos adicionar texto a diferentes columnas al mismo tiempo, se debe
utilizar el carcter de salto de columna: VBTAB.
Posicin es un valor opcional que indica dnde se va a adicionar la nueva
fila. Ni no lo indica, la nueva f i l a se ubica al final del control.
CLEAR
Borra la informacin mostrada en el control, pero no el numero de filas y
columnas que contiene. Por ejemplo: MsFlexgrid.Clear.
MOVE
Mueve el control a una nueva posicin en la pantalla.
Su sintaxis es:
MsFlexgrid.Move Columna, Fila, Ancho, Alto
Columna: es un valor que indica la posicin horizontal donde deseamos
ubicar el control.
Fila: es un valor que indica la posicin vertical donde deseamos ubicar el
control.
Ancho, es un valor opcional que indica el nuevo ancho del objeto.
Alto, es un valor opcional que indica el nuevo alto del objeto.
REMOVEITEM
Borra toda una f i l a del control.
Su Sintaxis es:
MsFlexgrid.Removeltem Valor
Donde valor indica qu nmero de f i l a desea borra.
428 G r u p o E d i t o r i a l Megabvte
APLICACIN DESARROLLADA N 62
Con la misma base de datos y tabla anterior, desarrollar el siguiente programa:
CAPTULO X: Programacin DAO
AO DE VENCIMIENTO PORCENTAJE DE DESCUENTO 2
N* PRODUCTO 1 V. COMPRAI UTILIDAD % VENCIMIENTO ll.G.V. | p COMPRA UTILIDAD SA P. VENTA
1 TRIGO 25.00 5.00 * 12-12-2001 4 50 29.50 1.48 30.98
2 CAFE 15.00 65.00 * 10-10-2000 2.70 17.70 11.51 29.21
__3 FRIJOLES 25 00 10. 0 0 * 31-12-2005 4.50 29.50 2.95 32.45
4 LECHE 8.00 2.00 X 16-09-1999 1.44 9.44 0.19 9.63
5 ARROZ 100.00 1 0 . 0 0 * 30-09-2001 18.00 118.00 11.80 129.8
6 AZUCAR 86 00 50.00 * 16-08-2003 15.48 101.48 50.74 152.22
__ 7 ALGODON 260.00 15.00 % 31-12-2005 46.80 306.80 46.02 352.82
8 ACEITE 36.00 1 0 . 0 0 * 01-01-2001 6.48 42.48 4.25 46.73
PARA ORDENAR. HAGA CLICK EN LA COLUMNA QUE DESEA
Este programa muestra todos los campos de la tabla productos y los siguientes
campos calculados: IGV (18% del Valor de Compra), Precio de Compra (IGV
+ Valor de Compra), Utilidad en Soles (Precio de Compra por el Porcentaje de
Utilidad entre 100) y el Precio de Venta (Precio de Compra + Utilidad en
soles). Tambin ordenar los registros por el campo donde se haga click, adems
debe mostrar slo los productos que se vencen en un ao ingresado o los que
tienen un determinado porcentaje de utilidad.
Esta aplicacin est desarrollada en una nueva aplicacin. Si usted, desea de
sarrollarla en la misma aplicacin anterior (Form2), entonces debe de declarar
las variables DB y RS en un mdulo con la palabra PUBLIC y el evento Form
Actvate del formulario volver a abrir la base de datos y la tabla.
Aqu se utiliza el mtodo FindNext que permite buscar el siguiente registro
que cumpla una condicin. Es algo similar a Findfirst, FindLast y FindPrevious
que buscan el primero, ultimo y anterior registro que cumple una condicin
respectivamente. Tambin se da ejemplos de cmo manipular un objeto
Recordset.
PASO NHLDIBUJAR LOS CONTROLES.
Jex*1 Commendi | LabeC |Text2 Command2 |
Km
Label3
Command4
G r u p o E d i t o r i a l Megabyte
429
PASO N 2:ASIGNAR LAS PROPIEDADES A LOS CONTROLES
Asgneles la propiedad Caption a las etiquetas y botones de comandos y
Formulario, como se muestra en la aplicacin a desarrollar.
PASO N3:ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES
Primero declare las variables en la ventana de declaracin del formulario. Si va a
utilizar varios formularios, declrelas en la ventana de declaracin del Mdulo.
Public DB As Database
Public RS A i Recordset
Dim IGV, PCOMPRA, USOLES, PVENTAAs Single
Dim E As String
Crear el procedimiento LLENAR. Este procedimiento muestra los registros
de la tabla productos en el control MSFLEXGRID1.
Sub LLENARO
MSFlexGridl .Clear
MSFlexGrid 1.Cois = 1
MSFlexGridl.Rows = 1
Rem Escriba la siguiente instruccin en una sola lnea.
MSFlexGrid 1.FormatString= NJ Productob V. Compra | Utilidad% | Vencimientol
I.G.V. I P.Compra I Utilidad S/. I P. Venta
RS.MoveFirst
E = vbTab Asigna el carcter salto de columna a la variable E
Do While Not RS.EOF
I G V = RS(1) * 1 8/ 100
PCOMPRA = RS(1) + IGV
USOLES = PCOMPRA * RS(2) / 100
PVENTA = PCOMPRA + USOLES
I G V = Format(IGV, ###,##0.00 )
PCOMPRA = Format(PCOMPRA, ###,##0.00 )
USOLES = Format(USOLES, ###,##0.00 )
PVENTA = Format(PVENTA, ###,##0.00 )
Rem Escriba la siguiente instruccin en una sola lnea.
MSFIexGridl.AddItem (MSFIexGridl.Rows & E & RS(0) & E &
Format(RS(l), ###,##0.00 ) & E & Format(RS(2), ###,##0.00 ) & % &
E & RS(3) & E & IGV & E & PCompra & E & Usles & E & Pventa)
RS.MoveNext
Loop
RS.MoveFirst
End Sub
Instrucciones del evento Form Actvate
Prvate Sub Form_Activate()
Set DB = OpenDatabase(C:\MIS DOCUMENTOSWENTAS)
S e t RS = DB.OpenRecordsetf PRODUCTOS, dbOpenDynaset)
Rem Muestran los datos en el MsFlexgrid
LLENAR
En d Sub
^ i i l l * VISUAL BASIC como debe ser. . . <E5
4 3 0 G rupo E ditorial M e g a b y t e ' ^ j | | f | |
Instrucciones del Primer botn O K
Private Sub Command l _ C li c k ( )
I f IsNumeric(Textl) Then
Set RS = DB.OpenRecordset( SELECT * FROM PRODUCTOS WHERE
YEAR([FECHA DE VENCI MIENTO ]) = + T e x t l)
I f RS.RecordCount > 0 Then
MSFlexGrid 1.Visible = True
LLENAR
Else
MSFlexGri dl . Visible = False
End I f
End I f
End Sub
Instrucciones del Segundo botn O K
Private Sub Command2_Click()
I f IsNumeric(Text2) Then
M S F l e x G r id l .Clear
MSFlexGridl .Cols = 1
MSFlexGridl .Rows - 1
Rem Escriba la siguiente instruccin en una sola lnea.
MSFlexGridl.FomiatString- N\Producto |> V.Compra\Utilidad% \ Vencimiento\
I.GV. | P.Compra \ UtilidadS/. \ P. Venta"
RS.MoveFirst
E vbTab Asigna el carcter salto de columna a la variable E
Do While Not RS.EOF
RS.FindNext [PORCENTAJE DE UTILIDAD] = + Text2
I f Not R S.NoMatch Then
IGV = RS(1) * 1 8 / 1 0 0
PCOMPRA = RS(1) + IGV
USOLES = PCOMPRA * RS(2) / 100
PVENTA = PCOMPRA + USOLES
IGV = Format(lGV, ###,##0.00")
PCOMPRA = Format(PCOMPRA, ###,##0.00)
USOLES = Fonnat( USOLES, ###,##0.00)
PVENTA = FormatfPVENTA, ###,##0.00)
Rem Escriba la siguiente instruccin en una sola lnea.
MSFlexGridl.Addltem (MSFIexGridl.Rows&E& RS(0)&E&
Fommt(RS(l), ###,##0.00) &E&Fonnat(RS(2), ###,##0.00)& %"&
E & RS(3) & E & IGV& E & PCompra & E & Usles &E&Pventa)
E n d l f
RS.MoveNext
Loop
RS.MoveFirst
End l f
End Sub
CAPTULO X: Programacin DAO i
G r u p o E d i t o r i a l Megabyte 431 w m
Instrucciones del botn TODOS
Prvate Sub Command3_Click()
Textl =
MSFlexGridl .Visible = True
Set RS = DB. OpenRecordset( SELECT * FROM PRODUCTOS)
LLENAR
E nd Sub
Instrucciones del control MsFlexGridl
Estas instrucciones ordenan los registros por el campo donde el usuario hace
Click. Cuando se elige el campo tipo fecha se utiliza una instruccin SQL.
Prvate Sub M SFlexGr idl j C l i c k ( )
I f MSFlexGridl. Col = 4 Then
Sa^MO[xMurd^SEUrr*mOMPIUXJCWS(MmBY[FECHADEVENCMENRjr)
LLENAR
Else
MSFlexGrdl .Sort = 1
End I f
End Sub
Instrucciones del botn SALIR
Prvate Sub Command4_Click()
RS. Cise
DB. Cise
End
E n d Sub
^^ VISUAL BASIC como debe ser.. .
CREA TUS PROPIAS BASE DE DATOS Y
ESCRIBE LOS PROGRAMAS PARA
MANEJAR SU INFORMACIN
EN COMPUTACIN, EL MEJOR
PROFESOR ES:
LA PRCTICA
432
G r u p o E d i t o r i a l Megabyte "
CAPITULO X: Programacin DAO
m
OTRAS INSTRUCCIONES SQL
La instruccin SELECT tambin puede utilizarse con las palabras Group
By y Having.
GROUP BY
Permite agrupar los registros por uno a ms campos de la tabla o consulta.
Se puede utilizar con las funciones:
AVG
SUM
COUNT
MAX
MIM
STDEV
STDEVP
VAR
VARP
Obtiene la media aritmtica de los valores de un campo.
Obtiene la suma de los valores de un campo.
Cuenta un conjunto de registros.
Devuelve el valor mximo de un conjunto de registros.
Devuelve el valor mnimo de un conjunto de registros.
Devuelve n estimaciones de la desviacin estndar de una muestra.
Devuelve n estimaciones de la desviacin estndar de una po
blacin.
Devuelve n estimaciones de la varianza de una muestra.
Devuelve n estimaciones de la varianza de una poblacin.
HAVING
Permite seleccionar los registros agrupados que desea visualizar porque
en estos casos no se puede utilizar la palabra Where.
Teniendo en cuenta la base de datos llamada TIENDA y sus tablas Vendedores y
Ventas cuyas estructuras se indicaron en el captulo anterior, se muestran los
siguientes ejemplos:
Contenido de la tabla Ventas
Contenido de la
tabla Vendedores
CODIGO NOMBRE TELEFONOI
005 DANTE MILLAN ^666364
004 JORGE CASTRO 201665
001 JULIO DAVILA 232426
003 NOEMI MONTANO 242126
002 TERESA UBILLUS 362166
CODIGO FECHAVENTA MONTO IDISTRITOVENTA
001 03-01-2000 50 TEN
001 10-02-2000 50 J.L.O.
001 22-02-2000 600 TUMAN
002 22-10-1999 100 POMALCA
002 25-12-1999 250 LA VICTORIA
002 06-01-2000 100 J.L.O.
002 02-02-2000 100 POMALCA
002 05-02-2000 50 POMALCA
004 22-10-1999 200 LA VICTORIA
004 22-10-1999 100 J.L.O.
004 22-10-1999 20J.L.O.
004 15-02-2000 200 LA VICTORIA
004 22-10-1999 60 MONSEFU
005 06-01-2000 600 REQUE
005 01-02-2000 200 MONSEFU
005 22-10-1999 250 REQUE
005 04-01-2000 150 POMALCA
G r u p o E d i t o r i a l Megabyte
433
VISUAL BASIC como debe ser.. .
La siguiente instruccin une de las dos tablas:
Select * From Vendedores Inner Join Ventas On Vendedores.Codigo= Ventas.Codigo
VENDED0RES.C0DIG0 1NOMBRE 1TELEFONO |VENTAS.C0DIG0| FECHAVENTA MONTOlDISTRITOVENTA |
001 JULIODAVILA 232426 001 03-01-2000 50ETEN
001 JULIODAVILA 232426 001 10-02-2000 50 J.L.O.
001 JULIODAVILA 232426 001 22-02-2000 600 TUMAN
002 TERESAU6ILLUS 362166 002 05-02-2000 50 POMALCA
002 TERESAUBILLUS 362166 002 06-01-2000 100 J.L.O.
002 TERESAUBILLUS 362166 002 25-12-1999 250 LAVICTORIA
002 TERESAUBILLUS 362166 002 02-02-2000 100 POMALCA
002 TERESAUBILLUS 362166 002 22-10-1999 100 POMALCA
004 JORGECASTRO 201665 004 22-10-1999 100 J.L.O.
004 JORGECASTRO 201665 004 22-10-1999 20 J.L.O.
004 JORGECASTRO 201665 004 15-02-2000 200 LAVICTORIA
004 JORGECASTRO 201665 004 22-10-1999 60 MONSEFU
004 JORGECASTRO 201665 004 22-10-1999 200 LAVICTORIA
005 DANTEMILLAN 666364 005 22-10-1999 250 REQUE
005 DANTEMILLAN 666364 005 06-01-2000 600 REQUE
005 DANTEMILLAN 666364 005 04-01-2000 150 POMALCA
005 DANTEMILLAN 666364 005 01-02-2000 200 MONSEFU
Desarrolle los siguientes ejercicios sabiendo que la consulta anterior
se llama INFORME.
1. Mostrar el nombre de cada vendedor, la cantidad de ventas realizadas y
el total vendido ordenados alfabticamente.
SFli3Crl N(3MBRfiCDUNT(NOMBRE)ASCANTTDAD,SUMfMON'ID)AS'IrALJ
FROMINFORMEGROUPBYNOMBREORDERBY SUM(MONTO)
Resultado
NOMBRE 1 CANTIDAD TOTALI
JORGECA5TRO 5 580
TERESAUBILLU5 5 600;
JULIODAVILA 3 700
DANTEMILLAN 4 1200
2. Mostrar el nombre de cada vendedor, la cantidad de ventas realizadas y
el total vendido, ordenados alfabticamente, pero slo los que vendieron
ms de 650 soles.
SELECTNOMBRECOUNT(NOMBRE)ASCANTIDAD,SUM(MONTO)ASTOTALFROM
INFORME GROUPBYNOMBRE HAVINGSUM(MONTO)>650ORDERBYSUM(MONTO)
Resultado
NOMBRE CANTIDAD 1 TOTAL!
JULIO DAVILA 3 700
DANTE MILLAN 4 1200
434 G r u p o E d i t o r i a l Megabyte
3. Mostrar el nmero del mes, la cantidad de ventas y el total en soles
vendidos en cada mes, pero slo del ao 2000.
SEI^iCTMONIH(FECHAVENTA)ASMES,aDUNT(MONTH(FECmVENrrA))ASCANTIDAD,
SUM (MONTO) AS TOTAL FROM INFORME GROUPBYMONTH(FECHAVENTA),
YEAR(FECHAVENTA)HAVINGYEAR(FECHAVENTA)=2(XX)
Resultado
CAPTULO X: Programacin DAO
MES CANTIDAD 1 TOTALI
1 4 900
2 6 1200;
4. Mostrar el nombre y total vendido de los 2 vendedores que ms han vendido.
SEUEOTOPNOMBRESUM(MONTO)AS[TOIALVENDIDO] FROM INFORME
GROUPBYNOMBRE ORDERBY SUM(MONTO)DESC
Resultado
NOMBRE TOTAL VENDIDO 1
DANTE MILLAN 1200
5.
JULIO DAVILA 700
Mostrar el totar vendido por cada vendedor en cada distrito incluyendo
la cantidad de ventas realizadas y el promedio de venta obtenido.
SELECTNOMBREDISrRITOVENIA3UM(MONTO)AS [TUIALVINDIDO],
COUNT(MONTO)ASCANT[DAD,FORMAr(AVG(MONTO),"###,##0.00")
ASPROMEDIOFROMINFORMEGROUPBYNOMBREJDISTRITOVENTA
Resultado
NOMBRE IDISTRITOVENTA TOTALVENDIDOl CANTIDAD 1PROMEDIO
DANTE MILLAN MONSEFU 200] 1 200.00
DANTE MILLAN POMALCA 50 1 150.00
DANTE MILLAN REQUE 850 2 425.00
JORGE CASTRO J.L.O. 120 2 60.00
JORGE CA5TRO LA VICTORIA 400 2 200.00
JORGE CASTRO MONSEFU 60 1 60.00
JULIO DAVILA ETEN 50 ; 1 50.00
JULIO DAVILA J.L.O. 50 1 50.00
JULIO DAVILA TUMAN 600 1 600.00
TERESA UBILLUS J.L.O. 100 1 100.00
TERESA UBILLUS LA VICTORIA 250 1 250.00
TERESA UBILLUS POMALCA 250 3 83.33
6. Mostrar el nombre del vendedor, ao de las ventas, total vendido
observacin, comisin en porcentaje y comisin en soles. Se debe
visualizar el total vendido por cada vendedor slo del ao 2000, una
observacin que indique cumpli o no la venta mnima (650 soles), adems
debe, mostrar la comisin en porcentaje y e soles que le corresponde.
SelectNombre, Year(Fechaventa)As Ao,Sum(Monlo)AsTotal,lifiTotal <650,"NoCumplio La Venia
Minima'VSiCumpli La VentaMinima") As Observacin, Iif(Total<650,"0%"Jit(Total>=650AndTota!
<800,"5%","10^ "))As[ComLsion %!Jif(TotaI>=652AndTotal<800,Total*5/100,Total *l(V100)As
[ComisionEn Soles] FromInfoimeGroupByNombre,YeaitFechaventa)HavingYear(Fechaventa)=2000
Resultado
NOMBRE 1 AOl TOTALl OBSERVACION 1COMISION X 1 COMISION EN SOLES
DANTE MILLAN 2000 950 SI CUMPLIOLAVENTAMINIMA 10% 95
JORGE CASTRO 2000 200 NO CUMPLIOLA VENTA MINIMA 0% 20
JULIODAVILA 2000 700 SI CUMPLIOLAVENTA MINIMA 5% 35
TERESAUBILLUS 2000 250 NO CUMPLIOLAVENTA MINIMA 0% 25
| |^ G r u p o E d i t o r i a l Megabyte 435
<*, PROGRAMAS DE USTADO Y ESTADISTICA
i 1E3HE1 ESTADISTICA
APLICACIN DESARROLLADA N 63
Con la misma base de
datos y tabla anterior,
desarrollar un
programa de listado y
estadstica para los
vendedores y sus
ventas realizadas. Los
programas se deben
llamar mediante un
men de opciones:
SSN fr VISUAL BASIC como debe ser.
VENDEDORES
VENTAS
VENDEDORES Y VENTAS
COMISIONES
>ELAS VENTAS REALIZADAS
1FE CHAVEN TA | MONTO | - |
1 002 25-12-1999 250 _ J
2 005 04-01-2000 150
3 001 03-01-2000 50
4 002 06-01-2000 100
5 00c 06-01-2000 600
6 004 15-02-2000 200
7
L lU
001 10-02-2000
CANTIDADDEREGISTROSMOSTRADOS
fe PROGRAMAS DE USTADO Y ESTADISTICA
ESTADISTICA LISTADOS
TOTALPORVENDEDOR
TOTALPORDISTRITO
TOTALPORVENDEDORYDISTRITO
NVENDEDORESCONMASVENTAS
\LIZADAS
I IUflMTD I . I
I
DISTRITOCONMAYORVENTA i n o SEGUNELMONTO
MONTOTOTALVENDIDO SEGUNLACANTIDAD
CANTIDADTOTALDEVENTAS bco 50
4 002 06-01-2000: 100
5 005 06-01-2000 600
6 004 15-02-2000 200
7 001 10-02-2000
y L l U
CANTIDADDEREGISTROSMOSTRADOS
PASO N 1: D I B U J A R LOS CONTROLES.
Slo debe dibujar tres etiquetas y un MsFlexGrid. Slo asigne propiedades a
las etiquetas y disee un men como se indica en la aplicacin a desarrollar.
436
G r u p o E d i t o r i a l Megabyte
l ASO N 2: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Definir las variables DataBase y Recordset en la ventana de declaracin del
formulario.
Dim DB A Database
Dim RS As Recordset
Instrucciones deI evento Form Actvate
Prvate Sub Form_Activate()
Set DB=OpenDctabase( C!sARCHIVOSDEPROGRAMA\DEVSTUDIO\VIMENDA)
End Sub
Instrucciones del procedimiento LLENAR
Sub LLENAR()
Rem Este procedimiento llena el MsFlexgridl con los registros de la tabla activa
Dim FORMATO, DATOS As String
Dim NCAMPOS, XAs Byte
NCAMPOS = RS. Fields. Count
RS.MoveFirst
MS FlexGridl.Rows = 1
MSFlexGridl .Cois = 1
Rem ASIGNA EL ENCABEZADO AL CONTROL MSFLEXGRID
FORMATO = /W
For X = 1 To NCAMPOS
FORMATO = FORMATO & Space(15) & vbTab & RS(X - lj.Name
NextX
MSFlexGridl .FormatString = FORMATO
Do While Not RS.EOF
DATOS = MSFlexGrid l.Rows
For X = 1 To NCAMPOS
DATOS = DATOS & vbTab & RS(X - 1)
NextX
MSFlexGridl.Addltem (DATOS)
RS.MoveNext
Loop
RS.MoveFirst
Label3 = RS.RecordCount
End Sub
Instrucciones de la opcin Vendedores.
Prvate Sub VENDEDORES_Click()
Labell = LISTADO DE VENDEDORES"
Set RS = DB. OpenRecordset( VENDEDORES )
LLENAR
End Sub
Instrucciones de la opcin Ventas.
Prvate Sub VENTAS Clickf)
Labell = RELACIN DE LAS VENTAS REALIZADAS
Set RS = DB. OpenRecordsetf VENTAS )
LLENAR
End Sub
v - C A P T U L O X: Programacin DAO
G r u p o E d i t o r i a l Megabyte 437 m m
Instrucciones de la opcin Vendedores y Ventas.
Prvate Sub VENDEDORES_VENTAS_Click()
Labe 11 = "LISTADO DE VENDEDORES Y SUS VENTAS"
Set RS = DB. OpenRecordset( "SELECT * FROM VENDEDORES INNER JOIN
VENTAS ON VENDEDORES.CODIGO = VENTAS.CODIGO )
LLENAR
End Sub
Instrucciones de la opcin Comisiones.
Esta op c i n muestra a cada vendedor con su t otal vendido y la co mi si n que le
corresponde slo de las ventas realizadas en el ao 2000. Si el vendedor llega o no
al monto de la venta m ni m a (SI. 650.00) se debe mostrar un mensaje i n dicndolo.
Existen 2 comi siones: 5% para quienes vendieron entre 650 y 800 soles y 10% para
quienes han l legado o superado al mont o de 800 soles.
Prvate Sub COMISIONES_Click()
La be 11 = LISTADO DE VENDEDORES CON SUS COMISIONES"
SetRS=DB.OpenRecordset(SelectNombrv,Year(Fechaventa)AsAo,Suni Monto)As
Total, lifiTotal <650, No Cumpli La VentaMinima, Si Cumpli La VentaMnima) As
Observacin, IifiTotal<650, 0% ,Iij(Total >=650AndTotal< 800, '5%, 10%))As
[Comision %],IifiTotal<650,0JifiTotal>=652AndTotal < 800,Total *5/100,Total *10/100))
As [Comision EnSoles] FromInforme Group ByNonre, Year(Fechaventa) Having
Year(Fechaventa) = 2000")
LLENAR
End Sub
Instrucciones de la opcin Total p o r Vendedor.
Prvate Sub TOTAL_VENDEDOR_Click()
Lab el 1 = TOTAL VENDIDO POR CADA VENDEDOR
Set RS= DB. Opa iReco>zlset('SELECTNOMBRE, COUNVDISTRIOVENTAJAS'
CANTIDAD,SUM(MONTO)AST(JIALFROM1NFORMEGROUPBYNOMBRE)
LLENA
End Sub
Instrucciones de la opcin Total p o r Distrito.
Prvate Sub TOTAL_DISTRITO_Click()
Labell = TOTAL VENDIDO POR DISTRITO
SetRS-DBOpa iRecoidset( ' SELFCW1SIKIIO\rENIACOUNIDISIWIOVENIA)
ASCANTIDAD, SUM(MONTO)ASTOIALFROMINFORMEGROUPBYD1STRTTOVENIA )
LLENAR
End Sub
Instrucciones de la opcin Total p o r Vendedor y Distrito.
Prvate Sub VENDEDOR_DISTRITO_Click()
LABEL1 = TOTAL VENDIDO POR CADA DE VENDEDOR Y DISTRITO
SETRS=DB.OPENRECORDSEIJSELECTNOMBREDISTRrrOVENTASUM(MONrO)ASTOTAL
FROMINFORMEGROUPBYNOMBREDISIRirOVENTA)
LLENAR
Erul Sub
VISUAL BASIC como debe ser.. . *
Instrucciones de la opcin N vendedores con ms ventas.
Prvate Sub VENDEDORES_MAS_VENTAS_Click()
Dim R As Integer
Mbell = "LISTADO DE LOS VENDEDORES CON MAYOR VENTA"
R - InputBox("Valor para N ", "Cantidad de Vendedores con mayor venta", 2)
l f V a l ( R ) > 0 T h e n
Set RS = DB.OpenRecordset(SELECT TOP &R & NOMBRE,
COUNT(NOMBRE) AS CANTIDAD,SUM(MONTO)AS [TOTAL VENDIDO]
FROM INFORME GROUP BY NOMBRE ORDER BYSUM(MONTO) DESC)
LLENAR
Endlf
End Sub
Instrucciones de la opcin Distrito con mayor Venta segn el monto.
Prvate Sub SEGUNMONTO_Click()
Labell = DISTRITO(S) CON MAYOR VENTA SEGN EL MONTO VENDIDO
SetRS = DB. OpenRecordset( SELECTTOP1DISTRITOVENTA, SUM(MONTO)AS
[TOTAL VENDIDO] FROM INFORME GROUP BY DISTRITOVENTA ORDER BY
SUM(MONTO) DESC)
LLENAR
End Sub
Instrucciones de la opcin Distrito con mayor Venta segn la cantidad.
Prvate Sub SEGUNCANTIDAD_Click()
Labell = DISTRITO(S) CON MAYOR VENTA SEGN LA CANTIDAD VENDIDA
Set RS = DB.OpenRecordset(SELECT TOP 1 DISTRITOVENTA, COUNT
(DISTRITOVENTA) AS CANTIDAD FROM INFORME GROUP BY DISTRITOVEN1A
ORDER BYCOUNT( DISTRITOVENTA) DESC)
LLENAR
End Sub
Instrucciones de la opcin Monto total vendido
Prvate Sub MONTOTOTAL_Click()
SetRS = DB.OpenRecordset( SELECT SUM(MONTO) FROM INFORME)
MsgBox LA SUMA TOTAL ES: S/. & RS(0), 64, MONTO TOTAL VENDIDO
End Sub
Instrucciones de la opcin Cantidad total de ventas
Prvate Sub CANTlDADTOTAL_Click()
Set RS = DB. OpenRecordsetf SELECT COUNTf MONTO) FROM INFORME )
Msgbox Se Han Realizado & Rs(0) & Ventas En Total,64 Cantidad De Ventas
End Sub
5 CAPTULO X: Programacin DAO ^ 1
^jjj^ G r u p o E d i t o r i a l Megabyte 439 ^ i || ||
CONTROL MSCHART
Este control permite mostrar informacin a travs de grficos. Sus principa
les propiedades son:
CHARTTYPE
Indica el tipo de grfico para representar la informacin.
COLUMN
Activa una columna del grfico.
COLUMNCOUNT
Indica la cantidad de columnas que debe tener el grfico.
COLUMNLABEL
Asigna un ttulo para una columna. Se muestra en la leyenda.
DATA
Almacena el valor que se desea representar en forma grfica.
FOOTNOTETEXT
Asigna un texto para el pie de pgina del grfico.
RANDOMFILL
Indica si los valores a representar se llenan al azar.
ROW
Activa una f i l a del grfico.
ROWCOUNT
Indica la cantidad de filas que debe tener el grfico.
ROWLABEL
Indica un ttulo para cada f i l a del grfico.
SHOWLEGEND
Acepta un valor lgico que indica visualizar o no la leyenda.
TITLETEXT
Asigna el ttulo principal para el grfico.
APLICACIN DESARROLLADA N 64
M o d if ic a r la aplicacin anterior de tal manera que tenga un botn de
comandos para que cuando se muestre la cantidad vendida por Vendedor po
por Distrito se tenga la opcin de mirar la informacin a travs de un grfico.
VISUAL BASIC como debe ser.. .
L I ST A D O S E S T A D I S T I C A
hr O T A L V E D I P O R C A D A V E N D E D O R
N O M B R E_____________I C A N T I D A D
D A N T E M I L L A N | 4 1 2 0 0
J O R G E C A S T R 5 5 8 0
J UL I O D A V I L A 3 7 0 0
T E R E S A U B I L L U S ___________________ 5 6 0 0
CANTIDAD DE REGI STROS MOSTRADOS
V ER G F I C O I
440 G r u p o E d i t o r i a l Megabyte'
CAPITULO X: Programacin DAO
Para desarrollar esta aplicacin adicione un nuevo formulario a la aplicacin y
dibujar en l un botn de comandos y control SSTAB con slo dos pgina con un
control Mschart cada una.
INSTRUCCIONES DEL BOTON VER GRAFICO DEL FORMULARIO N1.
Prvate Sub Commandl_Click()
Dim X As Integer
With Form2
I f L a b e l s "TOTAL VENDIDO POR CADA VENDEDOR" OrLabell= "TOTAL
VENDIDO POR DISTRITO Then
.Show
! MSChart l.RowCount = RS.RecordCount
! MSChart l.ColumnCount = 1
!MSChart2.RowCount - RS.RecordCount
!MSChart2.ColumnCount = 1
I f Label I = TOTAL VENDIDO POR CADA VENDEDOR Then
!MSChart 1. TitleText = CANTIDAD DE VENTAS POR VENDEDOR
!MSChart2. TitleText = TOTAL DE VENTAS POR VENDEDOR
End I f
I f Label 1 = TOTAL VENDIDO POR DISTRITO Then
!MSChartI. TitleText = CANTIDAD DE VENTAS POR DISTRITO
!MSChart2. TitleText = TOTAL DE VENTAS POR DISTRITO
End I f
RS.MoveFirst
For X = 1 To Form2!MSChart 1.RowCount
!MSChart I. Row = X
! MSChart 1.Column = 1
MSChart I.Data = RS(1)
!MSChart l.RowLabel = RS(O)
!MSChart2. Row = X
!MSChart2. Column = 1
!MSChart2. Data = RS(2)
! MSChart2.RowLabel = RS(O)
RS.MoveNext
NextX
E ls e
MsgBox ELGRFICONOESrDISPONIBLEFARAESTAINFORMACIN, 64, DISCULPE
End I f
End With
End Sub
G r u po E d i t o r i a l Megabyte
441
a s J VISUAL BASIC como debe ser. .
Ejemplo de resultados de la aplicacin anterior.
ii. PROGRA MAS DE L I ST A D O Y EST A D I ST I C A
LISTADOS ESTADISTICA
( T O T A L V E N D I D O P O R C A D A V E N D E D O R
N9 NOMBRE 1CANTIDAD TOTAL
1 DANTE MILLAN ! 4 1200
2 JORGE CAS TRO 5 580
3 JULIO DAVILA 3 700
4 TER ESA UBILLUS 5 600
C A N T I D A D DE R EG I ST R O S M O ST R A D O S
VER GFICO I
SALIR
OB J H l S l
{ C A N T I D A D i
I
MONTOS
CANTIDAD DE VENTAS POR VENDEDOR
4
3 -
2 -
1 -
i g l i i l
iPUl
- jf
- 2
- 1
DANTE MILLAN JORGE CASTRO JULIO DAVILA TERESA UBILLUS
I R EG R ESA R !
W
442
G r u p o E d i t o r i a l Megabyte
CAPITULO X: Programacin DAO
PREGUNTAS DE REPASO N 10
2.
3.
4.
5.
6.
7.
9.
I. Cul es la diferencia entre la programacin con DAO y con el control
DATA.
Cul es la caracterstica de cada, tipo de Recordset?
Explique las principales propiedades del control MsFlexGrid.
Cules son los pasos a seguir para programar con DAO?
Qu caracteres se pueden usar y qu funcin cumplen cuando asignas
la propiedad FormatString a un control MsFlexGrid?
Explique las principales propiedades del control MsChart.
Qu mensaje de error se visualiza cuando ejecutas tu aplicacin sin
activar la casilla DAO?
Cul es la diferencia entre Order By y Group By?
Cul es la diferencia entre DBgrid y MsFlexGrid?
10. Explique e indique un ejemplo con cada funcin que podemos utilizar en
la instruccin SQL Select?
I I . Con cuntos tipos de grficos se puede representar la informacin con
el control MsChart.
12. Explique los mtodos del control MsFlexGrid.
13. Qu significa DAO?
14. Explique los mtodos para manejar una base de datos con DAO.
15. Explique el control MsFlexGrid
16. En qu partes de la aplicacin se pueden definir las variables Database
y Recordset.
17. Explique la propiedad Sort del control MsFlexGrid.
18. Cul es la diferencia entre Where y Having?
19. Explique las formas de abrir una tabla usando DAO.
20. Cmo se pueden unir tres tablas?
-
O
O
o
J
'
No olvides que para pasar al siguiente captulo, debes obtener
un 20 en esta autoevaluacin.
G r u p o E d i t o r i a l Megabyte
443
CAPITULO XI
J Fie Edi [nsert Foimat Dalabase Repoit Window Hdp - | f f | x|
D e|@ B j f S
Design Preview Today0G:34 | CloseI T O l of i [ F i T T i r ^
--------------------- l;,
------ --
Standard Listino Cross-Tab Mail Label
Recct: 9
Summary Graph TopN Drill Down
CREACIN
DE
REPORTES
Choose an Expeil: Dr:
'
f<
T
T
7
IIH
U
li
r
r r t
3 1
.ZZJEL
! ; !
r s i
E
Another Report
Cancel
Help
Custom)
mam h m
CAPTULO XI: Creacin de Reportes
m
Visual Basic permite disear reportes de una manera fcil y rpida. A con
tinuacin se explica el programa Cristal Report que es el generador de
reportes predeterminado de la versin 5.0 de VB. Si usted tiene la versin
6.0 utilice el DATAREPORT que se explica a partir de la pgina N 461.
CREAR REPORTES CON CRISTAL REPORT
Para crear reportes debe seguir los siguientes pasos:
1. De la opcin Complementos (Add-Ins) de la barra de men elija Diseador
de Informes (Report Designer), observar la pantalla siguiente:
2.
-"J i
File Edit Insert Format Database Report Window Help
D E? y a # f poi] & 8^
m
#4 a m &
j i n i r ZEZ
Crystal Reports Pro
De la pantalla anterior elija la opcin File y luego New, que permite
crear un nuevo reporte, observar la pantalla siguiente, donde tiene los
tipos de reporte que puede crear. En cada botn que permite seleccionar
un tipo de reporte se muestra una figura que indica la forma de visualizar
los datos, inicialmente se recomienda seleccionar el tipo Standard.
Choose an Expert:
^ I
Or:
Standard Listing Cross-T ah Mail Label Another Report
=7^
2
3
Cancel
Help
Summary Graph T op N Drill Down
Custom >>>
G ru po E d i t o r i a l Megabyte
4 4 7
p m
o
w M ' VISUAL BASIC como debe ser...
Una vez seleccionado el tipo de reporte que desea disear, debe elegir el
tipo de base de datos a utilizar. Haga click en Archivo (DATA FILE).
*1
Step 1: Tables 12: Fields 13: Sort j 4: Total j 5: Select 16: Style |
Step: Choose data to report on. You can choose multiple tables and add indexes.
Luego, debe seleccionar el nombre de la base de datos que contiene la tabla
o tablas que se van a usar en el reporte.
File Name:
AGENDA, mdb
biblio.mdb
h.rndb
j.mdb
nwind.mdb
pasajes.mdb
List Files of Type:
User Default
Directories:
C: W c h iv o s de progra..AVB

J
_Jc:\
f j Archivos de progra
DevStudio
_ j vb
Clisvr
_ ! Help
Drives:
1c: gogo
Add
Done
SQL Table...
Red.
448 G r u p o E d i t o r i a l Megabyte
Una vez seleccionada la base de datos haciendo doble click en su nombre o
con el botn Agregar (Add), haga click en el botn Terminar (Done) para
salir de la ventana.
La siguiente ventana que se visualiza depende del tipo de reporte elegido.
CAPTULO XI: Creacin de Reportes
El siguiente paso consiste en indicar los campos que desea mostrar en el
reporte, para ello haga click en el botn Next o en 2. Fields. Visualizar la
pantalla siguiente:
ADD->
Permite adicionar al reporte el campo seleccionado.
A L L -
Permite adicionar al reporte todos los campos.
cREMOVE
Permite quitar del reporte el campo seleccionado.
A L L
Permite quitar del reporte todos los campos.
BROWSE DATA
Permite mostrar los datos del campo seleccionado.
FORMULA
Permite adicionar una formula al reporte; es decir un campo calculado. Por
ejemplo si se tiene una tabla llamada amigos con el campo fecha de nacimiento
(fecnac) y Ud. desea mostrar tambin la edad sin tener este campo en la
tabla, entonces la formula ser:
G r u p o E d i t o r i a l Megabyte
449
VISUAL BASIC como debe ser.. .
year( today )-year( amigos.fecnac )
S t e p 1: Ta b l e s 2: Fields J3: Sort j 4: Tot al | 5: S e l e c t j 6: Style j
Step: S e l e c t fields to include in report. Y o u c a n reorder them a n d c h a n g e headings.
2Sl
D a t a b a s e Fields: R epor t Fields: | # | ; |
R ep o r t Fields:
A
D a t a b a s e Fields:
- - A M I G O S ......
D I R E C C I O N
D I S T R I T O
J F l F F l N f l
1 1
Browse D a t a . . . iFormua...i|
A d d ->
All -
<- R e m o v e
A l l
<< B a c k j N e x t >> j Ca n c e l j
NOTA:
Primero el Visua Basic le pedir el nombre de la formula que desea
crear (Formula ame).
Las funciones y los campos utilizados en las formulas se pueden escri
bir o seleccionar.
Today permite obtener la fecha actual en los reportes.
COLUMN HEADING
Permite indicar el encabezado de cada campo que por defecto es el nombre
del campo.
FELICITACIONES
Al ejecutar los pasos mencionados anteriormente Ucl. ya est en con
diciones ele visualizar su reporte, porque los siguientes pasos son op
cionales, para ello haga click en el botn PREVIEW REPORT, obser
var la pantalla siguiente, donde las opciones del men y los botones
de la Barra Estndar permiten tambin disear y mejorar os reportes.
CAPTULO XI: Creacin de Reportes < 1 1
I I I I S ^ M i a i l 1 H I T . i n i x|
mJ File Edit Insert Format Database Report Window Help _ [fll x|
D e? y m. s f s
o |,J)
#4 3 M S i H ] ] f i #
Design Preview Today 06:34 | Close | | ] 1 of 1 f ] |||
----------------------------
!
1 J 1J
ICULJ
n n r \ m i i u :
Records: 9 100%
ORDENACION DE LOS REGISTROS PARA LOS REPORTES
Despus de seleccionar los campos que desea mostrar en el reporte, Ud.
puede indicar el campo por el cual deben salir ordenados los registros, para
ello haga click en el botn N E X T o en 3.SORT, visualizar la pantalla
siguiente.
ADD->
Elige el campo por el cual se desea ordenar los registros en el reporte.
<-REMOVE x|
/-v , i Step 1: Tables 12: Fields 3: Sort 14: Total 15: Select | 6: Style I
Quita el campo seleccio- 1 1 1 1 1
nado para la ordenacin.
ORDER
Se visualiza despus de
elegir un campo y permi
te indicar la forma de or
denar: Ascendente, Des
cendente, En la forma
Origina o por grupos.
G ru po E d i t o r i a l Mega b y 1c 451
Step: Choose fields to sort and groupby, such as Country andthen State.
You can also define customgroups, such asWestern Region.
Report Fields: GroupFields a n
Add >
Report Fields:
am inns niRFrnnt'j
<-Remove
BrowseData... [ Group/Total Tip... |
<<Sack j Next>> | Cancel j | PreviewReport | PreviewSampi* j
Despus de indicar el campo o campos para la ordenacin, Ud. puede indi
car que los campos sean sumados, contados, promediados u obtener el va
lor mximo o mnimo
^ | y | > VISUAL BASIC como debe ser...
TOTALIZAR O CONTAR GRUPOS DE REGISTROS
registros. Estos gru
pos de registros de
penden del campo
por el cual los regis
tro estn ordenados.
Haga click en el bo
tn N E X T o en
4 . T O T A L ,
visualizar la panta
lla siguiente:
J
Step 1: Tables 12: Fields 13: Sort 4: Total |5: Select 16: Style |
Step: Choose fields to subtotal, count etc. Each tab is a group (or subtotal break).
AMIGOS.NOMBRE | Q .....
Subtotals printed on any change of AMIGOS.NOMBRE
n , r n T otal Fields:
Report Fields:
Report Fields:
AMIGOS.DIRECCION
Add ->. I
_ J
AMIGOS.DISTRITO
AMIGOS.TELEFONO . I
Browse Data... I
r zl
Add Grand Totals
Back J Next j Cancel
I I
preview Report | Preview Sample |
ADD GRAND TOTAL
Indica si al final del reporte se debe visualizar el total general.
SELECCIONAR O FILTRAR REGISTROS A VISUALIZAR
Ud. puede seleccionar
los registros que desea
visualizar en los repor
tes. Para ello haga
click en la opcin
5.SELECT, visualizar
la pantalla siguiente:
[ 3 euuaUo vI |l -T.j
CHICLAYO
LAVICTORIA
LAMBAVEQUC_______________________________________
Slf*p I ?at>les \ helrts |3 Soit |4 Total 0 Select |b S'yle J
Step Choosefields oselec(or filter) records inreport Important for <jp**>d
,*J
Report Field.
AMIiiOS I'lRfcLI IUN 3
AMIGOS DISTRITO
Add > I
DrowseData . | Speed Tip.- |
fciack I f W >> I Cancel | | PreviewBeport | PreviewSample j
ADD->
Permite indicar el campo por el cual va a seleccionar a los registros que
desea visualizar en el reporte.
Luego debe formar la condicin que deben cumplir los registros para que se
muestren en el reporte. La condicin se forma con los operadores y con los
valores que Ud. puede elegir.
CAPTULO XI: Creacin de Reportes ^
SELECCIONAR EL ESTILO DEL REPORTE
Ud. puede mejor el aspecto del reporte, para ello haga click en la opcin
6.STYLE, observar las siguiente pantalla. Elija el estilo de reporte que
mejor le parezca. Por cada estilo de reporte se muestra un ejemplo de cmo
se visualiza.
Step 1: Tables |2: Fields j 3: Sort 14: Total |5: Select 6: Style |
Step: Give a report title and choose a style, such as fonts, tables, and pictures.
Title: I
Style:
. . _
Leading Break
Trailing Break
Table
Drop Table
Executive, Leading Break
Executive, Trailing Break
Shading
Red/Blue Border
Maroon/Teal Box
_Ll =
Add picture,
such as
company logo:
Preview Tip...
J___I
Preview Report | Preview Sample j
NOTA:
Una vez creado el reporte debe grabarlo para que de sta manera lo
pueda utilizar o activar desde cualquier formulario utilizando el con
trol CRYSTAL REPORT.
CRYSTAL REPORT m
Es un control que se utiliza para activar desde un formulario cualquier re
porte diseado. Lo puede dibujar en cualquier parte del formulario porque
no se visualiza cuando se ejecuta la aplicacin. En la lista de componentes
se encuentra con el nombre: Crystal Report Control.
Sus principales propiedades son:
G ru p o E d i t o r i a l Megabyte 453
J
VISUAL BASIC como debe ser.. .
CUSTOM (Personalizado)
Tiene las opciones que permiten personalizar el reporte.
Pginasdepropiedades
Base de datos | Seleccin | Informe enlazado a datos
General j Ventanade impresin | Impresor a | Imprimir a un archivo
RepoitFHeNafne: |j |
[estination
(* A una ventana A una impresora C A un archivo
r A la MAPI
Aceptar ~]
Pginasdepiopiedadet
General 1 Ventana de impresin | Impresora Imprimir a un archivo
[ Base de datos ji Seleccin 1 Informe enlazado a datos
yserName: J~"
Cgnneci I
Basede datos | Seleccin ] Informe enlazado a datos
General Ventana de impresin ] impresora ] Imprimi a un archivo
Wl: p ---- !WfS----
rrsr H^iar- rK'
,-------------------- ------- : ( Srabie FixedQouble
jEJEMPLO DE REPORTE .
p MasBulton
lo p
Title
P CfintroIBox P (dinButton
I Aceptar ~|
El
Base de datos | Seleccin Informe enlazadoa datos I
General | Ventana de impresin | Impresora ) u t
Piintrtejiame:
PrintFteTupe. I Registro
J
~3
Cancelar I
DATASOURCE
Su uso en reportes es opcional y permite indicar el nombre del control data
que est ligado a la tabla de la cual se desea obtener el reporte.
REPORTFILENAME
Permite indicar el nombre del reporte que desea imprimir, adems usted
tambin puede seleccionar el destino del reporte que por defecto es
WINDOWS (A una Ventana).
Con la opcin A la Ventana, el reporte se mostrar en la pantalla como una
presentacin preliminar. Si ya tiene una impresora conectada y lista para
imprimir puede elegir la opcin Printer (A un Impresora).
General J
feportFileNarne: | ]
: destination
C Aunaventana Aunaimpresora Aunarchivo
< AlaMAPI
Haga click aqui para
buscar el archivo de
Reporte.
Acepta ~| Cancela' j Aplicar | Ayuda
Su desea indicar el archivo de reporte a imprimir dentro de un programa,
entonces su nombre debe estar entre comillas e incluir la ruta del archivo.
La opcin File (A un Archivo) graba en un archivo el reporte para su uso
posterior. La opcin A MAPI enva el reporte a otra persona en un mensaje
de correo electrnico el formato especificado por la propiedad PrintFileType.
REPORTSOURCE
Para indicar la fuente de los registros para el reporte.
O-CRPTREPORT: Muestra en el reporte todos los especificados al disear
el reporte.
3-CRPTDATACONTROL:Los registros que muestra dependen de los que
contiene el control Data. Se utiliza junto con la propiedad Datasource y
normalmente cuando se filtran registros con la instruccin SELECT.
ACTION
Activar el reporte asignndole el valor 1. Por Ejemplo, para activar el reporte
que est ligado al control CrystalReportl se escribe: CrystalReportl.Action = I
SELECTION FORMULA
Permite escribir una condicin que selecciona los registros a visualizar en el
reporte. Los nombres de los campos deben estar entre llaves. Por ejemplo:
Si tenemos un reporte con la tabla Amigos y queremos mostrar slo los que
viven en Chiclayo, entonces debemos asignar a esta propiedad la siguiente
condicin: {DISTRITO} = "CHICLAYO"
Cundo hemos realizado un reporte con dos o ms tablas, cada campo debe
estar acompaado del nombre de la tabla a la que pertenece. Por ejemplo:
Si tenemos un reporte con la base de datos Tienda (tablas Vendedores y
Ventas) y queremos mostrar todas las ventas cuyo monto esta entre 50 y
100, esta propiedad debe tener: {VENTAS.MONTO} >=50 AND
{VENTAS.MONTO} <=100
PRINTFILETYPE
Especifica el tipo de archivo va a imprimir cuando utiliza como destino del reporte un
Archivo (File).
Los principales valores que puede tener son:
0 Registro: Es la propiedad predeterminada y muestra la informacin columnas, no
utiliza comas ni separadores. Muestra todos los registros con una anchura fija de
campo.
1 Separado por tabuladores: Presenta los datos en forma tabular. Encierra los datos
de campos alfanumricos entre comillas y separa los campos con tabuladores.
2 Texto: Guarda los datos en formato de texto ASCII con todos los valores separados
por espacios. Este estilo se parece mucho a una pgina impresa.
CAPTULO XI: Creacin de Reportes
G r u p o E d i t o r i a l Megabyte 455 < ||||
3 DIF: Guarda los datos en formato DIF (formato de intercambio de datos). Este
formato se usa a menudo para transferir datos entre diferentes programas de hoja
de clculo.
4 CSV: Valores separados por comas. Encierra los datos de campos alfanumricos
entre comillas y separa los campos con comas.
7 RPT de Crystal Reports: Se utiliza el formato estndar RPT de Crystal Reports, la
mayora de las veces para mandar el informe a otro usuario mediante correo
electrnico.
10 XLS de Excel 4.0: Exporta el informe como una hoja de clculo de Microsoft Excel 4.0.
13 WKS de Lotus 123 : Exporta el informe como una hoj a de clculo de formato WKS
de Lotus 123.
14 WB1de Quattro Pro 5.0: Exporta el informe como un archivo de formato WB1de
Quattro Pro 5.0.
15 RTF: Guarda los datos en Formato de texto enriquecido.
16 Word para DOS: Usa el formato de Microsoft Word para DOS para guardar los
datos del informe.
17 Word para Windows: Utiliza el formato de Microsoft Word para Windows para
guardar los datos del informe.
18 WordPerfect: Usa el formato de WordPerfect para guardar los datos del informe.
PRINTFILENAMF,
Especifica el nombre del archivo donde va a guardar el reporte cuando ha seleccionado
el destino a un archivo. Acepta tambin una ruta para el archivo.
WIMX)WSiATE
Se utiliza cuando el destino del reporte es Windows (A la ventana - Presentacin
Preliminar) para indicarci tamao de dicha ventana:
0=Normal
La ventana Vista previa no aparece ni minimizada ni maximizada. Aparece con un
tamao y posicin definidos anteriormente por su aplicacin o por Windows.
1= Minimizada
La ventana Vista previa aparece minimizada como un icono junto a la esquina
inferior izquierda de la pantalla. Se puede restaurar para presentar la ventana en
estado normal.
2 - Maximizada
La ventana Vista previa est maximizada si cuando est abierta ocupa toda la
pantalla.
WINDOWSUTLE
Indica el ttulo que debe tener el reporte cuando se muestre en una ventana.
WINDO W CONTROLS
Especifica si los controles de impresin van a aparecer o no en la ventana de Impresin
cuando se muestre el informe en una ventana.
S S k > VISUAL BASIC como debe ser... ^ 5 CAPTULO XI: Creacin de Reportes
ACTIVAR EL REPORTE
Para activar un reporte desde una aplicacin, primero debe de dibujar
en dicha aplicacin el control Crystal Report que en la ventana de
componentes se llama: Crystal Report Control y asignarle en su
propiedad ReportFileName el nombre del archivo de reporte
previamente creado y que usted desea imprimir. Este control tiene un
slo tamao y al ejecutar la aplicacin no se visualiza en el formulario.
El resto de controles dependen de la aplicacin que desea crear.
IT E L E F O N O "
T5T>n
CODIGO NOMBRE TELEFONO
005 DANTE MILLAN 666364
010 GREGORIO DARIO 265485 ------
007 JORGE ARMANDO 162548
004 JORGE CASTRO 201665
009 JUAN ANIBAL 696963
001 JULIO DAVI LA 232426
006 ILUZ ANGELICA 205056
008 MARIA JULIA 366987
003 NOEMl MONTAO 242126 ^
1 n : ....................................... . . .....................................
|
3?
I M P R I M I R
Si desea que al hacer un click en el botn IMPRIMIR, se active el reporte,
entonces debe escribir en el botn las siguiente instruccin:
CrystalReportl.Action = 1
Jn[EJ n EJEMPLO DE REPORTE
LISTA D O O E f*LEA DOS
COt>l OfCT1 Efll
I JULIO DA VL*
TER ES .-VfjBXl-CjS
MOTAfTO
J JC-E CASTRO
S DAKTE tATLL-4V
IHj'ZAfAJELKA
? JOprJEARMANDO
S MARV. JC/LV4
I OftEOCCOCWRKi
zJ
y g g j l ' G r po E d i t o r i a l Megabyte
4 5 7
C
A
P
I
T
U
L
O

X
I
I
o
u
I
< B
& < !
O
O
P
z -
A : - - **-s. . '
r
CAPITULO XII: Programacin ADO
PROGRAMACION ADO
La mayora de los nuevos controles de la versin 6.0 de Visual Basic nos
ayudan a conectarnos a diferentes tipos de bases de datos de manera muy
sencilla. Por ejemplo, si tiene una base de datos creada en Visual FoxPro,
Power Builder, SQL Server, etc, usted puede manejarla en el Visual Basic
como si la hubiese creado en este mismo programa y cualquier modificacin
que haga a estas bases de datos se visualizarn cuando las abra en su
programa original de creacin.
Los nuevos controles se llaman Objetos de Datos ActiveX (ADO) que
tienen adems la ventaja de realizar conexiones Locales o conexiones
Remotas muy fcilmente.
La Conexin Local se realiza cuando la aplicacin (programa) que
desarrollas y la base de datos que maneja se encuentran en la misma
computadora.
La Conexin Remota se realiza cuando la aplicacin que desarrollas y la
base de datos se encuentran en computadoras diferentes.
Para poder acceder a una base de datos desde el Visual Basic con los
controles ADO, primero se debe preparar o configurar la conexin, la cual
se puede realizar con:
ODBC:
Significa Conexin de Base de Datos Abierta y nos ayuda a conectarnos a
una gran variedad de base de datos. El Windows tiene su controlador de
Base de datos ODBC.
ARCHIVO DE VNCULO DE DATOS - OLE DB:
Permite almacenar en un archivo con la extensin (*.UDL) toda la
informacin de conexin a una base de datos. En estos archivos podemos
crear vnculos de datos para cualquier proveedor de OLE DB. OLE 1)11
es otra forma de conectarse a una gran variedad de base de datos.
Estos dos tipos de conexiones para base de datos las puede realizar desde
el escritorio de Windows o desde el mismo Visual Basic.
G r u p o E d i t o r i a l Megabyte 461
o
CONFIGURAR LA CONEXIN DESDE EL WINDOWS
ODBC
1. Ingrese al Panel de Control (Inicio, Configuracin, Panel de Control) y
haga doble click en el icono Fuente de Datos ODBC. Se visualiza la
ventana de Administracin de Orgenes de Datos ODBC con todos los
orgenes de datos ya creados.
W&m VISUAL BASIC como debe ser...
yTI II 9
I' I
Ewvarfo.* Ayu<ij Mi' .~3B
f_________ L c '
#4 ^ 1
K- * a r 'ss*
& tO s a
W ' "i
__i
M J
, L
M. PC
t?
'3P
Se puede crear tres tipos de orgenes de datos:
Orgenes de Datos de Usuarios (DSN de Usuarios)
Los cuales se pueden ver y utilizar slo en el equipo donde los crea y por el
usuario que los crea.
Orgenes de Datos de Sistema (DSN de Sistema)
Los cuales se pueden ver y utilizar por todos los usuarios de la computadora
donde se crea.
Orgenes de Datos de Archivo (DSN de Archivo)
Los cuales permiten conectarse a un proveedor de usuarios y por lo tanto se
pueden utilizar por todos los usuarios que tengan instalado el mismo contro
lador. Estos orgenes de datos no necesitan estar dedicados a un usuario ni
ser locales en un equipo.
2. Seleccione el tipo de origen de datos que desea crear y haga clic en
botn Agregar. Se visualiza la ventana para seleccionar el controlador
del origen de datos.
L J J
NOTA: Para empezar a trabajar con los orgenes de datos se recomienda seleccionar
el origen de datos de Usuario.
4 6 2
G r u p o E d i t o r i a l M e g a b y t e ^ 3
3. La eleccin del controlador depende del tipo de base de datos a la cual
le desea crear el origen de datos. Por ejemplo. Si a creado la base de
datos en Microsoft Access o en el mismo Visual Basic debe elegir
Microsoft Access Driver (*.MDB). Si a creado la base de datos en
Visual FoxPro debe elegir Microsoft Visual Foxpro (*.DBF). Si a creado
la base de datos en Power Builder debe elegir Microsoft SQ1 Any Were,
si la base de datos esta en SQL Server elija el control SQL Server, etc.
CAPTULO XII: Programacin ADO
La siguiente ventana que se visualiza, depende del tipo de base de datos
elegido. Por ejemplo, al elegir Microsoft Access Driver (*.MDB) y hacer
click en el botn Finalizar. Se visualiza la ventana de instalacin de ODBC
para Microsoft Access.
InstalacindeODBCparaMicrosoft Access
Nombre d<?l rigen do dalos
Dcciipciti
Ba.odcdotu,
Basededalos;
Seleccionar. I eai...
Lili
Compactai
; Basddatosdel sistema
Nr>giirv=i
C g g c cfcs dato::
Ayuda I
Avanzado.. |
Opciones I
Escriba el nombre que le desea asignar a su origen de datos que esta creando
y opcionalmente una descripcin. Este nombre que usted escriba, se utilizar
en los programas que desarrolle en Visual Basic para referirse a la base de
datos. Luego haga click en el botn Seleccionar para buscar la base de
datos para la cual esta creando el origen de datos.
Seleccionar base de datos
Nombre de base de datos
EJ
r.rndb
Directorios:
c : \
Aceptar
n
j
Enumerar archivos de tipo:
1Bases de datos Access ^ |
r~l Archivos de progra
Q CONTABILIDAD .
3DB2
Q HH
Q IBMV Java _^J
Unidades:
I c: CETDI T ]
Cancelar |
Ayuda
P Slo lectura
I Exclusivo
Red...
G r u po E d i t o r i a l Megabyte
4 6 3
<1
m
Una vez que encuentra la base de datos, haga click en su nombre y luego en
el botn Aceptar. Regresar a la ventana de Instalacin donde debe hacer
click tambin en el botn Aceptar para regresar a la ventada de administracin
de orgenes de datos donde visualizar el nombre de su nuevo origen de
datos que ha creado.
S t ik ' VISUAL BASIC como debe ser. . .
o I Conmuto de condKorMt 1
SN de ratania ) DSN do <
Otfghs de dalo^ do uiuaiio
MS Acce;: Onlab.
I Cmiliolddui
rivci I rrdfcJ
Syba-^o SQL Ai iywl icio 0.0
Svbat* SQL Arn'whei 50
SyLvj *501 Anvwt.<;re 5 O
Sybase SQL Anywl ieie S.O
Svbnso SQL Anvwhere 5.0
ItAcies Olive r.rndb)
yl:- SQ1. Ariywt'
Un OI i r j r - n dr>dnlm Hn Honorio ODBC almi*7'en.s* nfoimacin ncmoa Hr>
cniu corloctato til piovoodoi do dalos indicado. Un Oiijjoo do dato* do
usuario sOlo so puede ver y utilizar en el eduipo otual.
Aceptar ] Cancelar {
De esta manera la base de queda lista para poder utilizarla desde Visual
Basic.
Le recomiendo que practique nuevamente la creacin de los orgenes de
datos ODBC. Ver que cada vez es mucho ms fcil. Si desea borrar uno
que a creado, haga un clic en su nombre y luego en el botn Quitar.
MUY IMPORTANTE.
No es necesario que usted cree el origen de datos cada vez que necesita manejar la
base de datos. Estos orgenes de datos slo se crean una vez y quedan grabados en
su computadora.
Para visualizar los controladores que tiene instalados en su computadora,
seleccione la hoja Controladores:
r w i
DSN do usuai io I DSN do sitoina
Controldoioi.......jj SeQuiri nenio ] Conjunto
Los contiuladoio- QDtlC instalado son au si*loiVia so
SN do arcl iivo
) Acerca de
ola.loi ODBC de Mu io w.
*oi. Aece.v* Pive I indi
soft dBaso D.voi ( dL.fl
'oil dBosoVFP Diivei f
isoft Excol Diivoi (K.xlsj
Iftoft FoxPro VI P Driver I*
oft ODBC lor Oriolo
sol P .arado Driver (" db
soft Text Driver I iXI 1c
ioff Viiual f oxPio Driver
1Version
dbf)
dtalj
3-/'.
,i 3711. OO
D3711.08
D8428.00
13711.
3.42S. 00
371 I OO
i 3/1 I 08
i 3/1 1 08
)8 4 2 8 . 0 0
I Orgafiigaci^ri
ooft Corpoicilit
oof I Cor poi<atic
o-iofl Coi por at ic
LJn controlador ODBC permit.a lo." programan habilitado; de OD13L.
obrpner inlorrnaciri de lo?. origenet d=- d^lo ODBC Rara infialar
c.oritioiadnr e s ruiuvos utilice el proclama de ins!afoorih *lel conti oladoi
I A.-~er'ai I
4 6 4 G r u p o E d i t o r i a l Megabyte
CAPITULO XII: Programacin ADO
ARCHIVO DE VNCULO DE DATOS
Para crear un archivo de vnculo de datos haga click con el botn derecho
del mouse en cualquier parte libre del Escritorio o dentro de una carpeta en
el Explorador de Windows. Visual Basic busca en forma predeterminada
los archivos de vnculo de datos en la carpeta:
C:\Archivos de Programa\Archivos Comunes\SYSTEM\ole db\Data Link
Por lo tanto se recomienda hacer click con el botn derecho del Mouse
dentro de esta carpeta.
Se visualiza un men donde debe elegir la opcin Nuevo y luego la opcin
Microsoft Data Link. _J Capeta
^ Acceso directo
" ] Archivo de sonido
1 ) Documento de texto
Documento de Microsoft Word
Imagen de mapa de bits
Hoja de clculo de Microsoft Excel
t ] Presentacin de Microsoft PowerPoint
Microsoft Data Link
Se crear en forma automtica el archivo: NuevoMicrosoft Data
Link.UDL. Usted puede asignarle otro nombre si lo desea, pero respetando
la extensin UDL. Este nombre que usted asigne se utilizar en los
programas que desarrolle en Visual Basic para referirse a la base de datos.
Luego haga click con el botn derecho de Mouse en el nombre de este
archivo y elija Propiedades para visualizar la ventana de configuracin de la
conexion. P r op i e dad * d e T i e n d a . U u L
G e n e r a l | Proveerlo J . <
Iiend*.UDl
mm
>I Avoraci.. I t odo-, j
Tipo: Microsoft DataLink
IIbir.-iciii C.-\WINDOWS\MinIrHr.ir.
TcJinaPo: 166bytes (166bytes), 32,768bytevutado:.-
NombreMSDOS: TIENDAUDL
l ie->.:l.. Jui-ves 1 de . l i ii .i.. Ic- /IJI I I I 1;* 31 . I AM
Modificado: Jueves I dJuniodo 2000 12:31:54AM
I $ ok > lot. tur *
* 7 Modi li cjdu
I Oculto
r
I Aceptar | Cancelar j
G r u p o E d i t o r i a l Megabyte
4 6 5
w J i
mk.<
'% VISUAL BASIC como debe ser.
En la hoja Proveedor se debe seleccionar un proveedor para el tipo de base
de datos que desea manejar en Visual Basic. Por ejemplo para una base de
datos creada en Access o en el mismo Visual Basic, debe elegir Microsoft
Jet 3.51 4.0 OLE DB Provider. Si tiene creado un ODBC, utilice la
opcin Microsoft OLE DB Provider for ODBC Drivers.
Una vez que ha seleccionado el proveedor, active la hoja conexin cuya
pantalla depende del tipo de Proveedor elegido. Por ejemplo la siguiente
pantalla se visualiza cuando se ha elegido Microsoft Jet OLE DB Provider.
.0rwl j Provorlot CotwxtM ) Avr>7.ado 1 Tokos 1
,1infoim.-.o'inf
I A.'
En esta ventana haga click en el botn Buscar (...) para seleccionar la base
de datos que desea utilizar en el archivo de vnculo y luego haga click en el
botn Probar Conexin. Se debe visualizar el mensaje:
Microsoft Da t a Li nk
La prueba de conexi n fue satisfactoria.
I ( A c e p t a r ] |
Esto indica que el archivo se ha creado correctamente y esta listo para
utilizarlo en Visual Basic y poder manipular la base de datos indicada.
CAPTULO XII: Programacin ADO
CONTROLADO:
Este control es muy similar al control data y permite conectarnos a una gran
variedad de tipos de base de datos a travs de los Archivos de Vnculo de
datos o de los ODBC. Cuando se dibuja en el formulario, tiene la misma
apariencia que el control Data, pero su nombre predeterminado es Adodc 1,
Adodc2, etc. dependiendo de la cantidad de controles que dibuje.
Adodd
M
Para desarrollar una aplicacin que maneje una base de datos usando este
control slo es necesario inicialmente asignarle valores en su propiedad
CONNECTIONSTRING donde se indica el nombre del origen de datos y
en su propiedad RECORDSOURCE, donde se indica el origen de los
registros que normalmente es el nombre de una tabla o un texto que consiste
en una instruccin SQL.
Para visualizar en el cuadro de herramientas el control ADO y sus controles
compatibles, cree un nuevo proyecto en el modo Controles de VB
Edicin Empresarial .
Nuevo proyecto
IB
<sv
S I S t
Asistente para Administrador Proyecto de Aplicacin US
aplicaciones... de asistent... datos
SI S I
Sb
S t
Addin DII de Exe de Aplicacin
O
docume... docume... DHTML
^3
Controles de
VB Edicin...
Aceptar
Ayuda
Otra forma de tenerlos en el cuadro de herramientas es, abriendo la ventana
de componentes (Control+T) y activando la casilla respectiva. La casilla
del control ADO es: Microsoft ADO data control 6.0 (OLEDB).
G ru po E d i t o r i a l Megabyte 467
USO DE LA PROPIEDAD CONNECTIONSTRING
1. SI YA CRE EL ORIGEN DE DATOS.
1.1 ARCHIVO DE VNCULOS
Si ya creaste una conexin usando un archivo de vnculos, en la
propiedad ConnectionString debes escribir: FILE NAME=Ruta y
nombre del Archivo.UDL
Por ejemplo: Si has creado un archivo de vnculos llamado VENTAS
en la unidad C:\SISTEMA, debes escribir: FILE NAME=C:\
SISTEMAWENTAS. UDL
m m VISUAL BASIC como debe ser...
ConnectionString I FILE NAME=C :\SISTEMA\VENT AS J
1.2 ODBC
Si ya creaste una conexin a tu base de datos usando ODBC, en la
propiedad ConnectionString debes escribir: DSN=Nombre del
Origen de datos
Por ejemplo: Si has creado un origen de datos ODBC llamado
AGENDA, debes escribir: DSN=AGENDA
IDSN=AGENDA J ConnectionString
MUY IMPORTANTE:
No debe haber espacios ni antes ni despus del signo igual (=) y si utiliza archivo
de vnculo, debe indicar tambin la extensin del archivo (.UDL).
Otra forma de indicar el origen de datos es haciendo Click en el botn con
tres puntos que tiene la propiedad ConnectionString ( ... |), se visualiza la
siguiente ventana:
[GwiM':J
Oi gende conexin
Usar archivo de vnculo a datos ____
t~' Usai nombre de origen de datos ORBC
I
Usar cadena de conexin ______________
Otros attifeutos: |
en esta ventana indique si ha creado un archivo de vnculo o un ODBC.
Si a creado un archivo de vnculo, haga clic en el botn Examinar para
buscar la carpeta y el nombre del archivo.
Si ha creado un ODBC, haga click en la flecha hacia a bajo del Combo para
seleccionar el ODBC.
468 G r u p o E d i t o r i a l Megabyte^ ^
2. SI NO HA CREADO EL ORIGEN DE DATOS.
Para crear un origen de datos usando Visual Basic, haga click en el botn
con tres puntos que tiene la propiedad ConnectionString (... |). Se visualiza
la ventana anterior donde debe indicar el tipo de conexin a crear.
2.1 CREAR UN ARCHIVO DE VNCULOS
Para crear un archivo de vnculos, seleccione Usar Archivo de
Vnculo de Datos y haga clic en el botn Examinar. Se visualiza la
siguiente ventana:
I...h ~ 3 J M n J Iri OJ
CAPTULO XII: Programacin ADO < 1
tJombrodeochivo f
lipa dearchivo*: Archivo" deMicro*oft DataLink (' "udij"
Placteai unaichivo<1vinculodeiWostunvu tiagaclic conHbotn
ecuridaiiodel mouseencualquier pairedeIalis*deArchivoy, despuv.
seleccioneMicrosolt DataLmkenel menNuevo
Paiamodificai I aichivodevnculodedatos, hag$dobleclicri I archiv.
1 Abrir 1
' Cncola! [
En esta ventana haga clic con el botn derecho del Mouse, elija la opcin
Nuevo y luego la opcin Microsoft Data Link y siga los mismos pasos
indicados en la creacin de un archivo de vnculos desde el Windows.
Una vez creado el archivo, seleccinelo y haga click en el botn Abrir y
luego en el botn Aceptar.
2.2 CREAR UN ODBC
Para crear un origen de datos ODBC, seleccione Usar Nombre de
Origen de Datos ODBC y haga click en el botn Nuevo. Se visualiza
la ventana:
ni i min ii ni b i
Sster..ckMvw un tipo d e origen d e datos
f* Qiijjen de dalos de archivo (equipo independenle}
Origen de dato* d a usuario (< aplica i lo a a s te equipe-)
f " Pjfln de datos de siyiem (se plica tlo a ev t* equipo)
Al eleccionaf Oligan de dato d a chivo crea un exigen de d.stoi
basado en un archivo que so comparto con todos tos usuario? que
liei t e n a c c e s o a la b a s e Je da t o s.
j Siguiente> j Lancolar J
En esta ventana seleccione el tipo de origen de datos a crear, y siga los
mismos pasos indicado en la creacin de ODBC desde el Windows.
| | | i | ^ G r u p o E d i t o r i a l Megabyte 4 6 9
( l
% VISUAL BASIC como debe ser.. .
USO DE LA PROPIEDAD RECORDSOURCE
La propiedad RecordSource se debe utilizar despus de ConnectionString y
se utiliza para indicar el origen de los registros. Cuando se ingresa a esta
propiedad, se visualiza la siguiente pantalla:
GE
( O r i g e n d r e g i s t r o s j |
O r i g e n d e r e g i s t r o s
T i p o d e c o m a n d o
ES3
|8 - adCmdUnknown _
Tbla o nombre de procedimiento almacenado
Texto del coniando (SQL)
A y u d a
En esta ventana, primero se indica el tipo de comando, es decir, cmo se
obtendrn los registros.
Tipo de comando
|S - adCrndUnknown
zJ
8 - adCmdiJnknown .................................
1 adCmdT ext
2 adCmdT able
4 - adCrndStoredProc
Los tipos de comandos ms usados son:
* 1-adCmdText,
Para que los registros se obtengan desde una instruccin SQL.
* 2-adCmdTable
Para que los registros se obtengan de una tabla.
La opcin 4-adCmdStoredProc se usa cuando se tiene un procedimiento
almacenado en el servidor y 8-adCmdUnknown cuando el tipo de comando
es desconocido.
NOTA
Una vez que asign el origen de los registros; su base de datos, tablas y registros
estn listos para utilizarlos en cualquier aplicacin usando los controles
compatibles del control ADO, como por ejemplo: DataGrid, DataCombo, DataList,
TextBox, Label, etc.

4 7 0 G r u p o E d i t o r i a l Megabyte ^|
K M
CAPITULO XII: Programacin ADO
ERRORES MS COMUNES
Cuando no se a escrito o seleccionado correctamente el origen de datos o
de los registros se visualizan varios mensajes de error, los cuales se indican
.1 continuacin con la finalidad de poder corregirlos en forma fcil y rpida.
[Microsofl][dministrador de controladores ODBC] El nombre del origen de datos no se encontr y
no se especific ningn controlador predeterminado
Aceptar
lil mensaje anterior se visualiza cuando el origen de datos indicado en la
propiedad ConnectionString no est creado, es decir, no existe en la
computadora donde se desea manejar la base de datos o escribi en forma
incorrecta la cadena de conexin. Por ejemplo, dej espacio antes o de
despus del signo igual (=).
No se puede encontrar XA.
c a p t a r j |
lil mensaje anterior se visualiza cuando el nombre del archivo de vnculo
indicado en la propiedad ConnectionString no existe.
[Microsoft][Controlador ODBC Micro soit Access] Instruccin SQL no vlida; se esperaba 'DELETE',
'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.
Aceptar
l i l mensaje anterior se visualiza cuando en tipo de comando se eligi la
opcin 1-adCmdText y no se escribi correctamente la instruccin SQL.
[ADODC]: no se ha especificado ningn RecordSource. [AD0]:No se configur un comando para el
objeto comando
lil mensaje anterior se visualiza cuando no ha indicado el origen de los
registros, es decir, no se llen la propiedad RecordSource.
G r u p o E d i t o r i a l Megabyte 4 7 1
I M S
J
VISUAL BASIC como debe ser.. .
OTRAS PROPIEDADES DEL CONTROLADO
El control ADO tiene muchas propiedades similares al control Data. Las
nuevas propiedades de este control son:
PERSONALIZADO
Esta propiedad permite tambin asignar todos los valores necesarios para
que se realice la conexin a una base de datos. Se puede activar tambin
haciendo un click con el botn derecho del Mouse sobre el control ADO y
eligiendo la opcin Propiedades de ADODC. La pantalla que visualiza es
la siguiente: i-jj.im r u
E s a
Autenticacin | Origen d e r e gi st r o s | Color ] F u e nt e |
KZ1
Origen de conexin
f~~ Usar archivo de vinculo a datos
Usar nombre de origen de datos 0>BC
1
Usar cadena de conexin
Otros atributos: j
| A c e p ta r | Canc elar |
La forma de realizar una conexin en esta ventana se realiza de la misma
forma como se explic en las propiedades ConnectionString y RecordSource.
CURSORTYPE
Indica el tipo de cursor que se usa en un objeto recordset. Un cursor, es un
conjunto de registros que se obtienen como resultado de una consulta a una
base de datos. Los tipos de cursores disponibles son:
AdoOpenForwareOnly: Es el tipo de cursor predeterminado y es igual
que el cursor esttico, se diferencia porque slo permite desplazarse
hacia delante de los registros.
AdoOpenKeyset: (Conjunto de claves). Es igual que un cursos dinmico,
se diferencia porque no se pueden ver los registros que agregan otros
usuarios.
AdoOpenDynamic: (Dinmico). Se caracteriza porque las
incorporaciones, cambios y eliminaciones que hacen otros usuarios
permanecen visibles y se admiten todo tipo de movimiento entre registros.
AdoOpenStatic: (Cursor Esttico). Consiste en una copia esttica de
un conjunto de registros que se puede usar slo para buscar datos o
crear reportes. Los cambios que hacen otros usuarios no son visibles.
4 7 2
G r u p o E d i t o r i a l M e g a b y t e ^
CURSORLOCATION
Indica desde dnde se van a utilizar los cursores. Se puede elegir desde el
cliente (computadora de trabajo) o desde el servidor.
COMMANDTYPE
Indica el tipo de comando para acceder a los registros. Se pueden seleccionar
las mismas opciones que se utilizan en la propiedad RecordSource.
LOCKTYPE
Permite establecer el tipo de bloqueo que deben tener los registros al
momento de acceder a ellos para modificarlos.
AdLockReadOnly:(Slo de lectura). Es el predeterminado y se caracteriza
porque no se pueden modificar los registros.
AdLockPessimistic: (Pesimista). Se caracteriza porque el programa hace
lo necesario para lograr la modificacin correcta de los registros,
generalmente bloqueando registros en el origen de datos durante el proceso
de modificacin.
AdLockOptimistic: (Optimista). Se caracteriza porque el bloque se realiza
slo cuando se graba un registro con el mtodo Update.
AdLockBatchOptimistic: (Por lotes). Se caracteriza porque el bloque se
realiza slo cuando se graban varios registros con el mtodo
UpdateBatch.
USERNAME
Indica el valor que representa a un usuario de un objeto recordset de Ado.
Cuando se proporcionan valores para UserName y la propiedad Password,
el control los utiliza para crear una cadena de conexin.
MODE
Indica los permisos disponibles que se tienen cuando se realiza una conexin.
COMMANDTIMEOUT
Se utiliza para indicar el tiempo que se debe esperar como mximo para un
comando de acceso a base de datos. Si transcurre dicho tiempo, se produce
un error. Las demoras pueden ser en el trfico de la red.
CONNECTIONTIMEOUT
Indica el tiempo de espera para que se realice la conexin. El valor
predeterminado es 15 segundo. Si transcurre el tiempo indicado, se produce
un error.
MAXRECORDS
Indica el nmero mximo de registros que se pueden obtener al abrir la
conexin. El valor predeterminado es cero (0) que indica un nmero sin
lmite de registros.
CAPTULO XII: Programacin ADO ^ l
G rupo E d i t o r i a l Megabyte 473 < 1
CONTROLES COMPATIBLES CON ADO
Los controles compatibles con el control Data: DbList, DbCombo y DbGrid
no son compatibles con el control ADO, esto quiere decir que no se pueden
utilizar para mostrar la informacin de la base de datos que el control ADO
tiene conectada. En lugar de estos controles se utilizan DataList, DataCombo
y Datagrid. La ventaja es que sus propiedades RowSource, ListField y
DataSource si se utilizan y de la misma forma. Tambin se puede utilizar el
control TextBox, Label y otros. Cuando trates de utilizar un control
incompatible con el control ADO, se muestra el siguiente mensaje:
VISUAL BASIC como debe ser...
Microsoft Visual Basic
O
N o se ha encontrado ningn origen de datos compatible para este control. Agregue un
control Data intrnseco o un control RemoteDate al formulario.
( Aceptar j j Ayuda
Para trabajar con estos controles, cree un nuevo proyecto en el modo de Controles
de VB Edicin Empresarial o abra la ventana de componentes (Control + T) y
active la casilla del control que desea utilizar.
CONTROL DATAGRID
Este control es muy similar control DbGrid y permite mostrar varios registros
a la vez, para ello, slo le debe asignar su propiedad DataSource donde se
indica el nombre del control ADO.
Si no se encuentra en el cuadro de herramientas, abra la ventana de
componentes y active la casilla de:
Microsoft DataGrid Control 6.0 (OLEDB).
CONTROLES DATALIST y DATACOMBO
Son similares a los control DbList y DbCombo y permiten mostrar el contenido
de un campo de varios registros. Para ello, debe asignarles como mnimo la
propiedad RowSource, donde se indica el nombre del control ADO y la
propiedad ListField, donde se indica el nombre del campo cuyo contenido se
desea visualizar.
Si no se encuentran en el cuadro de herramientas, abra la ventana de
componentes y active la casilla de:
Microsoft DataLists Control 6.0 (OLEDB).
474 G r u p o E d i t o r i a l Megabyte
CAPTULO XII: Programacin ADO
APLICACION DESARROLLADA N 65
La siguiente aplicacin es un ejemplo del manejo de una base de datos,
tablas y registros usando la programacin ADO.
1 i i . Menu Pr inci pal
HHHHSBHHHSLioii
Artculos
Visual Basic. Como debe s 11! ! l
Esta aplicacin permite administrar una tabla llamada Artculos que se
encuentra en una base de datos llamada Tienda y esta grada en la unidad
I Menu Principal

Artculos
Listado Qrl+L
Mantenimiento Ctrl+M
Consulta Ctrl+C
Salir Qrl+S
19/ 0 6 / 0 0 10:18 a.m. V isual Basic. Como debe ser. TFT! I
Las opciones se pueden elegir desde el men principal o desde la barra de
herramientas.
En la barra de estado se muestra la fecha actual, hora actual, nombre del
libro y un acceso a la calculadora.
La estructura de la tabla Artculos es:
Codigo Texto 5
Nombre Texto 30
Presentacin Texto 20
ValorCompra Currency
Vencimiento Data/Time
G rupo E d i t o r i a l Megabyte 475 ^
DESARROLLO DE LA APLICACIN N 65
Cree un nuevo proyecto en el modo Controles de VB Edicin Empresa
rial para tener en el cuadro de herramientas los controles ADO. En este
proyecto debe estar compuesto por cuatro (4) formularios y un mdulo don
de se deben definir las variables que se usan en ms de un formulario:
l i l i l * VISUAL BASIC como debe ser...
mam
j(General) | | (Declaraciones) 1
Public
Puto1ic
Puto1ic
J l
XCODIGO, XHOMBRE, XPRE3ENTACION A s String
XVALOR As Currency 1
XFECHA As Date ^ |
FORMULARIO N s 01
En el formulario N 01 debe disear el men, la barra de herramientas y la
barra de estado, como se muestra en la pgina anterior. La creacin de
men se explica en la Pgina N 264, las barra de herramientas en la pgina
N268 (ToolBar) y las barras de estado en la pgina N181 (StatusBar). En
las barras puede utilizar cualquier grfico de su computadora. En la pgina
N 168 se explica cmo buscar grficos.
Instrucciones del Formulario N 01
Rem Opcin Consulta
Prvate Sub Consulta_Click()
Form4.Show 1 Consulta
End Sub
Rem Opcin Mantenimiento
Prvate Sub Mantenimiento_Click()
Form3.Show 1 Mantenimiento
End Sub
Rem Instrucciones del control StatusBar
Prvate Sub StatusBar 1_PanelClick(By Val Panel As MSComctlLib.Panel)
I f Panel.Index = 4 Then Shell c:\windows\calc.exe", 1
End Sub
Rem Instrucciones del control ToolBar
Prvate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLib.Button)
I f Button.Index 1 Then Form2.Show 1 'Listado
I f Button. Index = 2 Then Form3.Show 1Mantenimiento
I f Button.Index = 3 Then Form4.Show 1Consulta
I f Button.Index = 4 Then End Salir
End Sub
NOTA:
El valor 1(uno) despus de la palabra Show indica el formulario slo debe cerrarse
haciendo click en el botn respectivo.
G r u p o E d i t o r i a l M e g a b y t e ^ ^ ^
476
Rem Opcin Listado
Prvate Sub Listado_Click()
Form2.Show 1 Listado
End Sub
CAPITULO XII: Programacin ADO
FORMULARIO Ng 02
En el formulario N 02 slo dibuje un control DataGrid, una etiqueta, un
botn de comandos y un control ADO.
. L i s ia d o d e A r t c u l o s
mn
Labell
|nl -I jA d o d c l | r 1 - |
En la propiedad ConnectionString del control ADO escriba el nombre del
origen de datos creado para la base de datos TIENDA o cree uno nuevo y
en su propiedad RecordSource seleccione la tabla Articulos.
Al control DataGrid asigne en su propiedad DataSource el nombre del control
ADO, tambin puede asignarle otras propiedades como si se tratar del
control DbGrid.
INSTRUCCIONES DEL FORMULARIO N 02
Instrucciones del botn Cerrar
Prvate Sub Commandl_Click()
Hide
End Sub
Instrucciones del Form_Activate
Estas instrucciones permiten que al ingresar a este formulario el control
ADO se actualice y visualice las modificaciones realizadas a los registros
en otros formularios.
Tambin se muestra en la etiqueta N 01 la cantidad de artculos mostrados.
Prvate Sub Form_Activate()
Adodcl .Refresh
Labell = Nde Artculo mostrados: &Adodcl.Recordset.RecordCount
End Sub
G r u p o E d i t o r i a l Megabyte
477
VISUAL BASIC como debe ser...
FORMULARIO N 2 0 3
En este formulario dibuje un control ADO, 2 DataCombo, 3 frame, 7 Label,
6 CommandButton y un control Calendar. Si el control Calendar no se
encuentra en el cuadro de herramientas, active su casilla en la ventana de
componentes cuyo nombre es: Microsoft Calendar Control y para dibujarlo
haga click primero en cualquier parte libre del formulario.
i n l I
rrrr.
l
Lbl4
Labl'.
l.abnK.
!...at>ial7
I U JloComt
~E 12000 jtJ -
C o m m a n d l 1 Cornrr>arid2 |
Conimand3
C m m a n d 4
Commands
0 3 Z P
Commands I
PROPIEDADES DE LOS CONTROLES
Control
Adodcl
Control
DataCombo 1
DataCombo2
Control
Textl
Text2
Text3
Text4
Text5
ConnectionString
Nombre del Origen de Datos
RowSource
Adodc1
Adodcl
ListField
Nombre
Codigo
DataSource
Adodcl
Adodc 1
Adodcl
Adodc1
Adodc1
RecordSource
Artculos
Style
1-dbcSimpleCombo
1-dbcSimpleCombo
ListField
Codigo
Nombre
Presentacin
ValorCompra
Vencimiento
Control
Frame 1
Frame2
Frame3
Enabled
True
False
True
Control
Calendari
Visible
False
ShowTitle
False
A los otros controles asgneles las propiedades como se indica en el
formulario.
478 G r u p o E d i t o r i a l Megabyte<
CAPITULO XII: Programacin ADO
Al ejecutar el formulario debe tener el siguiente aspecto.
nonEl Articulo 1)atoi dnl l'inducl
N ornt'.r OSdijjo
Vokji -J Con h
J I
Inonni ~J
n
lnnno4 ' ,. . . .
Iononr. Ambulo
siRiHmibles
A'- <uali*<w k>a doto dol Aitcuio
CARACTERSTICA DEL FORMULARIO.
1. Este formulario permite dar mantenimiento a los registros, esto quiere
decir que se puede agregar nuevos artculos, actualizar sus datos o eliminar
cualquiera de ellos.
2. Se puede consultar un artculo por su nombre o su cdigo.
3. Cuando no existen registros el botn Eliminar y Actualizar se desactivan.
4. El control Calendar 1 se visualiza cuando se desea ingresar o modificar
la fecha de vencimiento.
IMPORTANTE
Cuando se manejan base de datos con ADO, no se necesita usar el mtodo EDIT para
modificar registros porque un registros cambia automticamente al modo de edicin
cuando se empieza a modificar.
La programacin con ADO ya no utiliza el mtodo FINDFIRST. El nuevo mtodo es FIND.
MTODO FIND
Este mtodo permite buscar registros cuando se trabaja con ADO. Su sintaxis
es la siguiente.
Control_Ado.Recordset.Find Condicin, Valor 1, Valor2, Valor3
Valor 1: Indica el nmero de registros que se debe saltar antes que se inicie
la bsqueda. Si se omite no salta ningn registro.
Valor2: Indica la direccin de la bsqueda que puede ser hacia delante
(adSearchForward) o hacia atrs (adSearchBackward). Si se omite, la
busqueda se realiza hacia delante.
Valor3: Indica la posicin inicial de la bsqueda. Escriba el nmero 1(uno)
para empezar desde el primer registo.
Ejemplo: La siguiente instruccin busca el artculo llamado Panadol.
Adodcl.Recordset.Find Nombre = PanadoI, l
NOTA: Si el registro no se encuentra se activa el final (EOF) o inicio (BOF) de la
tabla dependiendo de la direccin de la bsqueda.
G r u p o E d i t o r i a l Megabyte 479
INSTRUCCIONES DEL FORMULARIO N"03
Definicin de variables en General Declaraciones
Dim r As String
Dim NUEVO As Boolean
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
Actualiza el control Adocdl
Adodcl.Refresh
Si no hay registros, desactiva los botones Actualizar
y Eliminar y no permite seleccionar registros.
If Adodcl. Recordset.RecordCount = 0 Then
Command4. Enabled - False
Commands.Enabled = False
Framel. Enabled = False
Else
Command4. Enabled = True
Commands .Enabled = True
Framel.Enabled = True
End If
End Sub
Instrucciones del DataCombol
Private Sub DataCombol_Change()
If DataCombol = Then Exit Sub
r = Nombre Like + DataCombol +
Adodcl.Recordset.Find r,, , 1
If Adodcl .Recordset.EOF Then
MsgBox No existe el Articulo +DataCombol + ,16,"Puede adiciomrlo"
Adodcl.Recordset. Move First
End If
End Sub
Private Sub DataCombol_Click(Area As' Integer)
DataCombol jChange
End Sub
Instrucciones del DataCombo2
Private Sub DataCombo2_Change()
If DataCombo2 - Then Exit Sub
r - Codigo Like + DataCombol +
Adodcl .Recordset.Find r, , , 1
If Adodcl.Recordset.EOF Then
MsgBox NoexisteelArticuloconelcdigo + DataCombo2 + , 16, Puedeadiciomrlo
Adodcl. Recordset. MoveFirst
End If
End Sub
Private Sub DataCombo2_Click(Area As Integer)
DataCombo2 JChange
End Sub
J11II> VISUAL BASIC como debe ser...
G r u p o E d i t o r i a l Megabyte 4 8 0
CAPTULO XII: Programacin ADO A
Instrucciones del Botn Nuevo
Private Sub Command3_Click()
Frame .Enabled = False
Frame2. Enabled = True
Frame 3. Enabled = False
Adodcl.Recordset. AddNew
Indica Nuevo Artculo
NUEVO = True
Textl .SetFocus
End Sub
Instrucciones del Botn Grabar
Private Sub Command I _Click()
Frame 1.Enabled = True
Frame 2. Enabled = False
Frame 3. Enabled = True
Adodcl.Recordset. Update
Command4. Enabled - True
Commands.Enabled = True
Framel.Enabled = True
End Sub
Instrucciones del Botn Cancelar
Private Sub Command2_Click()
Frame .Enabled = True
Frame 2. Enabled = False
Frame 3.Enabled = True
If NUEVO Then
Adodcl.Recordset. CancelUpdate
Else
Se devuelven los datos originales
Textl = XCODIGO
Text2 = XNOMBRE
Text3 = XPRESENTACION
Text4 = XVALOR
TextS = XFECHA
End If
Despus de cancelar se ubica en el Artculo
que estaba en pantalla.
Adodcl .Recordset. AbsolutePosition=Adodcl .Recordset.Bookmark
End Sub
Instrucciones del Botn Actualizar
Prvate Sub Command4_Click()
NUEVO = False
Framel.Enabled = False
Frame2. Enabled = True
Frame 3. Enabled = False
Se almacenan los valores originales en variables
XCODIGO = Textl
XNOMBRE = Text2
XPRESENTACION = Text3
XVALOR = Val(Text4)
If IsDate(TextS) Then XFECHA = CDate(TextS)
Textl.SetFocus
End Sub
| | | ^ G ru po E d i t o r i a l Megabyte 481
Instrucciones del Botn Eliminar
Private Sub Commands_Click()
Dim Mensaje As String
I f Adodcl. Recordset.RecordCount - 0 Then
MsgBox No hay productos", 16, No se puede eliminar"
Else
Mensaje = Est seguro de eliminar el artculo +Chr(13) + Textl + +Text2
I f MsgBox(Mensaje, 36, CUIDADO) = 6 Then
Adodcl. Recordset. Delete
Adodcl.Recordset. MovePrevious
I f Adodcl.Recordset.BOF Then
Adodc 1. Recordset. Move Next
End I f
Pregunta si quedan registros
I f Adodcl.Recordset.RecordCount = 0 Then
Si no hay registros desactiva los botones Actualizar y Eliminar y la consulta
Command4.Enabled = False
Commands.Enabled = False
Frame I. Enabled = False
End I f
End I f
End I f
End Sub
Instrucciones del Botn Salir
Private Sub Command6_Click()
Hide
End Sub
Instrucciones de Text5
Visualiza el calendario cuando se ubica el cursor en Text5.
Private Sub Text5_GotFocus()
Calendar .Visible = True
End Sub
Oculta el formulario si se pulsa ESC
Private Sub Text5_KeyPress( Key Ascii As Integer)
I f Key Ascii = 27 Then
Calendar 1.Visible = False
End I f
End Sub
Instrucciones del Control calendarl
Cuando se selecciona una fecha se oculta el Calendario.
Private Sub Calendarl_Click()
Text5 = Calendarl .Value
Calendarl .Visible = False
End Sub
SB k > VISUAL BASIC como debe ser...
p l p l > 482 G r u p o E d i t o r i a l Megabyte <1 1 1 1 1 1
CAPITULO XII: Programacin ADO
FORMULARIO N s 04
En este formulario dibuje un control ADO, 2 DataCombo, 2 frame, 21
Label, 2 CommandButton y un control Calendar.
Label!
fil taCombol
Jun Jl* uut
...
3
12. XA
Z L

"
.
-
W
I-
K

i
r
r
*
Z1.
L-aboM
LobolS
L aboli O
L oboli1
L abel 13
L Abeti 4
jtToxl..
n~-
L oboli 7
L Aboil a
Lobelia
LoboCO
H - lci| x|
CommKl2 I
PROPIEDADES DE LOS CONTROLES
Control
Adodcl
Control
DataCombo 1
DataCombo2
Control
Textl
Text2
Text3
Text4
Text5
ConnectionString
Nombre del Origen de Datos
RowSource
Adodcl
Adodc 1
ListField
Nombre
Codigo
RecordSource
Artculos
Style
1-dbcSimpleCombo
1-dbcSimpleCombo
DataSource
Adodcl
Adodc1
Adodc1
Adodcl
Adodcl
ListField
Codigo
Nombre
Presentacin
ValorCompra
Vencimiento
Control
Frame 1
Frame2
Control
Calendarl
Enabled
True
False
Visible
False
ShowTitle
False
A las etiquetas desde la N 15 hasta la N 21, asgneles en su propiedad
BorderStyle el valor 1-Fixed Single y en su propiedad Alignment el valor 1-
Right Justify.
A los otros controles asgneles las propiedades como se indica en el
formulario.
G r u p o E d i t o r i a l Megabyte 483
w M
vj^vM ' VISUAL BASIC como debe ser...
A l e j e c u t a r e l f o r m u l a r i o d e b e t e n e r e l s i g u i e n t e a s p e c t o :
I
OOOOJ
00004
OOCPS
Doto dol Pioduc
Presentacin
Val de Compra
l(5V (183K)
Preoio do Compra
Utihd*d (29X1
P*cio ule Venta
Deacumito (105;)
Joooo.^
[.<!< l AdcKioi I'VJmI
tcha do Vencimiento
Actualizar lo* Dalot
;j| 3/07/03
CARACTERSTICA DEL FORMULARIO.
1. Este formulario permite visualizar los datos de cualquier artculo in
cluyendo campos calculados:
IGV: 18% del Valor de Compra.
Precio de Compra: Valor de Compra + IGV
Utilidad: 25% del Precio de Compra
Precio de Venta: Precio de Compra + Utilidad
Descuento: 10% del Precio de Venta
Precio al Publico: Precio de Venta - Descuento
Nmero de das para el artculo este vencido.
2 Si faltan menos de 30 das para que el artculo venza, se deben visualizar
en color rojo y si ya est vencido, debe visualizar la palabra Venci
do tambin con letras rojas.
3 Este formulario permite buscar al un artculo por su cdigo o nombre
y tiene la posibilidad de actualizarlo.
INSTRUCCIONES DEL FORMULARIO N 03
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
Adodcl. Refresh
I f Adodcl.Recordset.RecordCount = 0 Then
Command3.Enabled - False
Framel .Enabled - False
El se
CommandJ. Enabled = True
Framel .Enabled True
End I f
CAPTULO XII: Programacin ADO
Instrucc. del botn Grabar
Private Sub Command 1_Clck()
Frame .Enabled = True
Frame2. Enabled = False
Command 1.Visible - False
Command2. Visible = False
Command^ .Enabled = True
Command4. Enabled = True
Adodcl.Recordset. Update
calcular
End Sub
(nstrucc. del botn Actualizar
Private Sub Command3_Click()
Command 1.Visible = True
Command2. Visible = True
Command3. Enabled = False
Command4. Enabled = False
Frame .Enabled = False
Frame2.Enabled = True
XCOD1GO = Textl
X,NOMBRE = Text2
XPRESENTACION = Text 3
XVALOR = Val(Text4)
If Not Texl5 = Then
XFECHA = CDate(Text5)
End If
Textl.Set Focus
End Sub
Instrucciones del botn Cancelar
Private Sub Command2_Click()
Framel.Enabled = True
Frame2.Enabled = False
Commandl .Visible = False
Command2. Visible = False
Command3. Enabled = True
Command4. Enabled = True
Se devuelven los datos originales
Textl = XCODIGO
Text2 = ANOMBRE
Text3 = XPRESENTACION
Text4 = XVALOR
Text5 = XFECHA
Adodcl. Recordset. A bsolutePosition =A dodcl. Recordset. Bookmark
calcular
End Sub
Instrucciones del DataCombol
Private Sub DataCombol_Change()
If DataCombol = Then Exit Sub
r = Nombre Like + DataCombol +
Adodcl .Recordset.Find r,, , 1
If Adodcl.Recordset. EOF Then
MsgBox "No existe el Articulo
Adodcl .Recordset. Move First
End If
calcular
End Sub
Private Sub DataCombol_Click(Area As Integer)
DataCombol jChange
End Sub
+ DataCombol + 16. Puede adicionarlo"
G rupo E ditorial Megabyte
485
Instrucciones del DataCombo2
Private Sub DataCombo2_Change()
If DataCombo2 = Then Exit Sub
r = Codigo Like + DataCombo2 +
Adodcl. Recordset. Find r, , , 1
If Adodc 1.Recordset.EOF Then
MsgBoxNoexisteelArtci(locoiielcdigo +DataCombo2+ ... ,16, Puede adicionado"
Adodcl. Recordset. MoveFirst
End If
calcular
End Sub
Private Sub DataCombo2_Click(Area As Integer)
DataCombo2_Change
End Sub
Instrucciones del procedimiento Calcular
Sub calcular()
Dim f A s String
Dim dias As Long
/ = Formatf###.####,##0.00, (###,####,##0.00)")
valor = Val(Text4)
igv = valor * 1 8 / 1 0 0
pcompra = valor + igv
utilidad - pcompra * 25 /1 0 0
pventa = pcompra + utilidad
descuento pventa * 10/10 0
ppublico = pventa - descuento
Label 15 = Formatf igv, f)
Labell = Formatf pcompra, f)
Label 17 = Fo rmatfutilidad,f)
Labell8 - Formatfpventa, f)
Label 19 = Formatf descuento,f)
Label20 = Format(ppublico, f)
If IsDate(Text5) Then
dias = CDate(Text5) - Date
lfdias<=0 Then Label21-"Vencido Else Label21 -CDate(Text5)- Date
i f dias<~30 Then
Label21.ForeColor = QBColor( 12)
Else
Label21.ForeColor = QBColor(O)
End If
Else
Label21 =
End If
End Sub
Instrucciones de Text4
Private Sub Text4_Change()
calcular
End Sub
l l l l l VISUAL BASIC como debe ser. . .
486 G r u p o E d i t o r i a l Megabyte
NOTA
Las instrucciones de text5. Calendad
y del Botn Cerrar son iguales al
formulario anterior.
CAPITULO XII: Programacin ADO %
APLICACIN DESARROLLADA N 66
i*. Men Principal
Art culos Configuracin
Sistema
Presentaciones
Sistema
Esta aplicacin es simi
lar a la anterior. Funcio- .
, . i | 21/06/00 15:58 Visual Basic, Como debe ser... l
na con dos tablas mas:
Configuracin y Presentaciones.
La tabla Configuracin contiene slo un registro donde se encuentran los
datos que la aplicacin necesita para un buen funcionamiento y para un mante
nimiento ms rpido y fcil. Los datos que contiene son los siguientes:
ULTIMO CODIGO
Que indica cul es el ultimo cdigo generado y permite asignar en forma
automtica el cdigo que le corresponde a cada nuevo producto. La aplica
cin anterior permite que se ingrese manualmente el codigo para cada nue
vo artculo lo que puede ocasionar que se ingresen cdigo repetidos.
IGV
En este campo se indica cul es el porcentaje que la aplicacin debe utilizar
para calcular el IGV. La ventaja que tiene este campo es que si algn da se
cambia el porcentaje de IGV, slo se tendra que escribir el nuevo valor en
la tabla y la aplicacin trabajar con este nuevo valor sin necesidad de
modificar el programa.
UTILIDAD
En este campo se indica con qu porcentaje de utilidad debe trabajar la
aplicacin.
DESCUENTO
En este campo se indica con qu porcentaje de descuento debe trabajar la
aplicacin. ________________________________
En este formulario se confi
gura los datos del sistema.
D d l u i A c l u n l m
Ultimo CMigo
Impuesto Genei al a las Venias 3
Utilidad Actual A.
D o s t 'ionto Actual A
Aceptar los Cambios I iQnorar los Cambios
<ctjtaiz;ar ios GOatos
G r u po E d i t o r i a l Megabyte
487
tk>-
VISUAL BASIC como debe ser.
La tabla Presentaciones es muy importante porque contiene todas las
presentaciones que se pueden asignar a los artculos. Esto permite que el
usuario ya no las escriba sino que las pueda seleccionar en forma rpida.
En este formulario se pueden agregar o quitar presentaciones.
fivPresentaciones TT^l
P ot e
T u b o
Bo l s a
T able ta s
A m p o ll as
Pastillas
In gr e s a r N u e v a s P r e s e n t a c i o n e s
P r e s e n t a c i n f-
ESTRUCTURA DE LAS TABLAS
Configuracin Presentaciones
UltimoCodigo Long Presentacin Texto 20
Igv Single
Utilidad Single
Descuento Single
MUY IMPORTANTE
En la tabla Configuracin adicione un slo registro con los valores que desea que
la aplicacin trabaje.
En la tabla presentaciones adicione todas las presentaciones que desea estn dis
ponibles para asignar a los artculos.
OTRAS CARACTERISTICAS DE ESTA APLICACIN
Se pone a disposicin del usuario un calendario, el cual se activa cuando hace click
en la fecha de la Barra de Estado.
El programa de listado muestra tambin los campos calculado usando los valores
de la tabla Configuracin.
Se debe ingresar una clave para modificar los datos de la tabla configuracin.
El ingrese de nuevos artculos es consecutivo, es decir, cuando se graba un artculo
la computadora queda lista para ingresar uno nuevo, generndose automticamente
su codigo.
Cuando ubica el cursor en el DataCombo3 se muestra las presentaciones
automticamente.
Cuando ubica el cursor en el DTPickcr I se muestra el calendario automticamente.
G r u p o E d i t o r i a l Megabyte
488
CAPTULO XII: Programacin ADO < 1 ^
DESARROLLO DE LA APLICACIN N 66
Agregue a la aplicacin anterior el formulario N 5 (Configuracin), el formulario N6
(Clave para actualizar la tabla Configuracin) y el formulario N 7 (Presentaciones).
FORMULARIO Ns 01
En el formulario N 1(Men Principal) agregue la opcin Configuracin con dos
subopciones: Sistema y Presentaciones. Tambin debe dibujar en el centro de este
formulario un control Calendar y en su propiedad Visible asgnele el valor False,
slo se debe visualizar cuando se haga click en la fecha.
Instrucciones del Men Principal
Son similares a la aplicacin anterior
Prvate Sub Consulta_Click()
Form4.Show 1
End Sub
Prvate Sub Listado_Click()
Form2.Show 1
End Sub
Prvate Sub Mantenimiento_Click()
Form3.Show 1
End Sub
Prvate Sub Presentaciones_Click()
Form7.Show 1
End Sub
Prvate Sub Sistema_Click()
Form5.Show 1
End Sub
Prvate Sub StatusBarl_PanelClck(ByVal Panel As MSComctlLb.Panel)
If Panel.Index = 1 Then Calendar 1.Visible - True
If Panel. Index = 4 Then Shell c:\windows\calc.exe, I
End Sub
Prvate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLb.Button)
If Button. Index = 1 Then Form2.Show 1
If Button. Index = 2 Then Form3.Show 1
If Button.lndex = 3 Then Form4.Show 1
If Button. Index = 4 Then End
End Sub
Cuando se pulsa ESC en el calendario, este se oculta
Prvate Sub Calendar 1_KeyPress(KeyAscii As Integer)
If KeyAscii - 2 7 Then Calendar .Visible = False
End Sub
G r u p o E d i t o r i a l Megabyte 489
FORMULARIO Ns 02
En el formulario N 02, agregue un control ADO (Adodc2) y conctelo a la tabla
Configuracin para que los datos calculados se obtengan de los valores que contie
ne esta tabla.
Tambin agregue un control Frame con 6 etiquetas. Para que en Label3 se muestre el
Igv de la tabla Configuracin, en Label5 la Utilidad y en label7 el Descuento.
^ l l l l l l * VISUAL BASIC como debe ser...
IGV p tNMad Dwcuerto p
-------------^ ..................., ........- - 3 Tpi
Acaricida Crema >:P0gr i Pole 500 o a 510 1.29 6.33 064: 5.7 30/ 06/02 i 73P. ~
Acancida Locin x E.0mi fiasco 10.00 020 1020 2.55 1275 1 23 114907/ 01/03 i 327
perniili X20Compnmido? i Caa 13W 026 13-26! 332 i$.5a 1 14.9219/ 01/02 i 574
P i .a Cola'. 20mi i Fiasco 23.00 04G 23.4G 5.87 2133 2V 263$ 16/ 10/02 i 844
Paiwdol Aritigwal x M.i tafoi Cat* 4i .i 0.08 4 00 1 02 510 0.51! 4.58 30/ 12/01 :*/.u ,
< ............................... i .....: .................. r
N* d All (culo axbadoi: 78
[h|<|m~h >|i|u|jiJ.i.t-' [>JmJ I I
Instrucciones del Formulario N 02
Prvate Sub Forrn_Activate()
Dim texto, f A s String
f = Formatf###,####,##0.00, (###,####,##0.00)'')
Adodc2.Refresh
Cambia el tipo de Comando para poder utilizar instrucciones SQL
Adodcl.Command.Type = adCmdText
Almacena en las etiquetas los valores de configuracin
Label3 - Adodc2.Recordset!lGV& %
Labe 15 = Adodc2.Recordset!UTILIDAD & %
Label7 = Adodc2.Recordset!DESCUENTO & %"
Almacena en variables los valores de la tabla configuracinpara realizarlos clculos.
I = Adodc2.Recordset!IGV /100
U = Adodc2. Recordset! UTILIDAD /100
D = Adodc2. Recordset!DESCUENTO /1 0 0
InstruccinSQLpara los campos calculados. Escriba todo en una sola ltea
Adodcl.RecoidSowee= selectCodigo,no>ribnj,pmerttacion,vaorcompra,valoivompra* &I& asIGV
vaIorconipm+igvas[PreeioCompra],[PrecioCompra]*&U& asUtilidad,[PrecioCompraJ+Utilkbd
as [Precio Venta], [Precio Venta] * &d&as Descuento, [Precio Venta] - Descuento as [Piecio Publico],
Vencimiento, vencimiento -#&Dale &' #as Diasfromartculos "
Adodcl .Refresh
Asigna unformato y alineacina la derecha para las columnas que contiene nmeros
For X = 2 To 8
DataGridl.Columns(X).NumberFormat = f
DataGrid1.Colurnns(X).Alignment = dbgRight
Next X
DataGrid1.Caption = Listado de artculos al & Now
Labell = N de Artculo mostrados: & Adodcl.Recordset.RecordCount
End Sub
|| || ^ 490 G r u p o E d i t o r i a l Megabvte
FORMULARIO N g 03
El diseo del formulario N 03 (Mantenimiento), es similar al de la aplica
cin anterior. Slo debe cambiar en la presentacin el control Text3 por el
control DataCombo3 para que el usuario pueda seleccionar la presentacin
del artculo y en la fecha de vencimiento, debe cambiar Text5 por el control
DTPickerl. Text3 debe usarlo para ingresar el Valor de Compra. Text4 y
Text5 se deben borrar. Al botn Cancelar cmbiele su propiedad Caption
por Salir. Los botones Grabar y Salir se visualizan cuando se agregan nue
vos artculos. Debe dibujar dos botones ms: Aceptar Cambios (Command7)
y Cancelar Cambios (Command8) los cuales se visualizarn cuando actua
lice los datos de un artculo. Esta parte del formulario N 03 debe quedar de
la siguiente manera:
CAPTULO XII: Programacin ADO ^ P
Cdigo
| t eKtl
Nombre
|T ext2
Presentacin
1DataCombo3
d
Val or de Compra
j T ext3 Grabar
Fecha de Vencimi ento
1 20 / 06 / 00
d
Salir
Aceptar Cambios Cancelar Cambios
A los cuatro botones asgneles en su propiedad Visible el valor False porque
slo se deben visualizar cuando se agreguen nuevos artculo o se actualicen
sus datos.
CONTROL DTPICKER

Este control permite tambin ingresar una fecha de manera personalizada.


Para visualizarlo en el cuadro de herramientas debe crear un proyecto en el
modo Controles de VB Edicin Empresarial o en la ventana de Compo
nentes activar la casilla: Microsoft Windows Common Controls-2 6.0.
Cuando lo dibuja en el formulario toma la forma de un Combo y muestra la
fecha. Si desea ingresar la hora, asgnele en su propiedad Format el valor 2-
dtp Time.
120/06/00 "] j02:35:41 p.m. - p
G r u p o E d i t o r i a l Megabyte
491
Cuando ejecute la aplicacin debe hacer un click en la flecha para mirar el
calendario y si desea cambiar el mes, haga click sobre el nombre del mes
y para cambiar el ao, haga click en el ao.
| | > VISUAL BASIC como debe ser. . .
Jun io 2000
- J
28 23 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 2 2 24
25 26 27 28 29 30 1
2 3 4 5 8 7 8
D H o y 23/06/00
La fecha que selecciona se muestra en el control y se almacena en su propiedad Valu.
En este formulario de mantenimiento tambin debe de agregar dos controles ADO. El control
Adodc2 lo debe conectar a la tabla Presentaciones y el Adodc3 a la tabla Configuracin.
Al control DataCombo3 le debe asignar las propiedades:
RowSource ListField DataSource DataList
Adodc2 Presentacin Adodcl Presentacin
Las propiedades DataSource y DataList permiten que cuando se selecciona una presentacin,
esta se grabe en la tabla Artculos.
AI control DTPickerl le debe asignar las propiedades:
DataSource DataList
Adodcl Vencimiento
Esto permite que cuando se seleccione una fecha, se grabe en la tabla Artculo.
Al control Textl asgnele en su propiedad Lock el valor True para que no se permita ingresar
o modificar el cdigo, ya que se autogenera mediante la tabla Configuracin.
INSTRUCCIONES DEL FORMULARIO N 03
La programacin de este formulario slo vara en los siguiente controles:
Instrucciones del Botn Ingresar Nuevo Artculo
Prvate Sub Command.3_Click()
Framel.Enabled = False
Frame2.Enabled = True
Frame3.Enabled = False
Command 1.Visible = True
Command2. Visible = True
Adodcl .Recordset.AddNew
NuevoCodigo = Adodc3.Recordset!ultimocodigo + 1
Textl = Format(NuevoCodigo, 00000)
Text2.SetFocus
End Sub
492 G r u p o E d i t o r i a l Megabvte
Instrucciones del Botn Actualizar
Private Sub Command4_Click()
Framel.Enabled = False
Frame2.Enabled = True
Frame 3.Enabled = False
Command7. Visible = True
Command8. Visible = True
'Se almacenan los valores originales en variables
XCODIGO = Textl
XNOMBRE = Textl
XPRESENTACION = DataCombo3
XVALOR = Val(Text3)
XFECHA = DTPickerl
Text2. Set Focus
End Sub
Instrucciones del Botn Grabar
Private Sub Commandl _Click()
Graba el nuevo Artculo
Adodcl. Recordset. Update
Actualiza el campo "UltimoCodigo" de la tabla Configuracin
Adodc3. Recordset!ultimocodigo = NuevoCodigo
Adodc3.Recordset. Update
Prepara un nuevo registro
Adodcl.Recordset.AddNew
NuevoCodigo = Adodc3. Recordset!ultimocodigo + 1
Textl = Format(NuevoCodigo, 00000)
Text2. Set Focus
End Sub
Instrucciones del Botn Salir
Private Sub Commcind2_Click()
Frame 1.Enabled = True
Frame2. Enabled = False
Frame3. Enabled = True
Commandl. Visible - False
Command2. Visible = False
Adodcl. Recordset. Cancel Update
If Adodcl. Recordset. RecordCount = 0 Then
Command4. Enabled = False
Command5. Enabled = False
Frame 1.Enabled = False
Else
Command4. Enabled = True
Commands. Enabled = True
Framel.Enabled = True
End If
End Sub
CAPTULO XII: Programacin ADO ^ I P
i p ! ^ G r u p o E d i t o r i a l Megabyte 4 9 3
Instrucciones del Botn Aceptar Cambios
Private Sub Command7_Click()
Frame!.Enabled - True
Frame2. Enabled = False
Frame3. Enabled = True
Command7. Visible - False
Command8. Visible - False
Adodcl.Recordset.Absolut ePosition- Adodcl.Recordset.Bookmark
End Sub
Instrucciones del Botn Cancelar Cambios
Private Sub Command8_Click{)
Si cancela, se devuelven los datos originales
Textl = XCODIGO
Text2 = XNOMBRE
DataCombo3 = XPRESENTACION
Text3 = XVALOR
DTPickerl = XFECHA
Frame .Enabled = True
Frame2.Enabled = False
Frame 3. Enabled = True
Command7. Visible False
Command8. Visible = False
End Sub
Instrucciones del Control DataCombo3
Private Sub DataCombo3_GotFocus()
Cucavose ubica el cursor enDataConibo3 se muestran las presentaciones
SendKeys "F4}"
End Sub
Instrucciones del Control DTPicker
Private Sub DTPickerl_CloseUp()
Despues de seleccionar la fecha seenfoca el botn Grabar
Command. Set Focus
End Sub
Private Sub DTPickerl_GotFocus()
Cuando se ubica el cursor en DTPickerl se muestra el calendario
SendKeys IF4
End Sub
Instrucciones del Control Text3
Slo permite el ingreso de nmeros
Private Sub Text3_KeyPress(KeyAscii As Integer)
lf(Chr(KeyAscii)< 0OrChr(Keyscii)> 9") And KeyAscii O 8Then KeyAscii=0
End Sub
VISUAL BASIC como debe ser...
NOTA
Las instrucciones de los otros controles son iguales a los de la aplicacin anterior.
Las instrucciones del Formulario N" 04 (Consulta) se desarrolla de la misma forma que el
Formulario N03, slo debe de mostrar los campos calculados y permitir actualizar de los artculos.
4 9 4 G r u p o E d i t o r i a l Megabyte-1
Este formulario permite actualizar los datos del sistema. Su diseo es muy sencillo,
slo debe dibujar 4 etiquetas, 4 Cajas, 4 botones de comandos, un control Frame y
un control ADO. Al control ADO conctelo con la tabla Configuracin y a las cajas
de texto con el campo respectivo. Asigne el valor False a la propiedad ControlBox
del formulario y a propiedad Enabled del control Frame 1 para que no se pueda
modificar los datos hasta que se ingresa correctamente la clave. El aspecto final del
formulario debe ser:
CAPTULO XII: Programacin ADO 4 1 1 1 1
FORMULARIO N2 05
O a l o * A c t u a l e s
Ultimo Cdigo
Impuesto General e les Ventas JText2
Utilidad Actual 7 |Text3
Descuento Actual
Aceptar los Cambios j Ignorar los Cambios j
I 1-^ I ^ I A d o d c l
Instrucciones del Form Actvate
Prvate Sub Form_Activate()
Adodcl .Refresh
End Sub
Instrucciones del Botn Actualizar los Datos.
Prvate Sub Command3_Click()
Llama al formulario N6 para ingresar primero la clave
Form.Show
End Sub
Instrucciones del Botn Aceptar Cambios
Prvate Sub Command_Click()
Adodcl .Recordset. Update
Frame .Enabled = False
End Sub
Instrucciones del Botn Ignorar Cambios
Prvate Sub Command2_Click()
Adodcl. Recordset. CancelUpdate
Adodcl .Recordset. MoveFirst
Frame .Enabled = False
End Sub
Instrucciones del Botn Cerrar
Prvate Sub Command4_Click()
Hide
End Sub
G r u p o E d i t o r i a l Megabyte
4 9 5
Como se indica en las instrucciones del botn Actualizar los Datos, cuando
el usuario haga click en este botn se visualiza el formulario N 06 para
ingresar la clave. Su diseo consiste en un control Picture con el grfico que
usted desee, una etiqueta, una caja de texto y un botn de comando. Al
formulario asgnele en su propiedad BorderStyle el valor 0-None.
l i l i l VISUAL BASIC como debe ser...
Clave de Acceso
Ok
Instrucciones del Botn OK (Formulario N6)
En este ejemplo la clave es VISUAL.
Prvate Sub Commandl_Click()
I f UCase(Textl) = VISUAL Then
Form5!Framel.Enabled = True
Else
Form5!Framel .Enabled = False
End I f
Textl =
Hide
End Sub
FORMULARIO Ng 07
Este formulario permite ingresar o eliminar presentaciones para asignar a
los productos. Su diseo consiste en un control DataList, un Frame, una
etiqueta, dos botones de comandos y un control ADO. Al control ADO
conctelo con la tabla Presentaciones y el control DataList 1 debe tener en
su propiedad RowSource el nombre del control ADO y en su propiedad
ListField el cambo Presentacin.
-j.gi .sj
DataListl
Ingresar Nuevas Presentaciones
Presentacin j Textl
: : : : : : : : : \ <| Adodd 11| : : : : : : : : :
496 G r u p o E d i t o r i a l Megabyte <
CAPITULO XII: Programacin ADO
n
El control Command 1permite borrar una presentacin, tiene en su propiedad Style
el valor 1-Graphical, en su propiedad Picture un grfico y en su propiedad Enabled
el valor False porque slo se active cuando se seleccione una presentacin.
Para adicionar una nueva presentacin escrbala en la caja de texto y pulse ENTER
para que se grabe.
Instrucciones del Form Actvate
Private Sub Form_Actvate()
'Si no hay nunguna presentacin se desactvate DataList 1
If Adodcl.Recordset.RecordCount = 0 Then
DataList .Enabled - False
Endlf
End Sub
Instrucciones del Control DataListl
Busca la presentacin seleccionada y activa el Commandl.
Private Sub DataList l_Click()
r = Presentacin = + DataList 1 .Text +
Adodcl. Recordset. Find r,, , 1
Commandl .Enabled = True
End Sub
Instrucciones del botn Borrar Presentacin (Grfico)
Private Sub Commandl_CIick()
Adodcl.Recordset.Delete
DataListl .ListField = presentacin
Commandl.Enabled = False
If Adodcl .Recordset.RecordCount = 0 Then
DataListl .Enabled = False
Endlf
End Sub
Instrucciones del Control Textl
Permiten grabar la presentacin al presionar ENTER
Prvate Sub Textl_KeyPress(KeyAscii As Integer)
IfKeyAscii - 13 Then
If Textl <> Then
DataListl .Enabled - True
Adodcl.Recordset. AddNew
Adodcl .Recordsetpresentacion = Textl.Text
Adodcl .Recordset. Update
Textl =
End If
Endlf
End Sub
Instrucciones del botn Salir
Private Sub Commandl_Click()
Hide
End Sub
G r u p o E d i t o r i a l Megabyte 497
f M
f r VISUAL BASIC como debe ser.
EL DATAREPORT
El Visual Basic 6.0 tiene un nuevo control para crear reportes. Este control
se llama DataReport.
Para trabajar con el DataReport debe de adicionarlo
EraY0Cto a su 4proyecto, para ello, haga click en la opcin
3 Agregar formulario _ " , . * , 7 . .
Agregar formulario mdi Proyecto de la barra de men y luego en Agregar
Agregar mdulo D c l t c l R c p O f t .
Agregar mdulo de dase
J f Agregar control de usuario
i a Agregar pgina de propiedades
i
Agregar DHTML Page
Agregar Data Report _________
Agregar WebClass
Agregar Data Environment
Agregar archivo, .. Ctrl+D
Quitar Formi
^ R e f e r e n c i a s . . .
Componentes... Ctrl+T
Propiedades de Proyecto 1...
Si no visualiza la opcin Agregar DataReport, activa la ventana
de Componentes y en la hoja Diseadores active la casilla del
DataReport
Se visualiza la ventana para crear el reporte y en el cuadro de
herramientas se agrega una nueva seccin con los controles
que puede insertar en el reporte.
General
DataReport
%
Si activa la ventana de Proyecto se visualiza el DataReport el cual al momento
de grabarse tiene la extensin *.DSR.
Proyecto - Proyectol F l
a
' Proyecto 1 (Proyecto 1)
Formi (Formi)
NOTA
Si regresa al formulario y no visualiza los
controles en el cuadro de Herramientas, haga
clic en la ficha General.
4 9 8
G r u p o E d i t o r i a l Megabyte-1
El DataReport inicialmente esta compuesto por 5 secciones que se utilizan
para disear el Reporte.
Seccin N 01 - DETALLE
Es la seccin principal porque aqu se indican los datos que se desea mostrar
en el reporte. Estos datos normalmente se obtienen de una o mas tablas
usando el control RptTextBox.
Seccin N 02 - ENCABEZADO DE PAGINA
Es la seccin que contiene el texto que se imprimir al inicio de cada pgina
del reporte. La informacin que se muestra en esta seccin es: Encabezado
de cada campo, N de pgina, etc.
Seccin N 03 - PIE DE PGINA
Es la seccin que contiene el texto que se imprimir al final de cada pgina
del reporte. Aqu tambin se puede mostrar el nmero de cada pgina, la
fecha y hora de impresin, etc.
Seccin N 04 - ENCABEZADO DE INFORME
Es la seccin que contiene el texto que se imprimir slo al inicio del Reporte.
Aqu puede mostrar el nombre de la empresa y comentarios sobre el reporte.
Seccin N 05 - PIE DE INFORME
Es la seccin que contiene el texto que se imprimir slo al final del Reporte.
Aqu puede mostrar por ejemplo algn resumen del reporte.
MUY IMPORTANTE
Al momento de crear el reporte no es obligatorio que utilice todas las secciones.
CONFIGURAR LA VENTANA DE DISEO DEL REPORTE
Cuando agrega un DataReport a su proyecto puede asignarle el tamao
que usted desee y configurar su
ventana de diseo. Para ello haga
click con el botn derecho en
cualquier parte de la ventana. Se
mostrar un men contextual con
las siguientes opciones:
CAPTULO XII: Programacin ADO
No-t - . Cl/H-H
5 Oti f V
insertar control
1-.fwtifi# ti'^'tbcfr'do r. :f - =_.e jziupi
Insertar encabezado o pie de grupo
* Mostrar encabezado o pie de informe
Mostrar encabezado o pie de pgina
V Mostrar cuadrcula
Mostrar reglas
> Forzar a la cuadrcula
Obtener estructura
Borrar estructura
Por ejemplo, si desactiva la opcin Forzar a la cuadrcula, los controles
se dibujarn con el tamao que usted desee. Tambin puede oculta o
visualizar secciones e insertar controles.
G r u p o E d i t o r i a l Megabyte
4 9 9
^IIII^ VISUAL BASIC como debe ser.. .
CONTROLES DEL DATAREPORT
Los controles para crear reportes son muy similares a los controles que se
dibujan en un formulario incluyendo sus propiedades.
RptLabel: Permite insertar mensajes en el Reporte.
RptTextBox: Permite indicar los campos a mostrar en el reporte.
Rptlmage: Permite insertar imgenes en el reporte.
RptLine: Permite insertar lneas en el Reporte.
RptShape: Permite insertar figuras geomtricas en el Reporte.
RptFunction: Permite insertar funciones en el reporte.
Cuando dibuja en el reporte el control RptFunction en forma predetermina
da se muestra la funcin SUM que permite sumar campos numricos den
tro del reporte. Si desea usar otra funcin active su propiedad FunctionType
donde podr seleccionar adems las siguiente funciones:
1-RptFuncAve.- Para obtener el Praomedio.
2-RptFuncMin.- Para Obtener el valor Mnimo.
3-RptFuncMax.- Para obtener el valor Mximo.
4-RptFuncRCnt.-Para obtener la cantidad de registros.
5-RptFuncVCnt.-Para obtener la cantidad de registros en blanco
6-RptFuncSDEV.-Para obtener la desviacin estndar.
7-RptFuncSERR.-Para obtener el error estndar.
NOTA
Los controles se puede insertar en el DataReport desde el
cuadro de Herramientas o haciendo click derecho en la
ventana de diseo y eligiendo la opcin Insertar Control.
Los controles que estn disponibles depende de la sec
cin donde hizo click derecho.
Etiqueta
Cuadro de texto
Image
Lnea
Forma
Nmero actual de pgina
Nmero total de pginas
Fecha actual (formato corto)
Fecha actual (formato largo)
Hora actual (formato corto)
Hora actual (formato largo)
T tulo del informe
500
G r u p o E d i t o r i a l Megabyte<
Tambin puede insertar o escribir cdigos predefinidos dentro del reporte
usando el control RptLabel:
%p : Muestra el nmero de pgina actual.
%P : Muestra el nmero de pginas que tiene el reporte.
%d : Muestra la fecha actual con formato corto.
%D : Muestra la fecha actual con formato largo.
%t : Muestra la hora actual con formato corto.
%T : Muestra la hora actual con formato largo.
%i : Muestra el ttulo del informe.
PROPIEDADES BSICAS PARA CREAR UN REPORTE
Las propiedades que necesita asignar para crear el reporte depende del
origen de los datos que quiera utilizar para el DataReport. Por ejemplo, si
desea utilizar un control ADO para que el DataReport muestre los registros
que contiene, slo necesita asignarle a travs una instruccin en su propiedad
DataSource del DataReport el nombre del control ADO y en cada control
RptTextBox que se use en la Seccin de Detalle escribir (no seleccionar)
en su propiedad DataField el nombre de cada campo cuyo contenido se
desea mostrar en el reporte.
Para cambiar los mrgenes del DataReport utilice sus propiedades:
RightMargin(Derecho) LeftMargin (Izquierdo), BottomMargin (Inferior) y
TopMargin (Superior).
Para indicar el tamao inicial de la ventana del DataReport use su propiedad
WindowState.
CAPTULO XII: Programacin ADO ^ ^
MTODOS DEL DATAREPORT
SHOW
Muestra slo en pantalla el reporte (Vista Previa), pero contiene dos botones
en la esquina superior derecha que permiten enviar a la impresora el reporte
o exportarlo como tipo HTML para enviarlo a travs de Internet o de tipo
texto para leerlo desde otro programa.
PRINTREPORT
Permite enviar el reporte directamente a la impresora.
REFRESH
Permite actualizar el reporte.
EXPORTREPORT
Permite exportar el reporte como HTTML o texto.
HIDE
Permite ocultar el reporte,
l i l i l Grupo Editorial Megabyte
501
A la aplicacin anterior agregue un nuevo formulario. Este formulario muestra
en un Datagrid los artculos, pudindolos seleccionar mediante una condi
cin que Ud, forme. Esta condicin puede ser mltiple, es decir, el usuario
puede hacer uso del operador AND (Y) o del operador OR (O) las veces
que desee y al hacer click en el botn IMPRIMIR todos los artculos que
se encuentran en el DataGrid se muestran tambin en el reporte.
# m VISUAL BASIC como debe ser. J f l j j j H H H A
APLICACIN DESARROLLADA N 67
. R e p o r t e d e A r t c u l o s - Iniisi
I presentacin
Condicin
p r e s e n t a c i n = *F
Mostrar con la Condicin Mostrar Todos
codioo ~1
valorpmp.ra vencimiento
00006 AB-Broncol 300 IM Frasco 9.5 15/06/00
01/05/02
00007
00002
AB -Broncol 600 1M Frasco 12
Acaricida Locin x 60 mi. Frasco 10 07/01/03
00009
00010
00004
Fenist Gotas Frasco 20 mi
Finistil Jarabe Frasco 100 mi
Frasco 13 29/06/00
Frasco io.
28/06/00
Pilka Gotas 20 mi Frasco 23 16/10/02
De u n t o t a l d e 28 a r t c u l o s , s e m u e s t r a n 6 q u e r e p r e s e n t a n el (21.43%)
IMPRIMIR I Cem |
I3B3I jjt DataReportl
Zoom Uoox
~E
,
MWBB?au
REPORTE DE ARTCULOS AL 28/06/00
Condicin : presentacin = 'Frasco' P gina N 1 d e 1
C d i g o A r t c u l o
P r e s e n t a c i n V al o r d e C o m p r a
F e c h a d e V e n c i m i e n t o
00006 AB-Broncol 300 IM F r a s c o 9.50 15jC6jOO
00007 AB-Broncol 6 0 0 IM F r a s c o 12.00 01J05J02
00002 Acari cida Locin x 60 mi F r a s c o 10.00 07/01/03
00009 Fenistil G o t a s F r a s c o 20 F r a s c o 13.00 29/06/00
00010 Finistil J a r a b e F r a s c o 100 F r a s c o 10.00 28.06/00
00004 Pilka G o t a s 20 mi F r a s c o 23.00 16/10/02
Pginas: Hj< fP
De u n t o t a l d e 28 a r t c u l o s , s e m u e s t r a n 6 q u e r e p r e s e n t a n e l (21.43%)
lHj
502 G r u p o E d i t o r i a l Megabyte
CAPTULO XII: Programacin ADO
OTRAS CARACTERSTICA DE LA APLICACIN:
Los nombre de los campos se llenan automticamente en el Combo.
Cuando se selecciona el campo Vencimiento y ubica el cursor en
Textl para ingresar el valor, se visualiza el calendario.
Si elige el ValorCompra no se permite el ingreso de letras.
Al hacer click en el botn Aceptar, la condicin que el usuario forma se
almacena en una caja de texto para que se pueda editarla si lo desea.
Al hacer doble click en un campo los artculos se ordenan por dicho
campo.
Al mostrar los registros se muestra la cantidad total de artculos, la can
tidad de artculos mostrados y el porcentaje que representa del total.
El contenido de algunas etiquetas del formulario se pasan al reporte
(DataReport).
Si no se forma una condicin correcta se visualiza el respectivo mensaje.
1.
DESARROLLO DE LA APLICACIN
Dibujar los controles EneoLJoM
2. Asignar las propiedades.
Al control Adocd 1conctelo con la tabla artculos y al DataGrid 1selec
cione el Adodcl en su propiedad DataSource.
Al los controles Adodcl y Calendar 1 asgneles en su propiedad Visible
el valor False.
Al resto de controles asgneles sus propiedades como se indica en la
aplicacin a desarrollar.
G ru p o E d i t o r i a l Megabyte 503
VISUAL BASIC como debe ser.
DISEO DEL DATAREPORT
Agregue a la aplicacin un DataReport e inserte los controles y sus
propiedades para que tenga el siguiente aspecto:
| DataReport!
0- I 1 I 2 I 3 I . 4 i | 5 >| >6 <I i 7 I 8 -1 *9*1 10I 11I 12I 13 I 14 I 15I 16I .1
f Encabezado de informe (Seccin4)
Encabezado de pgina (Seccin2)
REPORTE DE ARTICULOS A L %d
.Condicin : &qUetal
Cdigo
4 Detalle (Seccin 1)
Presentacin Valor de Compra
P5S
Pgina N- %p de %P
Fecha de Vencimiento
_
Codigo ! Nombre
4- Pie de pgina (5eccin3)
Presentacin VlorCompra Vencimiento
4 Pie de informe (Seccin5) --------
Etiqutalo
En la seccin de encabezado de Pgina dibuje 9 etiquetas para los ttulos del
reporte. Por ejemplo, la Etiqueta 1tiene en su propiedad Caption: REPORTE
DE ARTCULOS AL %d para que se muestre tambin la fecha. La etiqueta4
tiene en su propiedad Caption: Pgina N %p de %P, para que se muestre el
nmero de la pgina actual y la cantidad total de pginas.
La Etiqueta3 debe estar vaca para mostrar all el contenido de Text2
(Condicin) del formulario.
La Etiqutalo tambin debe estar vaca para mostrar all el contenido del
Label2 del formulario.
En la seccin de Detalle dibuje 5 cajas de texto y escriba (no seleccione) el
nombre exacto de cada campo de la tabla cuyo contenido se desea mostrar
en el reporte.
Al control Text4 asgnele en su propiedad Alignment el valor 1-RptJustifyRight
porque los valores numricos se deben alinear por la derecha. Adems debe
asignarle en su propiedad DataFormat el Formato Currency con 2 decimales
y en Smbolo el valor None.
NOTA
Si desea mostrar campos calculados en el reporte, utilice el nombre que le asigna
en la instruccin SQL despus de la palabra AS.
^ ||||| ^ 504 Grupo Editorial Megahvte <l l l i |
CAPTULO XII: Programacin ADO
INSTRUCCIONES DEL FORMULARIO
Instruccin del Forma Activate
Prvate Sub Form_Activate()
Llena el Combol con los nombre de los campos de la tabla Artculos
Combol.Clear
ForX = 0 To Adodcl.Recordset.Fields.Count - 1
Combol.Addltem Adodcl.Recordset(X).Name
NextX
Combol.Listlndex - -1 Deja en blanco el Combol
'LlenaelCombo2conlosoperadores lgicos. Dejeespacioantesydespusdel Operador
Combo2.Clear
Combo2.Addltem = : Combo2.Addltem <
Combol.Addltem > : Combo2.Addltem < =
Combo2.Addltem > = : Combol.Addltem < >
Combo2. Addltem like : Textl - : Text2 =
Adodcl. Refresh
TR = Adodcl. Recordset. RecordCount
Label2=Deu>itotalde &TR& artculos, se muestran &TR& que representad100.00%"
End Sub
Instruccin del Botn Aceptar
Private Sub Command 1JClickf)
Pregunta si el campo seleccionado es tipo Text
If Adodcl. Recordset(Combol.Listlndex).Type = 202 Then
'Pregunta si se eligi el operador LIKE
If Combo2. Listlndex = 6 Then
condicion - Combol + Combo2 + + Textl +
Else
condicion - Combol + Combo2 + + Textl +
End l f
End If
Pregunta si el campo seleccionado es tipo Date
l f Adodcl. Recordsetf Combol. ListIndex).Type = 7 Then
condicion = Combol + Combo2 + CDATE(' + Textl +
End l f
Pregunta si el campo seleccionado es tipo Currency (ValorCompra)
l f Adodcl .Recordset( Combo! .Listlndex). Type = 6 Then
Pregunta si el valor ingresado es un nmero
IflsNumeric(Textl) Then
condicion = Combo1 + Combo2 + Textl
Else
MsgBox Debe ingresar slo nmeros 16, Ha seleccionado el campo: &
Adodcl.Recordsetf Combo 1. Listlndex). Name
Textl = : Textl.SetFocus
End If
End If
Text2 - Text2 + condicion
End Sub
s l l l * Grupo Editorial Megabyte 505 mm
Instruccin del Botn Y
Prvate Sub Command2_Click()
Text2 = Text2 + "AND " Espacio antes y despus
End Sub
Instruccin del Botn O
Prvate Sub Command3_Click()
Text2 = Text2 + "OR " 'Espacio antes y despus
End Sub
Instruccin del Botn Borrar
Prvate Sub Command6_Click()
Text2 -
End Sub
Instruccin del Botn Mostrar con la Condicin
Prvate Sub Command4_Click()
On Error GoTo Mensaje
TR = Adodcl.Recordset.RecordCount
Indica que se va a utilizar una instruccin SQL
Adodc 1 .CommandType = adCmdText
Adodc I .RecordSource - select * from artculos where + Text2
Adodc l.Refresh
RM Adodcl.Recordset.RecordCount
P = RM* 100/TR
Label2- Dewitotalde" &TR& artculos, se muestran &RM& que representan el
( & Round(P, 2)& %)"
Exit Sub
Mensaje:
MsgBox No ha indica una condicin correcta", 16, Porfavor verifique
End Sub
Instruccin del Botn Mostrar Todos
Prvate Sub CommandS._Click()
Indica que se va a utilizar una instruccin SQL
Adodcl .CommandType = adCmdText
Adodc 1.RecordSource = select * from artculos"
A do de I. Refresh
TR = Adodcl .Recordset.RecordCount
Label2- Dewitotalde &TR& artculos, se muestran &TR& que representa el100.00%
End Sub
Instruccin del Control Calendarl
Prvate Sub Calendarl_Click()
Textl - Calendarl. Valu
Calendarl .Visible = False
End Sub
^- VISUAL BASIC como debe ser.
G r u p o E d i t o r i a l M e g a b y t e < | j | |
5 0 6
Instruccin del Control DataGrid
Prvate Sub DataGridl_DblClick()
Permite que al hacer Click en un campo se ordene por dicho campo
Adodc 1.CommandType = adCmdText
IfText2 = Then
Adodc .RecordSource = select *from artculos orderby & Adodcl .Recordset
(DataGrid .Col ).Name
Else
Adodc .RecordSource = select *from artculos where & Text2 & orderby &
Adodc 1. Recordsetf DataG rdl. Col). ame
Endlf
A dodc 1. Refresh
End Sub
Instruccin del Control Textl
Prvate Sub Text jGotFocus()
Pregunta si no se ha seleccionado el operador lgico
IfCombo2 = Then
MsgBox Indique el operador para la condicin, 6, Error
Text.Locked = True
Exit Sub
Else
Textl. Locked = False
Endlf
Pregiaitasi el canpo seleccionado contiaieunafeclui para mostrar el Calendario
If sDate(Adodc.RecordsetfCombo.Listlndex)) Then
Calendar .Visible = True
End f
End Sub
Instruccin del Botn Imprimir
Prvate Sub Command7_Click()
Asigna la propiedad DataSource del DataGrid a la propiedad DataSource de!
DataReport para mostrar en el reporte lo que se muestra en el DataGrid
Set DataReport.DataSource = DataGrid].DataSource
DataReport 1.Sections{2). Controlsf 3). Caption = Text2
DataReport l.Sectionsf 5).Controlsf l).Caption = Label2
Muestra el Reporte
DataReport 1.Show
End Sub
N O T A
Para referirse a un control del DataReport desde un formulario se usa la coleccin Sections
para indicar la seccin donde se encuentra el control y la coleccin Controls para referirse
especficamente al control. La secciones se enumeran de arriba hacia abajo. El encabezado del
Reporte es la primera seccin.
Los controles de cada seccin se enumeran de acuerdo al orden en el que se dibujan (en cada
seccin los controles se enumeran a partir de 1). En el reporte de ejemplo se asume que la
Ltiqueta3 del la seccin Encabezado de Pgina (Sec. N 2 ) f u e el tercer control que se dibuj.
Puede usar tambin el nombre de cada control.
CAPTULO XII: Programacin ADO
G r u p o E d i t o r i a l Megabyte 507
Ztt
VISUAL BASIC como debe ser.. .
DATA ENVIRONMENT
El Data Environment (Entorno de Datos) es otra de las nuevas formas que
tiene Visual Basic para conectarse a una base de datos y permitir administrarla
mediante objetos ActiveX.
Si desea conectarse a una base de datos mediante el Data Environment,
debe de agregarlo a su aplicacin, para ello seleccione la opcin Proyecto
de la Barra de Men y luego Agregar Data Environment. Si no la visualiza
ingrese a la opcin Ms Diseadores ActiveX o activa la ventana de
Componentes y en la hoja Diseadores active la casilla Data Environment.
Cuando agrega el Data Environment se visualiza la siguiente ventana:
t | ; Proyectol - DataEnvironmentl (DataEnvironment) H L l l E
>,ldo| 1 1 1 1
J M M flk
?Hy] DataEnvironmentl
Connection!
[1 ] objetos
Cuando se agrega el Data Environment se mostrar tambin en la ventana
del explorador de proyecto:
\%jProyecto - Proyectol m u m . ! x |
m Q
j B J2$ Proyecto 1 (Proyecto 1)
i l I B a E m l F o >f u ir1
C j Formi ( F o r m i)
N Diseadores
DataEnvironmentl (Dat aEnviron men tl)
Cuando graba el Data Environment utiliza la extensin *.Dsr (Diseador).
508 G r u p o E d i t o r i a l Megabyte <l ||f |j j
CAPTULO XII: Programacin ADO ^ S
BOTONES DEL DATA ENVIRONMENT
2k
Agrega una nueva conexin
a
Agrega un nuevo Comando.
M.
Inserta Procedimientos Almacenados
M
Agrega un Comando Secundario.
X
Elimina un Objeto de Data Environment
m
Actualiza el Data Environment
jki
Muestra la Ventana de Diseo de instrucciones SQL
J.
Muestra la Ventana de Propiedades
m
Muestra las Instrucciones
i l l
Muestra la Ventana de Configuracin
Ibi Organiza por conexiones
j k
Organiza por Objetos
La conexin se realiza mediante el objeto Connection el cual representa la
conexin a una base de datos y se utiliza como un origen de datos.
Un comando se representa por un objeto Command y contiene las instruc
cin que realizan consultas a una base de datos para obtener los registros
que deseamos los cuales se almacenan en un objeto Recordset.
Los Procedimiento Almacenados son un conjunto de instrucciones SQL
precompiladas almacenadas con un nombre en una base de datos y se pue
den ejecutar con una llamada desde una aplicacin.
Un Comando Secundario forma Comandos Jerrquicos que consisten en
un comando que se encuentra dentro de otro. Al comando principal se le
llama Comando Primario y al otro Secundario y permiten mostrar conteni
dos de una tabla separados por grupos usando un campo determinado o
mostrar el contenido de varias tablas relacionadas.
NOTA:
Otra forma de acceder a las opciones anterior es haciendo click derecho sobre
cualquier objeto del Data Environment
l i l i l * G ru po E d i t o r i a l Megabyte 5 0 9
o
Wii Ufo VISUAL BASIC como debe ser...
A P L I C A C I O N C O N D A T A E N V I R O N M E N T
Para desarrollar una aplicacin usando Data Environment tiene que utilizar
y asignarle propiedades por lo menos dos objetos de este diseador: El objeto
Connection y el Objeto Command.
En el objeto Connection se configura la conexin a la base de datos. Para
ello seleccione el objeto Connection y haga click en el botn Propiedades.
Se visualiza la siguiente ventana:
L-m-.'-n !--.'-rriss
Proveedoi JConexin } Avanmdn ) 1odoi |
Seteccions los dato a Io que des conel*te
Proveedor(esJ de OLE OB
Microsoft Jet 3.Q1 OLE OB Provider
Microsoft Jet 4,0 OLE OB Provider
Microsoft OLE DB Ptovidai foi Internet Publbhhw
Microsoft OLE DB Piovidor foi OLAP Scivicoi
Microsoft OLE OB Provider for Oracle
Microsoft OLE DB Provider for SQL Sorvcr
Microsoft OLE OB Simple Provider
MS Remoto
MSDataSliape
Proveedor de Microsoft OLE DB para paquete-; DTS
SOL Server DTS Fiat File OLE DB Provide.
Siguiente >> )
[ Aceptar | Cancelar | Ayuda
Los pasos que siguen se explicaron en la pgina N 428 (Conexin mediante
Archivos de Vnculos - OLE DB).
Si ya tiene una conexin ODBC creada debe elegir la opcin Microsoft
OLE DB Provider For ODBC Drivers.
Una vez que estableci la conexin a la base de datos debe agregar un
objeto Command al objeto Connection. Para ello seleccinelo y haga click
en el botn Agregar Comando. Visualiza la siguiente ventana:
gProject! - DataEnvironmentl (D... H0E3|
' ! ! I n f i n | u 1
l l DataEnvironmentl
- 3? Connectionl
0 Cornmandl
Comando: Cornmandl desde Connectionl
510 G r u p o E d i t o r i a l Megabyte *^1111
En el objeto Command se configura el origen de los registros. Seleccione
este objeto y haga click en el botn propiedades. Se visualiza la siguiente
ventana. G r a x s s i a s m m e e e e e e e e e e e e e e e e
General | Parmetros ] Relacin ) Agrupar | Agregados ) Avanzadas j
Hombre do comando |Commari>.'l Conejui'i: j Connection I
OiKjen de datos
CAPTULO XII: Programacin ADO
*' Objoto do ase <1 datos: j PiocuUimitii
Nombre de obiet-. |
: f Intlnicctn SOI;
L.
Cancelar |
Visual Basic asigna un nombre predeterminado al objeto Command
(Command 1) y al Connection (Connectionl), si usted desea puede cambiarles
de nombre.
En el cuadro Origen de Datos configure el origen de los registros. Por
ejemplo: En objeto de base de datos elija Tabla y en Nombre de objeto
seleccione el nombre de la tabla, o seleccione Instruccin SQL y escriba la
instruccin SQL correspondiente para seleccionar los registros deseados.
Una vez que configur el origen de los registros, el Data Environment queda
listo para usarlo como origen de datos en cualquier objeto ActiveX incluyendo
DataReport.
En los controles donde necesite indicar la base de datos use
DataEnvironmentl y donde necesite indicar la tabla use Cornmandl.
Por ejemplo:
Para desarrollar el siguiente listado, dibuje un DataGrid y en su propiedad
DataSource indique DataEnvironmentl y en DataMember indique Cornmandl.
T - ! ! X| | u Listado de Ar t c ul os con DataEnviionment
codiqo nombre 1presentacin 1valorcompra vencimiento
00001 Acar i ci da Crema x 6 0 gr : Pote 5 3 0 / 0 6 / 0 2
00002 Acar i ci da L oc i n x 60 rrt Frasco 10 0 7 / 0 1 / 0 3
00003 Fenistil x 20 Comprimido Caja 13 1 9 / 0 1 / 0 2
00004 Pilka Gotas 20 mi Frasco 23 1 6 / 1 0 / 0 2
00005 Panadol Ant igripal x 60 i Caa 4 3 0 / 1 2 / 0 1
00006 AB-Broncol 300 IM Frasco
9 5 ................................
1 5 / 0 6 / 0 0
00007 AB -Broncol 60 0 1M Frasco 12 0 1 / 0 5 / 0 2
00008 Ven or uton Forte x 12 Ce Caja 13 3 0 / 0 6 / 0 0
00009 Fenistil Gotas Frasco 2 0 Frasco 13 2 9 / 0 6 / 0 0
1 .............j ............................................................................ r
G r u p o E d i t o r i a l Megabyte
511
o
m
fa VISUAL BASIC como debe ser..
VENTANA DE DISEO DE INSTRUCCIONES SQL
Si en el cuadro Origen de Datos elige la opcin Instruccin SQL, puede
escribirla en ese mismo cuadro, pero tiene la posibilidad tambin de hacer
click en el botn Generador SQL para ingresar a la ventana de diseo de
instrucciones SQL la cual permite escribir de manera personalidad las
instrucciones que necesita.
rea para las Tablas Ventana de Vista de Datos
ta si
im.
J Vnculos de datos
1 Conexiones del Entorno de datos
.Ijifl Connection 1
Columna Alias 1Tabla jResul ad-l Tipo de orden 1Orden ]Criterios

A
r^a Area para los Campos rea de Instrucciones SQL rea de Resultados
Las tablas que va a utilizar en la consulta las puede pegar desde la ventana
de Vista de datos. Haga clic en el signo + del objeto Connection y luego en
tablas para visualizarlas y poder pegarlas.
Los campos que desea mostrar los puede dibujar desde la tabla o tablas que
pega en el rea de tablas hacia el rea de los campos.
El rea de los campos permite tambin ordenar los registros y seleccionarlos
usando las columnas Tipo de Orden y Criterios respectivamente.
En el rea de Instrucciones SQL se va escribiendo automticamente lo
que va diseado. Si usted desea puede modificarla o escribir una nueva
instruccin SQL.
Para mirar los resultados de la instruccin SQL generada puede hacer click
derecho y elegir la opcin Ejecutar.
Si pega varias tablas puede relacionarlas arrastrando el campo clave de una
tabla a la otra.
512 G r u p o E d i t o r i a l Megabyte <|| ||
CAPTULO XII: Programacin ADO
USO DEL DATA REPORT CON DATA ENVIRONMENT
Para crear un reporte usando el Data Environment debe agregarlo a su
aplicacin junto con el Data Report.
En el Data Environment debe de configurar la conexin a la base de datos
que desea utilizar en el reporte.
Despus de configurar la conexin debe asignarle al Data Report dos
propiedades : DataSource y DataMember.
En DataSource debe seleccionar el nombre del DataEnviroment que en
forma predeterminada es DataEnvironment 1.
En su propiedad DataMember debe seleccionar el nombre del comando
que en forma predeterminada es Commandl.
Luego a cada caja de textos (RptTextBox) que dibuje en la seccin de
Detalle para mostrar el contenido de los campos debe asignarles como mnimo
dos propiedades: DataMember y DataField.
En su propiedad DataMember debe seleccionar el nombre del Comando y
en su propiedad DataField debe seleccionar el nombre del campo respectivo.
Una de las ventajas que tiene en el DataReport al usar DataEnviroment es
que usted puede pegar los campos desde este control al DataReport. Slo
necesita asignar un tamao y posicin a cada ventana de tal manera que se
puedan visualizar ambas al mismo tiempo:
"i*"Sk%
CS ..ini
1-j.laL.J i1-iiai i1;*)
Cuando tenga ambas ventanas arrastre cada campo del objeto Command a la Seccin
de Detalle del DataReport. Cada campo se muestra con sus propiedades DataMember
y DataFiel ya configuradas y acompaada de una etiqueta a su izquierda que muestra
el ttulo del campo. Si desea puede mover esta etiqueta a la seccin Encabezado de
Pgina o borrarla.
Para ejecutar el DataReport slo necesita escribirDATAREPORT1.SHOW.
G r u p o E d i t o r i a l Megabyte
513
VISUAL BASIC como debe ser...
EL CONTROL MSHFLEXGRID
Este control se usa de manera similar al MSFlexGrid y permite mostrar el
contenido de una o mas tablas. En la ventana de componentes se llama:
Microsoft Hierarchical Flexgrid.
Para que el control MSHFlexGrid pueda mostrar informacin de un Data
Environment, debe asignarle en su propiedad DataSource el nombre del
DataEnvironment y en su propiedad DataMember el nombre del Command.
Para que el control MSHFlexGrid pueda mostrar informacin de un control
ADO, debe asignarle slo en su propiedad DataSource el nombre del control
ADO.
La ventaja de este control es que permite mostrar informacin de una manera
personalizada. Por ejemplo, puede mostrar el contenido de Comandos
Jerrquicos (Pg.472) almacenados en objetos Recordset del Data
Environment.
Por ejemplo: El contenido de la tabla Artculos lo puede mostrar agrupadas por la
presentacin, el ao de vencimiento, etc.:
12/30/01
00008 6 / 3 0 / 0 0
00011 Importal x 6 S hachis
1/ 7 / 0 3
00004 Pilka Gotas 20 mi
00006
00007 AB-Bfoncol 600 IM
00009 Fenistil Gotas Frasco 20 mi.
Finisti! Jarabe Frasco 100 rnl
00012
00013 Fluidasa iny x 2 mi 9/1 6/ 00
00001
m . L i s t a d o d e A r t c u l o A g r u p a d o s p o r P R E S E N T A C I O N
Frasco
00010
5 / 8 / 0 2
tt^ i
AO CODIGO NOMBRE PRESENTACION VALORCOMPRA VENCIMIENTO
Q 00006 AB-Broncol 300 IM Frasco 9.5 6/15 / 0 0
00008 Venoruton Forle x 12 Comp. Caja 13 6/30/00
2000 00009 Fenistil Gotas Frasco 20 ml. Frasco 13 6/29/00
00010 FinistilJatabe Frasco 100 mi. Frasco 10 6/2 8/0 0
00013 Fluidasa iny x 2 mi Frasco 13 9/1 6/0 0
B 2001 00005 Panadol Antiqripal x GOtab Caja 4 12/30/01
B 00001 Acaricida Crema x 60 gr. Pote 5 6/3 0 / 0 2
00003 Fenistil x 20 Comprimidos Caja 13 1/19/02
2002
00004 Pilka Gotas 20 mi Frasco 23 10/16/02
00007 AB-Broncol 600 IM Frasco 12 5 / 1 / 0 2
00011 Importal x 6 Shachets Caja 20 1/19/02
00012 Panalgin amp. x 2 mi Frasco 54 5 / 8 / 0 2
B 2003 00002 Acaricida Locin x 60 mi. Frasco 10 1/ 7/ 03
G r u p o E d i t o r i a l M e g a b y t e ^ | | | |
M.
514
. Listado de Artculos Agrupados por AO DE VENCIMIENTO
USO DE COMANDOS JERRQUICOS EN MSHFLEXGRID
1. Mostrar los artculos agrupados por su Presentacin
Agregue a su aplicacin un DataEnvironment y a su objeto Connection 1
conctelo la base de datos Tienda (Pag N 438), luego agrguele un
objeto Command 1y en su ventana de propiedades seleccione Instruccin
SQL para escribir la instruccin SQL que agrupe los artculos por su
Presentacin.
CAPITULO XII: Programacin ADO W J P
Propiedades de Commandl
Geneial j Parmetros | Relacin | Agrupar | Agregados | Avanzadas |
Conexin: | Connectionl ~*] Nombre de comando: |Commandl
Origen de datos
f Objeto de base de datos: j
Nombre de objeto: [~
(* Instruccin SQL:
" 3
Generador SQL...
SELECT PRESENTACION FROM ARTICULOS GROUP BV
PRESENTACION ORDER BY PRESENTACION
Aceptar Cancelar Aplig Ayuda
Luego seleccione el objeto Commandl y haga click en el botn Agregar
Comando Secundario. Se visualiza la siguiente ventana:
Comando: Command2 desde Connectionl
G r u po E d i t o r i a l M e g a b y t e
515 T O
Ingrese a la ventana de propiedades del Command2 y seleccione la
tabla Artculos, luego en la hoja Relacin agregue una relacin entre el
Commandl y el Command2 por el campo Presentacin y al final haga
click en Aceptar.
% VISUAL BASIC como debe ser...
Propiedades de Command2
General j Parmetros JRelacin ] Agrupar | Agregados j Avanzadas |
Nombre de comando: |Command2 Conexin: | j
Origen de datos
: Objeto de base de datos: Tabla
Nombre de objeto: Artculos
C Instruccin SQL:
Aceptar | Ayuda
Propiedades de Command2
General | Parmetros Relacin | A g r i a r ) Agregados ] Avanzadas |
F f jefacionat con un comando primaria
Comando primario: | Commandl ~*\
Definicin de relacin
Campos secundarios y
Campos primarios parmetros
Aceptar Ayuda
De esta manera el Comando Jerrquico (Commandl) queda listo para mostrarlo en
el control MSHFIexGrid. Para ello asigne en la propiedad DataSource del
MSHFlexGrid el nombre del Data Environment y en su propiedad DataMember el
nombre del comando primario (Commandl). Para ver el listado ejecute su aplicacin.
En forma predetermina los grupos de registros se muestran en forma
Horizontal como se indica en la Pgina N 477. Si desea visualizarlos en
forma vertical, haga click derecho dentro de este control y en la hoja General
cambie su propiedad BandDisplay a Vertical.
Cuando utiliza el modo Vertical puede hacer uso de la propiedad Bandlndent
para indicar a partir de qu columna se debe visualizar los registros del
Comando Secundario. Para ello ingrese a la hoja Bandas y seleccione
primero en Band la Banda 1(Command2) y luego en la propiedad Bandlndex
indique el N de la columna.
En la hoja Bandas tambin puede seleccionar los campos del Comando
Secundario que desea visualizar:
PHES EN TACION oorliqo J/iombre
Fenjlil x 20 Cornpiimidoi
I I-.1.A.,!mimi . .1x 1.(1i ,|.
Ver.OHjIon Forte x 1 C o m p
1/ I 9/02
I . V :i jA11
G/3/00
T / T V/o ;?....
516
G r u p o E d i t o r i a l M e g a b y t e " ^
CAPITULO XII: Programacin ADO
2. Mostrar los artculos agrupados por el Ao de Vencim.
Para que la agrupacin se muestre por el ao de vencimiento de cada Artculo
debe cambiar la propiedad del comando primario y secundario:
Propiedades de Commandl
Genefal J Parmetros | Relacin | Agrupar | Agregados | Avanzadas j
Conexin: |Connectn1 3
---------------
Nombre de comando: Commandl
Origen de datos
C Objeto de base de datos [
Nombre de objeto: [
< Instruccin SQL:
SELECT YEAR(VENCIMIENTO) ASAO FROMARTICULOS
GROUP BYYEAR (VENCIMIENTO) ORDER BY
YEAR(VENQMIENTO)
! Aceptar Aplicar Ayuda
Propiedades de Command2
General JParmetros | Relacin | Agupar | Agregados | Avanzadas
Nombre de comando: |Command2 Concn: j
: Origen de datos.............
C Objeto de base de datos: I
Nombre de objeto: f
. (* Instruccin SQL
J
SELECT
CODIGO.NOMBREPRESENTACION.VALORCOMPRA,VENCIMI
ENTO,YEAR(VENMIENTO) ASAOFROMARTICULOS
ORDER BY VENCIMIENTO
Aceptar Aplicar Ayuda
INSTRUCaNSQLDELCOMMANDl
SELECT YEAR(VENCIMIENTO) AS AO FROM ARTICULOS GROUP BY
YEAR(VENCIMIENTO) ORDER BY YEAR(VENCIMIENTO)
INSTRUCCIN SQLDELC0MMAND2
SELECT CODIGO, NOMBRE, PRESENTACION, VALORCOMPRA, VENCIMIENTO,
YEAR(VENCIMIENTO) AS AO FROM ARTICULOS ORDER BY VENCIMIENTO
La relacin se debe realizar por el campo calculado Ao:
Propiedades de Command2
G e n e r a l j P a r m e t r o s R e l a c i n | A gr u p a r ] A gr e ga d o s | A v a n z a d a s )
fs? [ ge i a e i o n a r c o n u n c o m a n d o primaricj
C o m a n d o primario: j C o m m a n d l
D e f i n i c i n d e r e l a c i n
C a m p o s s e c u n d a r i o s y
C a m p o s p ri ma ri os p a r m e t r o s
3
A c e p t a r | C a n c e l a r A y u d a
G r u p o E d i t o r i a l Megabyte
517
' VISUAL BASIC como debe ser...
REPORTE DE COMANDOS JERRQUICOS
Si usted desea mostrar en el reporte los datos que se encuentran en Comandos
Jerrquicos, slo tiene que agregar una nueva seccin mas al DataReport.
Esta seccin se llama GRUPO y para adicionarla debe puede hacer click
derecho en el DataReport y elegir la opcin Insertar Encabezado o Pie de
Grupo o una vez que asign las propiedades Datasource y DataMember al
DataReport hacer click derecho en l y elegir la opcin Obtener Estructura.
El encabezado de grupo lo debe configurar para que muestre la informacin
del Comando Primario (Comandl) y la seccin de detalle para que muestre
la informacin del comando secundario (Command2).
La seccin Pie de Grupo la puede configurar para mostrar un resumen de
cada grupo, por ejemplo, la cantidad de registros mostrados, la suma de
campos numricos, etc.
ifcD a t a R e p o i t l
11
j H _b J Zoom [loo*
i l
I
................ J
Reporte de Artculos por Ao de V encimiento
Ao deVencimiento
2000 Cdigo
00006
Artculo
AB-Broncol 300 IM
Valor de Compra
9.50
Fecha deVencimiento
15/06/00
a-
00010 Finisti J a r a b e F r a sco 100 mi. 10 00 28/06I0
00009 Fenistil Gotas F r a s c o 20 mi. 13.00 29/06/00
00008 Venoruton Forte x 12 Comp. 13.00 30/06/00
00013 Fluidas iny x 2 mi
Cantidad de Artculos: 5
13.00 16)09/00
2001 Cdigo
00005
Artculo
Panadol Antigripal x 60 tab
Cantidad de Artculos: 1
Valor de Compra
4.00
Fecha deVencimiento
30/12/01
2002 Cdigo
00011
Artculo
Importal x 6 Sh a c h et s
Valor de Compra
20.00
Fecha deVencimiento
19/01/02
00003 Fenistil x 20 Comprimidos 13.00 19/01/02
00007 AB-Broncol 600 IM 12.00 01/05/02
00012 Panalgin amp. x 2 mi 54.00 08/05/02
00001 Acaricida Crema x 6 0 gr. 5.00 30/06/02
00004 Pilka Gotas 20 mi 23.00 16/10/02
Cantidad de Artculos: 6
Pginas: H 4 |T~
518
G r u p o E d i t o r i a l Megabyte 5|
CAPTULO XII: Programacin ADO
Para crear el reporte anterior, puede disearlo de la siguiente manera:
% Projecti - DataRepoitl (DataReport)
4 Encabezado de informe (ReportHeader?
4 Encabezado de pgina (PageHeader)
Reporte de Artculos por Ao de V encimiento
Ao de Vencimiento
4 Encabezado de grupo (Command1Header)
AHO [Commandi] Cdigo
4 Petate (Command2_DetaiQ________
Valor de Compra Fecha de Vencimiento
CODIGO[Comrrianc] j NOMBRE[Commanc] VAl0f?C0MPRA[Commanc] VENCMENT[Command2]
4 Piede pgina (PageFooterj
Cantidad de Artculos: j RCNT ICommand21
4 Pie de informe (ReportFooter
Seccin de Encabezado de Pgina
Esta seccin tiene dos Etiquetas una con el ttulo principal y la segunda con
el ttulo Ao de Vencimiento.
Seccin Encabezado de Grupo
Esta seccin tiene un control RptTextBox que muestra cada ao de
vencimiento. En su propiedad DataMember seleccione Commandl y en su
propiedad DataField el campo calculado AO. El resto de controles son
Etiquetas con el ttulo para cada campo del Command2.
Seccin de Detalle
Esta seccin tiene cuatro controles RptTextBox que muestran el contenido
de los campos del Command2. En la propiedad DataMember de cada uno
de ellos seleccione el Command2 y en DataField el campo respectivo.
Seccin Pie de Grupo
Esta seccin tiene un control (RptLabel) con el ttulo Cantidad de Artculos
y un control RptFunction que muestra la cantidad de productos que se vencen
en cada ao. En su propiedad FunctionType seleccione 4-rptFuncRCnt, y
en su propiedad DataMember seleccione Command2.
NOTA
Usted puede cambiar el diseo de este reporte de acuerdo a lo que necesita y para
visualizarlo puede escribir dentro de un botn de Comandos del formulario la
siguiente instruccin: DataReportl.Show
Tambin puede hacer que semuestre automticamente cuando ejecute el proyecto,
configurndolo como objeto inicial (Proyecto/Propiedades del proyecto).
f ^ j j ^ G r u p o E d i t o r i a l Megabyte 519
l l i l l * VISUAL BASIC como debe ser..
APLICACIN DESARROLLADA N 68
La siguiente aplicacin permite mostrar en un reporte el contenido de Co
mandos Jerrquicos que se forman de dos tablas: Vendedores y Ventas que
se encuentran en la base de datos llamada CONTROL y cuyas estructuras
son:
Vendedores
Codigo Text 3
Nombre Text 30
Telefono Text 10
Ventas
Codigo Text 3
Fecha Venta Date
Monto Currency
Distrito Ven ta Text 20
Este reporte muestra tambin de cada vendedor la cantidad de ventas rea
lizadas, el monto total vendido y su promedio de ventas.
t t . D a t a e p o r t l
H J e f ] Z M m J j j l O O * J
1 ^ ^ ;.:--------- j---------------------------
. J
REPORTE DE VENTAS POR VENDEDOR
Codigo
003

Codigo
004
Codigo
002
Aginas: HIT
Jos Portilla
Fecha
15/01/00
16/02/00
20/02/00
10/03/00
22/03/00
228844
Monto
200.00
300.00
150.00
500.00
450.00
Distrito
Ferreafe
La Victoria
Chiclayo
Zana
Etem
N de Ventas 5 Total S/. 1,600.00 Promedio S/. 320.00
Nombre Telfono
Liliana Carbonel 224488
Fecha Monto
Distrito
21/01/00 600.00 Reque
01/01/OO 300.00 Motupe
N de Ventas 2 Total S/. 900.00 Promedio S/. 450.00
Nombre Telfono
Hoemi Montano 234878
Fecha Monto
Distrito
12/01/00 50.00 Reque
14/01/00 150.00 La Victoria
18/02/00 500.00 Pimentel
20/02/00 200.00 Lambayeque
M 'I .........
G r u p o E d i t o r i a l Megabyte"
CAPTULO XII: Programacin ADO
DESARROLLO DE LA APLICACIN
Para desarrollar esta aplicacin agregue a su formulario un DataEnvironment
y un DataReport.
Al objeto Connectionl del DataEnvironment conctelo a la base de datos
CONTROL, luego agregue un comando (Commandl) e ingrese a su ventana
de propiedades donde se escribe una instruccin SQL que obtiene los datos
de los vendedores ordenados por su nombre:
SELECT Codigo,Nombre,Telefono FROM Vendedores ORDER BYNombre
General | Parmetros ] Relacin ] Agrupar ] Agregados j Avanzadas )
Nombre de comando: | Commandl Conejjin: | Connectionl
j Origen de datos
1 Objeto de fease de datos: j
Nfimbro de objeto: j
Instiuccin SQL: fienerador SQL..
J
Aplicar
Luego al Commandl agrguele un comando secundario donde debe
seleccionar Tabla en Objeto de base de datos y en Nombre de objeto
seleccione la tabla Ventas
General ] Parmetros ] Relacin ) Agrupar ] Agregados ] Avanzadas J
LJombre de comando: j Corr.mwd2 Conexin: }7
Cripen do dalos
[Tabla
3
Nombre de objeto: VENTAS
~3
InstruccinSQL: - J . : u f f i f c a i .
........ --------------------------------
Aceptar j Cancelar |
Tambin puede seleccionar Instruccin SQL para obtener por ejemplo todos
los registros de la tabla Ventas ordenados por la fecha de ventas.
En el Comando Secundario ingrese a la pgina RELACIN y agregue
una relacin con el Commandl por medio del campo Cdigo.
Para activar el Reporte escriba en el formulario DataReportLShow.
G r u p o E d i t o r i a l Megabyte 5 2 1
: VISUAL BASIC como debe ser.
CONEXIN A UNA BASE DE DATOS
MEDANTE INSTRUCCIONES
Para conectarse a una base de datos sin usar el control ADO ni el diseador
DataEnvironment, debe seguir los siguientes pasos:
1. Configurar al Visual Basic para que acepte la manipulacin los Objetos
de Datos ActiveX
mediante instrucciones. Referencias - Proyectol
Esto se realiza activando
la casilla Microsoft
Referencias disponibles:
ActiveX Data Objects
x.x Library en
Proyecto/Referencias.
Intel Procedural Effect Library
JETExpression Service Type Library
LayoutDTC 1.0 Type Library
LMLibrary
Li Macromedia Shockwave Director Control 1
Microsoft Access 9.0 Object Library
+ 1
Microsoft Active Server Pages Object Librar
Microsoft ActiveMovie Control
Microsoft ActiveX Data Objects (Multi-dimer
B Microsoft ActiveX Data Objects 2,1 Library
Microsoft ActiveX Data Objects 2.0 Library
Microsoft ActiveX Data Objects Recordset ;
Microsoft ActiveX Plugin .
: per os oft Add-In Desianej
Prioridad
+ 1
2. Definir un objeto tipo Connection. Sintaxis:
Ditti Nombre del Objeto As New ADODB. Connection
3. Definir un objeto tipo Recordset. Sintaxis:
Dim Nombre del Objeto As New ADODB.Recordset
Dependiendo de la cantidad de formularios que vas a usar en la aplicacin,
estos objetos se pueden definir tambin a nivel de Mdulo usando la palabra
Public.
El objeto tipo Connection se utiliza para administrar la conexin a la base
de datos.
El objeto tipo Recordset almacena los registros que se obtiene de las tablas
de la base de datos donde nos conectamos para poder manipularlos en nuestra
aplicacin.
La palabra ADODB es un prefijo que contiene todos los objetos de datos
ActiveX. Se debe visualizar automticamente despus de escribir la palabra
New al definir los objetos. Si no se visualiza seguramente no activ la casilla
Microsoft ActiveX Data Objects x.x Library en la opcin Proyecto/
Referencias.
522 G r u p o E d i t o r i a l Megabvte<|f|^
CAPTULO XII: Programacin ABO ^ 1
REALIZAR LA CONEXIN
Para realizar la conexin se utiliza el objeto tipo Connection con la propiedad
ConnectionString y la forma de conectarse depende del origen de datos que
ha creado.
Por ejemplo:
1. Si tenemos un ODBC llamado Agenda y hemos definido el objeto DB tipo
Connection, las instrucciones para conectarse son: DB.ConnectionString
= DSN=Agenda
2. Si tenemos un Archivo de Vnculo OLEDB llamado Ventas en la carpeta
C:\Sistema, y hemos definido el objeto DB tipo Connection las instrucciones
para conectarse son:
DB.ConnectionString =File Name=C:\Sistema\Ventas.UDL
Si no ha creado ningn origen de datos, tambin puede realizar la conexin
mediante una cadena de conexin. Por ejemplo, la siguiente instruccin se
conecta a una base de datos Microsoft Access llamada Practica.mdb.
DB.ConnedonString="Provider=Microsoft.Jet.OLEDB.4.0;DataSourcc=C:\I,radinuiull>"
ABRIR UNA CONEXIN
Despus de realizar la conexin como se indic en el paso anterior, sta so
mantiene cerrada, si usted trata de utilizarla se visualizar el siguiente mensaje
Microsoft V isual Basic
Error 3709 en tiempo de ejecucin :
La aplicacin solicit una operacin en un objeto con una referencia a
un objeto Connection cerrado o no vlido.
lerminar f epurar j
Esto significa que antes de utilizarla, la debe abrir.
El mtodo OPEN permite abrir una conexin. Sintaxis:
Objeto_TipojConnection. Open
Por ejemplo para abrir la conexin almacenada en el objeto DB se debe
escribir: DB.Open
Tambin se puede abrir e indicar el origen de datos o la cadena de conexin
al mismo tiempo segn el origen de datos que ha creado:
DB.Open "DSN=Agenda"
DB.Open File Name=C:\Sistema\Ventas.UDL
DB.Open Providei^Microsoft.Jet.OLEDB.4.0;DataSource=C:\Practica.mdb
1 1 1 1 ^ G r u p o E d i t o r i a l Megabyte 523
S B lk v i s i ja B B M M W B i M M 1
ACCEDER A LOS REGISTROS
------------ ...
Para acceder y manipular los registros se puede utilizar el objeto definido de
tipo Recordset con sus propiedades mtodos que se explican a continuacin.
Otras de sus propiedades y mtodos se explicaron con el control ADO.
ACTIVECONNECTION
Permite indicar al objeto Recordset la conexin desde donde se van a obtener
los registros. Por ejemplo, la siguiente instruccin le indica al Visual Basic
que los registros se van a obtener de la conexin configurada en el objeto
DB: RS.ActiveConnection = DB
SOURCE
Esta propiedad se utiliza en lugar de Recordsource y permite acceder a los
registros a travs de una instruccin SQL o indicando el nombre de la tabla:
RS.Source= "select*fromartculoswhere year(vencimiento) = 2002"
RS.Source = artculos
OPEN
Es un mtodo que permite abrir el acceso a los registros
RS.Open
En este mtodo tambin se puede indicar el origen de los registros, la
conexin desde donde se van a obtener los registros, el tipo de cursor
(CursorType) y el tipo de bloqueo (LockType). Por ejemplo, las instrucciones:
RS.ActiveConnection = DB
RS.Source = artculos
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic
RS.Open
Se pueden reemplazar por:
RS.Open artculos, DB, adOpenKeyset, adLockOptimistic
REQUERY
Permite actualizar los registros de un objeto Recordset.
CLOSE
Permite cerrar un objeto Recordset liberando los recursos del sistema.
Cuando usted ciea el objeto Recordset o cualquier otro objeto, no lo elimina
de la memoria, para ello tiene que utilizar NOTHING..
NOTHING
Es una palabra clave que borra un objeto de la memoria. Sintaxis: Set Nombre
del Objeto = Nothing
524 G r u p o E d i t o r i a l Megabyte^
CLOSE
Permite cerrar un objeto Recordset liberando los recursos del sistema.
Cuando usted cierra el objeto Recordset o cualquier otro objeto, no lo elimina
de la memoria, para ello tiene que utilizar NOTHING.
Nombre del Objeto Recordset.Close
SAVE
Permite grabar un Recordset en el disco. Si desea abrir posteriormente el
objeto use tambin el mtodo Open.
Nombre del Objeto Recordset.Save Nombre
Ejemplo: Las siguientes instrucciones muestran en un DataGrid el contenido
de un Recordset grabado con el nombre copia. Dibuje un DataGrid en su
formulario.
Dim DB As New ADODB.Connection
Dim RS As New ADODB.Recordset
DB.Open DSN=INFORME
RS.Open SELECT * FROM Artculos WHERE ValorCompra<50",
DB, adOpenKeyset, adLockOptimistic
I f Len(Dir(COPIA, 0)) o 0 Then
I f MsgBox(Desea reemplazarlo, 36, Ya existe el
Recordset llamado COPIA) = 6 Then
Kill COPIA
Else
Exit Sub
End I f
End I f
RS.Save COPIA
RS. Cise
Set RS = Nothing
RS.Open COPIA
Set DataGrid 1 .DataSource = RS
CLONE
Permite crear copia de un Recordset. La siguiente instruccin hace una
copia de RS en RS2:
Set RS2= RS. Clone
FILTER
Filtar los registros de un RecordSet. La siguiente instruccin filtra slo los
artculos que valen menos de 50 nuevos soles:
RS.Filter = ValorCompra < 50
SORT
Ordena los registros de un Recordset. Ejemplo:
RS.CursorLocation = adUseClient
RS.Open Artculos, DB, adOpenKeyset, adLockOptimistic
RS.Sort = ValorCompra
Set DataGridl.DataSource = RS
CAPTULO XII: Programacin ADO
G r u p o E d i t o r i a l Megabyte 525 wm
VISUAL BASIC como debe ser...
APLICACIN DESARROLLADA N 69
Esta aplicacin consiste en una consulta, listado y reporte para la tabla
artculos sin usar el control ADO, ni el diseador Data Environment.
i. Aplicacin sin el contici ADO ni Data Environnent
C Z
listado
AB-Bronci 300 !M
AB-Bioncol 600 IM
Acaricida Crema x 60 gi
Acaricida Locin x 60 m,
FemsWGotas Frasco 20 mi
jFenisH x 20 Comprimido
Fn*stil Jarcbe Fiasco 100 mi
Ftadasa ir$ x 2 mi
Importal x$Shache*s ,
Panado! An#igr>al k SO tab J j
D a l o s d e l A r t i c u l a
Cdigo
Nombre
Pie:eriacin
V abr de Compia
Fecha de V enomieno
|AB-Boncol300IM
iFfasco
I 15/06/00
. Aplicacin t i n el control ADO ni Data Erwuonment
Constila
codwo I nombre l presentacin Ivatorcomora i vencimiento
00006 ' AB-Broncol 300 IM i Frasco 9.5 15/06/00
00007 AB-Bronco! Fn IM F- : .......12......... 01/05/02 __
001X11 l - - ida Cremai kBOj r Pql e 5 30/06/02
00002 h ; ai*: >da _oc :n oU - sFrasco 10 07/01/03
00009 I V fi i ." bo?a: ' i a : . 0 2 J f iz.co 13 28/06/00
00033 f " i l i ! JJ L m| r rnid !.. : i ...... 13 ist/ l M
00010 Fri-I 1 i h f ' f . i ol ^ r m c r i n 28/0 6/00 .......
00013 F^idasa rsy y.2.mi Fiasco 13 16/09/00
00011 1mportal 6 Shachets Csa r20 9/01/02
l <
nnnnS i P. ia/Vi I AnlinrmA! v (-.l1(".* 4 1 / 1 V fH
_ J
Reporte
En la primera hoja del control SsTab dibuje el control Frame, las etiquetas y
un control DataCombo y cinco cajas de texto. Al control DataCombol slo
asgnele el valor 1-dbcSimpleCombo en su propiedad Style.
En la segunda hoja del SsTab slo dibuje un control DataGrid y no le asigne
ninguna propiedad.
El Reporte diselo como se indica en la pgina N 467, pero slo con el
ttulo principal y las cajas de texto donde se indican los campos a visualizar
y sus respectivo ttulos.
CAPITULO XII: Programacin ADO
INSTRUCCIONES DE LA APLICACION
Definir los objetos en la General Declaraciones
Dim DB A New ADODB. Connection
Dim RS As New ADODB.Recordset
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
Realiza la conexin
DB.Open DSN=VENTAS
RS.Open select *Jmmartculos orderby nombre",DB,adOpenKeyset, adLockOptimistic
Asigna las propiedades al Datacombol
DataCombo 1. Text =
Set DataCombol.RowSource = RS
DataCombo LListField = RS(l).Name
Asigna las propiedades a las cajas de texto
Set Textl .DataSource = RS
Set Text2. DataSource = RS
Set Text3. DataSource = RS
Set Text4. DataSource = RS
Set Text5.DataSource = RS
Textl.DataField = RS(0).Name
Textl.DataField - RS( 1 ).Name
Text3. DataField = RS(l).Name
Text4.DataField = RS(3).Name
TextS.DataField = RS(4).Name
Asigna las propiedades al DataGridl
Set DataGridl. DataSource = RS
End Sub
Instrucciones del control DataCombol
Prvate Sub DataCombol_Change()
Dim R As String
R = NOMBRELIKE + DataCombol + * *
If DataCombol < > Then
RS.Find R,, , 1
IfRS.EOF Then
Frame 1 .Visible = False
RS.MoveFirst
Else
Frame 1.Visible = True
Endlf
Endlf
End Sub
Instruc. botn Reporte
Prvate Sub Commandl _Click()
Set DataReportl.DataSource=RS
DataReport 1.Show
DataReportl .Refresh
End Sub
Instruciones del SsTab_Click
Prvate Sub SSTabl_Click(PreviousTab As Integer)
If PreviousTab = 1 Then
RS.MoveFirst
DataCombol =
Endlf
End Sub
G ru po E d i t o r i a l Megabyte 527
, fK W .
i VISUAL BASIC como debe ser. . .
EL METODO EXECUTE DEL OBJETO CONNECTION
Este mtodo permite ejecutar instrucciones SQL sobre una conexin para
obtener y darles mantenimiento a los registros o a las tablas y crear Cursores.
Puede ejecutar cualquiera de las instrucciones SQL ya explicadas y espe
cialmente instrucciones SQL para Consultas de Accin o Instrucciones DDL.
CONSULTAS DE ACCIN
La consultas de accin son un conjunto de instrucciones SQL que permiten
dar mantenimiento a los registros de una tabla. Las principales acciones que
se pueden realizar son:
1. Actualizar los valores de los registros.
2. Adicionar nuevos regi stros.
3. Eliminar registros.
INSTRUCCIONES DDL
Son un conjunto de instrucciones del Lenguaje de Definicin de Datos que
permiten dar mantenimiento a las tablas de una base de datos. Las principa
les acciones que puede realizar son:
1. Crear tablas.
2. Modificar la estructura de las tablas.
3. Borrar tablas.
Si se obtienen registros con el mtodo EXECUTE, se pueden almacenar en
un objeto Recordset. Por ejemplo, las siguientes instrucciones muestran en
un control MSHFlexgrid los artculos ordenados por el Valor de Compra.
Despus de cerrar el Recordset los registros se siguen visualizando.
Dim DB As New ADODB.Connection
Dim RS As New ADODB.Recordset
DB.Open DSN=INFORME
RS.Open SELECT * FROM Artculos ORDER BY ValorCompra
Set MSHFlexGridl.DataSource = RS
RS. Cise
Set RS Nothing
ty528 G r u p o E d i t o r i a l Megabyte^
CAPTULO XII: Programacin ADO ^ 1
INSTRUCCIONES SQL PARA CONSULTAS DE ACCIN
D E L E T E F R O M
Esta instruccin permite borrar todos o slo un grupo de registros de una tabla.
Sintaxis para borrar todos los registros de una tabla:
Delete From Nombre de la Tabla
Sintaxis para borrar slo un grupo de registros:
Delete From Nombre de la Tabla Where Condicin
Tenga mucho cuidado al utilizar esta instruccin porque los registros que
borra ya no se pueden recuperar. Se recomienda hacer una copia de segu
ridad antes usarla.
Ejemplo: Si tenemos el objeto DB conectado a la base de datos Tienda que
tiene la tabla Artculos, entonces:
La siguiente instruccin borra todos los registros de la tabla artculos:
DB.Execute(Delete from Artculos)
La siguiente instruccin borra slo los artculos que se vencieron en el ao
1999.
DB.Execute(Delete from Artculos Where Year(Vencimiento) = 1999)
I N S E R T I N T O
Permite insertar registros a una tabla existente desde otra tabla. La tabla
donde se van a adicionar los registros debe existir porque si no existe se
produce un error con el tiene el nmero -2147217865. Su sintaxis es:
Inser luto TablaDestno Select Campol,Campo2,...CampoN From TablaOrigen
La sintaxis anterior adiciona todos los registros de la tabla Origen a la tabla
Destino. Si desea adicionar slo un grupo de registros, debe utilizar Where
con la condicin al final de la instruccin. Ejemplos:
La siguiente instruccin adiciona todos los registros a la tabla Artculos a la
tabla Respaldo.
DB.Execute(Insert Into Respaldo Select codigo,nombre, presentacin,valorcompra,
vencimiento from Artculos)
La siguiente instruccin adiciona los artculos que tienen presentacin Caja
de la tabla Artculos a Respaldo.
DB.Execute(Insert Into Respaldo Select codigo,nombre, presentacin,valorcompra.
vencimiento from Articulos Whre Presentacin = Caja)
| | | | j j ^ G r u p o E d i t o r i a l Megabyte 5 2 9 - ^ | | |l
. BASIC como debe ser.. .
S E L E C T I N T O
Esta instruccin permite crear una tabla y adicionarle registros de otra
tabla. La tabla destino no debe existir porque de lo contrario se produce
un error que tiene el nmero -2147217900. Su sintaxis es:
Select Campo 1,Campo2,...CampoNInto TablaDestino From TablaOrigen
Si slo desea crear la tabla y adicionarle algunos registros, debe agregar
Where y la condicin. Ejemplos:
La siguiente instruccin crea la tabla Seguridad y le adiciona todos los regis
tros de la tabla artculos.
DB.Executef Select codigo,nombre,presentacin, valorcampra, vencimiento Into
Seguridad From Artculos )
La siguiente instruccin crea la tabla Seguridad y le adiciona slo los artcu
los cuyo valor de compra es mayor que S/. 250.00
DB. Execute( Select codigo,nombre,presentacin, valorcampra, vencimiento Into
Seguridad From Artculos Where valorcompra > 250 )
U P D A T E
Permite reemplazar el contenido de un campo de todos o de un grupo de
registros por uno nuevo.
Sintaxis:
Para todos los registros:
Update Nombre de la Tabla Set Nombre del Campo = NuevoContenido
Para un grupo de registros:
Update Nombre Tabla Set Nombre Del Campo= NuevoContenido Where Condicion
Ejemplos:
La siguiente instruccin incrementa al valor de compra de todos los artcu
los el 10%.
DB.Executef Update Artculos Set ValorCompra = ValorCompra * 1.10)
La siguiente instruccin cambia a los artculos que tienen su presentacin
Caja por Cajitas.
DB.Execute( ' Update Artculos Set Presentacin= Cajitas Where
Presentacin = Cajas')
0^4^ 530 G r u p o E d i t o r i a l Megabyte
CAPTULO XII: Programacin ADO
INSTRUCCIONES DDL
Las instrucciones DLL significan Instrucciones de Lenguaje de Definicin
de Datos y son importantes por que con ellas podemos crear tablas, modifi
car la estructura de una tabla o eliminar toda una tabla incluyendo los regis
tros que contiene y su estructura.
C R E A T E T A B L E
Esta instruccin, como su nombre lo indica permite crear una tabla. Su
sintaxis es la siguiente:
Create Table Nombre de la Tabla(Campol Tipo, Campo2 Tipo,... CampoNTipo)
Ejemplo:
La siguiente instruccin permite crear una tabla llamada Clientes dentro de la
base de datos que esta conectada al objeto DB con la siguiente estructura:
Codigo Text 5
Nombre Text 40
Ruc Text 8
Credito Currency
Feeing Date/Time
DB.Execute (CreateTable Clientes(Codigo Text(5), NombreText(40),
Ruc Text(8), Crdito Currency, Feclns Date))
A L T E R T A B L E
Esta instruccin permite agregar o eliminar un campo de una tabla.
La sintaxis para agregar un campo a una tabla es:
Alter Table Nombre de la Tabla Add Column NombreCampo Tipo
Ejemplo:
La siguiente instruccin agrega a la tabla Clientes el campo Telfono de
tipo Texto con 10 caracteres.
DB.Execute (Alter Table Clientes Add Column Telefono Text( 10))
G r u p o E d i t o r i a l Megabyte . : 5 3 1 < | | | | | |
Alter Table Nombre de la Tabla Drop Column NombreCampo
Ejemplo:
La siguiente instruccin elimina de la tabla Clientes el campo Telfono.
DB.Execute ("AlterTable Clientes Drop Column Telefono")
DROP TABLE
Esta instruccin permite eliminar toda una tabla incluyendo los registros que
contiene y su estructura.
La sintaxis es:
Drop Table Nombre de la Tabla
Ejemplo:
La siguiente instruccin elimina la tabla Clientes.
DB.Execute ("Drop Table Clientes")
iii>' VISUAL BASIC como debe ser. . .
La sintaxis para eliminar un campo a una tabla es:
NOTA:
En la siguiente aplicacin se muestra ejemplos mas amplios sobre el uso de las
instrucciones SQL para consultas de Accin y sobre las instrucciones de Lenguaje
de Definicin de Datos (DLL).
La aplicacin siguiente tambin se encuentra en Disco de Aplicaciones que acom
paa a este libro para visualizar y comparar las instrucciones con mayor facilidad.
l i l i l ^ 5 3 2 G r u p o E d i t o r i a l Megabyte
APLICACIN DESARROLLADA N 70
La siguiente aplicacin permite dar mantenimiento a los registros y a la
tabla Artculos:
mora
Artculos
Agregar artculos de prueba
Cambiar una presentacin por otra
Cambiar el V alor de Compra
Restaurar el valor de compra anterior
Borrar artculos
Recuperas los Ultimos Artculos Borrados
Borrar la Copia de Seguridad de los archivos borrados
Salir
CAPTULO XII: Programacin ADO < 1 1
Relacin de Artculos
Codigo Nombre Presentacin V alor de Compra V encimiento
00001 Acaricida Cierna x 60 gr. Pote 5.0000 2002-06-30 00:00:0
00002 Acaricida Locin x 60 mi. Frasco 10.0000 2003-01-07 00:00:0
00003 Fenistil x 20 Comprimidos Caja 13.0000 2002-01-19 00:00:0
00004 Pilka Gotas 20 mi Frasco 23.0000 2002-10-16 00:00:0
00005 Panadol Antigripal x 60 tab Caja 4.0000 2001-12-30 00:00:0
00006 AB-Broncol 300 IM Frasco 9.5000 2000-06-15 00:00:0
00007 AB-Broncol 600 IM Frasco 12.0000 2002-05-01 00:00:0
00008 V enoruton Forte x 12 Cornp. Caja 13.0000 2000-06-30 00:00:0
00009 Fenistil Gotas Frasco 20 mi. Frasco 13.0000 2000-06-29 00:00:0
00010 FinistilJatabe Frasco 100 mi. Frasco 10.0000 2000-06-28 00:00:0
00011 Importai x 6 Shachets Caja 20.0000 2002-01-19 00:00:0
L a " " ............
Al ejecutar la aplicacin y mientras dure la conexin a la base de datos se
muestra una pantalla de presentacin.
Programa de ejemplo
Visual Basic
Co mo d e b e s e r . . .
Un momento por favor
Una vez realizada la conexin esta pantalla se oculta automticamente y se
muestra el men principal.
G r u p o E d i t o r i a l Megabyte 533
i. Mantenimiento de la labia Artculos
AGREGAR ARTCULOS DE PRUEBA
Con esta opcin usted puede agregar la cantidad de artculos que desee a la
tabla y de esta manera probar la velocidad de la computadora para procesar
una gran cantidad de registros. Por ejemplo usted puede probar qu tan
rpida es su computadora y su programa con unos cinco mil o diez mil
artculos. Esta opcin presenta el siguiente formulario.
l ^ VISUAL BASIC como debe ser...
El Men Principal esta compuesta por las siguientes opciones:
1 A d i c i o n a l a r t c u l o s d e P r u e b a 1751x1
Actualmentehay13artculos. Cuantodeseaagregar? | Aceptar
J
Configuracin de los nuevos Artculos :
Losartculosempiezanconlapalabra JProducto
Lapresentacindelosartculosdebeser jCaja

El valor decompradebeestar entre jio.oo V jl 00000


~ -
Lafechadevencimientodebeestar entreel | o i / o i / o i J y 1 J31n 2/01
3 ]
Cerrar j 1
Aqu se indica la cantidad de artculos a agregar, el nombre para los artculos.
Al nombre que usted indique se le adiciona un nmero correlativo.
Tambin puede indicar la presentacin, el rango del valor de compra y de
las fechas de vencimiento que deben tener los artculos al momento de
agregarse.
Tanto el valor de compra como la fecha de vencimiento se calculan al azar
entre el rango establecido.
CAMBIAR UNA PRESENTACIN POR OTRA
Esta opcin permite cambiar la presentacin de un grupo de artculos por
una nueva. El formulario que se muestra es:
-Tnn
Se l e c c i o n e la P r e s e n t a c i n A c t u a l J C a j a {
Cambiar una Presentacin por Otra
Es c r i b a la p r e s e n t a c i n q u e q u i e r e c a m b i a r por: C a j a
Cambiar Ahora
534
G r u p o E d i t o r i a l Megabyte < 3
En el combo slo se visualizan las presentaciones de los artculos que
actualmente tiene la tabla. Despus de elegir una presentacin, el programa
le pide que escriba la nueva presentacin por la cual la desea cambiar. A
todos los artculos que tienen la presentacin seleccionada se le cambia por
la nueva presentacin al hacer click en el botn Cambiar Ahora.
CAMBIAR EL VALOR DE COMPRA
Esta es til cuando desee variar el valor de Compra de los artculos. El
formulario que se visualiza es:
CAPTULO XII: Programacin ADO 4SSB&
1 . V a r i a c i n d e l V a l o r d e C o m p r a m u _ I n i x l
.............
I n gre s e el monto d e V a r i a c i n |j
L a V a r ia c i o n esta e n :
Sol es C Por ce nt a je
1ipu u c v d i i a u u n
Incrementar C" Disminuir
Cambi ar A h o r a J
Cerrar j
Primero debe ingresar el monto de variacin, luego elegir si lo ha ingresado
en soles o porcentaje y por ltimo debe indicar si se debe aumentar o disminuir
al valor de comprar. Si comete algn error al variar el valor de compra de
los artculos, utilice la siguiente opcin.
RESTAURAR EL VALOR DE COMPRA ANTERIOR.
Cuando usted varia el valor de compra, se guarda en un campo el valor de
compra anterior y esta opcin permite recuperar dicho valor de compra.
Esta opcin es muy til cuando comete algn error en la variacin de los
valores.
Antes de restaurar el valor de compra le pide la confirmacin:
I CONFIRME POR FAVOR i . mu n
- V Res
i
taurar el Valor de
( S ]
; Compra anterior d
No
e los artculos
G r u p o E d i t o r i a l Megabyte 535
VISUAL BASIC como debe ser.
Si ingresa a la opcin Restaurar El valor de Compra anterior sin haber variado
los valores se muestra un mensaje de aviso.
BORRAR ARTCULOS
Esta opcin permite borrar todos o un grupo de artculos.
El formulario que presenta es el siguiente:
. Borrar A r t c u l o s
Campo Op e r a d o r
MED
CODIGO
*l
N O M B R E wm
P R E S E N T A C I O N >
V A L O R COM PR A
| V E N C I M I E N T O
II
A
A
V
i
^1
A c e p t a r j
C o n d i c i o n
B o a , l os A r t c u l o s q u e c u m p l e n B o [ | a ( T o d o s tes A r t ( c u | o s
Usted puede formar la condicin que deben cumplir los artculos para
que se puedan borrar o hacer un click en el botn respectivo para borrar
todos los artculos.
Cuando se elige el campo Valor de Compra no se permite el ingreso de
letras y cuando se elige el campo Vencimiento se muestra automticamente
un control DTPicker.
Este ejemplo lo puede utilizar tambin en la opcin Cambiar el Valor de
Compra de tal manera que slo se pueda cambiar el Valor de algunos artculos.
5 3 6 G r u p o E d i t o r i a l M c g a b v t e ^ ^ ^
w m ,
RESTAURAR LOS LTIMOS ARTCULOS BORRADOS
Cuando usted borra artculos en la opcin anterior, estos se guardar en
una tabla de seguridad con un campo adicional llamado Fecha el cual contiene
la fecha que borr el artculo. Esto es importante porque puede borrar por
accidente los artculos. Esta opcin permite recuperar todos los artculos
borrados un grupo de ellos. Los grupos de artculos se pueden recuperar la
fecha en la que se borraron. Visualiza el siguiente formulario.
CAPITULO XII: Programacin ADO
i i M B i M i M i i i i i i i i i i i M i i r i i i i r i n 1................m i
Ver por fecha de borrado 115/07/00 Ver todos los borrados I
|Estos son los artculos que ha borrado el da 15/07/00
Codigo Nombre Presentacin Valor de Compra Vencimiento Fecha que se borr
00002Acaricida Locin x 60 mi. Frasco 49.5662 2003-01-07 00:00:00 2000-07-15 00 00 00
0000GAB-Broncol 300 IM Frasco 49.5531 2000-06-15 00:00:00 2000-07-15 00 OO00
00007 AB-Broncol 600 IM Frasco 49.6181 2002-05-01 00:00:00 2000 07-15 00 00 00
00009 Fenistil Gotas Frasco 20 mi. Frasco 49.6442 2000 06-29 00:00:00 2000 07-15 00 00 00
00010 Finistil Jarabe Frasco 100 mi. Frasco 49.5662 2000-06-28 00:00:00 2000 07-15 00:00 00
00012 Panalain amp. x 2 mi Frasco 50.7079 2002-05-08 00:00 00 2000-07-15 00:00:00
00013 Fluidasa iny x 2 mi Frasco 49.6442 2000-09-16 00:00:00 2000-07-15 00:00 OO
00004 Pilka Gotas 20 mi Frasco 49.9035 2002-10-16 00:00:00 2000-07-15 00 00 00
-1 1
Recuperarlos
Cerrar
BORRARLACOPIADESEGURIDADDELOS ARTICULOS BORRADOS
Si est seguro de los artculos que ha borrado, entonces esta opcin
elimina definitivamente los artculos borrados. Visualiza el mismo formulario
anterior, pero con el botn Borrarlos Definitivamente.
Ver pot fecha de borrado
3
Ver todos los borrados
Estos son los artculos que ha borrado el da 15/07/00
Codigo Nombre Presentacin Valor de Compra Vencimiento Fecha que se borr
00002Acaricida Locin x 60 mi. Frasco 49.5662 2003-01-07 00:00:00 2000-07-15 00:00:00
00006 AB-Broncol 300 IM Frasco 49.5531 2000-06-15 00:00:00 2000-07-15 00:00:00
00007 AB-Broncol 600 IM Frasco 49.6181 2002-05-01 00:00:00 2000-07-15 00:00:00
00009 Fenistil Gotas Frasco 20 mi Frasco 49.6442 2000-06-29 00:00:00 2000-07-15 00:00 00
00010Finistil Jarabe Frasco 100 mi Frasco 49.5662 2000-06-28 00:00:00 2000-07-15 00:00:00
00012 Panalgin amp. x 2 mi Frasco 50 7079 2002-05-08 00:00:00 2000-07-15 00:00 00
00013 Fluidasa iny x 2 mi Frasco 49.6442 2000-09-16 00:00:00 2000-07-15 00:00:00
00004 Pilka Gotas 20 mi Frasco 49.9035 2002-10-16 00:00:00 2000-07-15 00:00:00
Borrarlos
Definitivamente
G r u p o E d i t o r i a l Megabyte
537
DESARROLLO DE LA APLICACIN N 70
Como esta aplicacin est compuesta por varios formularios, debe agre
gar un mdulo y definir all los objetos Connection y Recorset y las variables
que se necesitan en la aplicacin.
Tambin debe crear en este mdulo el procedimiento MAIN en el cual
se realiza la conexin y se muestra la pantalla de presentacin. Este proce
dimiento se debe ejecutar primero, para ello configure al Visual Basic en la
opcin Proyecto/Propiedades del proyecto/Objeto Inicial.
Contenido del Mdulo de la aplicacin
Public DB As New ADODB. Connection
Public RS As New ADODB.Recordset
Public RS2 As New ADODB.Recordset
Public RP As Integer
Public EXISTE As Boolean
Sub Main()
Muestra pantalla de presentacin
Forml.Show
Forml .Refresh
Realiza la conexin
DB.Open DSN= VENTAS
RS.Open SELECT codigo,nombre,presentacin,valorcompra,vencimiento
FROM artculos ORDER B Y nombre , DB, adOpenStatic, adLockOptimistic
Cuando termina la conexin oculta la presentacin y muestra el men principal
Forml. Hide
Forml.Show
End Sub
^^ VISUAL BASIC como debe ser...
FORMULARIO N 2 01
En el formulario N 01 debe disear la pantalla de Presentacin. En la aplicacin
de ejemplo, este formulario est compuesto por 3 etiquetas con los mensajes:
Visual Basic, Como debe ser... y Espere un momento Por Favor con sus
respectivas propiedades como poR ejemplo: Font, Forecolor, etc.
FORMULARIO N2 02 ( Me n Pr i n c i pa l )
En el formulario N 02 disee el Men Principal con las opciones indicadas. Este
formulario debe tener un control MSHFlexGrid donde se muestran todo los artcu
los de la tabla.
538
G r u p o E d i t o r i a l P
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
MSHFlexGridl. Cois = 0
Set MSHFlexGridl.DataSource = RS
MSHFlexGridl.FonnatString= Codigo\ Nonm | Presentacin \V.deCompra\ Vencimiento
End Sub
Instrucciones de la opcin Agregar Artculos de Prueba
Prvate Sub Agregar_Click()
Form3.Show
End Sub ,
Instrucciones de la opcin Cambiar una Presentacin por Otra
Prvate Sub Cambiar_Click()
Form4.Show 1
End Sub
Instrucciones de la opcin Cambiar el Valor de Compra
Prvate Sub CambiarValor_Click()
Form5.Show 1
End Sub
Instrucciones de la opcin Restaurar el Valor de C. Anterior.
Prvate Sub RestaurarValor_Click()
RS. Cise
Abre la tabla artculos con todos los campos
RS.Open SELECT * FROM Artculos
'Verificasihayunacopiadebsvdomsdecompraanleriojes( Campo ValorAnterior)
EXISTE = False
ForX = 1 To RS.Fields.Count
IfRS(X- l).Name = ValorAnterior Then EXISTE = True
Next
RS.Cise
Abre la tabla artculos con los campos principales
RS. Open SELECT codigo, nombre,presentacin, valorcompra, vencimiento
FROM artculos ORDER BY nombre, DB, adOpenStatic,
adLockOptimistic
Si no existe el campo ValorAnterior significa que no ha variado el vabrde compra
IfNot EXISTE Then
MsgBox No se ha variado el Valor de C. de los Artculos,64, "Nopuedo realizarlo
Else
IfMsgBox( Restaurar el Valorde C. anterior de losArt. ", 36, Confirme por Favor") = 6 Then
DB.Execute UPDATE Artculos SET ValorCompra = ValorAnterior
Elimna el campo ValorAnterior
RS. Cise
DB.Execute ( ALTER TABLE Artculos Drop column ValorAnterior)
RS.Open
Actualiza la Consulta
RS.Requery
Set MSHFlexGridl.DataSource = RS
End If
End If
End Sub
CAPTULO XII: Programacin ADO
G r u p o E d i t o r i a l Megabyte
539
Instrucciones de la opcin Borrar Artculos
Prvate Sub Borrar Artculos_Click()
Form. Show 1
End Sub
Instrucciones de la opcin Recuperar Artculos Borrados
Prvate Sub RecuperarArtculos_Clck()
Form7!Command2. Visible = True
Form7!Command2.Enabled = True
Form7!Command3. Visible = False
Form7.Show 1
End Sub
Instrucciones de la opcin Borrar Copia de Seguridad
Private Sub BorrarCopia_Click()
Form7!Command2.Visible = False
Form7!Command3. Visible = True
Form7!Command3.Enabled = True
Form7.Sh.ow
End Sub
Instrucciones del MSHFlexGrid para ordenar los artculos
Private Sub MSHFlexGridl_Click()
MSHFlexGridl .Sort = 1
End Sub
Instrucciones de la opcin Salir
Private Sub Salir_Click()
End
End Sub
- VISUAL BASIC como debe ser...
FORMULARIO N e 03 ( Ag r e g a r Ar t c u l o s d e Pr u e b a )
EKE!
: Labeii
Confi gur aci n de l o s nuevos Ar t c ul os :
Los artculos empiezan con la palabra Text2
Aceptar ;
La presentacin de los artculos debe ser
El valor de compra debe estar entre
La fecha de vencimiento debe estar entre el
j l 4/07/00 y el j 14/07/00
En este formulario debe dibujar 5 cajas de texto, 1 ProgressBar, 2 DTPickei; 2
botones de comandos 1 Frcime y las etiquetas indicadas. Al ProgressBar asgnele
en su propiedad Visible el valor False.
540
G r u p o E d i t o r i a l Megabyte <
INSTRUCCIONES DEL FORMULARIO Ne 03
Instrucciones del Form_Activate
Prvate Sub Form__Activate()
'Valores predeterminados para agregar artculos
Textl = " "
Text2 = Producto
Text3 = Caja
Text4 = 10.00
Text5 = 1000.00"
DTPickerl.Value - CDate(01-01-2001)
DTPicker2.Value - CDate(31 -12-2001")
Labell = Actualmente hay & RS.RecordCount & artculos. Cuanto desea
agregar?
Textl. Set Focus
End Sub
Instrucciones del Botn Aceptar
Private Sub Command!_Click()
Dim dias, NR As Long
Si no ingresa la cantidad de artculos sale del Procedimiento
If Val(Textl) = 0 Then Exit Sub
Commandl .Enabled = False
ProgressBarl. Visible = True
ProgressBarl .Min = 1
ProgressBarl.Max = Val(Textl)
NR = RS.RecordCount
dias = DTPicker2. Value - DTPickerl. Value
Randomize
For X = 1 To Val(Textl)
RS.AddNew
RSfcodigo = FormatfX + NR, 00000)
RSInombre = Text2 & X + NR
RSIpresentacion = Text3
RS.'valorcompra = Int((Val(Text5)-Val(Text4)+1)* Rnd + Val(Text4))
RSvencimiento DTPickerl .Value + Int((dias -1 + 1) * Rnd + 1)
ProgressBarl. Value = X
RS. Update
Next X
ProgressBarl. Visible = False
Commandl .Enabled = True
Actualiza la consulta
RS.Requery
Hide
End Sub
Instrucciones del Botn Cerrar
Private Sub Command2_Click()
Hide
End Sub
^ 5 CAPTULO XII: Programacin ABO 'I I l P
G r u po E d i t o r i a l Megabyte 541
, .$< ; l i VISUAL BASIC como debe ser.. .
FORMULARIO N2 04 (Caxrbia xana Pr e s e n t a c i n po r Ot r a )
r r n a r x i i S . Cambiar una Presentacin poi Otra
Seleccione la Presentacin Actu al
| Combol
Escriba la n u e va presentacin
ITextl
Cambiar A hora
Cerrar
En este formulario dibuje 2 etiquetas, 1ComboBox, 1Frame, y 2 botones de
comandos. Al Frame asgnele en su propiedad Visible el Valor False.
INSTRUCCIONES DEL FORMULARIO N 2 04
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
'Obtiene slo una presentacin de cada grupo
RS2,Open "SELECTDistinct Presentacin FROM Artculos", DB,
adOpenStatic, adLockPessimistic
Muestra las presentaciones en el combo
RS2. Move First
Combo l.Clear
Do While Not RS2.EOF
Combol.Addltem RS2(0)
RS2.MoveNext
Loop
Combol. List Index = -1
RS2. Cise
End Sub
Instrucciones del Combol
Prvate Sub Combol_Click()
'Cuando se selecciona una presentacin, activa el Frame 1
Frame 1. Visible = Truc
Label2 - Escriba la presentacin que quiere cambiar por: & Combol
Textl = Combo1
Textl.SetFocus
End Sub
542 G r u p o E d i t o r i a l Megabyte < |j |||||
Instrucciones del Botn Cambiar Ahora
Private Sub Commandl_Click()
Form4. Enabled = False
DB. Execute UPDATE Artculos SET Presentacin = & Textl &
WHERE Presentacin = & Combol &
RS.Requery
Form4. Enabled = True
Frame .Visible = False
Hide
End Sub
Instrucciones de Textl
Private Sub Textl_GotFocus()
Selecciona el Texto de Textl para reemplazarlo por el que escribe
Textl.SelStart = 0
Textl. Sel Length = Len( Textl)
Textl = Textl.SelText
End Sub
Instrucciones del Botn Cerrar
Private Sub Command2_Click()
Frame 1. Visible = False
Hide
End Sub
FORMULARIO N 2 05 ( Ca m b i a r e l Va l o r d e Co m pr a )
CAPTULO XII: Programacin ADO
I n g r e s e el m o n t o d e V a r i a c i n pTe x t l
L a V a r i a c i n e s t a e n :
S ol e s C* P o r c e n t a j e
C I n c r e m e n t a r Disminuir
C ambiar A h o r a I .......................
Cerrar I .
En este formulario dibuje 1 etiqueta, 1 caja de texto, 2 Frame y dentro de
cada uno de ellos 2 botones de opciones y dos botones de comando.
G r u p o E d i t o r i a l Megabvte 543
V a r i a c i n d e l V a lo r d e Compra
INSTRUCCIONES DEL FORMULARIO N2 05
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
Limpia Textl y desactiva los botones de opciones
Textl = ""
Optionl = False
Option2 = False
OptionJ = False
Option4 = False
Textl.SetFocus
End Sub
Instrucciones del Procedimiento RealizarCopia
Sub RealizaCopiaO
Form5 .Enabled = False
'Abre la tabla artculos con todos los campos
RS.Open SELECT * from Artculos, DB
Verifica si hay una copia de los valores anterior
EXISTE = False
For X - 1 To RS.Fields.Count
I f RS(X - l).Name = ValorAnterior" Then EXISTE = True
Next
IfNot EXISTE Then
Si no existe el campo ValorAnterior lo crea para adicionar una
copia de seguridad de los valores de Compra
RS. Cise
DB.Execute ( ALTER TABLE Artculos ADD COLUMN ValorAnterior Currency")
Realiza la copia de seguridad
DB.Execute UPDATE Artculos SET ValorAnterior = ValorCompra
Else
Slo realiza la copia de seguridad
DB.Execute UPDATE Artculos SET ValorAnterior =ValorCompra
RS. Cise
End I f
End Sub
Instrucciones del Botn Cerrar
Prvate Sub Command2_Click()
Hide
End Sub
^ | l! > VISUAL BASIC como debe ser...
G r u p o E d i t o r i a l Megabyte
5 4 4
Instrucciones del Botn Cambiar Ahora
Private Sub Command 1_Click()
IfVal(Textl)=0 Then
Msg Box Ingrese el monto de Variacin, 64, Error
Exit Sub
Endlf
RS. Close
If Optionl Then
If Option3 Then
lfMsgBox(Est Incrementando el Valor de Compra en & Textl
& Soles, 65, Confirme la Variacin) = 1 Then
RealizaCopia
DB.Execute UPDATEArtculos SETValorCompra- ValorCompra+ VAU"&Textl A
Endlf
Elself Option4 Then
IfMsgBox( Est Dismuyendo el Valor de Compra en & Textl &
Soles , 65, Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATEAi1iculosSETValorCompra= ValorCompra- VAlf" Inil .V
Endlf
Else
MsgBox No ha seleccionado el Tipo de Incremento", 64, "Error"
Exit Sub
Endlf
Elself Optionl Then
If Option3 Then
IfMsgBox(Est Incrementando el Valor de Compra en un &
Textl & 65, Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATE Artculos SET ValorCompra - ValorCompra t
ValorCompra * VAL( & Textl & )/IOO"
Endlf
Elself Option4 Then
IfMsgBoxt "Est Disminuyendo el Valor de Compra en un &
Textl & % , 65, 'Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATE Artculos SET ValorCompra - ValorCompra
ValorCompra * VALI" & Textl & y ! 00"
End If
Else
MsgBox No ha seleccionado el Tipo de Incremento", 64, Error"
Exit Sub
End i f
Else
MsgBox No ha indicado la Variacin en Soles o Porcentaje, 64, "Error"
Exit Sub
End If
Abre la tabla artculos con los campos principales
RS.OpenSELECTcodigo,non)rej)resenlacioii,vaorc(mipra,vencimeroFROMArticulas
ORDER BY nombre", DB, adOpenStatic, adLockOptimistic
RS. Re query
Form5.Enabled = True
Hide
End Sub
CAPITULO XII: Programacin ADO
G r u p o E d i t o r i a l Megabyte 5 4 5 4 K B
'/jtSi&M' VISUAL BASIC como debe ser.:.
FORMULARIO N e 06 ( Bo r r a r Ar t c u l o s )
Campo Operador Valor
Li*t2 ; JTextl j 0 9 / 0 7 / 8 8
Aceptar
S '
Borrar los Artculos q u e cumplen
la condicin
Borrar Todos los Artculos
En este formulario dibuje 2 ListBox, 2 cajas de texto, 1 DTPicker, 6 botones de
comandos y 4 etiquetas.
El control DTPicker dibjelo encima del control Textl y asgnele en su propiedad
Visible el valor False porque slo se debe visualizar cuando se seleccione la Fecha
de Vencimiento.
Al botn Command4 (Borrar Artculos que cumplen la condicin) asgnele en su
propiedad Enabled el valor False.
INSTRUCCIONES DEL FORMULARIO N s 06
Instrucciones del Form_Activate
Private Sub Form_Activate()
Limpia las cajas de texto
Text1 = " "
Textl = ""
Muestra la fecha del sistema en el DTpicker
DTPicker 1. Value - Date
Adiciona los nombres de los campos en el Listl
List .Clear
For X - 1 To RS. Fields. Count
Listl.Addltem RS(X - l).Name
Next X
Adiciona los operadores en el Listl
Listl. Clear
Listl.Acldltem =
Listl.Addltem <
Listl.Addltem >
Listl.Addltem < -
Listl.Addltem > -
Listl.Addltem <>
Listl.Addltem Like
Listl.Listlndex - 0
Listl. List Index = 0
End Sub
546 G r u p o E d i t o r i a l Megabyte
Instrucciones del Listl
Private Sub Listl jClicki)
Textl =
Si se ha seleccionado el campo Vencimiento muestra el DTPicker
tf List.Listlndex = 4 Then
Text I .Visible = False
DTPickerl. Visible = True
Else
Textl. Visible = True
DTPickerl. Visible = False
End If
End Sub
Instrucciones del Textl
Private Sub Text I_KeyPress( KeyAscii As Integer)
Evita el ingreso de letras cuando se ha seleccionado el ValorCompra
/ / Listl .Listlndex = 3 Then
If (Chr(KeyAscii)< 0 Or Chr(KeyAscii)> 9") And (KeyAscii<>8) Then
KeyAscii = 0
Endlf
Endlf
End Sub
Instrucciones del Botn Aceptar
Private Sub Command 1_Click()
Agrega la condicin fonnada a Tetxt2
tf Listl.Listlndex < 3 Then
If List2.Listlndex = 6 Then
Text2 = Textl + Listl + List2 + ..... + Textl +
Else
Text2 = Text2 + Listl + Listl + + Textl +
Endlf
End f
lf List .Listlndex = 3 Then
Textl = Textl + Listl + Listl + Textl
Endlf
lf List .Listlndex = 4 Then
Textl = Text2+List + Listl + "CDATE( &DTPickerl .Value &
End f
Commandl. Enabled = True
Command3. Enabled = True
Command4. Enabled = True
End Sub
Instrucciones del Botn Y
Private Sub Conunand2_Click()
Text2 = Textl + AND
Commandl. Enabled = False
Command3. Enabled = False
End Sub
Instrucciones del Botn O
Prvate Sub Command3_Click()
Textl = Text2 + OR
Command2. Enabled = False
Command3.Enabled = False
End Sub
CAPTULO XII: Programacin ADO
G r u p o E d i t o r i a l Megabyte ; 547
Instrucciones del Botn Borrar los artculos que cumplen la C.
Prvate Sub Commcmd4_Click()
On Error GoTo control
Form.Enabled = False
RP = MsgBox(Se borraran todos los artculos que cumplen la
condicin + Chr(13) + Text2, 36, CUIDADO)
IfRP = 6 Then
Hace la copia en la tabla RESPALDO de los artculos que se borran
DB. Execute INSERT INTO respaldo SELECT codigo, nombre,
presentacin, valorcompra,vencimiento,#" & Date & "#
AS fecha FROM Artculos WHERE & Text2
DB.Execute DELETE FROM Artculos WHERE & Text2
RS. Re query
En d If
Hide : Form.Enabled = True
Exit Sub
control:
'Si no existe la tabla RESPALDO la crea con los primeros registros
If En: Number = -2147217865 Then
DB.Execute select codigo,nombre,presentacin, valorcompra,
vencimiento,# & Date & # as fecha into respaldo from
artculos where & Text2
Resume Next
Else
MsgBox Verifique las instrucciones o la C. ,16, Existe un error
Exit Sub
End If
End Sub
Instrucciones del Botn Borrar Todos los Artculos.
Private Sub Commands_Click()
On Error GoTo control
RP = MsgBox( Se borraran todos los artculos , 36, CUIDADO )
IfRP = Then
Form.Enabled = False
DB. Execute INSERT INTO respaldo SELECT codigo, nombre,
presentacin, valorcompra, vencimiento,#" &
Date & # AS fecha FROM Artculos"
DB.Execute DELETE FROM Artculos
RS.Requery
Form.Enabled = True : Command4.Enabled = False
Hide
End If
Exit Sub
control:
If Err.Number = -2147217865 Then
DB.Execute SELECT codigo,nombre,presentacion, valorcompra,
vencimiento, # & Date & # AS fecha INTO
Respaldo FROM Artculos
Resume Next
Else
MsgBox Verifique las instrucciones, 16, Existe un error
Exit Sub
End If
End Sub
VISUAL BASIC como deb ser. . . t i !
548 G r u p o E d i t o r i a l Megabyte
CAPTULO XII: Programacin ADO
FORMULARIO N2 07 ( Re c u pe r a Ar t c u l o s Bo r r a d o s )
Debe dibujar 2 etique
tas, un ComboBox 4
botones de comandos
y 1 MSHFlexGrid. Al
Commandl (Ver Todos
los borrados) asgnele
en su propiedad
Enabled el valor False.
Vetpenfechadeboirado Vei todos ios bonados
IEstos son todos los artculos que ha borrado
Bocalos
DefinWvamerte
INSTRUCCIONES DEL FORMULARIO N s 07
Instrucciones del Form_Activate.
Prvate Sub Form_Activate()
On Error GoTo control
Muestra los fechas en el combol en las que borr artculos
RS2,Open SELECTDISTINCTfecha FROMRespaldo, DB, adOpenStatic,
adLockPessimistic
RS2.MoveFirst
Combo I.Clear
Do While Not RS2.EOF
Combo I.Addltem RS2(0)
RS2.MoveNext
Loop
Combol .Listlndex = -1
RS2. Cise
MSHFlexGrid 1.Cois = 0
RS2.Open SELECT * FROM Respaldo", DB
Set MSHFlexGridl .DataSource - RS2
RS2. Requer
MSHFlexGridl.FormatStrng - Codigo | Nombre \ Presentacin \Valor
de Compra\ Vencimiento | Fecha que se borr
RS2.Cise
Exit Sub
G r u p o E d i t o r i a l Megabyte^
549 O
control:
If Err.Number = -2147217865 Then
MsgBox No hay artculos borrados e",64, 'No se encontr copia de seguridad
Command2.Enabled - False
Command3.Enabled = False
Hide
Endlf
End Sub
Instrucciones del Combol
Prvate Sub Combol jClick()
Muestra los artculos borrados en la fecha que se selecciona
Label2 = Estos son los artculos que ha borrado el da & Combol
RSLOpenSELECT*FROMRespaldoWHEREfecht=cdate(&Comhol&)",B
Set MSHFlexGridl .DataSource = RS2
RS2.Requery
MSHFlexGridl .FormatString = Codigo | Nombre | Presentacin \Valor
de Compra\ Vencimiento | Fecha que se borr
RS2. Cise
Command 1. Enabled = True
End Sub
Instrucciones del Botn Ver Todos los Borrados
Prvate Sub Commandl_Click()
Combol =
Label2 = Estos son todos los artculos que ha borrado
RS2. Open SELECT * FROM Respaldo , DB
Set MSHFlexGridl .DataSource = RS2
RS2.Requery
MSHFlexGridl .FormatString - Codigo \ Nombre | Presentacin | Valor
de Compra\ Vencimiento | Fecha que se borr
RS2. Cise
Command!.Enabled = False
End Sub
Instrucciones del Botn Recuperarlos
Prvate Sub Command2_Click()
Recupera los artculos
B 5 5 0 G r u p o E d i t o r i a l Megabyte
If Combol = Then
DB. Execute INSERT INTO Artculos SELECT codigo,nombre,
presentacin, valorcompra, vencimiento,fecha FROM Respaldo
DB.Execute ( DROP TABLE Respaldo ")
MSHFlexGridl .Rows - 0
Else
DB.Execute INSERT INTO Artculos SELECT codigo,nombre,
presentacin, valorcompra, vencimiento,fecha FROM Respaldo WHERE
fecha = cdate( & Combol &
DB.Executei DELETE FROMRespaldo WHEREfecha=cdate( &Combol&"')")
End If
RS.Re query
Hide
End Sub
Instrucciones del Botn Borrarlos definitivamente
Este botn se utiliza cuando se elige la opcin Borrar Copia de Seguridad que se
encuentra en el Men Principal
Prvate Sub Command3_Click()
RP=MsgBox(EstasegurDdebormrdefmitivamente",36,Yanopodrnicuperarlos')
IfRP = 6 Then DB.Execute DROP TABLE Respaldo
MSHFlexGridl.Rows = 0
Hide
End Sub
CAPTULO XII: Programacin A D O ^ ^ m
G r u p o E d i t o r i a l Megabyte
5 5 1
VI S UAL
BASI C S.D
Como debe ser...!
Visual Basic, como debe ser..., es un texto
eminentemente prctico, quizs esto sea lo medular que
lo hace diferente de otros libros. Aqu encontrars
programas desarrollados y ejercicios propuestos que te
ayudarn a conjugar armoniosamente la teora y la
prctica. Es, pues, una eficiente gua didctica para
crear aplicaciones que te sern tiles en la realizacin
de tus diversas tareas como programador en tu centro
de estudio y trabajo.
Este libro esta diseado de tal manera que sirve de
apoyo y gua de autoaprendizaje para estudiantes de
programacin de computadoras, porque el autor cuenta
con una amplia experiencia en la docencia de este
curso.
Adems cuenta con aplicaciones y componentes como:
Controles ActiveX, Creacin de archivos de ayuda,
Manejo de impresoras, Base de datos, Instrucciones
SQL, Programacin ADO, Uso de DataEnvironment y
DataReport
$ tfisfll
% r I
j ,4
P ^ Rti(foTorncbl889HOf c^208?iCercadoJd}LimaWrelefax: [332-4110
Kwww.editorialmeqabvte:conrAventas@edtorialmeqabvt.com

Vous aimerez peut-être aussi