Sunteți pe pagina 1din 278

VISUAL BASIC como debe ser.

%Megabyte s.a.c.
GRUPO EDITORIAL

Tercera Edición, Febrero 2006

Dedicatoria |
Área : Computación e Informática
Hecho el Depósito 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 A José Domingo y María Eugenia, mis
Padres, por darme todo lo que estuvo
© Edward Aburto Correa
Gerente General___________
a su alcance para ser un profesional.
© Juan José Castañena León
Autor
© Gean Cario Apolinario García
Diseño de Carátula _____
A Blanca Mírela, mi esposa y a
Juan José, José María y María José,
Visual Basic 6.0 Como Debe Ser..... mis hijos, por el amor que nos une.
Derechos Reservados / Decreto Ley 822
Prohibido la reproducción total o parcial de este libro, su tratam iento informático
la transmisión de ninguna otra forma o por cualquier otro medio ya sea electrónico,
mecánico, por fotocopia, por registro u otros métodos sin permiso previo y por
escrito de los titulares de Copyright.

D is trib u ció n y Ventas


Jr. R ufino Torrico 889 of. 208 - C erca d o de Urna
Telefax: 332-4110

w w w .e d ito ria lm e g a b y te .c o m v e n ta s @ e d ito ria lm e g a b y te .c o m

C ta. B a n c o de Cré dito


SI. 191-12591005-0-86
$. 191-12591006-1-87

G rupo E d it o r i a l Megabyte
'fo VISUAL BASIC como debe se r.. < VISUAL BASIC como debe s e r .. . 4ÊÊÊÈb

AGRADECIMIENTO PRÓLOGO

A todas las personas e instituciones que, una vez Pensando en ti, me animé por la redacción de este libro. “Visual
más, hicieron posible la culminación de este segundo Basic, como debe ser...”, es como tú: único; distinto de muchos otros
libro. libros de com putación, especialm ente los referentes a lenguaje de
program ación.
A mis alumnos, de manera especial, por ser ellos
q u ien es m e e n señ a ro n , d ia ria m e n te q u é y cóm o A través de mis años de experiencia como docente he notado, con
escribir este libro. asombro y pesar, que la mayoría de los estudiantes se “quejan” de los
libros porque no los “entienden”, ya que sólo presentan conceptos y
sintaxis que antes de responder a sus inquietudes y aclarar sus dudas,
los confunden. Además, dicen, presentan una secuencia de temas que
pocas veces se tratan en el desarrollo de la asignatura.

“V isu a l B asic, com o debe s e r ...”, es un texto em inentem ente


El A utor. práctico, quizás esto sea lo medular que lo hace diferente de otros libros.
Aquí encontrarás programas desarrollados y ejercicios propuestos que
te ayudarán a conjugar armoniosamente la teoría y la práctica. Es, pues,
una eficiente guía didáctica para crear aplicaciones que te serán útiles
en la realización de tus diversas tarcas como programador en tu centro
de trabajo.

Sé, también, que como docente no sólo debo ser el “facilitador” del
aprendizaje, si no que además tengo la tarea de buscar despertar en los
alum nos su aletargado espíritu de investigación que le ayuden a no
“contestar”, con los conocimientos, impartidos en aulas sino más bien
que profundicen sus conocim ientos, los contrasten y los pongan en
práctica. Para ellos y par ello presento también aplicaciones propuestas.

► 6 G rupo E d it o r i a l Megabyte •‘í G rupo E d it o r i a l Megabyte 7 ^ ||¡ ¡ |l


o

VISUAL BASIC como debe ser.. . i l i l i P

C O N T E N ID O

P rólogo.................................................................................................................................. 7
Indice .................................................................................................................................... 9
Introducción ........................................................................................................................ 17

CAPÍTULO I : ENTORNO DEL VISUAL BASIC


Acceso al visual Basic ......................................................................................................... 21
Ventana de In icio .................................................................................................................. 22
¿Qué es un Proyecto?............................................................................................................ 23
Componentes del Visual Basic.............................................................................................. 25
Descripción de la Barra Estándar......................................................................................... 28
Ventana de Componentes..................................................................................................... 31
Salir del Visual Basic.............................................................................................................. 33
Solucionando los problemas iniciales................................................................................... 34
Filosofía de programación en Visual Basic........................................................................... 40
Preguntas de repaso N° 01.................................................................................................... 41

CAPÍTULO II : DESCRIPCIÓ N DE LOS CONTROLES BÁSICOS


El formulario ........................................................................................................................ 45
¿Cómo asignar una propiedad?............................................................................................. 47
Etiqueta (Label)..................................................................................................................... 49
Aplicación desarrollada N° 0 1 .............................................................................................. 50
Seleccionar controles ............................................................................................................ 51
Modificar el tamaño de los controles................................................................................... 52
Mover el control .................................................................................................................. 52
Guardar o Grabar una aplicación.......................................................................................... 54
Ventana para grabar un formulario....................................................................................... 55
Ventana para grabar un proyecto......................................................................................... 55
Abrir o recuperar una aplicación ......................................................................................... 56
Ejecutar una aplicación ........................................................................................................ 57
Finalizar una aplicación ....................................................................................................... 58
Grabar un proyecto en un diskette....................................................................................... 58
Crear un archivo ejecutable (*.EXE).................................................................................... 59
¿Qué es un acceso directo?.................................................................................................... 59
Crear un acceso d irecto........................................................................................................ 60
Caja de texto (Text) ............................................................................................................ 64

I P I ^ G ru p o E d ito r ia l M e g a b y te 9 m »
VISUAL BASIC como debe se r.. . VISUAL BASIC como debe s e r.. .
Aplicación desarrollada N° 0 2 .................................................. .......................................... 65 Aplicación desarrollada N° 0 9 ............................................................................................ 116
Aplicación propuesta N° 01................................................................................................. 67 InputBox ............................................................................................................................... 122
Aplicación desarrollada N° 03.............................................................................................. 67 Contadores y acumuladores ................................................................................................ 125
Botones de Comandos (Command)..................................................................................... 69 Aplicación desarrollada N° 1 0 ............................................................................................ 125
Aplicación desarrollada N° 04 ............................................................................................. 70 Aplicaciones propuestas N° 04 y 05 .................................................................................. 130
Escribir instrucciones para los controles............................................................................. 71 IIF ........................................................................................................................................... 131
Ventana de código o de instrucciones................................................................................... 71 SelectC ase............................................................................................................................. 132
Principales eventos .............................................................................................................. 72 Aplicación desarrollada N° 11.............................................................................................. 133
Visual Basic le ayuda a escribir los programas..................................................................... 75 Aplicación desarrollada N° 12 ........................................................................................... 137
Aplicación propuesta N° 0 2 ................................................................................................. 75 Aplicación propuesta N° 06 ............................................................................................... 143
Trabajando con os nombres de los controles...................................................................... 76 C hoose................................................................................................................................... 143
Aplicación desarrollada N° 05 .............................................................................................. 77 Funciones de caden a............................................................................................................ 144
Errores más com unes........................................................................................................... 80 Aplicación desarrollada N° 13 ............................................................................................ 145
Preguntas de rep aso ............................................................................................................. 81 Funciones tipo fecha ............................................................................................................ 146
Aplicación desarrollada N° 1 4 ............................................................................................. 146
CAPÍTULO III : ELEM ENTOS DE LA PROGRAMACIÓN Función DateAdd .............,.................................................................................................. 148
Procedimientos y funciones ................................................................................................ 85 Función D ateD iff.................................................................................................................. 148
Sintaxis de un procedimiento............................................................................................... 87 Función DateAdd ................................................................................................................. 150
Sintaxis de una función......................................................................................................... 88 Funciones tipo hora .............................................................................................................. 152
Parámetros por referencia .................................................................................................... 89 Funciones Numéricas............................................................................................................. 152
Parámetros por valor ............................................................................................................ 89 Aplicación desarrollada N° 15 ............................................................................................. 154
Creación de procedimientos a nivel de formulario ............................................................ 90 Función S h ell........................................................................................................................ 157
Llamar a un procedimiento................................................................................................... 91 Aplicación desarrollada N° 16 ........................................................................................... 158
Constantes ............................................................................................................................. 92 For Next ................................................................................................................................ 159
Variables................................................................................................................................. 92 Do Loop ................................................................................................................................ 159
Tipos de variables ................................................................................................................ 94 D oEvenst............................................................................................................................... 159
Diferencia entre Dim. y Static ............................................................................................. 95 Aplicación desarrollada N” 17.............................................................................................. 160
Aplicación Desarrollada N° 0 6 ............................................................................................ 97 A rray...................................................................................................................................... 162
Ejemplo de una variable a nivel de procedimiento ............................................................. 98 Aplicación desarrollada N° 1 8 ............................................................................................. 163
Ejemplo de una variable a nivel de formulario ................................................................... 98 Crear un array de controles ................................................................................................. 164
Operadores aritméticos ........................................................................................................ 99 Aplicación desarrollada N° 19 ........................................................................................... 165
Orden de ejecución de los operadores................................................................................. 99 Aplicación desarrollada N° 2 0 ............................................................................................ 169
Comentarios .......................................................................................................................... 100 Aplicación desarrollada N° 21 ............................................................................................ 174
Aplicación desarrollada N° 0 7 ............................................................................................. 101 Errores más com unes............................................................................................................ 178
IfT h e n ................................................................................................................................... 106 Preguntas de repaso N° 0 3 ................................................................................................... 179
Operadores ló gicos............................................................................................................... 107
M sgB ox.................................................................................................................................. 109 CAPÍTULO IV : MEJORANDO EL ASPECTO DE LOS FORMULARIOS
Iconos de la función M sgBox.............................................................................................. 110 Control Frame (Marco) ....................................................................................................... 183
Aplicación desarrollada N° 08 ............................................................................................. 112 Asignando colores................................................................................................................. 184
Consistencia de datos ........................................................................................................... 116 Qbcolor ................................................................................................................................. 184

E d it o r i a l M e g a b y te # ^ G ru po E d it o r ia l Megabyte H
A f c VISUAL BASIC como debe se r.. . <5> § VISUAL BASIC como debe se r.. .
RGB ................................................. .................................................................................... 184 CheckBox.............................................................................................................................. 240
Control Shape (Figuras)........................................................................................................ 185 Aplicación desarrollada N° 35 ............................................................................................ 240
Control Line (Línea) ............................................................................................................ 186 ListBox .................................. .............................................................................................. 243
Control PictureBox (Caja de Imagen) ................................................................................ 187 Aplicación desarrollada N° 36 ............................................................................................ 244
Método gráficos ................................................................................................................... 189 Calculando los días Probables de Fertilidad....................................................................... 246
Aplicación desarrollada N° 2 2 ............................................................................................. 190 UpDown ..... ......................................................................................................................... 248
Buscando gráficos en la computadora .............................................................................. 193 MaskEdBox ......................................................................................................................... 250
Control Image ....................................................................................................................... 195 Aplicación desarrollada N° 3 7 .............................................. ............................................... 252
Control Timer ....................................................................................................................... 195 SendKeys ............................................................................................................................. 257
Aplicación desarrollada N° 2 3 ............................................................................................ 196 Aplicación desarrollada N° 38 ............................................................................................ 258
Aplicación desarrollada N° 2 4 ............................................................................................ 198 Aplicación desarrollada N° 39 ............................................................................................ 261
Control ImageList (Lista de Im ágenes).............................................................................. 200 Instrucción With ................................................................................................................... 264
Manejo de las imágenes en el control Im ageList............................................................... 202 Preguntas de repaso N° 05 .................................................................................................. 265
Aplicación desarrollada N° 2 5 ............................................................................................. 203
Función LoadPicture............................................................................................................. 203 CAPÍTULO VI : MANEJO DE VARIOS FORM ULARIOS
Control Calendar (Calendario)............................................................................................ 204 Agregar Formularios a una aplicación................................................................................. 269
Aplicación desarrollada N° 26.............................................................................................. 205 Quitar formularios de una aplicación ................................................................................. 271
Control StatusBar (Barra de Estado)................................................................................... 206 Seleccionar un formulario a ejecutar prim ero..................................................................... 271
Ejemplo de una aplicación usando el control StatuBar ..................................................... 209 Instrucciones para manejar formularios ............................................................................. 272
Pantallas de presentación ..................................................................................................... 211 Aplicación desarrollada N° 40 ............................................................................................ 273
Control O L E .......................................................................................................................... 211 Aplicación desarrollada N° 4 1 .............................................................................................. 278
Activar una presentación en Power Point ......................................................................... 212 Errores más com unes............................................................................................................ 280
Objetos insertables................................................................................................................ 214 Preguntas de repaso N° 06 .................................................................................................. 281
Controles Hscroll y Vscroll ................................................................................................ 215
Aplicación desarrollada N° 27 ............................................................................................. 215 CAPÍTULO VII : DISEÑO DE MENU
Control ProgressBar............................................................................................................. 218 Editar EN menú .................................................................................................................... 295
Control Slider......................................................................................................................... 218 Instrucciones PopupMenú .................................................................................................. 298
Preguntas de repaso N° 04 .................................................................................................. 219 Control ToolBar ................................................................................................................... 303
Aplicación desarrollada N° 43 ............................................................................................ 305
CAPÍTULO V : INGRESO PERSONALIZADO DE DATOS SsTab...................................................................................................................................... 309
ComboBox............................................................................................................................. 223 Errores más com unes............................................................................................................ 311
Aplicación desarrollada N° 28 ............................................................................................. 224 Preguntas de repaso N° 07................................. .................................................................. 312
Aplicación propuesta N° 07 ................................................................................................ 225
Aplicación desarrollada N° 29 .............................................................................................. 226 CAPÍTULO VIII : MANEJO DE ARCHIVOS
Aplicación propuesta N° 08 ............................................................................................... 229 DriveListBox .................................................. ..................................................................... 315
Aplicación desarrollada N° 31 ............................................................................................ 230 DirListBox ........................................................................................................................... 315
Aplicación desarrollada N° 32 ............................................................................................ 233 FileListBox ........................................................................................................................... 315
OptionButton ....................................................................................................................... 236 Aplicación desarrollada N° 44 ........................................................................................... 316
Aplicación desarrollada N° 33 ............................................................................................. 237 Aplicación desarrollada N° 45 ........................................................................................... 317
Aplicación desarrollada N° 34 ............................................................................................ 239 CommoDialog ...................................................................................................................... 319

lj § i ¡ |||> 12 G rupo E d it o r i a l Megabyte ^ f||¡|§ lililí^ G ru p o E d ito ri w Megabyte 13


_______________ , . o
^É iÍÉ É ÍÍ’' VISUAL BASIC como debe se r... VISUAL BASIC como debe se r...
Aplicación desarrollada N° 46 ........................................................................................... 323 Asistente VB para base de datos ........................................................................................ 371
Uso de la im presora............................................................................................................. 325 Control D bcom bo................................................................................................................. 372
Objeto printer ....................................................................................................................... 326 Aplicación desarrollada N° 52 ........................................................................................... 372
Método Print ....................................................................................................................... 327 Aplicación propuesta N° 09 ................................................................................................ 373
Instrucción T a b ..................................................................................................................... 327 Control D bgrid...................................................................................................................... 374
Instrucción S p c ..................................................................................................................... 328 Aplicación desarrollada N° 53 ............................................................................................. 376
Método PrintForm .............................................................................................................. 328 Instrucciones S Q L ................................................................................................................ 376
Aplicación desarrollada 47 ................................................................................................... 328 Aplicación desarrollada N° 54 ............................................................................................ 379
Comandos del D O S ............................................................................................................. 331 Aplicación desarrollada N° 55 ............................................................................................. 383
Control de Errores ............................................................................................................... 332 Variables tipo Recordset...................................................................................................... 386
On Error ................................................................................................................................ 332 Aplicación desarrollada N° 56 ............................................................................................ 388
Objeto E r r ............................................................................................................................. 332 Aplicación desarrollada N° 57 ............................................................................................ 392
Errores interceptables más comunes ................................................................................. 333 Modificar varios registro a la v e z ........................................................................................ 397
Control RichTextBox........................................................................................................... 334 Métodos de Transacciones .................................................................................................. 397
LoadFile................................................................................................................................. 335 Aplicación desarrollada N° 58 ............. ............................................................................... 397
SaveFile.................................................................................................................................. 335 Manejo de fo to s .................................................................................................................... 398
Funciones A P I...................................................................................................................... 336 Aplicación desarrollada N° 59 ............................................................................................. 398
Apagar la computadora automáticamente ......................................................................... 337 Manejo de varias tablas ....................................................................................................... 402
Crear discos de instalación .................................................................................................. 338 Uniendo tablas ..................................................................................................................... 404
Control ActiveMovie ........................................................................................................... 340 Aplicación desarrollada N° 6 0 ............................................................................................. 406
Crear Archivos de Ayudas................................................................................................... 341 Errores más com unes............................................................................................................ 410
Preguntas de repaso N° 09 .................................................................................................. 411
CAPÍTULO IX : MANEJO DE BASE DE DATOS
Base de d a to s ......................................................................................................................... 347 CAPÍTULO X : PROGRAM ACIÓN DAO
Tablas...................................................................................................................................... 347 Objeto de acceso a datos ..................................................................................................... 416
Registros y Campos ............................................................................................................. 347 Métodos para manejar base de datos .................................................................................... 417
Crear una Base e Datos usando Visual Basic........................... ......................................... 349 Antes de programar con D A O ................................................................................................ 420
Tipos de Recordset ............................................................................................................... 351 Control MsFlexgrid................................................................................................................. 425
Crear una Base de Datos usando Microsoft Access ......................................................... 354 Otras instrucciones SQL ....................................................................................................... 433
Control Data ......................................................................................................................... 358 Control MsChart .................................................................................................................... 440
Objeto Recordset .................................................................................................................. 358
Aplicación desarrollada N° 48 ............................................................................................. 359 CAPÍTULO XI : CREACIÓN DE REPORTE
Aplicación desarrollada N° 49 ............................................................................................. 362 Pasos para crear un rep o rte................................................................................................... 447
Control DbList ...................................................................................................................... 364 Reportes tipo Estándar .......................................................................................................... 447
Consulta de registros ........................................................................................................... 364 Vincular Tablas....................................................................................................................... 448
Aplicación desarrollada N° 50 ............................................................................................. 365 Creación de índices................................................................................................................ 450
Método MoveFirst .............................................................................................................. 365 Ordenación de los registros ................................................................................................... 451
Método Nomatch ................................................................................................................. 366 Totalizar o contar registros .................................................................................................. 452
Mantenimiento de registros ............................................................................................... 367 Estilo del reporte .................................................................................................................. 453
Aplicación desarrollada N° 51 ............................................................................................ 367 Control Cristal Report .......................................................................................................... 453

G rupo E d it o r ia l M e g a b y t é * ¡I ||Í j^ G rupo E d it o r i a l Megabyte 15 « ¡g »


VISUAL BASIC como debe ser. VISUAL BASIC como debe ser. . .

CAPÍTULO XII PROGRAMACIÓN ADO


Conexión L ocal..................................................................................................................... 461
Conexión Remota .................................................................. .............................................. 461 INTRODUCCIÓN
ODBC .................................................................................................................................... 461
Archivos de Vínculos OLE-DB........................................................................................... 461 Este libro esta diseñado de tal manera que sirve de apoyo y guía para estudian­
Configurar una conexión ODBC......................................................................................... 462 tes de programación de computadoras y para un autoaprendizaje porque ha sido
Configurar una conexión OLE-DB...................................................................................... 466 escrito con la experiencia que tiene el autor en el dictado del curso y sobre todo
El control A D O ..................................................................................................................... 467 con la experiencia de alumnos en su proceso de aprendizaje, observando sus difi­
Uso de la propiedad ConnectionString .............................................................................. 468 cultades y escuchando sus preguntas y sugerencias.
Uso de la propiedad RecordSource..................................................................................... 470
Errores más comunes ............................................................................................................. 471 Visual Basic Como Debe Ser..., contiene:
Control DataGrid ................................................................................................................ 474
Control DataList ................................................................................................................. 474 y SECUENCIA ADECUADA DE TEMAS
Control DataCombo ...............................................................................................................474 Obtenida de los años de experiencia que tiene el autor en el dictado del
Control DTPicker ....................................................................................................................491 curso con la finalidad que no se pierda el interés en su aprendizaje,
EIDataReport ....................................................................................................................... 498 jy DISKETTE GRATIS
Controles del DataReport ................................................................................................... 500 Que contiene los principales programas desarrollados en este libro para dar
Propiedades para un reporte ............................................................................................... 501 ejemplos mas rápidos y apoyar al lector para que pueda desarrollar aplica­
Métodos del DataReport ..................................................................................................... 501 ciones mas avanzadas,
DataEnvironment ................................................................................................................ 508 y APLICACIONES PROPUESTAS Y PREGUNTAS DE REPASO
Objeto Connection ................................................................................................................. 510 Para que el lector demuestre en forma práctica los conocimientos adquirí
Objeto Command ................................................................................................................. 511 dos y autoevaluarse con la finalidad de ir midiendo los conocimientos
Uso del Data Report con Data Enviroment ...................................................................... 513 adquiridos.
El Control M SHFlexGrid..................................................................................................... 514
^ TEMAS DE IMPORTANCIA PARA UN CENTRO DE TRABAJO.
Porque se prepara al lector para desarrollar por sí solo aplicaciones que se
Uso de comandos Jerárquicos en MSHFIexGrid .............................................................. 515
presenten en un centro de trabajo, como por ejemplo:
Reporte de comandos Jerárquicos ....................................................................................... 518
Conexión de una Base de Datos mediante Instrucciones .................................................. 520
Q J Controles ActiveX
Método E xecute..................................................................................................................... 528
Q j Creación de archivos de ayuda
Instrucciones SQL para consultas de Acción .................................................................... 529
Q j Manejo de impresoras
Instrucciones DLL ................................................................................................................ 531
y j Base de datos
Q J Instrucciones SQL
Q j Programación ADO
QIJ Uso de DataEnvironment y DataReport

¡ Y Mucho más!

1 8 1 1 ^ 16 G ru po E d it o r ia l Megabyte ' G ru po E d it o r ia l Megabyte 17


^ÉÍÍÍÉÉI» VISUAL BASIC como debe se r...

ANTES DE EMPEZAR 9 '" i" in )■ !■ ■ — —


CAPITULO I —
Mic(psoft
Visual B asic
fiew j L>3.u.y I I
Visual Basic es un programa muy fácil de aprender y con este libro no es
necesario que usted tenga conocimientos de programación, pero si es muy 5l <s¡V
ActiveX m A-rtiv^y r*U ArtivíX v*5Appfcatkr. «,
importante que sepa el manejo básico de cualquier versión del Windows, Control W¿ard H

especialmente el manejo de Mouse.


VBLrierpfis« Adiri MwtX Active!-’ \
Etftkx» Doajmwt OU Document V/.Î
Antes de empezar usted debe saber: Cemriás 1l
I ^.Pioyectol - Micjosoft Visual Basic [diseño] H S B l
Archivo Edición Ver Proyecto Rumato depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
Manejar el Mouse.
$ • ¡3 ' & B >

Abrir y cerrar ventanas.

^ Minimizar, maximizar y restaurar ventanas. 01 D


- ^ Proyectol (Proyectol)

''b Mover y modificar el tamaño de las ventanas.


|Forml Form J :
Aïabética | Por categorías j
Manejar el teclado. (Nombre) Formi +\ -
Appearance 1-30
AutoRedraw False
Este libro le enseña con una secuencia adecuada brindando en cada párrafo un iackColor □ &H8000000F8
conocimiento mas acerca de Visual Basic, por eso es muy importante que los lea sin iorderStyle 2 • Sizable
Caption Formi
apresuramiento y en el mismo orden en el que ha sido escrito. ClipControls True
ControlBox True

No olvide de desarrollar las preguntas de repaso y las aplicaciones propuestas


antes de pasar al siguiente capítulo.

“Un libro es el mejor aliado para la formación de un buen Profesional” ENTORNO


DEL
VISUAL BASIC
G rupo E d it o r i a l Megabyte ^ f¡||j||
CAPITU LO I: Entorno Del Visual Basic 4

Visual Basic es un sistema diseñado para crear aplicaciones gráficas


de una manera rápida y sencilla las cuales se ejecutan bajo Windows.
El acceso a Visual Basic es m uy sencillo y depende de la carp eta
donde lo instaló o de su versión. P o r ejem plo:
Accesorios ►
_ r) Corel5 ►

_rr) Inicio ►

rj 3SBEESSSB0ÉI AH Text Viewer

.rj] Microsoft Visual FoxPro ► ijjjj 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
'J 2 Microsoft NetMeeting
Microsoft Outlook

Microsoft Photo Editor

■i*l Microsoft PowerPoint

ß j Microsoft Word

m MS-DOS

jjri) A c c e îo ric î *

A dobe »

. - j j Adobe A r m b * 4 0 *
CorelDRAW 8 »
H wiamterrfa: de M ia o so it Office »

H P DeskJet S a » 840C v2 3 *

»«C b »

ä « r te n r t Explore.

Irj MiCttÄoft Offcce ^ » P r o fe s io n a l ►


A b * f o m e n t o de Olhce .rj M icrosoft Ofhce Ï o d * »

3 ] N uevo documento de Office .rj M erosoft SQL Serve? 7.0 *

< 4 l W inZ ip .-j M ê ro iô fr W efcPuW iîhirçj » H erram iertat errçm a ria te s de M ie to » » VStw IS»
PLATINUM W orkf/ie w h t iníe ine l Explore» » .rj MicrQ:oft Visual SourceSafe

, Services er. ¡inea * 'ij Microsoft Visual ßawe 6 Û


_¿J Eavortos ►
.rj S jfca te * 0J M c ro :o ft Visual FoxPro SO

jj, w * « * " • ^
äj fi.v c . W Æ ic
^ A)uda ¿I
£ ] E r— £ W -n H E ,to .
£ MS-DOS
S i* Apagar es iiî« n > 3 O u llc x * Ewpress

In ic io «Ô § ^ V -â lo flfc W « fc s E R « ¡r> E R X 3 5 »

¡ |j |¡ ||^ G ru p o E d ito r ia l Megabyte 21 4ÊS»


<Q>
m X m / VISUAL BASIC como debe se r... CAPITULO I: Entorno Del Visual Basic
Según como está configurado el Visual Basic, antes de ingresar a su La pantalla tiene tres hojas: New, Existing y Recent.
pantalla principal Ud. puede visualizar lo siguiente:
La hoja NEW, permite crear un formulario en blanco para empezar a
diseñar una nueva aplicación (Ver la figura anterior).
_Ll2<J La hoja Existing muestra todos los proyectos creados y permite abrir
* H' ^ cualquiera de ellos:
Microsoft
Visual Basic rrrn
New j Existing | Recent ) M ic ro s o ft

Ì7 Visual Basic
¿á Sí J1t7 «V
New Existing | Recent | -----------------------------------------------------
S e le c cio n a las
h o ja s
ActiveX EXE ActiveX DLL ActiveX VB Application
Control Wizard Buscar en: | _ J Vb
j L I S e le c c io n a
J CKsvr j samples _ j Winapi
u n a c a r p e ta
¡él
VB Enterprise
SI
Addin
Si
ActiveX
[
<
él
ActiveX
J Help
J Nueva carpeta
JO dbc
J Setup
J setupkit
J T empiate
u J Wizards
amer.vbp
^ANA.vbp
Edition Document DLL Document EXE J report J Tsql cli..vbp
Controls j vbonline % |C H IQ U I.virr
___ M u e s tra los
J Repostry
p ro y e c to s q u e e stá n
jJ m ás a la d erech a

Nombre de archivo: (j A,brir


Cancelar S e le c c io n a el
Archivos de tipo: [Project Files (“ vbp;".m ak;".vbg)
tip o d e a rc h iv o
Ayuda Ayuda q u e d e se a ver.

Don't show this dialog in the future r Doni show tNs dialog in thè future

C a silla q u e p erm ite o n o v isu aliza r esta


p a n ta lla al in g resar al V isual B asic
Elija STANDARD EXE para ejecutar el Visual Basic en modo Estándar
y luego haga click en el botón ABRIR.
¿ QUÉ ES UN PROYECTO ?
N O TA :
Para visualizar o no esta ventana cada vez que Ud. ingresa al Visual Es toda aplicación que se desarrolla en Visual Basic y está compuesto
Basic, debe hacer lo siguiente: Una vez que ingresó al Visual Basic haga por formularios, módulos, etc. Para abrir un proyecto (visualizar uno que ya
click en la opción TOOLS (Herramientas) de la barra de menú y elija existe) siga uno de los siguientes pasos:
O P T IO N S ... De la v e n ta n a que se v isu a liz a activ e la p á g in a • Haga doble click en el nombre del proyecto.
ENVIRONMENT (Entorno)y active el botón P ro m p t F o r P roject (Pre­ ■Selecciónelo haciendo un click en él y luego haga click en el botón
guntar por un Proyecto)para que se visualice esta ventana cada vez que Abrir.
ingresa o el botón C reate D efault P roject (Crear un proyecto predetermi­ • Escriba el nombre del proyecto siempre y cuando se encuentre en la
nado) para que no se visualice. carpeta activa y luego haga click en el botón Abrir.

m 22 G rupo E d it o r i a l Megabyte< G rupo E d it o r i a l Megabyte 23


¿59^ VISUAL BASIC como debe ser. .. CAPÍTULO I: Entorno Del Visual Basic

La hoja Recent muestra todos los proyectos activados recientemente y


nos da la posibilidad de abrirlos.
ENTORNO DEL VISUAL BASIC
New Project
Al ingresar al Visual Basic se visualiza la siguiente pantalla:
M ic ro s o ft ■
VisualBasic
New | Existing R e cen t Barra de Menú Barra Estándar
File Folder Barra de Titulo Formulario
C:\Archivos de programa\Dev5tudio\VB
%¿CHIQUI C:\Archivos de programa\Dev5tudio\VB
garner C:\Archivos de programa\Dev5tudio\VB J
IÜoMAR C:\Archivos de programa\DevStudio\VB ' ^ r Proyecto1 - M icrosoft V isual Basic [diseño]
PROJECT 1 C :\ARCHIV~ 1\DEVSTU~ 1\VB
Archivo Edición Ver Provecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Componentos Ventana Ayuda
I^LEO C : \ ARCHIV~ 1\DEVSTU~ 1\ VB
% | t ALLER~1 C : \ARCHI V~ 1\DEVSTU~ 1\VB ¡3 ' 3 0 ► ■ f l 15 * ' i A
j T 1
Abrif

Cancelar
Proyecto 1 (P royecto 1)
A yuda
03 Formularios
|i£ Propiedades - Formi mmm G Forml (Forml)
P D on't show this dialog in the future jF o rm l Form zi
Alfabética | categorías )
-------- 1
(Nombre) Formi
Appearance 1 - 3D
Seleccione el nombre del proyecto y haga click en el botón Abrir. AutoRedraw False
BackColor □ &H80G0000F8
BorderStyle 2 - Sizable
Caption Formi

MUY IMPORTANTE ClipControls


ControIBox
True
True

zi
Si en cualquiera de las 3 páginas Ud. selecciona la opción CA NCELAR,
ingresará al Visual Basic, pero no podrá ver ninguno de sus componentes.

Para solucionar este problema puede seguir cualquiera de los siguientes


pasos: Caja de Ventana de Ventana de Ventana de
Herramientas Proyecto Propiedades Ubicación del
• De la opción FILE (Archivo) elija New Project. Formulario
• Pulse las teclas < CONTROL > + < N >

24 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 25


é B B b VISUAL BASIC como debe s e r.. . CAPÍTULO I: Entorno Del Visual Basic
BARRA DE MENU
»ü, P ro ye clo ! - M icrosoft V isual Basic {diseño] '-in>x|
Archivo Edición Ver Proyecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
VENTANA DE UBICACIÓN DEL FORMULARIO
Contiene las órdenes que se utilizan para desarrollar una aplicación. Las
opciones que se visualizan dependen de la versión del Visual Basic. Se activa haciendo click en:
M
■a
DESCRIPCIÓN DE LA OPCIÓN ARCHIVO
Se u tiliz a para in d icar la
Una de las opciones de la Barra de menú mas utilizada es la opción posición del formulario en la
Archivo la cual contiene: pantalla cuando no queremos
que el formulario ocupe toda
N uevo P ro y ecto la pantalla.
Crea un nuevo proyecto.
A b rir Proyecto
Abre un proyecto existente
A g re g a r Proyecto BARRA ESTANDAR
Adiciona uno de los proyecto a la aplicación
Q u ita r Proyecto ,M- • B C L! Cr>. t- !*■’ -b W * ,S.
Borra uno de los proyectos activados
G u a rd a r Proyecto
Graba un Proyecto diseñado Contiene los botones que perm iten realizar las tare as m ás com unes
G u a rd a r Proyecto Como de u n a m an e ra rá p id a como: g rab ar, a b rir, eje c u ta r un pro g ram a,
Graba un proyecto con otro nombre finalizar un p ro g ram a, etc.
G u a rd a r F o rm l
Graba el formulario
G u a rd a r F o rm l como
Graba el formulario con otro nombre NOTA : Si no visualiza la Barra Estándar debe hacer click en la
Im prim ir opción VIEW (Ver) de la barra de menú, luego en ToolBars
Imprime el proyecto o lo seleccionado y activar Estándar.
G e n e ra r P ro y e c to l.e x e
Crea el proyecto ejecutable
Salir
Sale del Visual Basic

P ara e le g ir c u a lq u ier opción haga clic en dicha opción o utilice


las teclas rápidas que algunas de ellas tien en , por ejem plo: para
sa lir de V isual B asic puede usar A lt + Q.

26 G ru po E d it o r ia l Megabyte jjylgp Grupo Editorial Megabyte 27


O
% VISUAL BASIC como debe se r.. . CAPÍTULO I: Entorno D el Visual Basic Ü IÜ P

DESCRIPCION DE LA BARRA ESTANDAR EL FORMULARIO

Crea un Nuevo Proyecto Finaliza un Programa

Crea un Nuevo Formulario Activa la Ventana de Proyecto

Activa el Editor de Menú tiO Activa la V. de Propiedades

Abre un Proyecto Ubicación del Formulario



Es la ventana principal, porque sirve de fondo para los controles que se
“dibujan” en una aplicación como cajas de textos, etiquetas, etc. Se activa
[O Graba un Proyecto Activa el Examinador Browse pulsado SHIFT + F7 o CTRL + R y luego Doble Click en el nombre del
formulario que desea visualizar.

^ Ejecuta un Proyecto Activa la Caja de Herramientas

CAJA DE HERRAMIENTAS
PRINCIPALES TECLAS RAPIDAS
General
CTRL + N Crear un Proyecto. Se activa haciendo click en:
CTRL + O Abre un Proyecto. * SS A
CTRL + S Graba un Formulario.
CRTL + P Activa la Ventana para Imprimir. [ibi " _J
CTRL + R Muestra la Ventana de Proyecto.
17 í? [Ü
CRTL + T Activa la Ventana de Componentes.
CRTL + D Agrega un Archivo. 1=1 il ^zl Contiene los controles que se dibujan
SHIFT + F7 Muestra el Formulario. — en el form ulario para desarrollar
ALT + Q Sale del Visual Basic. © o _J aplicaciones.
F4 M uestra de la Ventana de Propiedades.
F5 Ejecuta un Proyecto. B \
F8 Ejecuta mostrando cada instrucción.
H ü

mm » G rupo E d it o r i a l M e g a b y te « * G rupo E d it o r ia ! Megabyte 29 m m


m m VISUAL BASIC como debe se r,. . CAPITULO I: Entorno D el Visual Basic
La caja de herramientas anterior contiene los controles básicos del Visual VENTANA DE COMPONENTES
Basic y se visualizan cuando se ingresa en modo E stándar (icono
STANDARD EXE) " ¡ Al hacer un click con el botón 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ú:
New | EKisting | R e c e n t]
G eneral

S3 ¿7 Iw M
_ j
A
17
[5bi
a-
S S ActiveX EXE ActiveX DLL ActiveX VB Application
Control Wisard
ü ü * * e|
C3 C o m p o n e n te s ..
A g re g a r fic h a ..
g5>
A coplable
O cu lta r
VB Enterprise Ad din ActiveX ActiveX
Edition Document DLL Document EXE
Controls

Al hacer click en la opción Componentes se visualiza:

. n ES
M
General
P a ra in g re s a r al V isu a l B a sic y C o n tr 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 ]

visualizar la caja de herram ientas con los : : \W IN D O W 5 \S Y S TEM \r e f e d i t . dll


l~ i C o n tr o l A c tiv e M o v ie d e M ic ro s o ft

M A lib i □ : controles más avanzados debe elegir el n C o n tr o l d e a d m in is tr a c ió n d e im a g e n d e W a n g


n C o n tr o l d e d ig ita liz a c ió n d e im a g e n d e W a n g _U ^ ££
_ l w ü m
icono VB E n te rp rise E ditio n C ontrol n C o n tr o l d e e d ic ió n d e im a g e n d e W a n g
C J C o n tr o l d e p á g i n a e n m i n ia tu r a d e i m a g e n d e W
,Vlí
"■
xr_
fo-
<*rr.
9B2
SB

(Visual Basic Edición Em presarial). Si i I C r y s t a l R e p o r t C o n tr o l 4 . 6


n c tC lip OLE C u s to m C o n tr o l m o d u le
«in
ii
© □ LJ Ud., ya ingreso en modo Estándar y desea I""! c tC lo c k O LE C u s t o m C o n t r o l m o d u le F~l [553
zl c t D a t e OLE C u s to m C o n tr o l m o d u le
utilizar los co n tro les avanzados, debe
m igEa D c tG a u g e OLE C u s t o m C o n t r o l m o d u le
o Q c t M e t e r OLE C u s to m C o n tr o l m o d u le
h a c er c lic k con el botón derech o del j... j c tS lid e OLE C u s to m C o n tr o l m o d u le J¡
J____________________1 -lT
m m
I E le m e n to s s e le c c io n a d o s
033 P m ouse en la caja de herram ientas, elegir C : \W IN D O W S \S Y S T E M \re f e d i t . dll

aA la o p c ió n C o m p o n e n te s y lu eg o U b ic a c ió n : C : \W IN D O W S \S YST E M \re f e d i t . dll


11 §s IM
seleccionar el nom bre del control que
;~ r ni
fe
DDO
ôô" (S desea visualizar. Estos nombres se indican
a m e d id a q u e lo s c o n tr o le s se van
tr. M % IT
explicando.
ÈV Para activar o llamar a un control, busque su nombre y haga click en su
íh â dS 0
casilla hasta que se muestre un Aspa y luego haga click en el botón Aceptar.
ÜS $2 © ##l
S'
Casilla indicando que el control se encuentra activo.

30 G ru po E d it o r ia l M e g a b y te « * E d it o r ia l Megabyte 31 R i
VISU AL B A SIC como debe ser.. . CAPÍTU LO 1: Entorno D el Visual Basic
VISUAL BASIC como debe se r.. .
SALIR DEL VISUAL BASIC

VENTANA DE PROPIEDADES Para salir del Visual Basic puede realizar cualquiera de los siguientes pasos:

1. Haga un click en el botón Cerrar de la ventana principal del Visual


Basic.
È
Se activa haciendo click en:
¡Form i Form A Botón Cerrar--------
Alphabetic | Categorized j
* S33 E E £
(Name) Formi File Edit View P roject Form at Debug Run lo o ls A dd-Ins W indow Help

Appearance 1 - 3D C o n tie n e las p ro p ie d a d es o 2. De la opción F IL E (Archivo) de la barra de menú elija E X IT (salir).


AutoRedraw False “ ' características de cada uno de los
3. Pulse las teclas ALT + Q
□ _▼] controles. Estas propiedades se pueden
4. Pulse las teclas ALT + F4
cambiar según lo requiera. También se
BorderStyie 2 - Sizable
activa pulsando la tecla <F4>. NOTA: Si al salir de visual Basic se muestra el siguiente mensaje:
Caption Formi
ClipControls True
ControlBox True
DrawMode 1 3 -C opy Pen ¡
r w - . „ . c i- . J.-. n c j-.i-.A ...J

VENTANA DE PROYECTO

Se activa haciendo click en:


Project - ProjecH É

]ÿ> Project1 (Project 1)


Contine todos los formularios, módulos,
B -& Forms e tc. que form an una a p lic ac ió n . Visual Basic le pregunta si desea grabar los cambios realizados en el
También se activa pulsando <CTRL> proyecto. Si no es im portante lo que tiene en el proyecto o en el
+ <R>. form ulario, haga un click en el botón NO.

32 G rupo E d it o r i a l Megabyte^ I f l E j E 'G ru po E d it o r ia l Megabyte 3 3 ^ ¡ ¡ ¡ |¡


BASIC como debe se r... CAPITULO I: Entorno D el Visual Basic
2 - La Ventana de Propiedades se ubicó debajo de la Barra Estándar y
SOLUCIONANDO LOS PROBLEMAS INICIALES desea llevarla a su posición normal. Así:
,Project1 - M icrosoft Visu al B a sic [design]

1.- Al a c c e d e r a l V isu al B asic no se e n c u e n tr a n to d o s los Fie Edit View Project Form at D ebug Run Took A dd-Ins Window Help

c o m p o n e n tes. si - a - 1 es H m, ►
IF o r m i Form
Para solucionar éste problema debes hacer click en la opción V IE W Alphabetic | Categorized |

(VER) de la barra de menú, cuyas opciones perm iten visualizar los AutoRedraw False ..... *1
BackColor □ &H8000000F& —1
componentes: BorderStyle 2 - Sizable
eSÎSSIÉBÂi 1 Formi
»5, Proyectol - Microsoft Visual Basic [diseño] I—Inixi ClipControls True
ControlBox True zi
Archivo Edición Ver Proyecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda

$ . ¡3 . ' El Código » =iS|_xJ « . P ro je ct! - Fo rm i (Form ) MO


EH Objeto Mayús+F7 - Form !
A

[ab| *v .
Activa el Formulario
F Í» B
d
i ÿ Examinador de objetos F2 m 4 ±j d
GD _J
jp Ventana Inmediato Ctri+G
0
® \
□ Ventana Locales
^gj
£ 3 Ventana Inspección B ■

OrK.
Activa la Ventana
<§$ Explorador de proyectos Ctrl+R de Proyecto
Hl* Ventana Propiedades F4 . Para solucionar este problema debe hacer click con el botón dere­
¡Q Ventana Posición del formulario ■ \ cho del mouse dentro de cualquier parte de la ventana de propieda­
Páginas de propiedades Mayús+F4 Activa la Ventana
de Propiedades
des. Se visualizará cualquiera de las siguientes ventanas.
Tabla ►
Zoom ►
Description
Mostrar paneles ► ✓ Dockable
Activa la Caja de ^ Dockable

Hide
Cuadro de herramientas ■ Herramientas Hide
Ventana de la vista Datos
Paleta de colores
Depuración Desactive la opción Dockable, haciendo click en ella.
Barras de herramientas
m Edición
Otra form a de solucionar este problema es haciendo click en el
Visual Component Manager Editor de formularios
* Estándar
título de la ventana de propiedades y arrastrarla a su posición nor­
Activa o desactiva
mal.
la Barra Estándar
Si la ventana de propiedades ocupa toda la pantalla, restaure la
Activa la Ventana de ventana del Formulario.
ubicación de formulario

» 34 Grupo Editorial Megabyte < | Í ¡ g G rupo E d it o r i a l Megabyte 35


VISUAL BASIC como debe se r.. . CAPITULO I: Entorno Del Visual Basic
La C aja de H erram ientas se ubicó debajo de la B a rra E stá n d a r 6 .- No puede m over ninguno de los controles del form ulario.
y desea llevarla a su posición norm al.
Para so lu c io n a r este p roblem a haga un clic k con el botón
Para solucionar este problema debe seguir los mismos pasos que derecho del mouse en cualquier parte libre del formulario y luego
se siguen p a ra lle v a r a su p o sic ió n norm al la v en ta n a de desactive la opción LO C K jC O N TRO L haciendo un click en dicha
propiedades (caso anterior). opción.
4.- L a C aja de H erram ien tas ocupa toda la pantalla.

Para solucionar este problema haga click en el botón restaurar


de la caja de herramientas.

Botón Restaurar Botón Maximizar

1 -1 ° « *»
d i Botón Minimizar
fx l Botón Cerrar

5.- No puedes visualizar el fo rm u lario y la ventana de propiedades 7.- No en cuentra un control que ha dibujado en el form ulario. Por
y caja de h erram ien tas están en blanco. ejem plo: al d ib u ja r u n a etiqueta se visualiza L abel3, pero Label2
no la encuentra.
Para solucionar éste problema haga en la opción FILE y elige
NEW PRO JECT (Nuevo Proyecto). Primero m axim iza la ventana del fo rm u la rio 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
F ile £ d it y ie w E ro je c t F ß rm a t £>et>ug gun T o o ls & d d -In s W in d o w H e lp

s # * - . g~£ , ■ f e i <~vf j „
existe el nombre del control que buscas significa que no existe
cS *

- |á |jc |
en el form ulario.
General j
* Botón para ver ia
L a b e l3 Label
lista de controles
que se encuentran
• F o r m i Form
L a b e l l Label en el formulario
¡
L a b e l2 Label

BackStyle 1 - Opaque
B orderS tyle 0 - None
C aption Labels
DataField

36 G rupo E d it o r i a l Megabyte G r u p o E d it o r i a l Megabyte 37


VISUAL BASIC como debe ser.. . CAPÍTULO I: Entorno Del Visual Basic ^ f ¡ ¡ &
Desea e v ita r que los avances realizad o s en su aplicación se
P o r casualidad a creado varios proyectos o form ularios en su
b o r r e n p o r p ro b le m a s in e s p e ra d o s com o c o rte de flu id o
aplicación y desea b orrarlos.
eléctrico , etc.

Grupo de proyectos - Grupol B Para ello, puede configurar al Visual Basic para que al ejecutar
En este ejemplo a creado en su
C3 aplicación tres proyectos y en el su aplicación se graben en form a automática todos los cambios
- P r o y e c t o l ( P r o y e c t o l) proyecto N° 1 tiene 3 formularios. que le ha realizado.
-j ' > Form ularios Haga click en la opción TOOLS (Herramientas) de la barra de
C ] F o rm l (F o rm l)
Si hace un Click en el signo mas (+) de menú y elija OPTIONS... De la ventana que se visualiza active la
O Form 2 (Form 2)
C ] Form 3 (F o rm 3 )
un proyecto, se visualizan sus página E N VIR O N M EN T (Entorno). Se visualiza la siguiente
0 ¡ j ? P ro y e c to 2 (P ro y e c to 2 )
componentes y en el signo + de la ventana:
B €: >IForm
........ularios
...... palabra Formularios se visualizan los
Q F o rm l (F o r m l) formularios que contiene. Si hace un Para que los cambios realizados a
Editor | Formato del editor | General ] Acople Entorno | Avanzado ]
- P ro y e c to 3 (P ro y e c to 3 ) click en el signo menos (-) los oculta. Cuando se inicie Visual Basic: Mostrar plantilas para: su aplicación se graban
GB- l2 Form ularios
(• preguntar por un proyectol F Eormularios autom áticam ente al ejecutarse
C £rear un proyecto predeterminado P Formularios MDI
active el botón G uardar los
F Módulos
F Módulos de clase
Cambios
Cuando se inicie un programa:
Para solucionar este problem a haga un click con el botón C guardar los cambios F Controles de usuario

derecho del mouse en el proyecto o form ulario que desea borrar. C Preguntar p ata guardar los cambios F Páginas de propiedades NOTA
F Documento de usuano Cada una de las páginas de esta
Se visualiza el siguiente menú: <• No guardar los cambios

Directorio de plantillas:
ventana permiten configurar id
|C:\ARCHIVOS DE PROGRAMA\D£VSTUDIO\VB\Tempiate Visual Basic. Es muy importante
M enú del Proyecto M enú del Formulario que Ud., observe cada una de estas
j Aceptar Cancelar | Ayuda
ventanas.
1Ü Ver objeto
Establecer como inicial CU Ver código
Propiedades de Proyectol... Desea que en la ventana de propiedades se m uestre una breve
Propiedades
explicación de cada una de las propiedades.
Guardar proyecto
Agregar
Quitar proyecto
Guardar Forml Para ello, haga click con el botón derecho del
[c o m m a n d 1 CommandButton * |
Agregar ► Guardar Forml como. mouse en cualquier propiedad y luego active
la opción Descripción. Alfabética j Por categorías |
Quitar Forml
é=$ Imprimir... (Name) Command 1
Appearance 1 - 3D
1Imprimir... BackColor □ &HSOOOOO1
v' Acoplable v' Descripción
Cancel False
Ocultar v" Acoplable
v' Acoplable
Ocultar
Ocultar D efault False

C a p tio n
En cualquiera de los casos haga click en la opción Q U IT A R Devuelve o establece el texto
mostrado en la barra de título de
(Proyecto o Formulario). Descripción de las propiedades un objeto o bajo el icono de un

G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 39


^ lltÉ ll’- VISUAL BASIC como debe sen . . CAPÍTULO I: Entorno Del Visual Basic w m

FILOSOFÍA DE PROGRAMACIÓN 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,
gráficos, botones de comandos, etc. A continuación se le asignan las propiedades
y finalmente se escriben las instrucciones relacionadas a cada uno de ellos. PREGUNTAS DE REPASO - N° 01
Quiere decir esto que cada control está ligado aun conjunto de instrucciones
01.- La ventana principal de una aplicación se llama:
que permanece inactivo hasta que ocurra el evento que lo activa.
02.- El entorno de Visual Basic está compuesto por:
EV ENTO: 03.- Qué es un Proyecto?
04.- Los controles se encuentran en:
Es una acción reconocida por un control u objeto para el cual se puede escribir
05.- Para activar la Ventana de Proyecto se debe pulsar:
instrucciones de respuesta. Los eventos pueden estar generados por una acción
06.- Dibuje el botón que sirve para ejecutar una aplicación.
del usuario como hacer click con el mouse, pulsar una tecla, etc.
07.- ¿Qué debe hacer si al activar el Visual Basic no encuentra la Barra
CONTROL: Estándar?
08.- Dibuje el botón para grabar un proyecto.
Es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comandos
09.- ¿Qué tecla activa la Ventana de Propiedades?
o un marco que se coloca en un formulario para presentar datos, realizar una
10.- Dibuje el botón que sirve para finalizar una aplicación.
acción o mejorar el aspecto de un formulario, etc.
11.- ¿Qué ventana contiene las características que se les puede asignar a
O B JE T O : los controles?
12.- Dibuje el botón que activa la Caja de Herramientas.
Es una instancia de una clase que combina datos y procedimientos. Por ejemplo
un control cuando es ejecutado en un formulario es un objeto. 13.- ¿Qué es un método?
14.- Dibuje el botón que sirve para llamar o abrir un proyecto.
CLASE: 15.- ¿Qué contiene la Barra Estándar?
16.- ¿Qué teclas permiten visualizar el formulario?
Es la definición de un objeto incluyendo su nombre, sus propiedades y métodos
17.- ¿Qué debe hacer si al ingresar al Visual Basic no se visualizan todos
y cualquier evento que tenga.
sus componentes?
PR O PIED A D : 18.- ¿Cuáles son los pasos para desarrollar una aplicación?
19.- ¿Cuándo se ejecutan las instrucciones de los controles?
Es un atributo con un nombre determinado que se le asigna a un control para
20.- ¿Qué es un evento?
definir una característica del objeto como por ejemplo, el tamaño, el color, o la
posición en la pantalla, o un aspecto de su comportamiento, como por ejemplo,
¡C U ID A D O !
si está oculto o no.

M ÉTODO: Le recomiendo no seguir con los próximos temas mientras


no obtenga un veinte en esta autoevaluación.
Es un procedimiento similar a una instrucción o función que opera sobre objetos
específicos.

G rupo E d it o r i a l Megabyte" G rupo E d it o r i a l Megabyte 41


CAPITULO II

Datos Personales
G ua rd a r co m o tip c; I Form File:
%T" ‘

OBSERVACIONES

Nuevo Alumno Finalizar

DESCRIPCION
DE LOS
CONTROLES BÁSICOS
EL FORMULARIO:

Es una ventana muy importante porque aquí se dibujan o pegan todos los
controles que necesitamos utilizar en nuestro programa o aplicación. Se
pueden utilizar tantos formularios como se necesiten, y dependiendo de la
utilidad que se les dé, éstos serán de diferentes tipos. Así, se puede crear un
formulario que contenga un gráfico, para visualizar información o para
ingresar datos.

P R IN C IP A L E S P R O P IE D A D E S D E U N F O R M U L A R IO :

ÑAME
Permite asignar un nombre al formulario. Por defecto el nombre es FO RM 1,
FORM2, FORM3, etc.
BACKCOLOR
Selecciona un color de fondo para el formulario.
B O R D E R ST Y L E
Selecciona el estilo de presentación y comportamiento del formulario.
C A P T IO N
Asigna un Título al formulario.
CONTROLBOX
Indica si se visualizan los botones de control del formulario (Maximizar,
Minimizar, etc.).
EN A B L ED
Indica si el formulario debe estar activado o no. Si no esta activado, no
responde a ningún evento.
FO N T
Indica el tipo, tamaño y estilo de letra de los controles que se dibujen en el
formulario.
IC O N
Selecciona un icono para el formulario.

E d it o r ia l Megabyte 45
CAPÍTULO II:Descripción de los Controles Básicos
4S S S & VISUAL BASIC como debe ser.. .
LEFT
Permite indicar la posición horizontal del formulario. ¿CÓMO ASIGNAR UNA PROPIEDAD?
M A X B U TTO N
Indica si se visualiza el botón Maximizar. Para asignar una propiedad a un control (formulario, caja de texto,
M IN B U T T O N etiqueta, botón de comando, etc.), primero debe seleccionarlo, haciendo un
Indica si se visualiza el botón Minimizar.
click en él, luego pulse <F4> o el botón propiedades.
M O U S E IC O N
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
BOTON DE PROPIEDADES
asignar el valor 99-Custom a la propiedad MousePointer.
M O U S E P O IN T E R
Se utiliza para indicar el estilo del puntero del mouse.
M OVEABLE BOTON PARA
Indica si el usuario puede mover el formulario. ES* i S S S B S Π- Ia !.*J SELECCIONAR EL
NOMBRE DEL CONTROL Al.
P IC T U R E CONTROL AL JF o r m i Form .I.J
CUAL LE
Para seleccionar un gráfico que sirva de fondo para el formulario. CUAL SE LE ^ T Alphabetic ] Categorized | QUEREMOS
ESTA ASIGNADO ASIGNAR
SCALEM ODE PROPIEDADES Aubzftëèdraw False PROPIEDADES
Asigna la unidad de medida para el tamaño o ubicación del formulario o cualquier jáckColor □ &H8000000

/ BorderStyle 2 - Sizable
otro control. La unidad de medida que se activa en forma automática es TWIP.
Un TWIP es una unidad de medida estándar para todo tipo de pantallas la ClipControls True
FORMAS DE
cual nos permite asignar el mismo tamaño o ubicación de los controles sin VISUALIZAR ControlBox True

importar el tipo de pantalla que utilizamos. Un TWIP es igual a 1/20 de un LAS DrawMode 13 - Copy P e n __
BARRA DE
PROPIEDADES DrawStyle 0 - Solid DESPLAZAMIENTO
punto de impresora. 1440Twips equivalen a una pulgada y 567 equivalen a DrawW idth 1 DE
un centímetro. Enabled True PROPIEDADES
SH O W IN T A SK B A R FillColor ■ &HGÜ0Û000
1 - Transparen
Indica si el formulario se debe visualizar en la barra de tareas cuando se FillStyle
Font MS Sans Serif
esta ejecutando. FontTransparenl True
ST A R T U PPO SIT IO N ForeColor ■ &H8000001
Permite seleccionar la posición inicial del formulario en la pantalla. Height 3600
H elpContextID 0 ^
TOP
Se utiliza para indicar la posición vertical del formulario en la pantalla.
V ISIB L E
Indica si el formulario se debe visualizar.
W ID T H
NOTA:
Permite indicar el ancho del formulario. Usted, puede modificar el ancho o altura de esta ventana.
W IN D O W STA TE
Selecciona el modo de presentación del formulario: Normal, Minimizado o
Maximizado.

G rupo E d it o r i a l Megabyte 47 ■ w JÜ
G ru po E d it o r ia l Megabyte <
é S fÍk > VISUAL BASIC como debe se r.. .
ETIQUETA (Label) :
* Según la propiedad que ha elegido, Ud. Puede visualizar:
A
Es un control que se utiliza para mostrar mensajes en una aplicación.
1 II Al dibujarlo en el formulario se visualiza: Label 1, Label2, Label3, etc.

2 D S H j J Al dibujar un control no debe preocuparle el tamaño Inicial que tome,


porque se puede modificar de una manera fácil y rápida.
3 (None) ^ PR IN C IPA LE S PR O PIED A D E S DE UNA ETIQU ETA :

1.- Para escribir el texto que se desea mostrar en la propiedad. ÑA M E


Perm ite asignarle un nombre. Por defecto el nombre es Label 1,
2.- Para que al hacer un click en la flecha hacia abajo se visualice una Label2, Label3, etc. Según el número de Etiquetas que se dibujen en el
lista de valores que podemos asignar como propiedad. formulario.

3.- Para que al hacer un click en los tres punto se visualice una ventana A L IG N M E N T
de diálogo. Alinea el texto que se encuentra en la Etiqueta: Left (Izquierda),
Right (Derecha) y Center (Centro).
A P PE A R A N C E
NOTA : P uede m o d ific a r c u a lq u ie ra de las p ro p ie d a d e s y Cambia la apariencia de la Etiqueta.
com probar sus efectos ejecutando el form ulario con la
tecla <F5> o con el botón Ejecutar y para term inar . U A U T O S IZ E
ejecución pulse la tecla <A LT> + <F4> o click en el Para indicar si el tamaño de la Etiqueta depende del tamaño de la
botón finalizar. letra seleccionada.
BACKCOLOR
Selecciona un color de fondo de la Etiqueta
* B O T O N E JE C U T A R
B A C K ST Y L E
Asigna el estilo del fondo de la Etiqueta.
B O T O N F IN A L IZ A R
B O R D E R ST Y L E
Asigna el estilo del borde de la Etiqueta.
C A P IT O N
Para escribir el texto o información que desea visualizar.

G ru po E d it o r ia l Megabyte-^ ¡ jllll^ G ru po E d it o r ia l Megabyte 49


é S B ib ' VISUAL BASIC como debe ser.. . , < $8 APÍTULO I I .-Descripción de los Controles Básicos %
PONT MUY IMPORTANTE:
Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto o Para trabajar con un control, debes seleccionarlo.
mensaje que desea visualizar en la Etiqueta. Siempre debes mirar la caja de propiedades para darte cuenta con qué
FORECOLOR control estas trabajando.
Permite asignar el Color de la letra del texto o mensaje que desea
visualizar en la Etiqueta. Ejem plo: El formulario siguiente tiene una etiqueta, pero esta seleccionado
VISIBLE el formulario.
- lai *1
Indica si la Etiqueta se debe visualizar o no. P C o n tro l
A ctivo
A P L IC A C IÓ N D E S A R R O L L A D A N° 01
MI PR IM ER A APLICACION Propiedades - Formi
/
I F o r m i Form

Alfabética | por categori!


VISUAL BASIC (Nombre)
Appearance
Forml
1 - 3D —1
AutoRedraw False
□ &H8000000F8
Como debe ser... BackColor
BorderStyle 2 - Sizable
Caption Forml

M± nombre es ; ¿fuan. José Castane<t* Leon


En el formulario siguiente se tiene una etiqueta, la cual está activada.

P a ra d e sa rro lla r u n a aplicación debe seguir los siguientes pasos:


, C o n tro l
1.- C re a r una nueva aplicación. I□ I x ||
1 A ctiv o
De la opción F IL E de la Barra de Menú elegir N E W PROJECT.
2.- Mueva y ajuste el tamaño del Formulario.
3.- Dibuje los controles.
4.- Defina las propiedades del formulario y controles.
5.- Escriba las instrucciones para los controles. (Nom bre) Label 1 jf v
6.- Guarde la aplicación. Alignment 0 - Left Justify
Appearance 1 - 3D
7.- Ejecute la aplicación. AutoSize False
BackColor □ &H8000000F8
NOTA: Si durante el diseño de la aplicación desea b o r ra r un control, BackStyle 1 - O paque
BorderStyle 0 - None
debe seleccionarlo haciendo un click en él y luego pulsar la tecla D ELETE Labell
Caption
(SUPRIM IR).
Megabyte 51
G rupo E d it o r i a l Megabyte G rupo E d it o r i a l
VISUAL BASIC como debe ser.. CAPITULO II.Descripción de los Controles Básicos
Los puntos alrededor de un control indican que este se encuentra DESARROLLO DE LA APLICACIÓN N° 01
activado.
Para desarrollar la aplicación N° 01 se siguen los siguientes pasos:
MODIFICAR ELTAMAÑO DE LOS CONTROLES
Para modificar el tamaño de un control, primero debe seleccionarlo A justar el tam año D ibujar los
del Form ulario C ontroles
haciendo click en él. Una vez seleccionado se visualizará los puntos
que permiten modificar su tamaño, entonces lleve el puntero del mouse JSl-ül
por uno de estos puntos hasta que visualice una flecha en doble sentido, Labell

luego arrastre el mouse ampliando o reduciendo el tamaño del control.


El control esta
Formi EHH1 listo para Label2
modificar
su ancho

Labell Label3

3.- Asignar las propiedades a los Controles

CONTROL CAPTION ALIGNMENT AUTOSIZE FONT BORDERSTYÜ


FO R M I M I P R IM E R A A P L IC A C IO N — — — —
El control esta listo El control esta listo para
V IS U A L B A S IC C e n te r T rue 28 0 -N o n e
para modificar su— modificar su ancho LA B EL 1
ancho LABEL2 C om o d eb e ser... C en ter T rue 14 1-F ixed Single

LABEL3 Mi no m b re e s Ju an José.. R ight T rue 10 0 -N o n e


MOVER UN CONTROLEN EL FORMULARIO
Para m over un control haga clic dentro del control y arrastre el Si desea que a¡ ejecutar la aplicación el formulario ocupe toda
mouse hasta la posición donde desea moverlo. Observará la siguiente la pantalla, su propiedad W indow state debe tener el valor 2
pantalla. fmaximized).
■ü. Formi
En esta aplicación no se escriben instrucciones porque sólo
permite mostrar mensajes.
Labell
Posición del control A.Guarde o grabe la aplicación.
en el formulario

5.Pulse la tecla F5 o el botón ejecutar para que el formulario se ejecute


y observar los resultados de esta aplicación.

G ru po E d it o r ia l Megabyte 53 « H »
 •CAPITULO II'.Descripción de los Controles Básicos
I l b VISUAL BASIC como debe s e r ... >
G U ARDA R O G R A B A R UNA A PLIC A C IÓ N . VENTANA PARA GRABAR UN FORMULARIO
Selecciona Carpeta Crea una Nueva
Carpeta
Existen dos formas de guardar una aplicación: Acción que
Actual otra carpeta Anterior Carpeta
está realizando
1 Haciendo click en la figura del Disco que se encuentra en la Barra
Estándar Q-ave Pieiect A* jd -ii
G u ardar en: _já V b =3 dü
3cap t I R e p o s try __ I v b o n lin e Formas de
2.- De la opción F IL E "Archivo" de la Barra de Menú, elegir Guardar J Clisvr I sam ples __ J W in a p i ver los
J d oe s L J S e tu p I W iz a rd s Formularios
Proyecto. Si desea guardarlo con un nombre diferente al asignado j H e lp __ 1 s e tu p k it CALEN DAR y carpetas
inicialmente, debe elegir la opción Guardar Proyecto Como. j O dbc (__J T em p ia te <jbf c a s e •
j report — I T sql checkl
_Formularios y
carpetas
Primero le pide el nombre de cada formulario (*.FRM) que forma jl L jJ
parte de la aplicación y al final le pide el nombre del Proyecto (*. VBP) N o m b re d e archivo : G uardar
□ -
el cual se utiliza para abrir o recuperar posteriormente la aplicación. G u ardar c o m o tipo: {P ro je c t Filep (x.v b p ) C a ncela r
Botón para
Ayuc a Grabar

VENTANAPARAGRABAR UN FORMULARIO
Tipo de archivo que está Cancela la acción
C aja para escribir el nombre del formulario que
desea grabar grabando
A cción que C arpeta Selecc rna C arpeta C rea una N ueva
está realizando A ctual otra carpeta A nterior C arpeta " MUCHO CUIDADO "
Para cada formulario de un proyecto y para cada proyecto que usted
S a v e F ile A s I grabe, utilice nom bres d istin to s porque de lo con trario el nuevo
Guardai en: | M Vb
+
m J formulario o proyecto borrará al anterior. Por ejemplo, si ya tiene un
J Clisvr L - Ï Setup L U Wizards proyecto grabado con el nom bre trabajo y graba un nuevo proyecto
j Help Formas de
L_J setupkit hh
ver los
con el mismo nombre, entonces el primer proyecto se borrará y ya no
J Odbc —J T empiate ^ PROG01
j report Formularios podrá recuperarlo. Esto tam bién sucede con los formularios. Por eso
L J T sql Q PRO G02 y carpetas
J Repostry __ j vbonline tenga M U C H O CU ID A D O
1samples L J Winapi
^Form ularios y
carpetas
Antes que el proyecto o formulario se borre se muestra un mensaje
existentes de advertencia.
Nombre de archivo: ' |9BRr Guardar |" G u a rd a i p ro y e c to co m o

Guardar como tipo: I Form FileJ (x.frm) C :\A rc h iv o s de p ro g ra m a \M icroso ft V isu al S tu d io \V B 9 8 \T ra b a jo .vb p v a existe.
Cancelar ¿ D esea reemplazarlo?

Ayuda Botón para


G rabar

Si usted responde SI, el nuevo proyecto o formulario reemplaza al


C aja para escribir el nom bre del form ulario que T ip o de archivo que está ^ C ancela la acción anterior (lo borra) y si responde NO, Visual Basic le pide otro nombre.
desea g ra b a r grabando

G rupo E d it o r i a l Megabyte ss mm
VISUAL BASIC como debe ser.. .
Para Evitar estos problem as te recom iendo que cada proyecto o E JE C U T A R UNA A P L IC A C IÓ N
aplicación que hagas lo grabas en una ca rp e ta diferente, esto también
te permite administrar mejor tus proyecto. Existen tres formas de ejecutar una aplicación:
A B RIR O R E C U PE R A R UNA A P L IC A C IÓ N 1.- Pulsando la Tecla <F5>.
2.- De la opción E je cu ta r de la Barra de Menú, elegir Iniciar.
Existen tres formas de abrir o recuperar una aplicación:
3.- Haciendo click en el Botón E jecu tar que se encuentra en la Barra
1 Haciendo click en la figura del L ibro que se encuentra en la Barra Estándar.
Estándar.
> BOTÓN EJECUTAR
2.- De la opción ARCHIVO de la Barra de Menú, elegir A b rir Proyecto.
NOTA:
3.- Pulsar las teclas (CTRL + O).
Según como esta configurado Visual Basic, cada vez que ejecuta un
programa le preguntará si desea guardar los cambios realizados. Esto se
Una vez que se visualiza la ventana para abrir un proyecto, usted
puede activar o desactivar en la opción H erram ientas de la barra de menú
puede hacer doble clic en el nombre del proyecto o escribir su nombre
luego en O pciones y finalmente en la hoja E ntorno
en la caja indicada y luego haga clic en el botón 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 j
E dito r | F o rm a to d e l e d ito r | G e n e ra l | Acopl< , E n to rn o A v a n z a d o |
C u a n d o s e Inicie Visual B asic: M o stra r plantiB as p a r a :
visualizar. C~ p r e g u n ta r p o r u n p r o y e c to P7 F o rm ularios

C r e a r u n p r o y e c to p re d e te rm in a d o W F o rm u lario s MDI
VENTANAPARA ABRIR UN PROYECTO P ? M ódulos

C u a n d o s e inicie u n p ro g ra m a : W M ódylos d e c la s e

Muestra todos los proyectos que tienes grabados. <*■ g u a r d a r lo s c a mbios! f y C o n tro le s d e u s u a rio

p r e g u n ta r si s e g u a r d a n los cam bios W P á g in a s d e p ro p ie d a d e s


Muestra la acción aue esta C f¿o g u a r d a r los cam bios W D o c u m e n to d e u su a rio
Muestra los orovectos recién
D irecto rio d e p lantillas:
l e ARCHI VOS DE PROGRAMA\M ICROSOFT VISUAL STUDIO\VB98\T e m p ia te
m
E x is te n te j R e c ie n te s J

fju s c a r en: [ «J V b
a J a l frnr-il
] D a ta e n v iro n m e n t
J T e m p iate
C o le gio 3 S | H o te l S u e ld o s Como puede observar, aquí también se puede cambiar otras configuraciones.
C o m p ra s Info rm e s T est
1 T sq l C o n ta b le s Juegos T ie n d a
) W iz a rd s E xa m e n Pagos T ra b ajo
A lu m n o s
B a la n c e
F a rm a cia
H o ra rio s
P s ic o lo g ia U n iv e rs id a d MUY IMPORTANTE:
S is te m a s i U n iv e rs o d a d

UL l.S i al ejecu tar una aplicación no se v isualiza el form ulario,


N o m b re d e a rc h iv o : \ verifique que el form ulario no tenga en su propiedad Visible el valor
I'P O d e a rc h iv o s : j P ro y e c to (“ . v b p ;“ .m a kj". vb g ) F alse o que en su p ro p ie d a d W in d o w S tate no ten g a el v alor I-
M inimized (M inimizado).
2. Si al ejecutar la aplicación el form ulario se visualiza pero no
Caja para Tipo de Abre el Muestra los Proyectos que responde a ningún evento incluyendo los controles que contiene,
escribir el archivo que ” ------ - están mas a la derecha
entonces verifique que su propiedad Enabled no tenga el valor False.
& ► 56 G ru po E d it o r ia l M eg a b y te^ ¡ ||¡ ||^ G rupo E d it o r ia l Megabyte
%■ VISUAL BASIC como debe se r.. .
F I N A L I Z A R UNA A P L IC A C IÓ N CREAR UN ARCHIVO EJECUTABLE (*.EXE)
Existen cuatro formas de Finalizar una aplicación: Un archivo ejecutable es un archivo con la extensión EXE donde se
1.- Pulsando las Teclas <ALT> + <F4>.
encuentran unidos todos los formularios, instrucciones y módulo de una
2.- De la opción Ejecutar de la Barra de Menú, elegir T erm inar.
3.- Haciendo click en el botón cerrar del formulario (X). aplicación.
4.- Haciendo click en el Botón F in alizar que se encuentra en la Barra Tiene las siguientes ventajas:
Estándar. • Permite ejecutar la aplicación sin necesidad de ingresar al Visual
■ BOTÓN FINALIZAR Basic.
• Evita que alguien visualice las instrucciones que hemos utilizado en
GRABAR UN PROYECTO E N UN D IS K E T T E nuestra aplicación.
• Evita que alguien modifique las instrucciones que hemos escrito en
Si desea llevar tu proyecto en un diskette, debe copiar en él no sólo la aplicación.
el proyecto (*.VBP) si no también cada uno de los formularios (*.FRM) u
otros componentes que contiene como por ejemplo una base de datos, etc. Para crear un archivo ejecutable elija primero la opción ARCHIVO
Si ya grabaste tu aplicación er, el disco de la computadora (disco de la barra Estándar y luego GENERAR EXE. Visual Basic le pedirá el
duro) y te encuentras en el Visual Basic con tu aplicación en la pantalla que nombre del archivo que desea crear. El nombre por defecto que presenta es
deseas llevar en un diskette, entonces debes activar la ventana de proyecto el nombre con el que Ud. a grabado la aplicación.
(CTRL+R) hacer clic con el botón derecho del mouse en cada formulario
(uno por uno) y elegir G u a rd a r xxx.Frm Como. Esta opción también se Guardar en: p _il Vb98 M l » J f ü ml
2J Dataenvironmenl i*""1Link
encuentra en la opción Archivo de la barra de Menú donde encontrarás *1T empiate feV b 6
_2j T sql Ce?Visdata
también la opción G ra b a r Proyecto Como la cual se utiliza para guardar el *"1Wizards
3 C2
proyecto, entonces haga clic donde se selecciona las carpetas y elija Disco **~1Cvpack
3 1/2A:
tiombre de archivo: ITrabaio 1 Aceptar J
Cancelar I
r? ix i Ayuda i
G u a rd a r e n:
M
Vb98
Mi PC
« ■■■.. ^ ,
^
mi Ml ou immJ Qpciones. . 1
_ _ J D a t a e n v ir i
D is c o d e 3H (A :)
.. I T e m p ia te
¿ a J J u a n jo s é (C .)
__J T s q l
1 ... 1 A r c h iv o s d e p r o g r a m a
Al hacer click en el botón A ceptar o pulsar ENTER después de ingresar
_ J W iz a r d s
C3 d d d
I 1 M ic r o s o f t V is u a l S tu d io el nombre, Visual Basic genera en forma automática el archivo ejecutable.
Ö e C e d ti (D :) Una vez creado el archivo ejecutable Ud. puede crearle un acceso directo
1....1 S e r v ic io s e n lin e a
para poder ejecutarlo desde el entorno del WINDOWS sin necesidad de
N o m b r e d e a r c h iv o : { R a y a 1 g u a rd a r activar el Visual Basic.
G u a r d a r c f im o | F o rm u la rio (x.frm )
T 1 C a n c e la r j
a r c h iv o s d e tip o :
¿ QUÉ ES UN ACCESO DIRECTO ?
A yuda j Un Acceso Directo es una manera rápida de ejecutar una aplicación des­
También puede utilizar el Windows para realizar esta copia. de el escritorio del Windows sin necesidad de activar el Visual Basic.
También nos permite acceder a arribos y carpetas.

G ru po E d it o r ia l Megabyte^ G rupo E d it o r i a l Megabyte 59 « fifi»


^ÉiÍÉÉÉ^ VISUAL BASIC como debe se r.. . VITULO II:Descripción de los Controles Básicos
CREAR UN ACCESO DIRECTO 3. De la pantalla anterior haga clic en la opción Acceso Directo para visualizar
la siguiente pantalla:
Hay tres maneras de crear un acceso directo:

1. Desde una carpeta. E s c rib a el n o m b re y la u b ic a c ió n d e l e le m e n to p a ra


e l q u e d e s e a c re a r u n a c c e s o d ire c to , o b ie n ,
2. Desde el escritorio. b u s q u e el e le m e n to h a c ie n d o c lic e n E xa m in a r.
3. Desde el Menú de Inicio. L ín e a d e c o m a n d o s :

Para crear un acceso directo en el escritorio del Windows, primero E xa m inar..


debe salir al escritorio y luego seguir los siguientes pasos:

En cualquier parte libre del escritorio haga clic con el botón derecho
del mouse. Se mostrará el siguiente menú de opciones:
Active Desktop ►

Organizar iconos ►
Alinear iconos C a n c e la r

Actualizar

' ' Éenát •


De la pantalla anterior haga clic en el botón Examinar para buscar el archivo
Deshacer Eliminar Ejecutable (*.EXE) que usted ha creado
Nuevo

Propiedades E xa m in a r
Active Desktop ►

Organiza» iconos ► Buscar en: Vb98 a i » I B a l


AJinear iconos
_JÍDataenvironmen(j IZÜLink
Actualizar
Lleve el puntero del mouse a la opción Nuevo. Se 1 T empiate Q Trabajo
Pegar
mostrará la siguiente pantalla. ZD T sql ^ VbS
f'ft3<£á c ñjvtfpy [
Deshacer Eliminar 1Wizards G jiV isd a la
Z 3 C2
I _ J Carpeta
¿j Acceso directo
1Cvpack
Propiedades

^ W inZ p File
J j] Documento de texto
Documento de Microsoft Word Abrir
Nombre de archivo: |
t i l Imagen de mapa de bits
A/chivo de sonido Tipo de archivos: | Programas Cancelar
~3
l¡ P Presentación de Microsoft PowerPoint
Hoja de cálculo de Microsoft Excel
ir CorelDRAW 8.0 Gráfico
@ Imagen Corel PHOTO-PAI NT 8.0
^1 Corel Media Folder
Normalmente Visual Basic Graba el archivo ejecutable que usted crea en la
O Adobe Photoshop Image
PowerDesigner 8 Physical Data Model File carpeta:
^ Microsoft Data Link C:\Archivos de programa\M icrosoft Visual Studio\VB98

y 60 G rupo E d it o r i a l M eg a b y te^ G ru po E d it o r ia l Megabyte 61


W VISUAL BASIC como debe ser.. .
U na vez que e n c u en tra el archivo selecciónelo haciendo doble clic Después de cambiar o no el nombre del acceso directo haga clic en el botón
en él o un solo clic y luego en el botón A brir. Se mostrará la siguiente Finalizar. Observará inmediatamente en el escritorio del Windows un nuevo
pantalla donde se muestra la ruta y el nombre del archivo ejecutable. En icono.
nuestro ejemplo el archivo se llama TR A BA JO .EX E.
C re a r a c c e s o d ire c to

E s c r ib a e l n o m b r e y la u b ic a c ió n d e l e le m e n to 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 ir e c t o , o b ie n ,
b u s q u e e l e le m e n to h a c ie n d o c lic e n E x a m in a r.
L ín e a d e co m a n d o s:
| d e p ro g ra m a S M ¡ c ro s o ft V is u a l S tu d io S V B 9 8 \ T r a b a jo . e x e f '

li E x a m in a r... I

Sjy >I
«fi S~
s «*§>«•»»»*... 1
PB

NO TA:
De la pantalla anterior seleccione el botón Siguiente. Para ver las otras formas de crear un Acceso Directo consulte con el Manual
o Ayuda de Windows.
S e le c c io n e u n t ít u lo p a ra e l p ro g ra m a
MUY IM P O R T A N T E
S e le c c io n e u n n o m b r e p a r a e l a c c e s o d ire c to :

IT r a b a jo 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 aplicación. Si la aplicación trabaja con archivos externos como base de
datos también debe copiarlos en su carpeta respectiva. Si no copia el archivo
*.DLL se mostrará el siguiente mensaje cuando intente ejecutar la aplicación.
E rro r a l in icia r e l p ro g ra m a al
N o s e e n c o n tr ó el a r c h iv o D L L r e q u e rid o , M S V B V M 6 0 .D L L .
: A trá s ) j| C a n c e la r |

A c e p ta r j|

La pantalla anterior le permitirá en forma opcional cambiar el nombre para


NOTA:
el acceso directo.
También puede crear los Discos de Instalación de la Aplicación como se
Según los iconos (*.ico) que tenga grabados, Windows le pedirá también
explica en la página N° 307.
elegir el icono para el acceso directo.

62 G rupo E d it o r i a l M e g a b y te < |¡¡¡| G rupo E d it o r i a l Megabyte 63 4 M i


VISUAL BASIC como debe s e r ...
CA JA DE TEX TO (TEXT):
PA SSW O R D C H A R
fibj Para indicar el carácter que deseamos que reemplace a cada uno de los
caracteres que digitamos. Se puede utilizar por ejemplo cuando queremos
ingresar claves de acceso.
Es un control que permite al usuario el ingreso de datos por medio del teclado.
Al dibujarlo se visualiza: Textl, Text2, Text3, etc. SC R O L L B A R S
Para indicar qué barras de desplazamiento queremos que tenga la caja de
PR IN C IPA LE S PR O PIED A D ES DE UNA CA JA DE TEX TO : texto: Ninguna (None), Vertical, Horizontal o Ambas (Both).

ÑAME TA BIN D EX
Permite asignarle un nombre. Por defecto el nombre es Textl, Text2, Text3, Indica el orden en el que el cursor debe ubicarse en las Cajas de Texto.
etc. Según el número de Cajas de Texto que se dibujen en el formulario. Donde queremos que se ubique el cursor al, ejecutar la aplicación debe
tener el valor cero.
BACKCOLOR
Selecciona el color del fondo. T A B ST O P
Indica si el cursor debe ubicarse o no en una Caja de Texto.
ENABLED
TEX T
Activa o Desactiva la Caja de Texto. Si está desactivada se muestra en un
color opaco y no responde a ningún evento ni se puede ingresar datos. 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
FO N T contenido y dejar en blanco la Caja de Texto.
Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto que se
escribe en este control. V IS IB L E
Indica si la Caja de Texto se debe visualizar o no.
FO RECO LO R
Permite asignar el Color de la letra del texto que se escribe en este control. APLICACIÓN DESARROLLADA N° 02
LOCKED - i n l x|
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 modificación
Datos Personales
y el valor TRUE lo evita.
Nombre
M AXLENGTH
Dirección
Para indicar el número máximo de caracteres que el usuario puede ingresar
T eléfono
en una Caja de Texto. El valor cero (0) permite que el número de caracteres
a ingresar sea ilimitado. Este valor es asignado por defecto. Centro de Estudios

M U L T IL IN E OBSERVACIONES

Indica si el texto a escribir en la caja de texto puede ocupar varias líneas. Se "1 ]
recomienda utilizarla junto con la propiedad SCROLLBARS para poder
desplazarse de una manera más rápida y fácil por el texto ingresado

G rupo E d it o r i a l Megabyte 65
> VISUAL BASIC como debe ser. . .
D esarrollo de la Aplicación: APLICACIÓN PROPUESTA N° 01
\ <. IN G R E S O DE P R O D U C TO S m m
_ |n |x |
1.- D ib u jar los controles. ♦
Nombre

Descripción
Labell
Precio Unitario

Label2 |T e>:H
Unidad de Medida
Label3 Jfext2
Stock
Label4 ffe x t3
Fecha de Vencimiento f
Label5 f f ext4

Label6
| Chic¡¿yo. 2 } de Agosto de 1.998
ÍText5

APLICACIÓN DESARROLLADA N° 03
O T T T rO T rrn rT a rr
n
2.- A signar las P ropiedades a los C ontroles.
ETIQUETAS
Nom bre
r~
CONTROL CAPTION ALIGNMENT BORDERSTYE Ciclo (del I al X )
!......
Labell Datos Personales Center 1-Fixed Single S exo [F /M ]
r~
LabeI2 Nombre Left O-None
Label 3 Dirección Left O-None
Clave
r~
D ire cció n E lectrón ica
Label4 Teléfono Left O-None i .................... .... ..
Label5 Centro de Estudios Left O-None L a d ir e c c ió n e le tró n ic a e s a s ig n a d a d e s p u é s
d e in g r e s a r to d o s io s r e g is tr o s ; p o r lo tardo,
Labeló Observaciones Center O-None U d. n o p o d r á in g r e s a r la

CAJAS DE TEXTO
CONTROL TEXT MULTILINE SCROLLBARS
TEXT1 En Blanco False None CARACTERISTICAS:
TEXT2 En Blanco False None
TEXT3 En Blanco False None 1. En el ciclo sólo se debe ingresar hasta 03 caracteres.
TEXT4 En Blanco False None 2. En el sexo sólo un carácter.
TEXT5 En Blanco True Vertical 3. En la clave hasta 05 caracteres y no se debe visualizar a medida
que se ingresa.
El formulario debe tener: INGRESO DE DATOS en su Caption. 4. No se debe permitir el ingreso de la dirección electrónica.

66 G ru p o E d ito r ia l Megabyte ^¡¡¡¡¡^ G ru p o E d it o r ia l Megabyte 67


17.S7 l / ItASIC como debe ser. < PÍTULO II'.Desciipción de los Controles Básicos
Iii nidlli) ilc l¡i Aplicación:
B O TO N DE CO M A N D O S (C O M M A N D ):
I I Xluijiu los controles.

Es un control que contiene instrucciones que se ejecutan cuando ocurre


La bell j|T e xtl un evento. El evento más utilizado es el evento CLICK, cuyas instrucciones
Label2
se ejecutan cuando el usuario hace un click en dicho control. Cuando se
|T ext2
dibuja se visualiza:Commandl, Command2, Command3, Etc.
Label3 ¡Text3 »

Label4
-----
[ i ext4 P R IN C IP A L E S P R O P IE D A D E S DE UN BOTON DE COMANDOS:
Label5 j í ext5
ÑAME
Label6 Permite asignarle un nombre. Por defecto el nombre es C om m andl,
Command2, Command3, etc. Según el número de Botones de Comandos
que se dibujen en el formulario.
2.- Asignar las Propiedades a los Controles. BACKCOLOR
E T IQ U E T A S
Selecciona el color del fondo. Para que acepte el color que se le asigna la
propiedad Style debe estar en modo Gráfico.
CONTROL CAPTION ALIGNMENT BORDERSTYE
Labell Nombre Left CANCEL
O-None
LabeI2 Ciclo (del I al X) Left Para indicar si las instrucciones que contiene se deben ejecutar cuando el
O-None
LabeI3 Sexo (F/M) Left usuario pulsa la tecla <ESC>.
O-None
Label4 Clave Left O-None C A P T IO N
Label5 Dirección Electrónica Left O-None
Labeló La dirección elec... Para indicar el título que debe tener el botón. El título que se le asigne
Center 1-Fixed S.
CAJAS DE TEXTO siempre se visualiza en el centro del botón de comandos. Ud. puede subrayar
CONTROL una de las letras del título usando antes de dicha letra el símbolo (&), esto le
LOCKED m axlength PASSWORDCHAR t e x t
TEXT1 False 0 permitirá ejecutar las instrucciones que contiene este control pulsando la
En Blanco En Blanco
TEXT2 False 3 tecla ALT y la letra subrayada.
En Blanco En Blanco
TEXT3 False 1 FO NT
En Blanco En Blanco
TEXT4 False 5 En Blanco Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto que se
TEXT5 True () En Blanco En Blanco escribe como título del botón.

Caption del formulario : INSCRIPCION DE ALUMNOS P IC T U R E


Selecciona un gráfico para que se utilice como título del botón de comandos.
68 G E Mega byte<
r u po d it o r ia l
Ü P G ru p o E d it o r ia l Megabyte 69
^ ¡¡¡¡fe > VISUAL BASIC como debe se r.. .
STY LE
Para seleccionar su estilo de visualización: Estándar o Gráfico. Si el estilo es
ESCRIBIR INSTRUCCIONES PARALOS CONTROLES
gráfico, puede almacenar un gráfico como título y se le puede cambiar el
color del fondo. Para escribir instrucciones dentro de algún control se debe hacer
Doble Click en dicho control o una vez seleccionado (haciendo un click en
T O O L T IP T E X T él) se debe pulsar la tecla <F7>. Ingresará a la ventana de instrucciones,
Nos permite escribir un texto que se visualizará cuando el puntero del mouse llamada también ventana de código:
se ubique en el botón. El texto que se escriba sirve de ayuda para el usuario,
porque le puede dar a entender qué tarea o /unción realiza el botón.
V ISIB L E VENTANA DE C Ó D IG O Q IN STR U C C IO N ES
Para indicar si el botón se debe visualizar.

APLICACIÓN DESARROLI ADA N° 04 (Similar a la N° 02)


1 « INGRESO DE DATOS wmm
1 Datos Personales
N om bie j¡
D irecció n

T elé f on o

C en tro d e E stu d io s J- — ■

OBSERVACIONES
LiL l i

H u e v o A lum no j Finalizar
J
IM P O R T A N T E :
La propiedad de los controles son iguales a la Aplicación N°02. Lo que sigue
son de los nuevos controles. El nombre del control depende de dónde se hizo doble click o pulsó
CONTROL CAPITON CANCEL TOOLTIPTEXT <F7> y de la Propiedad Ñame que tiene el control. Si no ha cambiado la
Commandl &Nuevo AlumnoFalse Adiciona un nuevo alumno. propiedad Ñame del control se visualiza el nombre por defecto.
Command2 &Finalizar True Finaliza la aplicación.
NOTA: Cada control tiene un evento por defecto, si Ud. desea programar en un
• El resultado de TOOLTIPTEXT, se visualiza cuando al ejecutar la evento diferente debe hacer click en la lista de Eventos y si desea programar
aplicación se ubica el puntero del mouse por unos instantes en cualquiera dentro de otro control que pertenece al mismo formulario debe hacer click
de los botones. en la lista de controles (Flecha hacia abajo).
• Se debe escribir instrucciones dentro de los Botones.
• El símbolo & permite que una letra esté subrayada.
70 G rupo E d it o r i a l Megahyte I p l ^ G r u po E d it o r ia l Megabyte m 71 w m
^ Ü Íy ¡É ^ VISUAL BASIC como debe se r.. .
EV EN TO S M OU SED OW N Y M O U SEU P
PRINCIPALES EVENTOS Las instrucciones que escribimos en el MouseDown se ejecuta se presiona
ACTIV A TE
un botón del mouse.Las instrucciones que escribimos en el evento MouseUp
Es un evento del formulario. Las instrucciones que se escriben dentro de
se ejecutan cuando se deja de presionar un botón del mouse.
este evento se ejecutan cuando el formulario es activado.
CHANGE Estos eventos reciben cuadro (4) valores y se almacenan en la variables
Las instrucciones que se escriben dentro de este evento se ejecutan cuando Button, Shift X, Y.
se modifica el contenido del control.
Prívate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
C L IC K
Single, Y As Single)
Las instrucciones que se escriben dentro de este evento se ejecutan cuando End Sub
se hace un click o pulsa ENTER en un control. Prívate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y
D B L C L IC K As Single)
Las instrucciones que se escriben dentro de este evento se ejecutan cuando End Sub
se hace doble click control.
DEA C T I VATE La variable BUTTON recibe un valor que indica el botón del mouse que se
Es un evento del formulario. Las instrucciones que se escriben dentro de presionó:
este evento se ejecutan cuando el formulario es desactivado.
G O T FO C U S Valor
Las instrucciones que se escriben dentro de este evento se ejecutan cuando 1 Indica que se presionó el botón Primario.
el cursor se posiciona en un control. 2 Indica que se presionó el botón Secundario.
IN IC IA L IZ A T E 3 Indica que se presionó el botón Central.
(No todos los mouse tiene 3 botones)
Es un evento del formulario. Las instrucciones que se escriben dentro de La variable SH IFT recibe el valor que indica la tecla especial que se tiene
este evento se ejecutan cuando el formulario se inicializa. presionada cuando pulsa o deja de pulsar uno de los botones del mouse:
K EY PR ESS
Mayús (Shift), CONTROL (Ctrl) o ALT.
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se pulsa una tecla en el control. Valor
LOAD 1 Indica que se tiene presionada MAYÚS (Shift).
Es un evento del formulario. Las instrucciones que se escriben dentro de 2 Indica que se tiene presionada CONTROL (Ctrl).
este evento se ejecutan cuando el formulario es cargado en memoria. 3 Indica que se tiene presionada ALT.
L O ST FO C U S
Las instrucciones que se escriben dentro de este evento se ejecutan cuando Las variables X, Y reciben el valor de la posición Horizontal y Vertical del
el cursor sale en un control. mouse respectivamente.
T IM E R
Es un evento del control Timer (Reloj). Las instrucciones que se escriben M UY IM PO R T A N TE
dentro de este evento se ejecutan cada cierta cantidad de segundos, que El botón primario del Mouse es el botón principal y permite seleccionar los objetos
Ud. Deberá indicar. de una manera normal y casi siempre es el botón Izquierdo. El botón secundario del
U N LO A D Mouse permite acceder a los menú contextúales y casi siempre es el botón derecho.
Es un evento del formulario. Las instrucciones que se escriben dentro de Los menú contextúales contienen las opciones mas utilizadas de una aplicación.
Puede utilizar la configuración del Panel de Control de Windows para configurar el
este evento se ejecutan cuando el formulario es descargado de la memoria.
Mouse.

72 G rupo E d it o r i a l Megahvte l i l i l í G ru po E d it o r ia l Megabyte


V
Á VISUAL BASIC como debe se r.. . ¡§ É I ¡I ^CAPÍTULO II:Descripción de los Controles Básicos
En este libro al botón secundario se le llama “Botón Derecho” VISUAL BASIC AYUDA A PROGRAMAR
DESARROLLO DE LAAPLICACIÓN N° 04 Cuando escribe el nombre de un control que tiene en el formulario y luego
En la aplicación N° 04 sólo se necesita programar el Evento Click de cada Botón de un punto se visualiza las propiedades o eventos que puede asignar a dicho
Comandos. control. Una vez que se encuentra seleccionada (Sombreada) la propiedad
ELBOTÓN: NUEVO ALUMNO. o evento en forma automática o en forma manual (con la flecha hacia abajo
Debe limpiar las cajas de texto y ubicar el cursor en Textl para ingresar un nuevo o h acia a rrib a), pulse la barra e s p a d a d o r a para que se e scrib a
alumno. automáticamente.
EL BOTÓN: FINALIZAR. Esta ayuda se puede activar o desactivar en la opción:
Debe finalizar o terminar la aplicación, ^sto también debe suceder si se pulsa la tecla Herramientas\Opciones\Editor\Lista de miembros automática
ESC. También le ayuda cuando escribe una función visualizando los parámetros
Entonces dentro del evento click del botón Nuevo Alumno se debe escribir: que necesita. Cuando esto ocurre quiere decir que ha escrito correctamente
Textl = ”” el nombre del control o el nombre de la función.
Text2 = ””
Text3 = ”” I P P r o y e c t o l - F o i m l (C ó d i g o ]
1t Proyecto! • Form! (Código)
IC o m m a n d l
Text4 = ”” " l i J c " ck
Commandl Click
P r i v a t e S u b C o m m a n d l _ C l i c k IT
Text5 = ”” T e x t 1.
Textl.Setfocus E n d S [^lÁiignment Private Sub C o m m a n d l _ C l i c k ()
eü* Appearance Dim R As Intger
Y dentro del botón finalizar se debe escribir: End Ef? BackColor
i**? BorderStyle R = Right (
nf? CausesValidation End S Right(SftMg,Le)i#/lsi-onfl) [
NOTA: eS* Container
ei? DataChanged
• La instrucción END finaliza un Programa, SETFOCUS ubica el cursor en un
i f 1
determinado control y Textl = ”” borra el contenido de Textl. Entre las comillas no
debe dejar espacios en blanco. A P L IC A C IÓ N PR O PU ESTA N° 02
• Después de escribir las instrucciones de un control puede cerrar la ventana haciendo Escriba la siguiente aplicación:
clic en el botón cerra (X). Si se hace un click en el botón de comando N° 1 (Nombre), se debe visualizar
• Las instrucciones quedan grabadas cuando se graba el proyecto o el formulario. tu nombre. Si se hace un click en el botón de comando N° 2 (Centro de
Estudios), se debe visualizar el nombre del colegio, instituto, universidad,
ASPECTO FINAL DE LAS VENTANAS DE COMANDOS etc. donde estudias. Si se hace un click en el botón de comando N° 3 (Fecha
BOTONNUEVO ALUMNO BOTON FINALIZAR de Nacimiento), se debe visualizar la fecha en que naciste.
O - | n |_ g j

Private Sub Command2_Click() ¿


End
End Sub N o m b re ¿I C entro d e E s tu d io s F e c h a d e N a c im ie n to

Salir

G ru po E d it o r ia l M egabyte^ G rupo E d it o r i a l Megabyte 75


VISUAL BASIC como debe s e r ...
A P L IC A C IÓ N D ESA R RO LLA D A N° 05
TR A BA JA N D O CO N LO S N O M B R ES DE LOS C O N T R O L E S Esta aplicación permite ingresar el nombre, fecha de nacimiento, DNI y
domicilio actual de una persona utilizando la propiedad Ñame de los controles.
Todos los controles tienen asignado un nombre automáticamente cuando . In g re so de D a lo s
son dibujados en el formulario, esto lo puede confirmar mirando la propiedad
■Nombre..................
Ñame (Nombre) de cada control que dibuja en el formulario.
! Fecha de Nacimiento ! !

■DNI

Por ejemplo: Domicilio Actual •

La prim era etiqueta (Label) que dibujas en el form ulario tiene Salir

automáticamente el nombre Label 1, la segunda Label2, etc.

La primera caja de textos (Text) que dibujas en el formulario tiene Paso N° 01: D ib u jar los controles.

automáticamente el nombre T extl, la segunda Text2, etc. • Labell-

El primer botón de comando (Command) que dibujas en el formulario : Label2 :

tiene automáticamente el nombre Command 1, el segundo Command2,


- Label3 • ; |Texl3
etc.
Label4- • ............| Text 4

Para desarrollar una aplicación puedes utilizar estos nombres que se asignan Command! : Command2

automáticamente al ser dibujados en el formulario asignarles nombres que


usted cree conveniente (ESTO ES OPCIONAL). Paso N° 02: D ib u jar los controles.
ETIQUETAS
N O TA : CONTROL CAPTION AUTOSIZE
Norm alm ente los controles en su propiedad Caption o Text tienen lo L a b e 11 Nombre True
mismo que se asigna automáticamente en la propiedad Ñame, por eso Label2 Fecha de Nacimiento True
LabeB DNI True
tenga mucho cuidado de no modificar la propiedad Ñame en lugar de Label4 Domicilio Actual True
la propiedad Caption o Text.
CAJAS DE TEXTO
CONTROL TEXT NAME
Textl En Blanco Nombre
E jem plo: Text2 En Blanco Fecha
Text3 En Blanco Dni
Text4 En Blanco Domicilio
En la siguiente aplicación se les asigna a los controles nombres distintos a
los que Visual Basic les asigna en forma automática. CAJAS DE TEXTO
CONTROL CAPTION NAME
Coiranandl Nuevo Nuevo
Command2 Salir Salir
^ G rupo E d it o r i a l Megabyte 77
76 G rupo E d it o r i a l M egabyte“
VISUAL BASIC como debe se r.. .
Paso N° 0 3:E scribir las instrucciones p a ra los controles.
In stru ccio n es del botón Nuevo. PREFIJOS PARA LOS NOMBRES DE LOS
Cuando haga clic o pulse la tecla F7 en el botón Nuevo, se visualiza la CONTROLES
siguiente ventana:
1IH Proyectol - Formi (Código)
Si tu lo deseas, puedes hacer uso de los prefijos que se recomiendan
Huevo jt J 1Click
utilizar en los nombres de los controles de Visual Basic, de tal manera que
Private Sub Nuevo C l i c k () T con su nombre se sepa a qué tipo de control te refieres. Por ejemplo, si en
una caja de textos va a ingresar la dirección de una persona, le puedes
1 t "
Ü I1 Q bU D r Observe el nombre del asignar el nombre de txtdireccion. Esto es opcional, incluso si tu lo deseas
Control puedes crear tus propios prefijos para los nombre de los controles en sus
k u j A
aplicaciones.
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. Control Prefijo
Control Prefijo
Como cada caja de texto tiene un nombre asignado, entonces se tiene que Line lin
Base de datos db
escribir las siguientes instrucciones: fId ListBox 1st
Campo
1 tü P ro ye cto l - Form i (Código] Llnlxl CheckBox chk Menu mnu
ComboBox cbo MsChar ch
1Huevo 1Click t |
Command Button cmd Ole Contaiifeg-; ole
Private Sub Muevo Click () T Command Dialog cdl Option Button opt
Nombre = pic
Data Control dat Picture Box
Fecha =
Dni = DbCombo dbc ProgressBar prg
Domicilio = DbGrid dbg Recordset Ree
Nombre.SetFocus — DbList dbl ScrollBar Horizontal hsb
End Sub Directory ListBox dir Scrollbar Vertical vsb
8 -ill ±J Drive ListBox drv Shape shp
DTPicker dtp SsTab tab
Instrucciones del Botón Salir File ListBox fil Tabla tb
Cuando haga clic o pulse F7 en el botón Salir, se visualiza la siguiente ventana Form frm TextBox txt
donde debe escribir End. Frame fra Timer tmr
Image img UpDown upd
Label lbl

Observe el nombre
del control

P 78 G rupo E d it o r i a l Megabyte G ru po E d it o r ia l Megabyte 79


é S È k VISUAL BASIC como debe ser.. .
ERRORES MAS COMUNES
Si al ejecutar una aplicación se m uestra una ventana de m ensaje
PREGUNTAS DE REPASO N° 02
indicando un error, haga click en el botón aceptar o en el botón Debug
y finalice la aplicación para corregir el error.
1. ¿Cómo se borra un control del formulario?
-« r-v . • _ j |
2. La propiedad Caption sirve para:
j v Compile error: Se espera fin del procedimiento. 3. ¿Con qué propiedad se puede evitar que un control se visualice cuando
Posiblemente, borró End Sub por casualidad al
E xpected E nd Sub se ejecute una aplicación?
escribir las instrucciones del control
4. Para que al ejecutar el formulario ocupe toda la pantalla se usa la
A cepta r jj A yuda propiedad:
5. ¿Cuál es la diferencia entre una etiqueta y una caja de textos?
6. ¿Cuál es el nombre por defecto de un formulario, caja de textos, etiqueta
y botón de comandos?
R un -tim e e rro r '4 24 ‘ :
7. ¿Para qué sirve la propiedad Font?
O b je ct re q u ire d
8. ¿Para qué sirve la propiedad Tooltiptext?
9. ¿Cuál es la diferencia entre la propiedad visible y la propiedad Enabled?
10. ¿Cuántas formas de ejecutar una aplicación conoces?
11. ¿Para qué sirve la propiedad Backcolor?
End J { D e b u g j| Help I 12. ¿Cuántas formas de finalizar una aplicación conoces?
13. ¿Para qué sirve la propiedad Forecolor?
Se req u iere un objeto. 14. Los pasos para desarrollar una aplicación son:
seguramente Ud. se está refiriendo a un control que no existe en el formulario, 15. ¿Cómo se borra un control del formulario?
escribió en forma incorrecta la propiedad del control o a una propiedad le 16. ¿Cómo se puede asignar un color a un botón de comandos?
está asignando un valor incorrecto. 17. ¿Qué utilidad tiene la propiedad Tabindex en las cajas de texto?
18. Para escribir instrucciones dentro de un control se debe:
19. ¿Cuál es el evento por defecto de un formulario, etiqueta, caja de texto
y de un botón de comandos?
20. ¿Cuándo se ejecutan las instrucciones que se encuentran en el evento
Click?

¡CUIDADO!

No pase a los siguientes temas sin responder


¿ G ra b a r los cam bios? SI, NO o C A N C ELA R
Seguramente quiere salir del proyecto actual sin grabarlo. correctamente a esta autoevaluación.

80 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l 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 ; Calcular

Total por Horas Normales 480


Nuevo
Total por Horas Extras 100
l'XA
Sub □ a v e Incorrecta

Descuento

Total a Aceptar Cancelar

Producto

Precio Unitario

Cantidad Comprada Calce1

Subtotal S/. Nuf

ELEMENTOS D e scu e n to S /. | 0
Se

DE LA TOTAL A PAGAR $/. ===>

PROGRAMACION
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 aplicación en Visual Basic está basada en
procedimientos.

Según 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. También se puede ejecutar cuando es invocado desde cualquier
otro procedimiento. Estos tipos de procedimientos se crean automáticamente
cuando comenzamos a escribir instrucciones para un determinado control.

Por ejemplo el siguiente procedimiento llamado Com m and l Click,


se crea automáticamente cuando hacemos doble click o pulsamos la tecla
F7 en el control COMMAND 1 para escribir las instrucciones
VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Las instrucciones que Ud. escriba en este procedim iento llam ado
P R O C E D IM IE N T O S G EN ER A LES
C o m m an d l_ C lic k se ejecutan cuando se haga CLICK en el control
COM MAND1; es decir cuando ocurra el evento Click en el control
Son los procedimientos que se ejecutan sólo cuando se hace una llamada
Commandl.
explícita a dicho procedimiento. Estos tipos de procedimientos no se crean
automáticamente, por eso también reciben el nombre de procedimientos o
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 funciones definidos por el usuario.
un nombre al control, entonces Visual Basic utiliza el nombre que le asigna
a cada control en forma automática. Un procedimiento general puede escribirse como procedimiento SUB o
como función FUNCTION. Un procedimiento conducido por un evento
Así como cada control tiene un nombre que en forma automática le asigna siempre es un procedimiento SUB.
Visual Basic, también tiene un evento predeterminado el cual se visualiza
cuando empezamos a escribir las instrucciones para el control. Por ejemplo, Según el lugar de la aplicación donde los podemos llamar, los procedimientos
el evento predeterminado de los botones de comandos (Command) es el generales pueden ser:
evento CLICK y si queremos escribir instrucciones en otro evento, debemos
elegirlo de la lista de eventos. Otros ejemplos:
1. Procedimientos a nivel de formulario.
Prívate Sub Form_Activate() ^ as instrucciones que se escriban 2. Procedimientos a nivel de módulo.
en este procedimiento se ejecuta
EndSub cuando el formulario es activado
Procedimientos a Nivel de Formulario.
Prívate Sub Form Load() Las instrucciones que se escriban en
este procedimiento se ejecuta cuando el Los procedimientos a nivel de formulario son aquellos que se pueden
EndSub formulario es llamado para que quede activado. llamar o ejecutar sólo desde el formulario en el cual han sido creados.

Prívate Sub Textl_Change() Las instrucciones que se escriban en este Procedimientos a Nivel de Módulo.
procedimiento se ejecuta cuando se modifica
EndSub el contenido del control Textl. Los procedimientos a nivel de módulo son procedimientos públicos; es
decir, se pueden llamar o ejecutar desde cualquier formulario de la aplicación.
Prívate Sub Textl_KeyPress(KeyAscii As Integer)
Sintaxis p a ra un procedim ien to:
EndSub [Prívate | Public] [Static] Sub nombre [(listaDeArgs)J
[instrucciones]
Las instrucciones que Ud. escriba en este procedimiento se ejecutan cuando se [Exit Sub]
presiona alguna tecla (escribe) en el control Textl y en la variable KeyAscii se [instrucciones]
almacena el valor de la tecla pulsada. Por ejemplo si pulsa la tecla ENTER se End Sub
almacena el valor 13, ESC almacena el 27, la letra A el valor 65, etc. Esto quiere
decir que almacena el valor ASCII.

86 G rupo E d it o r i a l Megabyte ^ G rupo E d it o r i a l Megabyte 87 « S i


VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
Un procedimiento tiene las siguientes partes: 1. T IP O
1. FO RM A S DE A C CESO : Es opcional e indica el tipo de dato del argumento que se pasa a la función.
P rívate Indica que se puede tener acceso al procedimiento sólo desde 2. EX PR ESIÓ N
los procedimientos del formulario donde se ha declarado o Es el valor que retorna la función.
creado(Procedimiento a nivel de Formulario).
Public Indica que se puede tener acceso al procedimiento desde Las palabras clave Exit Function producen la salida inmediata de la Función.
La ejecución del programa continúa con la instrucción siguiente a la
todos los procedimientos de cualquier formulario que forma
parte de la aplicación (procedimiento a nivel de módulo). instrucción que ha llamado a la Función.

Statíc Indica que se conservan los valores de las variables locales MUY IMPORTANTE
del procedimiento entre una llamada al procedimiento y otra. * La diferencia principal entre una Función y un Procedimiento es que un
El atributo Static no afecta a las variables declaradas fuera procedimiento nunca devuelve un valor mientras que la función si puede
de Sub, ni siquiera cuando se usa en el procedimiento. devolver un valor y además una función puede usarse en una expresión.
2. N O M B R E : * Al conjunto de procedimientos, funciones, declaraciones de variables
Nombre del procedimiento que se utiliza para poder llamarlo o ejecutarlo. y constantes se le llama M ÓD ULO . Un módulo puede ser:
3. LISTA DE A R G U M EN TO S (LISTAD EARGS):
Módulo de formulario, contiene todos los procedimientos a nivel de
Lista de variables que almacenan los valores que se pasan al procedimiento
formulario los cuales se graban en un archivo con la extensión *.Frm.
cuando es llamado. Cuando se pasan varios valores se utilizan variables
Módulo estándar, contiene todos los procedimientos y declaraciones a
múltiples y se separan con comas. También se llaman parámetros.
nivel de módulo, se graban en un archivo con la extensión *.Bas.
4. IN ST R U C C IO N E S
Cualquier grupo de instrucciones que se va a ejecutar dentro del cueipo PARÁMETROS POR REFERENCIA.
del procedimiento. Permite que el valor de un parámetro pueda cambiarse en el cuerpo
de la función o procedimiento.
Las palabras claves E x it S ub producen la salida inm ediata del
Para pasar un parámetro por Referencia debe estar sin paréntesis.
procedimiento. La ejecución del programa continúa con la instrucción
siguiente a la instrucción que ha llamado al procedimiento. La palabra ByRef (Opcional), indica que el parámetro se pasa por
referencia. ByRef es el modo predeterminado en Visual Basic.
Sintaxis p a ra una F unción:
[Public|Private][Static]Function nombre [(listaDeArgs)][As tipo]
PARÁMETROS POR VALOR.
[instrucciones] Permite que el valor de un parámetro no pueda cambiarse en el cuerpo de
[nombre = expresión] la función o procedimiento. Para pasar un parámetro por Valor debe estar
[Exit Function] entre paréntesis. La palabra By Val (Opcional). Indica que el argumento se
(instrucciones] pasa por valor.
[nombre = expresión] Ejemplo:
End Function Raíz (Num), D if
Además de lo que contiene un procedimiento, una Función tiene las siguientes En la llamada a la función Raíz, el parámetro Num es pasado como por
partes: Valor y el parámetro Dif es pasado por Referencia.
' 88 G rupo E d it o r i a l M e g a b y t e ^ l i l i l í G ru po E d it o r ia l Megabyte 89
^ÉÍÍÍÉÉ^ VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación < ^ ¡ ¡ ¡ ||
Ejemplo: Para crear un procedimiento llamado cambio, escriba la siguiente
CREACIÓN DE PROCEDIMIENTOS A NIVEL DE FORMULARIO instrucción y luego pulse la tecla ENTER.

Existen 2 formas para crear este tipo de procedimientos: SUB CAMBIO


I ra . F orm a.
Active la ventana de código o instrucciones del formulario o de cualquier NOTA:
control haciendo doble click en él o pulsando la tecla F7, luego elija la opción Para crear o activar la ventana de declaración de un formulario, haga doble
Tools (herramientas) de la Barra de Menú y luego ADD PROCEDURE click en cualquier parte libre del formulario o pulse la tecla F7. Luego, de la
(Agregar Procedimiento). Se visualiza la siguiente ventana: lista de objetos elija GENERAL y de la lista de eventos DECLARACIONES.

Agregar procedimiento
m
LLAMAR A PROCEDIMIENTOS
Nombre: j | A cepta r
Para llamar o ejecutar procedimientos sólo se necesita escribir el nombre
Tipo
Cancelar- del procedimiento con los argumentos o parámetros si es necesario y
(* Procedim iento C Propiedad
opcionalmente puede utilizar la instrucción CALL.
Función í~ E vento

La sintaxis para llamar o ejecutar un procedimientos es:


Alcance

(* Público
; [Cali] nombre [listaargumentos]
f~ Todas las varia bles locales son está ticas

La instrucción CALL es opcional, si Ud. la utiliza para llamar o ejecutar


procedimientos que necesitan argumentos o parámetros, estos deben estar
Una vez que Ud. llene los datos de esta ventana con la información entre paréntesis. Por ejemplo la siguiente instrucción llama al procedimiento
correcta del procedimiento que desea crear, haga click en el botón Aceptar IMPRIME utilizando la instrucción CALL y le pasa 2 argumentos.
para que se muestre la plantilla del procedimiento y empezar a escribir las
Cali imprime("Hola",3)
instrucciones que se deben ejecutar cuando el usuario llame al procedimiento.
La siguiente instrucción llama al procedimiento IMPRIME sin utilizar la
instrucción CALL y le pasa 2 argumentos.
2da. F orm a.
Active la ventana de código o instrucciones del formulario o de cualquier Imprime "Hola",3
control haciendo doble click en él o pulsando la tecla F7, luego ubique el
cursor después de cualquier instrucción E N D SU B y escriba la palabra NOTA:
SUB seguida del nombre del procedimiento que desea crear o la palabra Para pasar una matriz completa a un procedimiento, use el nombre de
FUNCTION y el nombre de la función y despues pulse la tecla ENTER. la matriz seguida de paréntesis vacíos.

90 G rupo E d it o r i a l Mega b y te G rupo E d it o r i a l Megabyte 91 m m


o
S VISUAL BASIC como debe s e r.. . CAPÍTULO III: Elementos de la Programación %

CONSTANTES VARIABLES
Una variable es un elemento con un nombre determinado que contiene
Es un elemento con un nombre determinado que mantiene un valor
un valor en forma temporal hasta que la aplicación finalice. El valor puede
constante durante el desarrollo de todo el programa el cual no se puede
variar en cualquier momento de la ejecución de la aplicación. Una variable,
cambiar. La constantes se definen con la instrucción CONST. Por ejemplo: según el lugar de la aplicación donde se desea utilizarla puede ser:
1. V ariables a nivel de procedim iento.
CONST Saludo = ’’Buenos Dias” -Si una variable se declara a nivel de procedimiento, significa que conserva su
valor (se reconoce) sólo dentro del procedimiento donde ha sido declarado.
Define la constante SALUDO que tendrá el texto Buenos Días durante 2. V ariables a nivel de F orm ulario.
la ejecución del programa. Esto quiere decir que si se desea utilizar el texto Si una variable se declara a nivel de formulario, significa que conserva su
puede utilizar sólo la constante Saludo. Así, la siguiente instrucción muestra valor (se reconoce) en cualquier procedimiento del formulario donde ha
el texto Buenos Días en el control Label 1:
sido declarada.
3. V ariables a nivel de M ódulo.
Label 1 = Saludo
Si una variable se declara a nivel de módulo, significa que conserva su
valor (se reconoce) en cualquier procedimiento de cualquier formulario
La siguiente instrucciones define la constante IGV con el valor 18. de la aplicación.
La sintaxis básica para declarar una variable es:
Const IGV = 18 Am bito Nom bre As Tipo
1) A M B IT O :
Si durante el desarrollo del programa escribimos por ejemplo IGV = 16 para El ámbito indica en qué lugar de la aplicación desea utilizar la variable y
cambiar de valor a la constante IGV, se visualiza un mensaje de error. puede ser una de las siguientes palabras claves: Dim, Static, Prívate o Public.
Dim : Se puede utilizar a nivel de procedimiento y a nivel de formulario.
M icro so ft V is u a l B asic n Si se declara una variable a nivel de procedimiento con la palabra
DIM, Visual Basic reinicializa (borra su contenido) la variable
Error de compilación: cada vez que ejecuta el procedimiento.
Static : Se utiliza sólo a nivel de procedimiento. Cuando una variable se
Asignación a la constante no permitida
declara con la palabra STATIC, Visual Basic no reinicializa la
variable cada vez que se ejecuta el procedimiento, sólo lo hace la
Aceptar Ayuda primera vez. Esto quiere decir que la variable conserva su valor
entre una llamada al procedimiento y otra.
Prívate: Se utiliza sólo a nivel de módulo e indica que la variable es privada;
NOTA: es decir, sólo va a ser reconocida dentro del módulo donde ha
La definición de constantes puede empezar con las palabras Public o Private. sido declara.
Para que sean públicas o privadas. Por defecto son Privada. Public : Se utiliza sólo a nivel de módulo e indica que la variable es publica;
es decir, va a ser reconocida en toda la aplicación.

92 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 93 ^ j |¡ J ||


é S B ts VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
Una variable definida de tipo Integer, acepta números enteros comprendidos
2) N O M B R E :
entre -32768 hasta 32767. Una variable definida de tipo Single, Double y
Es el nombre que utilizamos para referirnos a la variable en la aplicación.
Currency acepta números sin decimales y con decimales.
El nombre de una variable tiene que comenzar con una letra y puede
MUY IMPORTANTE:
tener como máximo 255 caracteres. Los caracteres pueden ser letras,
Si a una variable la declaramos de un tipo determinado y le asignamos un
dígitos, el carácter subrayado y los caracteres de declaración del tipo de
valor incorrecto se visualiza un error.
la variable (% ,& ,!,#,@ y $). El nombre de una variable no puede ser una
palabra reservada porque tienen un significado especial para Visual Basic. Ejemplo N°l:
3) T IP O : Dim A as Integer
Es opcional y determina qué clase de valores puede almacenar una variable. A = 50000
Si no indica el tipo no utilice la palabra AS, en este caso la variable se Se define la variable A de tipo Integer cuyo valor máximo debe ser 32767,
considera de tipo Variant. pero le asignamos el valor 50000. En este caso se visualiza un error de
overflow (desbordamiento):
TIPOS DE V A RIABLES
TIPO DESCRIPCIÓN CARÁCTER RANGO E r r o r '6 ' e n tie m p o d e e je c u c ió n :

Byte I Byte 0a255 D e s b o r d a m ie n to


Boolean Lógico T rue o False
(2 Bytes)
Integer Entero % -32768 a 32767
(2 bytes)
Long Entero Largo & -2147483648 a 2147483647 j T e r m in a r j 1 D e p u ra r j| Ayuda |
(4 bytes)
Single Real Simple i -3.40E+38 a 3.40E+38
Precisión (4 bytes.) E jem plo N° 2:
Double Real Doble # -1.79D+308 a 1.79D+308 Dim A as Integer
Precisión (8 bytes) A = "Juan"
Currency Número con Punto @ -9.22E+14 a 9.22E+14 Se define la variable A de tipo Integer cuyo valor máximo debe ser 32767,
Decimal Fijo (8 bytes) pero le asignamos un valor tipo Texto. En este caso se visualiza un error de
String Cadena de Caracteres $ 0 a 65500 car. Type Mismatch (tipo):
(4 b.+ l b./car. hasta 64K.)
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 E r r o r '1 3 ' e n tie m p o d e e je c u c ió n :

declaran explícitamente de algún tipo. El tipo de datos Variant no tiene carácter N o c o in c id e n lo s tip o s
de declaración de tipo.
Los tipos de datos Byte, Integer, Long, Single, Double y Currency indican
que una variable va a almacenar sólo números, pero cada uno de estos tipos
tiene sus características. Por ejemplo:
Una variable definida de tipo Byte acepta números enteros (sin decimales), D e p u ra r Ayuda

pero sólo entre 0 y 255.

94 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 95


é S K S k VISUAL BASIC como debe ser.. . <§§ CAPÍTULO III: Elementos de la Programación
¿CÓMODECLARAR VARIABLES ANIVELDEPROCEDIMIENTO? A PL IC A C IÓ N D ESA R RO LLA D A N° 06
Las variables a nivel de procedim iento se declaran dentro de cada Esta aplicación muestra la diferencia entre una variable declarada con DIM
procedimiento que Ud., crea en su aplicación. Su utilización más común es y STATIC dentro de un procedimiento.
intervenir en cálculos intermedios. Por ejemplo:
PASO N° 01: Dibujar los controles.
Prívate Sub CommandI_Click() o Ci ■ - lo l *l
Dim NOM As String * 30
Dim E As Integer
Static C As Integer
In cre m e n ta ia va ria b le À y B
Otras instrucciones

End Sub
PASO N° 02: Asignar las propiedades.
C3 51 - _ la l x |
¿CÓMO DECLARAR VARIABLES ANIVEL DE FORMULARIO?
L a b e ll Label2
Debe activar la ventana de declaración de variables. Para ello se debe hacer
doble click en cualquier control o pulsar la tecla <F7>, lueg'o de la lista de Labei3 Label4

controles elegir GENERAL y de la lista de eventos elegir DECLARACIONES.


Com m andl )|
Se puede visualizar ¡! -

t
i 1"m P ro je c t-! * Ft»m 1 (C od e) -J C lx jl
CONTROL
E T IQ U E T A S (L A B E L )
C A P T IO N A U T O S IZ E BO R D ER STY L E
|(General) j(Declarations) I(General) Vj |(Declarations) jrj j
Labe11 Valor de A True 0 - None
; [O p tio n E x p l i c i t ¿ : 0 - None
Label2 Valor de B True
Label3 En Blanco False 1 - Fixed Single
Label4 En Blanco False 1 - Fixed Single
BO TO N ES DE COMANDOS
iS
ë
j
j rJds jJ J
± iT CONTROL CAPTION
Coinmandl Incrementa la variable A y B
Si la ventana tiene la instrucción OPTION EXPLICIT, significa que se generará
un error por cada variable que utilice y no declare: V ariable not Defined Caption del Formulario: Diferencia entre Dim y Static.
(Variable no definida). PASO N° 03: Escribir las instrucciones.
Si Ud., desea puede borrar la instrucción Option Explicit y también si esta * Sólo se programa en el commandl. Observará que al hacer click en
ventana no la tiene, la puede escribir. este botón la variable A no se incrementa porque está declarada
con DIM, que perm ite reinicializar una variable cada vez que ,v<
¿CÓMO DECLARAR VARIABLES A NIVEL MÓDULO? ejecuta un procedim iento. En el ejem plo, el procedim iento es:
De la opción Proyecto de la barra de menú elija la opción Adicionar Módulo. COMMAND 1_CLICK().
Private Sub Commandl_Click()
^ P ro y e c lo l - M odule! (C ódigo) H liiE [| Dim A Ai Integer
Este tipo de variables normal­ Static B Ai Integer
|(G eneral) jrJ j(D eclaraciones)
mente se utilizan cuando nuestra A = A + /

1 ^ aplicación tiene varios for­ B =B +1


mularios. Labe!3 = A
Label4 = B
5 _1_U
E nd Sub

í j j |¡ |l § ^ 96 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 97
 VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
EJEMPLO DEUNA VARIABLEANIVELDEPROCEDIMIENTO
« .V A R I A B L E S A N IV E L D E P R O C E D IM IE N T O □ S E OPERADORES ARITMETICOS:
Suma \ División Entera
Resta MOD Resto de una División
P R O CEDIM IENTO " A " PROCEDIM IENTO "B "
Multiplicación A Exponenciación
División 0 Orden de Operación

Dibuje una etiqueta y dos botones de comandos y asígneles su propiedad


Ejemplos:
Caption como se muestra en la aplicación. OPERACION RESULTADO
INSTRU CCION DEL COMMAND1 INSTRU CCIONES DEL COMMAND2 5+13 18
Prívate Sub Commandl_Click() Prívate Sub Command2_Click() 8 0 -4 76
Dim N As Integer Labell = N 42
7 *6
N =5 End Sub 13/2 6.5
Labell = N
N = 10 13 \ 2 6
End Sub 13 MOD 2 1
4 A3 64
Al hacer click en el Commandl (Procedimiento "A"), se visualiza el valor 5, 12+14/2 19
y luego la variable N toma el valor 10, pero al hacer click en el Command2 13
(12 +14)/2
(Procedimiento "B") se visualiza el error "VARIABLE NO DEFINIDA" o
no se muestra nada. Esto depende si existe o no la instrucción Option Explicit.
Como puede observar, el valor de la variable N no es reconocida en el ORDEN DE EJECUCIÓN DE LOS OPERADORES (Prioridad)
segundo procedimiento (Command2) porque fue declarada dentro del Cuando hay varios operadores en una misma expresión se resuelven en un
procedimiento commandl (Nivel de Procedimiento).
orden predeterminado según la prioridad de los operadores. Así:
EJEMPLO DE UNAVARIABLEANIVELDE FORMULARIO. 1. Exponenciación (A)
Para que la variable N sea reconocida en ambos procedimientos, debe de 2. Negación (-)
declararla a Nivel de F orm ulario. 3. Multiplicación y división (*, /)
1 m P ro y e c to l - F orm i (C ódigo) . n lx l 4. División de enteros (\)
5. Resto de una División (Mod)
|(General) j(Declaraciones) -*■
]
6. Suma y Resta (+, -)
D im N As In te g e r ~H
NOTA:
J j
ü j U Si los operadores de una expresión tienen la misma prioridad se ejecutan de izquierda
Las instrucciones de los botones de comandos serán: a derecha.
Los paréntesis cambian el orden de operación porque toda expresión que tenga
Prívate Sub Command] _Clíck() Prívate Sub Command2_Clíck( ) paréntesis se ejecuta primero y si existen varios paréntesis primero se ejecutan los
N =5 Labell = N
Labell = N paréntesis más internos. Por ejemplo, si las notas de un alumno son 12 y 14, la
End Sub
N = 10 siguiente expresión: 12 + 14/2 dará como promedio 19 y la expresión (12 + 14) / 2
End Sub dará como promedio 13.
KA 98
G rupo E d it o r i a l Megabyte-^ G rupo E d it o r i a l Megabyte 99
^ CAPÍTULO III: Elementos de la Programación
éÊ Ê È k' VISUAL BASIC como debe ser...
APLICACIÓN DESARROLLADA N° 07
COMENTARIOS 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
Los comentarios son textos que se pueden utilizar para documentar nuestra el botón Calcular se debe calcular y mostrar el total por las horas normales,
aplicación perm itiendo de esta m anera ir explicando cóm o estam os el total por las horas extras, el sub total, un descuento del 10% del sub total
desarrollando la aplicación y cómo funciona. Este texto explicativo y y el total que se le debe pagar.
aclaratorio es ignorado por la computadora cuando nuestra aplicación se
1üi_ PAGOS
ejecuta.
Nombre del Ttabajadoi David Infante
Los comentarios se pueden colocar dentro de un programa utilizando la Horas T rabajadas Normales 48

instrucción REM o el Apostrofe ( ‘). Horas Extras 5


Pago por Hora Normal 10
La instrucción REM normalmente se utiliza al inicio de una línea y en forma
Pago por Hora Extra 20 Calculai
independiente. Por ejemplo:

GO
Total por Horas Normales

O
Nuevo
Rem Se limpian las cajas de texto.
Total por Horas Extras I I 00
Textl=""
Text2 = "" Sub Total |580 Salir

Text3 = "" Descuento (10%) |58

T otal a Pagar j522


Si queremos colocar el comentario en la misma línea de instrucción, se debe
separar con dos punto (:). Ejemplo:
PASO N° 1: D ib u jar los controles.
Textl = "" : Rem Limpia la caja de textos Form! I- I□ I *1
L a b e ll ¡T e x tl
El apostrofe se puede utilizar al inicio de una línea en forma independiente o
L a b e l2 ( i e xt2
al final de una línea de instrucción. Por ejemplo:
L a b e l3 |T e x t3
1. Com m andl
L a b e l4 |T ext4
‘El valor de A se incrementa en 1
L a b e l5 |T ext5
A=A+ 1 C om m a n d 2
LabeIS L a b e ll 1

2 . L a b e l7 L a b e ll 2 C om m a n d 3

A = A + 1 ‘El valor de A se incrementa en 1 LabeIS L a b e ll 3

LabeIS L a b e ll 4
NOTA:
L a b e ll 0 L a b e ll 5
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 d it o r i a l Megabyte G ru po E d it o r ia l Megabyte


101 Wm
CAPÍTULO III: Elementos de la Programación ^¡¡
^Ü ÍÉÉÉ> VISUAL BASIC como debe s e r ...
IN ST R U C C IO N E S D EL BO TÓ N C A LC U LA R .
PASO N° 2: A signar las propiedades a los controles.
Para escribir las instrucciones del botón CALCULAR, debe hacer doble
Asigne la propiedad Caption al formulario, a los botones de comandos y a la click o pulsar la tecla F7 en dicho botón. Si se encuentra dentro de la ventana
etiqueta número 1 hasta la etiqueta número 10 como se muestra en la de código seleccione de la lista de controles el control COMMAND1 y de
aplicación a desarrollar. la lista de eventos el evento Click. Se visualizará la siguiente ventana:
A las cajas de texto y las etiquetas desde la número 11 hasta la número 15
no les borre su contenido por se van a limpiar al ejecutar la aplicación. ^ ó íx ]
H Práyeclol - Foiml (Código)
PASO N° 3: E sc rib ir las instrucciones p a ra los controles. C om m andl — Click -
Para que al ejecutar la aplicación se limpie el contenido de las cajas de texto Option Explicit _____ at.
y de las etiquetas N° 11 hasta la N° 15 y además se ubique el cursor en la Private Sub Coimiandl_Clicli: ()
----
caja de textos N° 1 para empezar a ingresar los datos, se debe programar en I
I
el evento ACTIVATE del formulario. Para ello ingrese a la ventana de código End Sub ....... »I
o instrucciones haciendo doble click en el formulario o pulse la tecla F7 y de i
m <l I JÜ
la lista de controles seleccione el control FORM y de la lista de eventos
seleccione el evento ACTIVATE. Se visualizará la siguiente ventana:
MUY IMPORTANTE:
| m Proyectol - Formi (Código) Si al ingresar a la ventana de código visualiza la instrucciones O ption
Explicit, significa que debe definir todas las variable que va a utilizar. Si
|Form jftctiuate jrj
Ud., no desea definir las variables puede borrar la instrucción Option Explicit.
Private S u b Form Activate () Sj| Las instrucciones del botón CALCULAR (Com m andl) son:
End S ub Prívate Sub Commandl_Click()
Dim HNT, HET, PHN, PHE, THN, THE, ST, DES, TP As Single
Const DESCUENTO = 10
S_ÜJ HNT = Val(Text2) ‘Horas Normales Trabajadas
HET = Val(Text3) ‘Horas Extras Trabajadas
Las instrucciones que debe escribir en esta ventana son: PHN = Val(Text4) ‘Pago por Hora Normal
Prívate Sub Form_Activate() PHE = Val(Text5) ‘Pago por Hora Extra
Textl = "" THN = HNT * PHN ‘Total por Horas Normales
Text2 = "" THE = HET * PHE ‘Total por Horas Extras
Textl = "" ST = THN + THE ‘Sub Tota!
Text4 = "" DES = S T * DESCUENTO /1 0 0 ‘Descuento
TextS = "" TP = ST - DES ‘Total a Pagar
L abelll = Labelll = THN
Labell2 = "" Labell2 = THE
Labell3 = "" Labell3 = ST
Labell4 = "" Labell4 = DES
Labell5 = "" LabellS = TP
Textl. SetFocus E nd Sub
E nd Sub

Ü > IÜ Ü ^ G r u p o E d i t o r i a l Megabyte 103


102 G rupo E d it o r i a l Megabyte <^ ¡g¡¡
#• VISUAL BASIC como debe ser...
NOTA: MUY IMPORTANTE:
En esta aplicación se utiliza la función VAL, que permite convertir un
Se puede desarrollar la aplicación de tal manera que los resultados se
valor tipo carácter a un valor tipo numérico. Para realizar operacio­
nes aritméticas con datos almacenados en cajas de texto o etiquetas, visualicen al ingresar los datos sin necesidad de hacer click en el botón
se recomienda usar la función VAL para convertirlos a numéricos. CA LCU LA R . Para ello debe llam ar a las instrucciones del botón
CALCULAR (procedimiento Command2_Click) desde el evento CHANGE
OTRA FORMA DE PROGRAMAREN EL BOTÓN CALCULAR de cada una de las cajas de textos.
En el ejemplo anterior se definen y usan variables y constantes para obtener
los resultados deseados, pero también se pueden obtener los resultados sin rm Provecto! - Form! [Código)
n|x|
utilizarlas.Por eso dentro del botón CALCULAR (Com m andl) también se
puede programar lo siguiente: Tenti J IChange T
.................................... ........zq
Prívate Sub Commandl_Click()
Labelll = VaI(Text2) * Val(Text4)
Private S u b Textl_Change()
Labell2 = Val(Text3) * Val(Text5) Commandl_C 1ickj
Labell3 = Val(Labelll) + Val(Labell2) End S ub
Labell4 = Val(Labell3) * 1 0 /1 0 0
LabelI5 = Val(Labell3) - Val(Labell4) Private S u b Text2_Change()
End Sub Command1_C1ick
End S u b
INSTRUCCIONES DEL BOTÓN NUEVO.
Cada vez que haga click en el botón NUEVO, se deben limpiar los datos Private S u b Text3_Change()
ingresados y los resultados y ubicar el cursor en textl para ingresar los Command1_Click
datos de un nuevo trabajador. End S u b
Como las instrucciones que realizan este proceso se encuentran en el
procedimiento Form_Activate ya no es necesario volverlas a escribir en el Private S u b Text4_Change()
botón NUEVO, sólo debe llamar al procedimiento desde este botón. Command1_C1ick
La instrucción que debe escribir en el botón NUEVO es: End S u b

Form Actívate Private S ub Text5_Change()


Command1_Click
End S ub
| t í Proyectol - Formi (Código) |_|n|x|
|com m and2 jrJ | Click

P r i v a t e S u b Command2 C l i c k () De esta manera ya no necesita el botón CALCULAR porque los resultados


F o rm A c t i v a t e
se visualizan cuando se ingresa o modifica cualquier dato. Ud., puede borrar
(End S u b —1
el botón CALCULAR porque las instrucciones que contiene permanecen

jf1 en el formulario cuando el botón se borra.


lililí

¿ m m
Megabyte 105
G rupo E d it o r i a l M egabyte^ G rupo E d it o r i a l
--- ----------------------------- ^ ^
VISUAL BASIC como debe s e r.. . CAPITULO III: Elementos de la Programación
En la condición se pueden utilizar los OPERADORES DE RELACIÓN Y
IF - THEN - ELSE LÓGICOS:
Permite ejecutar una o más instrucciones dependiendo de la respuesta = Igual o Diferente
(verdad o Falso) de una condición dada. > Mayor Que AND Y Lógico
< Menor Que OR O Lógico
Su sintaxis es: >= Mayor o Igual NOT Negación
<= Menor o Igual Like Comparar Cadenas
1.- If condición Then
Instrucción(es) Por ejemplo:
(Se ejecutan cuando es Verdad)
Else Se desea mostrar en la etiqueta N° 1 (Labell) el mensaje APROBADO O
Instrucción(es) DESAPROBADO, dependiendo de su promedio almacenado en la variable PROM.
(Se ejecutan cuando es Falso) La instrucción será:
Endlf
If Prom >= 10.5 Then
2.- If condición Then
Label 1 = “APROBADO"
Instrucción(es)
Else
(Se ejecutan cuando es Verdad)
Endlf Labell = “DESAPROBADO”
End If

3.- If condición Then La instrucciones anterior también se puede desarrollar de la siguiente manera:
Instrucción(es)
(Se ejecutan cuando es Verdad) If Prom>= 10.5 Then Label 1=“APROBADO” Else Label 1=“DESAPROBADO”
Elself condición then
Instrucción(es) La instrucción If se debe utilizar con Else normalmente cuando sólo existen
(Se ejecutan cuando es Verdad)
Else dos alternativas como por ejemplo para saber si un alumno está aprobado o
Instrucción(es) no, para saber si una persona es mayor de edad o no.
(Se ejecutan cuando es Falso)
End If Cuando existe sólo una o a partir de tres alternativas es mejor utilizar una
instrucción If sin Else para cada alternativa.
4.- If condición Then Instrucción else Instrucción

Esta ultima sintaxis se pude utilizar normalmente cuando en cada caso de va Por ejemplo:
a ejecutar sólo una instrucción, si son dos o más instrucciones se deben Se ha ingresado en Text3 el turno de un trabajador y de acuerdo al turno se
separar por dos puntos, pero es recomendable utilizar la lera, o 2da. sintaxis le da un pago que debe visualizarse en Labeló.
en estos casos.
Mañana (M) ==> 300, Tarde (T) ==> 500 y Noche (N) ==> 700

106 G E
ru po d it o r ia l
G rupo E d it o r i a l Megabyte 107 <lf¡§¡íj§|^
VISUAL BASIC como debe se r... CAPITULO III: Elementos de la Programación
Las instrucciones serían:
MSGBOX
Dim PAGO As Integer
I f Text3 = "M" Then M uestra una ventana de m ensaje en el centro de la pantalla. Tiene
PAGO = 300 dos sintaxis:
End I f
I f Text3 = "T" Then
PAGO = 500 1.- Cuando no se espera la respuesta del usuario:
End I f Msgbox “Mensaje”,Valor,’’Título”
I f Text3 = "N" Then
PAGO = 700 2.- Cuando se espera la respuesta del usuario:
End I f
Varíable^Msgbox (“Mensaje”,Valor,’’Título”)
Label6 = PAGO

Tam bién se puede d e sa rro lla r de la siguiente m anera: Variable: Almacena un valor tipo entero de acuerdo a la respuesta del usuario.
Mensaje: Es el mensaje que se desea mostrar.
Dim PAGO As Integer Valor : Indica qué botones van a acompañar al mensaje.
I f Text3 = "M" Then PAGO = 300
Título : Es el título que desea que tenga la ventana.
I f Text3 = "T" Then PAGO = 500
I f Text3 = "N" Then PAGO = 700 Valor C onstante Botón que se visualiza
Labeló = PAGO 0 vbOKOnly Ok (Aceptar)

1 vbOKCancel Ok y Cancelar
La sintaxis N” 03 (con Elself) también se puede utilizar en estos casos:
2 vbAbortRetrylgnore Anular,Reintentar e Ignorar
Dim PAGO As Integer
3 vbYesNoCancel Sí, No y Cancelar
I f Text3 = "M" Then
PAGO = 300 4 vbYesNo Sí y No
E lself Text3 = "T" Then vbRetryCancel Reintentar y Cancelar
5
PAGO = 500
E lself Text3 = "N" Then 16 vbCritical Icono de Error Crítico
PAGO = 700 32 vbQuestion Icono de Inten-ogación
End I f
48 vbExclamation Icono de Exclamación
Labeló = PAGO
64 vbínformation Icono de Información

0 vbDefaultButtonl Primer botón por defecto

256 vbDefaultButton2 Segundo botón por defecto

512 vbDefaultButton3 Tercer botón por defecto

108 G rupo E d it o r i a l Megabyte^ G ru po E d it o r ia l Megabyte 109


O
VISUAL BASIC corno debe s er.. . CAPÍTULO III: Elementos de la Programación ^ ¡¡Í^ ||P
ICONOS QUE SE PUEDEN MOSTRAR E jem plo:
1.
Dim R as Integer
16
O Icono de Error Crítico R=M sgbox(“Está seguro de salir”,3 6 ,”CUIDADO")

Muestra la siguiente ventana:

V Icono de Interrogación 32
1

Icono de Exclamación 48 Está seguro de salir

Sí No

Icono de Información 64
Si el usuario hace un click en el botón SI, la variable R toma el
valor 6 y si hace un click en el botón NO la variable R toma el valor 7.
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 2.
y el icono de interrogación el valor será: 4 + 32 o simplemente 36. Dim T as Integer
También se puede usar las constantes en lugar de los valores. T -M sgB ox("C lave Incorrecta",1 + 16, "Acceso D enegado")
Si queremos que el mensaje ocupe varias líneas, se debe usar Chr(13)
al fin a l de cada línea. Muestra la siguiente ventana:

ü l
Valores que reto rn a:

Valor
1
C o n sta n te
vbOK
R espuesta del U su í
OK (Aceptar)
O Clave Incorrecta

2 vbCancel Aceptar ; Cancelar


Cancelar
3 vbAbort Anular
4 vbRetry Reintentar Si el usuario hace un click en el botón ACEPTAR, la variable T
5 vblgnore Ignorar toma el valor 1 y si hace un click en el botón CANCELAR la variable T
6 vbYes Si toma el valor 2.
7 vbNo No

G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 111


O B E Sb VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
APLICACIÓN DESARROLLADA N° 08 Para desarrollar la característica N ° 01 se debe:

D e sa rro lla r nuevam ente la siguiente aplicación (N ° 04) A) El c o m m a n d l (N u evo alum no) debe tener en la propiedad Enabled
el v a lo r False.
B) Se debe program ar en el evento Change de T e x t l:

I f Trim(text 1)=’” ’ Then


Command 1,enabled=False
E lse
Commandl.enabled= True
E n d lf
NOTA:
1. C o m o p u e d e observar, p a ra re ferirse a la p r o p ie d a d de un control
den tro de un p ro g ra m a se d eb e re sp eta r la sig u ie n te sin taxis:
Nombre del Control.Propiedad = Valor
2. La fu n c ió n Trim q u ita los espacios en b lanco que se en cuentran a la
d erech a d e u n a ca ja d e te xto s o d e un a cadena.
3. I f T r im (te x tl) = ” ” T hen.- P reg u n ta r si una caja de texto s está v a ­
cía (entre las co m illa s no d eb e h a b e r esp a cio s en blanco). Si la
caja d e texto s está vacía el b o tón N u e vo A lu m n o se d e sa ctiv a y
en ca so c o n tra rio (si hay a lg o escrito ) se activa.

Para desarrollar la característica N °02 de esta aplicación se debe:


C on las siguientes características:

A ) Program ar en el evento Keypress de cada una de las cajas de texto.


1. A l e je cu ta r la a p lic a c ió n el b o tó n Nuevo Alum no debe estar Por ejem plo haga doble C lic k en T e x tl y de la lista de eventos e lija el
desactivado. S ólo se debe a ctiva r cuando com ience a ingresar el evento Keypress. V isualizará:
nom bre del alum no.
Prívate Sub Iext 1 KeyPress(KeyAscii As Integer)
2. Cuando el usuario ingrese un cam po y pulse E N T E R , el cursor
debe pasar autom áticam ente al siguiente campo. End Sub
3. A l hacer un c lic k en el botón fin a liz a r se debe m ostrar un mensaje
de advertencia. Las instrucciones de este botón se deben ejecutar Entonces se debe pro gram a r lo siguiente:

tam bién cuando el usuario pulse < E S C > .


Prívate Sub T extl_K eyP ress(K eyA scii A s Integer)
Ifk e y a sc ii = 13 then
P a r a d e s a r r o lla r la a p lic a c ió n d e b e d ib u ja r to d o s lo s c o n tr o le s y Text2.set focus
a sig n a rle s las m ism a s p ro p ie d a d e s d e la a p lic a c ió n N u 02, p e ro a d em á s: End If
E nd Sub

G ru po E d it o r ia l Megabyte 113
CAPÍTULO III: Elementos de la Programación

L a v a ria b le KeyAscii alm acena el v a lo r de la tecla que se ha pulsado.


NOTA:
S i a l e je c u ta r la a p lic a c ió n se v is u a liz a u n e r r o r in d ic a n d o q u e la
E je m p lo : E N T E R = 13, ESC = 27, etc.
variable R no está definida, sig n ifica que ex iste la instrucción O PTIO N
Si el usuario ha pulsado la tecla E N T E R (1 3 ) el cursor pasa en fo rm a
E X P L IC IT en la v e n ta n a d e d e c la ra c ió n d e va ria b les, e n to n c e s debe
autom ática a la segunda caja de Texto.
b o r r a r e sta in s tr u c c ió n o d e c la r a r la v a r ia b le R d e tip o I n te g e r a l
En las siguientes cajas de texto tam bién se tiene que program ar casi lo
mismo:
in icio d e las in stru ccio n es: Dim R as Integer

Prívate Sub Text2_KeyPress( KeyAscii As Integer) L a program ación del evento C lic k del C om m and 1 (N uevo A lu m n o s ) es:
Ifkeyascii = 13 then Prívate Sub C om m andl_Click()
Text3.setfocus Textl =
End If Text2 =
End Sub
Text3 =
Prívate Sub Text3_KeyPress(KeyAscii As Integer) Text4 = “ ”
Ifkeyascii = 13 then Text5 =
Text4.setfocus Textl. SetFocus
End I f Com mandl .Enabled = False
End Sub
End Sub
Prívate Sub Text4_KeyPress(KeyAscii As Integer)
Ifkeyascii = 13 then A P L IC A C IÓ N PRO PUESTA N2 07:
Text5.setfocus D esarrolle la siguiente a plica ció n de la m e jo r manera posible.
End I f
E nd Sub
«. D atos del A lum no
Prívate Sub Text5_KeyPress(KeyAscii As Integer)
Ifkeyascii = 1 3 then
Alumno
Commandl.setfocus
E n d lf Especialidad
Otro Alumno
End Sub
Ciclo
C uando el usuario te rm ine de ingresar los datos (pulse E N T E R en Text5), el Salir
cursor se ubica en el b otón N ue vo A lu m n o . Turno

Aula
Para desa rrollar la característica N ° 03 de esta a plica ció n se debe p rogram ar
en el evento C lic k del C om m and2 (F in a liz a r) lo siguiente:
IChiclayo, 1G de Agosto de 1998
Prívate Sub Command2_Click()
R = MsgBox( “ESTÁ SEGURO DE SALIR ” , 36, “CUIDADO ” )
IfR = 6 Then IMPORTANTE:
End
Ud. ta m b ié n d e b e f o r m u la r s e n u e v a s a p lic a c io n e s o in te r c a m b ia r
E nd I f
End Sub a p lic a c io n e s p ro p u e sta s en tre su s c o m p a ñ ero s y d esa rro lla rla s con la
fin a lid a d d e fo r ta le c e r su s c o n o cim ien to s.

¿m m . 114 115
G ru po E d it o r ia l M eg a b y te^ G ru po E d it o r ia l Megabyte
O
CAPÍTULO III: Elementos de la Programación
CONSISTENCIA DE DATOS PASO N° 2 ESCRIBIR LAS INSTRUCCIONES
P rim ero debe de e scrib ir las siguientes funciones:
La consistencia de datos consiste en co n tro la r que el usuario ingreso sólo
los datos correctos que necesita el program a, por ejem plo, si se trata de Función M ayuscula
ingresar la nota de un alum no se debe c o n tro la r que sólo se ingrese un Que in d ic a si la letra ingresada está en m ayúscula.
n úm ero entre 0 y 20. La sig u ie n te a p lic a c ió n m uestra un e je m p lo de
consistencia de datos. Función M inuscula
Que in d ica si la letra ingresada está en m inúscula.
APLICACIÓN DESARROLLADA N° 09
Función Num ero
E l siguiente program a perm ite ingresar los apellidos y nom bre, fecha de
ingreso, turno y p rom edio de un alum no. Este program a debe tener las In dica si se ha ingresado un núm ero.
siguientes características: Función Especial
1. El p rim e r carácter de cada n om bre o a p e llid o debe c o n ve rtirse en In d ica si a ingresado una vocal con tild e , la letra ñ o Ñ o pulsó E N T E R , la
m ayúscula y el resto en m inúsculas.
Barra Espaciadora o de Retroceso (BackSpace).
2. Se debe v e rific a r que la fecha ingresada este correcta.
3. En el turno sólo se debe aceptar las letras M , T y N. Las funciones reciben en la variable V el v a lo r de la tecla que el usuario a
4. E l p rom edio debe ser un núm ero entre 0 y 20. pulsado desde la variab le K E Y A S C II del p ro ced im ien to KeyPress de la
5. Los botones N uevo y S a lir deben perm anecer desactivados hasta que Cajas de Textos y devuelven un va lo r verdadero (T R U E ) o falso (F A LS E ).
se ingresen todos los datos correctos.

L o valores con sus respectivos caracteres son:


1 IN G R E S O D E D A T O S B H æ M - I n lx l

1 A = 65 a = 97 á = 255 0 = 48
.apellidos y N om bres ¡¡
B = 66 b = 98 é = 233 1 =49
F e c h a de Ingreso ----- C = 67 c = 99 f = 237 2 = 50
ó = 243
Turno [M -T -N ] |‘ .... N uevo ú = 250
ñ = 241
Prom edio [U a 20] S_alir
Z = 90Z z = 122 Ñ = 209 9 = 57

La tecla E N T E R tiene el v a lo r 13.


PASO N° 1 D IB U JA R LOS CO N TRO LES La tecla de Retroceso (B A C K S P A C E ) tiene el va lo r 8 .
La tecla de Escape (ESC ) tiene el va lo r 27.
I ¡ü» F o rm i ■ ■ ■ ■ ■ - Ini L a B arra Espaciadora tiene el v a lo r 32.
L a b e ll |Text1 F unction M ayuscula(v) F unction M inuscula(v)
Label2
— l f (v> —65 A n d v< = 90) Then V (v> = 97 A n d v < ~ 1 2 2 )
|T e xt2
M ayuscula = True Tlien
LabeIS C om m andl p¡se ' M inuscula = True
1Text3
M ayuscula = False Else
LabeW j T ext4 Command2 £nc¡¡f Minuscula = False
E nd Function E nd If
E nd Function

116 G r u po E d it o r ia l G ru po E d it o r ia l Megabyte 117 « X


^ Íliy¡|> VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Function numero(v) Instrucciones del Procedim iento T e x tl_ K e y p re s s : V erifican que los apellidos
I fv < 48 Or v > 57 Then y nom bres se ingresen correctam ente y que se co nvierte la p rim e ra letra a
numero = False m ayúscula y el resto a m inúscula.
Else
numero = True Private Sub Textl_KeyPress(KeyAscii As Integer)
End I f Static anteriorespacio As Boolean
End Function ¡f KeyAscii = 13 Then
Text2.SetFocus
Function Especial(v) End I f
I f v - 13 Or v -3 2 Or v=8 Or v=225 Or v=233 Or v=237 Or v=243 Or I f KeyAscii = 32 Then
v=250 Or v=241 Or v = 209 Then anteriorespacio = True
Especial = True Else
Else I f May usculaf KeyAscii) O r Minuscula( KeyAscii) Or
Especial - False Especial(KeyAscii) Then
End I f IfTrim (Textl) = "" Or anteriorespacio Then
End Function Rem Convierte a Mayuscula.
KeyAscii = Asc(UCase(Chr( KeyAscii)))
Instrucciones de la Función INGRESADO: Verifican si todos los datos han sido Else
Rem Convierte a Minuscula
ingresados correctamente para poder activar o no los botones Nuevo y Salir. KeyAscii = Asc(LCase(Chr( KeyAscii)))
End I f
Function ingresados() anteriorespacio = False
IfT rim (T extl) <> ""A n d lsDate(Text2) A nd Trim(Text3) <> "" Else
A nd Trim(Text4) o "" Then MsgBox "Debe ingresar sólo letras", 16, "Cuidado"
Command 1.Enabled = True KeyAscii = 0 ‘Ignora el carácter digitado
Command2. Enabled = True Commandl .Enabled = False
Else Command2. Enabled = False
Command ¡.Enabled = False End I f
Command2. Enabled = False End I f
E nd ¡f End Sub
End Function
Instrucciones del P rocedim iento T ext2_LosF ocus: V e rifica n que la fecha
Instrucciones del P rocedim iento F o rm _ A c tiv a te : Para que al ejecutar ingresada esté correcta. Esto ocurre en el m om ento que ubica el cursor en
el program a se lim p ie el contenido de las cajas de texto, se desactiven los otra caja de texto u o tro co ntrol.
botones de com andos N uevo y S a lir y el cursor se ubique en te x tl para
em pezar a ingresar los datos. Prívate Sub Text2_LostFocus()
I f lsDate(Text2) Tiren
Private Sub Form_Activate() ingresados
Text¡ - "" Else
Text2 = "" MsgBox "Debe ingresar una fecha correcta", 16, "Cuidado"
Text3 - "" Text2.SelStart = 0
Text4 = "" Text2.SelLength - Len(Text2)
Command 1.Enabled = False Text2 = Text2.Se/Text
Command2. Enabled - False Text2.SetFocus
Textl. Set Focus End I f
End Sub End Sub

lililí! ^ G r u po E d it o r ia l Megabyte lililí^ G r u po E d it o r ia l Megabyte 119


|S ¡ ¡ Í |> VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
Instrucciones del Procedim iento Text2_KeyPress: Ubican el cursor en Text3 Instrucciones del P rocedim iento T ext4_C hange: V e rific a n que el pro m e dio
cuando pulse la tecla Enter siempre y cuando la fecha ingresada esté correcta. ingresado se encuentre entre 0 y 20 .
Prívate Sub Text2_KeyPress(KeyAscii As Integer) Prívate Sub Text4_Change()
IfK eyA scii = 13 Then
l f Val(Text4) < 0 Or Val(Text4) > 20 Then
Text3. Set Focus
M sgBox "El promedio debe estar entre 0 y 20", 16, "Error"
E nd I f
Text4.SelStart = 0
End Sub Text4.SelLength = Len(Text4)
Text4 = Text4.SelText
Instrucciones del Procedimiento Text3_Keypress: Verifican que en el tumo sólo se Text4.SetFocus
ingresen las letras M , T o N y si se ingresan en minúscula las convierte en mayúscula. Commandl.Enabled - False
Prívate Sub Text3_KeyPress(KeyAscii As Integer) Command2.Enabled = False
Dim Letra A i String * 1 Else
IfK eyA scii = 13 Then ingresados
Text4.SetFocus E n d lf
Else End Sub
Letra = UCase(Chr( KeyAscii))
lfL etra = "M" Or L e tra -"T " Or Letra= "N" Or KeyAscii=8 Then L a in s tru c c ió n de los siguientes proced im ien to s llam an al p ro ce d im ie n to
Rem Convierte la letra ingresada a Mayúsculas. IN G R E S A D O S cada vez que se m o d ific a algún dato para v e rific a r si todos
KeyAscii = A sc( UCasef Chr(KeyAscii))) los datos han sido ingresado correctam ente para poder a ctiva r o no los
Else
M sgBox "Debe ingresar sólo las letras M ,T o N", 16, "Error" botones N uevo y Salir.
Rem Ignora el caracter ingresado.
KeyAscii = 0 Prívate Sub Textl_Change()
ingresados
Command 1.Enabled = False
End Sub
Command!. Enabled = False
E nd I f
Prívate Sub Text3_Change()
E nd I f
ingresados
E nd Sub
End Sub
In s tru c c io n e s d el P ro c e d im ie n to T e xt4 _K e yp re s s : C o n tro la n que en el In stru cció n de botón N uevo. L la m a al p ro ce d im ie n to F o rm _ A c tiv a te para
p ro m e d io sólo se ingresen números. em pezar a ingresar los datos de un nuevo alum no.
Prívate Sub Text4_KeyPress(KeyAscii As Integer)
I f numerof KeyAscii) Or KeyAscii = 8 Or KeyAscii = 13 Then Prívate Sub Com m andl_Click()
ingresados Form_Activate
Else End Sub
M sgBox "Debe ingresar sólo números", 64, "Cuidado"
Instrucciones del p ro c e d im ie n to F o rm _ U n lo a d : Piden una respuesta de
KeyAscii - 0
Com m and! .Enabled = False c o n firm a c ió n para fin a liz a r el program a.
C om m and!.Enabled = False
End I f Prívate Sub Form_Unload(Cancel As Integer)
End Sub Dim resp A í Integer
resp = MsgBox("Está seguro de salir", 36, "Cuidado")
EXPLICACION BREVE DE LAS FUNCIONES UTILIZADAS (Ver Pgs. 116,122 y 130): I f resp = 7 Then
C H R : Convierte un valor ASCII a su respectivo carácter. Rem Respondió SI
UCASE: Convierte un texto a mayúscula. Cancel = True
LCASE: Convierte un texto a minúscula. End I f
TRIM : Quita los espacios en blanco de la derecha de un texto. End Sub
^ |¡¡¡¡¡f^ 120 G ru po E d it o r ia l Megabyte <111111 ¡ § j |f |j |^ G ru po E d it o r ia l Megabyte 121
é S /S k í VISUAL BASIC como debe ser. . . .= <3§ CAPÍTULO III: Elementos de la Programación ^ ¡¡111^
NOTA:
INPUTBOX L a variab le y el mensaje es lo ú nico o b lig a to rio que se debe u tiliz a r en la
fu n c ió n In pu tb ox. Por eje m p lo, la instrucción:
M uestra una caja con un mensaje y perm ite además que el usuario pueda
ingresar un dato el cual se considera de tip o S tring. Su sintaxis es: P=InputBox("INGRESE EL PRECIO DE VENTA")
M ue stra la siguiente caja de ingreso:
Variable=InputBox(mensaje,título, valor pred, c o lu m n a jila )

Variable. Proyecto! E
Es la variab le que alm acena e l v a lo r que se ingresa en la caja. IN G R E S E E L PR EC IO D E V E N T A
M ensaje.
Es el mensaje que se desea m ostrar cuando se pid a el dato a ingresar. C a n c e la r
Título.
Es el títu lo de la caja.
Valor predeterminado
Es el v a lo r que se m uestra en fo rm a a utom ática para ser ingresado.
Columna
Es un va lo r que in d ic a la p o sició n h o rizo n ta l del fo rm u la rio donde se desea Si no desea u tiliz a r alguno de los otros parám etros interm edios, debe u tiliz a r
que se muestre la caja. siem pre las comas.
Fila Por e je m p lo, en la siguiente in stru cció n no se in d ic a el p re cio que debe sa lir
Es un va lo r que in d ica la posición ve rtica l d el fo rm u la rio donde se desea que en fo rm a autom ática.
se m uestre la caja.
P = IN P U T B O X (''IN G R E S E E L P R E C IO D E V E N T A ","V E N T A D E D O L A R E S " , ,2 0 0 0 ,1 0 0 0 )

Por ejem plo, la siguiente instrucción: M ue stra la siguiente caja de ingreso:

P = IN P U T B O X ("IN G R E S E E L P R E C IO D E V E N T A "," V E N T A D E VENTA DE DOLARES


D O L A R E S ",3 .3 5 ,2 0 0 0 ,1 0 0 0 ) IN G R E S E E L P R E C IO D E V E N T A Aceptar |
P erm ite ingresar el precio de venta del dólar, m ostrando en fo rm a autom ática
C a n c e la r
el p re cio de 3.35 para cada d ó la r en la p osición h o riz o n ta l 2000 y vertica l
1000. M uestra la siguiente caja de ingreso:

IV E N TA DE D O LA R ES E3
I N G R E S E E L P R E C ID D E V E N T A A c e p ta r

C a n c e la r S i no desea u tiliz a r los ú ltim o s parám etros, no es necesario que u tilic e las
comas.
Por e jem plo, en la siguiente in stru cció n no se in d ic a el p re cio que debe sa lir
| EJES en fo rm a autom ática ni la u bicació n de la caja en el fo rm u la rio .

122 Megabyte .2 3
G ru po E d it o r ia l G r u po E d it o r ia l Megabyte
^ Ü Í l> VISUAL BASIC como debe se r.. .
CAPÍTULO III: Elementos de la Programación
P=INPUTBOX("INGRESE EL PRECIO DE VENTA","VENTA DE DOLARES")
CONTADORES Y ACUMULADORES
M uestra la m ism a caja de ingreso a nte rio r en el centro de la p antalla, p o r­ U n contador es una variab le num érica que perm ite contar algún evento
que no se in d ic ó la posición: que ocurre durante la ejecución de un program a. Su sintaxis es:

VA R IA B LE = VA R IA B LE + IN C REM EN TO .
Si desea e scrib ir el mensaje en varias líneas, u tilic e C h r(1 3 ) (R e to rn o de
E l increm ento norm alm ente es uno. Por eje m p lo: A = A + 1.
C arro) o C h r(lO ) (A vance de línea) o las dos ju n ta s al fin a l de cada línea. Cada vez que la com putadora ejecuta esta instru cció n , el va lo r de la variable
A se increm enta en 1.
Por ejem plo, en la siguiente in stru cció n se m uestra el mensaje “ ingrese el
p re cio de venta” acom pañado de la fecha y hora actual (escríbalo es una U n acumulador llam ad o tam bién sum ador es una variab le que perm ite ir
sola línea). alm acenando el contenido que va tom ando o tra variable. Su sintaxis es:

VARIABLE1 = VARIABLE1 + VARIABLE2


P=InputBox("INGRESE EL PRECIO DE VENTA"+Chr(13)+" AL ■ +
Str(Now),"VENTA DE DOLARES") E jem plo: R = R + F.
C ada vez que la c o m p u ta d o ra e je c u ta e sta in stru c c ió n en la v a ria b le
R a cu m u la el va lo r d e la variable F.
VENTA DE DOLARES
INGRESE EL PRECIO DE VENTA
S L a v a r ia b le ta m b ié n p u e d e s e r un c o n tr o l c o m o u n a c a ja d e texto s,
e tiq u e ta , etc.
Aceptai E jem p lo : L a b el5 = Val(Label5) + Val(Text3)
AL 29/04/9 9 6:49:00 PM C ada vez que se e je c u ta esta in stru c c ió n en L a b e lS a c u m u la el va lo r
Cancela d e Text3.
L a siguiente a plicación m uestra un e je m p lo de contadores y acum uladores.

APLICACION DESARROLLADA N° 10
Esta a plicación cuenta el núm ero de depósitos y retiros realizados por un
cliente, además alm acena el to ta l de las m ontos tanto de retiros com o de
depósitos efectuados in clu ye n d o el saldo actual
NOTA:
I «*.. B a n c o " E l A m i g o " M B - i n i R ii

C lie n te jT it o R a m ir e z V á s q u e z Ok 1
L a fu n c ió n N O W , p e rm ite o btener la fecha y hora actual y la fu n c ió n STR,
c o n vie rte un dato a tip o carácter. M o n t o d e M o v im ie n t o

15 0

D e p ó s it o j R e tir o _ l

C a n t id a d T o ta l

D e p ó s it o |2 |1 3 5 0 1i N u e v o C l ie n t e l j
R e tir o h 150
S a lir
SALD O A C TU A L |1300

124 G ru po E d it o r ia l Megabyte <á lp l | G r u po E d it o r ia l Megabyte 125


<i>

i® ! » VISUAL BASIC como debe ser. CAPITULO III: Elementos de la Programación


PASO N° 1: Dibujar los controles. INSTRUCCIONES D E L BOTÓN OK.
Private Sub Commandl_Click()
Textl.Locked = True
L a b e ll |T e x t1 Text2.Locked = False
L a b e l2 Commandl.Visible = False
j f e x f2
Command2.Enabled = True
Command3.Enabled = True
C om m and2 j C o m rn a n d 3 Rem La siguiente instrucción debe ir en una sola línea.
L a b e l3 L a b e l4
saldo=Val (InputBox ("Monto de Apertura "+Chr (13) +Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
L a b e l5 L a b e l7 L a b e l9
C o rn m a n d 4 Cuenta", 350))
L a b e l6 L a b e (8 L a b e ll 0 Labell2 = saldo
Com m and5
td = saldo
L a b e ll 1 L a b e ll 2
cd = 1
Label7 = cd
PASO N° 2: Asignar las propiedades. Label9 = td
Asigne la propiedad Caption al formulario, etiquetas y botones de comandos Text2.SetFocus
End Sub
como se muestra en la aplicación planteada.
INSTRUCCIONES D E L BO TÓ N DEPÓSITO.
Priva te Sub Command2_Click()
PASO N° 3: Escribir las instrucciones para los controles. Dim deposito As Integer
D E C LA R A R LAS VA R IAB LES A N IV E L DE FO R M U LA R IO EN: General deposito = Val(Text2)
td = td + deposito 'Total de depósitos
Declaraciones. cd = cd + 1 'Cantidad de depósitos
D im td, cd, tr, cr, saldo As Integer Label7 = cd
INSTRUCCIONES DELPR O C ED IM IEN TO F O R M _A C IW A TE. Label9 = td
saldo = Val(Labell2)
Permiten que al ejecutar la aplicación se lim pien las cajas de texto y las etiquetas, Labell2 = saldo + deposito
además muestran el botón O K y desactivan los botones DEPOSITO y RETIRO y no End Sub
se permite el ingreso del monto.
INSTRUCCIONES D E L BO TÓ N RETIRO.
Prívate Sub Form_Activate() Private Sub Command3_Click()
Textl = Dim retiro As Integer
Texl2 = retiro = Val(Text2)
Label7 = saldo = Val(Labell2)
Label8 = If saldo < retiro Then
MsgBox "La cantidad que desea retirar excede su
Label9 = saldo actual", 64, "Disculpe"
LabelJO = "" Text2 = ""
L abell2 = "" Text2.SetFocus
C om m andl .Visible = True El se
Command2. Enabled = False tr = tr + retiro 'Total de Retiros
Commands. Enabled = False cr = cr + 1 'Cantidad de Retiros
Text I.Locked - False Label8 = cr
Text2.Locked = True Label10 = tr
Label12 = saldo - retiro
Textl.SetFocus
End If
End Sub
End Sub
127
G ru po E d it o r ia l M egabyte^ G ru po E d it o r ia l Megabyte
CAPÍTULO III: Elementos de la Programación ^
INSTRUCCIONES D E L BOTÓN NUEVO C L IE N T E . INSTRUCCIONES D E L BOTÓN RETIRO.
Llama al procedimiento Form_Activate y reinicializa las variables con cero (0).
Prívate Sub Command.3_Click()
P r í v a t e S u b C o m m a n d 4 _ C l i c k () lfV a l(L abell2) < Val(Text2) Then
F o rm _ A cti va t e MsgBox "La cantidad que desea retirar excede su saldo
td = 0 'T o ta l D e p ó s ito s actual", 64, "Disculpe"
c d = 0 'C a n tid a d d e D e p ó s ito s Text2 = ""
t r = 0 'T o ta l de R e tiro s Text2.SetFocus
c r = 0 'C a n tid a d de R e tir o s Else
End Sub
Label8 = Val(Label8) + 1
Label 10 = Val(LabellO) + Val(Text2)
Label 12 = Val(Labell2) - Val(Text2)
End I f
Este program a tam bién se puede d e sa rrollar sin usar variables. End Sub

INSTRUCCIONES D E L BO TÓ N OK.
INSTRUCCIONES D E L BOTÓN NUEVO CLIENTE.
Private Sub Commandl_Click()
Textl.Locked = True Private Sub Command4_Click()
Text2.Locked = False
Commandl.Visible = False Forrn_Activate
Command2.Enabled = True End Sub
Command3.Enabled = True
Rem La siguiente instrucción debe ir en una sola línea.
Label12=InputBox("Monto de Apertura "+Chr(13)+Chr(13) +" INSTRUCCIONES D I I J ’R O C I.D IM IKN TO F O R M A C TIV A T E .
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta ", 350) Private Sub Form_Activate()
Label 7 = 1 Textl =
Label 9 = Label12
Text2 = ""
Text2.SetFocus
End Sub Label7 = ""
Label8 =
Label9 = ""
INSTRUCCIONES D E L BO TÓ N DEPÓSITO. LabellO = ""
Labell2 = ""
Prívate Sub Command2_Click() Commandl .Visible = True
Label7 = Val(Label7) + 1 Command2.Enabled = False
Label9 = Val(Label9) + Val(Text2) Command3.Enabled = False
Label12 = Val(Labell2) + Val(Text2) Textl.Locked = False
E nd Sub Text2.Locked = True
Textl.SetFocus
End Sub

G ru p o E d ito r ia l Megabyte 129


A * VISUAL BASIC como debe s e r .. . CAPÍTULO III: Elementos de la Programación
DESARROLLAR LAS SIGUIENTES APLICACIONES:
N 04: Ingresar el nom bre del producto, p re cio a nte rio r y p re cio actual,
IIF
luego ca lcu la r el alza en soles y el alza en porcentaje. Es una fu n c ió n que devuelve uno de dos valores dados dependiendo de una
condición.
NOTA:
E l alza en porcentaje es ig u a l al alza en Soles p o r 100 / Precio A n te rio r.
Su sintaxis es:
n - I n i x|
VARIABLE = IIF (CONDICION, VALOR 1, VALOR2)
Producto
f.............
Precio Anterior Si el resultado de la c o n d ic ió n es verdad (si), la variab le tom a el V A L O R 1 y
1.....................
Precio Actual si el resultado de la c o n d ic ió n es falso (no), la variable tom a el V A L O R 2 .
1........... ...
T am bién se puede u tiliz a r un co n tro l com o una caja de textos o etiqueta para
A lza en Soles
r............
alm acenar cualquiera de los valores. Si los valores son de tip o carácter
Alza en Porcentaje
r ~ .......
deben ir entre co m illa s.
N u evo Producto Calcular Salir I
Por ejem plo: En la siguiente instru cció n , si el v a lo r de la variab le E D A D es
m ayor o ig u a l a 18, se alm acena en la variab le O B S el mensaje M A Y O R
N 05: Ingresar el n om bre del profesor, e l núm ero de horas norm ales que D E E D A D , y si el v a lo r de la variable E D A D es m enor que 18 se almacena
ha trabajado y el n úm ero de horas extras, luego se debe c a lc u la r el to ta l que en la variab le O B S el mensaje M E N O R D E E D A D .
se le debe pagar p o r el N ° de horas norm ales, el to ta l p o r horas extras y el
to ta l a pagar.
Si ha trabajo más de 48 horas su pago p o r hora es de S/. 8.00 soles y SI. 7.00 OBS = IIf(E D A D >= 18, "M AYOR DE EDAD", "MENOR DE EDAD")
en caso co ntrario. P o r hora e xtra S/. 9.50.
Otro ejemplo:

Nombre del Profesor I ,a siguiente instrucción:


Horas Trabajadas
__________ Calcular
Horas Extras I f pro >= 10.5 Then
Label8 = "Aprobado"
Pago por Hora
Otro Else
Total por Hs. Normales Label8 = "Desaprobado"
Total por Hs.Extras Salir End I f

T o ta l a P a g a r ===>
También se puede e s c rib ir de la siguiente manera:

P rog ra m a d orJu a n J o s é Castañeda León


I ,abel8 = IIF(pro >= 10.5,’’Aprobado” ,’’Desaprobado” )

G ru po E d it o r ia l Megahyte<^ ||| § | G ru po E d it o r ia l Megabyte » , w m


<?
iÉ iÉ jÉ É ^ VISUAL BASIC como debe se r.. . < 5 ¡§ CAPITULO III: Elementos de la Programación
SELECT - CASE APLICACIÓN DESARROLLADA N° 11
Perm ite ejecutar una o más instrucciones dependiendo del v a lo r de f=i L’i i : i f . i «i a í:iíT!TTT37íT! WÊSÊÊÉÊÊIM - In | x |
una va riab le, de una expresión. Puede reem plazar a varias instrucciones
IF-THEN. Producto

Precio Unitario
Su sintaxis es:
Cantidad Comprada I Calcular

Subtotal S/. 0 Nue vo


Select Case VAR IABLE O EXPRESIÓN
Case CASO N° 1 Descuento X 0 .................. «i;:!. 1
Salir
Instrucción(es) Descuento S/. 0
Case CASO N °2
Instrucción(es)
0
Case CASO N°3 T O T A L A P A G A R S/. ===>
Instrucción(es) 1
Case C A S O N °4
Instrucción(es)

CARACTERÍSTICAS:

Case CASO n Se debe ingresar el n om bre de un producto, su p re cio u n ita rio y la c a n ti­
Instrucción(es) dad com prada de d ich o producto, luego se debe ca lcu la r y v is u a liz a r el
Case Else subtotal, el descuento en porcentaje, el descuento en soles y el to ta l a pagar,
Instrucción(es) lil descuento en porcentaje se depende d el subtotal, de acuerdo a la s igu ien ­
End Select te tabla:

NOTA: SUBTOTAL DESCUENTO %


Case Else e s o p c io n a l y la s in s tr u c c io n e s q u e c o n tie n e se e je c u ta n
100 ó 101 2%
c u a n d o n o se c u m p le n in g u n o d e lo s casos.
de 101.1 a 200 4%
S i s e d e s e a e s c r ib ir in s tr u c c io n e s en la s m ism a lín e a d e l C ase, se de 200.1 a 500 6%
d e b e n se p a r a r p o r d o s p u n to (:). U sa n d o d o s p u n to s se p u e d e n e scrib ir a partir de 500 10%
d o s o m á s in stru c c io n e s en u n a so la línea.
NOTA:
Los casos pueden escribirse de la siguiente manera: lista aplicación m u estra un ejem plo del uso de S E L E C T C A S E , a d em ás
u tiliz a la p r o p i e d a d Ñ A M E d e a lg u n o s c o n tr o le s p a r a p o d e r
Case 1 Case 1 to 10 Case 1,2,3 Case Is >40 m a n e ja r lo s y la f u n c i ó n F O R M A T p a r a a s ig n a r un f o r m a t o d e
Case 2 Case 10 to 20 Case 4,5,6 Case Is <20 visu a liza ció n a lo s datos.

§ j^ 132 G ru po E d it o r ia l Megabyte1 G ru p o E d ito r ia l Megabyte 133


VISUAL BASIC como debe ser.. .
D E S A R R O L L O D E L A A P L I C A C I Ó N ° 11 BO TO N ES DE COMANDOS

P A S O N ° 01: D ib u ja r los controles.


CONTROL CAPTION Tooltiptext
- î n l x l
Coinmandl &Calcular Muestra los totales
Command2 &Nuevo Para ingresar otro producto
L a bell Command3 ScSalir Finaliza la aplicación
||T e xtl

Label2 |T e xt2 El formulario debe tener en C aption: V E N T A D E P R O D U C T O S .


Label3 Com m aridl
| t ext3

Label4 Label8
P A S O N ° 03: E s c rib ir las instrucciones.
Command2
Label5 Label9 IN S T R U C C IO N E S D E L C O M M A N D 1 , donde se u tiliz a la propiedad
Command3 Ñ A M E asignada a las cajas de texto y algunas etiquetas.
LabelG L a b e ll 0

Private Sub Commandl_Click()


L a b e ll 1 Dim ST As Single
Label7
ST = Val(PRECIO) * Val(CANTIDAD)
SUBTOTAL = ST
Select Case ST
Case 100, 101
DESCPOR = 2
P A S O N " 0 2: A s ig n a r las propiedades. Case 101.1 To 200
DESCPOR = 4
E T IQ U E T A S (L A B E L )
Case 200.1 To 500
DESCPOR = 6
Case Is > 500
CONTROL NAME ALIGNMENT CAPTION BORDERSTYLE DESCPOR = 1 0
Labell Labell 0 - Left Producto 0 - None Case El se
Labe12 Label2 0 - Left Precio Uni. 0 - None DESCPOR = 0
Label3 Label3 0 - Left Cantidad Com. 0 - None End Select
DESCSOL = ST * Val(DESCPOR) / 100
Labe14 Label4 0 - Left Subtotal 0 - None 'El Total a Pagar se visualiza con 2 decimales
Label5 Label5 0 - Left Descuento % 0 - None PAGO = Format(ST - Val(DESCSOL) , "###, ##0.00")
Label6 Label6 0 - Left Descuento S/. 0 - None End Sub
Labe17 Label7 0 - Left TOTAL A PAGAR 0 - None
Labe18 SUBTOTAL 1 - Right 0 1 - Fixed S INSTRUCCIONES DEL COMMAND2 (Nuevo).
Label9 DESCPOR 1 - Right 0 1 - Fixed S.
LabellO DESCSOL 1 - Right 0 1 - Fixed S. Prívate Sub Command2__Click ()
Label11 PAGO 1 - Right 0 1 - Fixed s, NOMBPRO = ""
PRECIO = ""
C A JA S D E T E X T O S CANTIDAD = ""
SUBTOTAL = 0
CONTROL NAME TEXT DESCPOR = 0
Textl NOMBPRO En Blanco DESCSOL = 0
Text2 PRECIO En Blanco PAGO = 0
Text3 CANTIDAD En Blanco NOMBPRO.SetFocus
End Sub

sHHIb G ru po E d it o r ia l Megabyte 135 ^ ||||¡|¡^


^ lililí'' VISUAL BASIC como debe se r,.. CAPÍTULO III: Elementos de la Programación
INSTRUCCIONES DEL COMMAND3 (Salir)
APLICACIÓN DESARROLLADA N° 12
Prívate Sub Command3_Click()
Dim H As Integer Se debe ingresar el nom bre del alum no, su nota N ° 1 y su nota N k z, ai
H = MsgBoxf"ESTA SEGURO DE SALIR", 36, "CUIDA­
DO") hacer c lic k en el botón O btener P rom edio se debe visua liza r: el pro m e dio
If H = 6 Then del a lu m n o , una obse rva ción que in d ic a si el a lu m n o está aprobado o
End desaprobado, la ca ntid ad de puntos que le fa lta n para aprobar, si está
End If
desaprobado o los puntos para lleg ar a veinte en caso que esté aprobado.
End Sub
Tam bién se debe v is u a liz a r la N ota C u a lita tiv a del alum no de acuerdo al
promedio:
MUY IMPORTANTE:

S i Ud., d e se a q u e e l resu lta d o ta m b ié n se visu a lic e cu a n d o in grese Entre 0 y 5 Pésimo


o m o d ifiq u e e l p r e c io u n ita rio d e l p r o d u c to o la c a n tid a d co m p ra d a ; Entre 5.1 y 10.4 M alo
e n to n c e s, d e b e p r o g r a m a r en el e v e n to C H A N G E d e c a d a una d e las Entre 10.5 y 14.4 Regular
c a ja s d e texto . Entre 14.5 y 17.4 Bueno
Entre 17.5 y 20 Excelente
L a s in s tr u c c io n e s q u e ca lc u la n y v is u a liza n lo s re su lta d o s q u e e n ­
c u e n tra n en el b o tó n d e c o m a n d o s N ° 1 ( C O M M A N D 1 ), es d e c ir en el
p r o c e d im ie n to lla m a d o C O M M A N D 1 _ C L IC K , e n to n c e s en e l e v e n to Se debe co n tro la r que sólo se ingresen notas entre 0 y 20.
C H A N G E d e ca d a u n a d e la s c a ja s d e te x to (P R E C IO y C A N T ID A D )
s ó lo se d e b e lla m a r a d ic h o p ro c e d im ie n to . « Información Académica B H f lW M W K -Inlxl

A sí: Alumno
1 ..........................

Curso -------- Otro Alumno


INSTRUCCIONES DE TEX T2, CUYO NOMBRE (ÑAME) ES PRECIO. r
Nota N! 01 |o
Obtener Promedio
Prívate Sub PRECIO__Change () 02
Nota N! |o
Commandl_Clíck
End Sub Promedio 1 Finalizar

Observación 1 .....................
INSTRUCCIONES DE TE X T3, CUYO NOMBRE (ÑAME) ES CANTIDAD.
Puntos

Prívate Sub CANTIDAD_Change()


Commandl_Clíck Cualidad
End Sub

G ru po E d it o r ia l Megabyte
D E S A R R O L L O D E L A A P L IC A C IO N BOTONES DE COM ANDOS
P A S O N ° 0 1: D ib u ja r los controles
CONTROL CAPTION TOOLTIPTEXT
Commandl &0tro Alumno Ingresar nuevo alumno
L a b e ll |fr ext1 Command2 Obtener &Promedio Imprime el promedio
Label2 |í e x l2 Com m andl Command3 &Finalizar Finaliza la aplicación
Label3 IT ext3
Command2
LabeM ¡Text4
FORMULARIO
Label5 Label8
Command3 CONTROL CAPTION
LabelG Label9
Forml Información Académica
Label7 L a b e ll 0

L a b e ll 1 Ud. P u e d e c a m b ia r c u a lq u ie r otra p ro p ie d a d p a ra m e jo ra r e l a sp ecto


Lab e ll 2 d e l fo r m u la r io .
P A S O N ° 03: E s c rib ir las instrucciones.

NOTA :
P A S O N ° 0 2 :A s ig n a r las propiedades.
E T IQ U E T A S (L A B E L )
CONTROL CAPTION AUTOSIZE BORDERSTYLE 1. SelStart, S elLength, y SelText son propiedades de las cajas de texto
Labell Alumno True 0 - None
que se usan en el m odo de program ación.
Label2 Curso True 0 - None
Label3 Nota N 201 True 0 - None SelStart:
Labe14 Nota N e02 True 0 - None E sp ecifica la p o sició n de in ic io del bloque de texto seleccionado.
Label5 Promedio True 0 - None SelLength:
Label6 Observación True 0 - None
Label7 Puntos True 0 - None E sp ecifica el núm ero de caracteres seleccionados.
Labe18 En Blanco False 1 - Fixed Single SelText:
Label9 En Blanco False 1 - Fixed Single C ontiene el te xto seleccionado.
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single 2. Para e scribir comentarios dentro de un program a se u tiliz a las co m illa s
sim ples o apostrofe ( ‘ )*
C A JA S DE T E X T O S
CONTROL TEXT TABINDEX 3. L a fu n c ió n IS N U M E R IC perm ite saber si lo ingresado p o r un usuario
Textl En Blanco 0
Text2 En Blanco 1 se puede considerar de tip o num érico.
Text3 0 2
Text4 0 3

138 G r u po E d it o r ia l Megabyte
W/ VISUAL BASIC como debe ser.
D E S A R R O L L O D E L A A P L IC A C IO N BOTONES DE COMANDOS
P A S O N ° 0 1: D ib u ja r los controles
CONTROL CAPTION TOOLTIPTEXT
n - :
Ingresar nuevo alumno
Commandl &0tro Alumno
L ab e ll IfT e x tl Command2 Obtener &Promedio Imprime el promedio
Label2 |T ext2 Command! Command3 &Finalizar Finaliza la aplicación
Label3 |T ext3
Command2
LabeW | í ext4 FORMULARIO
Label5 LabelS
Command3 CONTROL CAPTION
LabelG LabeIS
Forml Información Académica
Label7 L a b e ll 0

L a b e ll 1 Ud. P u e d e ca m b ia r c u a lq u ie r otra propiedad p a ra m ejo ra r el a sp ecto


L a b e ll 2 d e l fo r m u la r io .
P A S O N ° 0 3: E s c rib ir las instrucciones.

NOTA :
P A S O N ° 0 2 :A s ig n a r las propiedades.
E T IQ U E T A S (L A B E L )
CONTROL CAPTION AUTOSIZE BORDERSTYLE 1. SelStart, SelLength, y SelText son propiedades de las cajas de texto
Labell Alumno True 0 - None
que se usan en el m odo de programación.
Label2 Curso True 0 - None
Labe13 Nota N s01 True 0 - None SelStart:
Label4 Nota N 202 True 0 - None E sp e cifica la p o sició n de in ic io del bloque de texto seleccionado.
Label5 Promedio True 0 - None
SelLength:
Labe16 Observación True 0 - None
Label7 Puntos True 0 - None E sp ecifica el núm ero de caracteres seleccionados.
Labe18 En Blanco False 1 - Fixed Single SelText:
Labe19 En Blanco False 1 - Fixed Single C ontiene el te xto seleccionado.
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single 2. Para e scrib ir comentarios dentro de un programa se u tiliz a las com illas
sim ples o apostrofe ( ‘ ).
C A J A S DE T E X T O S
CONTROL TEXT TABINDEX 3. L a fu n c ió n IS N U M E R IC perm ite saber si lo ingresado por un usuario
Textl En Blanco 0
Text2 En Blanco 1 se puede considerar de tipo num érico.
Text3 0 2
Text4 0 3

138 G ru p o E d ito r ia l Megabyte <|§¡y§s;


^IIÈ É ^ VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Las siguientes instrucciones perm iten que al fin a liz a r de e s c rib ir la N ota N°
A l empezar a e scrib ir la N ota N° 01, se selecciona el contenido de la
01, se v e rifiq u e que se ha ingresado un v a lo r num érico y entre 0 y 20. Se
caja de texto N ° 03 para que sea reem plazado p o r el v a lo r que se ingresa.
deben e s c rib ir en el evento LostFocus de Text3.
Prívate Sub Text3_LostFocus()
Las siguientes instrucciones se deben e scrib ir en el evento G otFocus
‘Pregunta si no se ha ingresado un valor numérico o
de Text3. Para e llo Haga doble c lic k en Text3 o un solo c lic k y pulse F7, ‘la nota N°1 es menor que 0 ó es mayor que 20
luego en la lista de Eventos seleccione el E vento GotFocus. I f Not IsNumeric(Text3) Or Val(Text3)<0 Or Val(Text3)>20 Then
MsgBox "Sólo números entre 0 y 20", 16, "Cuidado"
Text3.SetFocus
Text3.SelStart = 0
E n d lf
Text3.SelLength - Len(Text3) End Sub
Text3 = Text3 .SelText

Las siguientes instrucciones perm ite n que al fin a liz a r de e s c rib ir la N ota N °
A l fin a liz a r observará lo siguiente:
02, se v e rifiq u e que se ha ingresado un v a lo r num érico y entre 0 y 20. Se
deben e s c rib ir en el evento LostFocus de Text4.
* : P foje ctl - Fòrmi (Code) _ |n[ x|
Prívate Sub Text4_LostFocus{)
Text3 GotFocus ‘Pregunta si no se ha ingresado un valor numérico o
‘la nota N°2 es menor que 0 ó es mayor que 20
Prívate Sub Text3_GotFocus() I f N ot lsNumeric(Text4) Or Val(Text4)<0 Or Val(Text4)>20 Then '
Text3.SelStart = 0 MsgBox "Sólo números entre 0 y 20", 16, "Cuidado"
Text3.SelLength = Len(Text3) Text4.SetFocus
Text3 = Text3.SelText E n d lf
End Sub End Sub

Las siguientes instrucciones perm iten ingresar los datos de un nuevo alumno,
lim p ia n d o las cajas de te xto y las etiquetas y ubicando el cursor en T e x tl
para empezar a ingresar el nom bre del alum no. Se deben e s c rib ir en el
Las siguientes instrucciones p erm ite n que al empezar a e s c rib ir la evento C lic k del C om m and 1.
N ota N ° 02, se selecciona el contenido de la caja de texto N ° 04 para que
Prívate Sub Commandl_Click()
sea reem plazado p o r el v a lo r que se ingresa. Se deben e s c rib ir en el evento Textl = ""
G otFocus de Text4. Text2 = ""
Text3 - 0
Text4 = 0
Private Sub Text4_GotFocus() Label8 = ""
Text4. SelStart ~ 0 Label9 = ""
Text4. SelLength = Len(Text4) LabellO = ""
Text4 = Text4. SelText L abell2 = ""
Textl.SetFocus
End Sub
End Sub

141
m m ™ G ru po E d it o r ia l Megabyte
VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
Las siguientes instrucciones perm iten m ostrar los resultados del alum no APLICACION PROPUESTA N° 06
(p ro m e d io , observación, etc). Se deben e s c rib ir en el evento C lic k del Se debe ingresar el nom bre y el año de n a cim ie n to de una persona y se
C om m and2. tiene que visua liza r: su edad, una observación que in d ic a si es m ayor o
m enor de edad. Si m enor de edad se debe m ostrar cuántos años le faltan
Prívate Sub Command2_Click()
para ser m ayor de edad y si es m ayor de edad se debe m ostrar hace cuántos
pro = (Val(Text3) + Val(Text4)) / 2
Label8 = pro años es m ayo r de edad. T am bién se debe m ostrar la etapa de la persona
I f pro >= 10.5 Then teniendo en cuenta lo siguiente:
Label9 = "Aprobado(a)" 0 y 12 Niño
LabellO = "Le faltan "+Str(20-pro)+" puntos para tener 20" 13 y 17 Adolescente
Else
Label9 = "Desaprobado(a)" 18 y 30 Joven
LabellO - "Le faltan " + Str(ll-pro)+ " puntos para Aprobar" 31 y 70 Adulto
E n d lf 70... Anciano
Select Case pro fe-Iri fxf
Case OTo 5
L abell2 = "Pésimo" N o m b re jj
Case 5.1 To 10.4 A ñ o d e N a c im ie n to |
L abell2 = "Malo" R e s u lta d o s |
Edad J-
Case 10.5 To 14.4
N uevo
L abell2 = "Regular" □ b s e r v a c ió n j"
Case 14.5 To 17.4 Años S a lir
L abell2 - "Bueno"
E ta p a
Case 17. 5 To 20
L abell2 = "Excelente" r
End Select
End Sub
FUNCIÓN CHOOSE
L a siguiente in stru cció n fin a liz a la a plicación . Se debe e s c rib ir en el evento
C lic k del C om m and3.

Prívate Sub C om m and3jClick()


Su sintaxis es: Variable=CHOOSE(índice,valorl, valor2,valor3..)
R etorna un v a lo r dependiendo de un índice.

La siguiente in s tru c c ió n alm acena en la va riab le N O M B R E , el nom bre del


End día de la semana dependiendo del v a lo r que contiene la variable D IA .
End Sub
NOMBRE=Choose(DIA,” L U N ” ,” M A R ” ,” M IE ” ,” JUE” ,” VIE ” ,” SAB” ,” D O M ” )
CONCATENACION
C oncatenar s ig n ific a u n ir textos y para e llo se puede u tiliz a r el signo + o & . Si D IA tiene el v a lo r 1, devuelve L U N , si día tiene el v a lo r 2, devuelve
E l signo + sólo p e rm ite concatenar valores tip o texto. Si desea concatenar M A R , etc.
valores de d iferen te tip o lo s tiene que c o n v e rtir a texto usando la fu nció n El ín dice debe tener un
S T R si es un núm ero o Cdate si es tip o fecha. v a lo r entre 1 y el núm ero I M i c r o s o f t V is u a l B a s ic
E l signo & tiene la ventaja de poder concatenar datos de d iferen te tipo. de valores devueltos, en Error '94' en tiempo de ejecución :
Por ejem plo, la instrucción: caso co ntrario se muestra El uso de Nuil no es válido
L a b e ll = “ L e fa lta n “ + S tr(20 - p ro ) + “ Puntos para lle g a r a 20”
el mensaje de error:
Se puede reem plazar por:
L a b e ll = “ Le fa lta n “ & 20 - pro & “ puntos para lleg ar a 2 0 ”

MUY IMPORTANTE í Terminar j j Depurar j| Ayuda |

A ntes y después de estos signos debe d e ja r un espacio en blanco.

^ ¡¡¡¡^ ¡^ G ru p o E d it o r ia l M e « a h v t e <^ ^ ^
VISUAL BASIC como debe ser. ,. CAPITULO III: Elementos de la Programación

F U N C IO N E S D E C A D E N A APLICACIÓN DESARROLLADA N° 13
U na cadena es un dato tip o S trin g (carácter); es decir se re fie re a letras o Las siguiente a plicación es un eje m p lo del uso de las funciones de cadena
letras y números, com o p o r ejem plo: el nom bre de una persona, su dirección,
etc. S i usamos al fin a l de la fu n ció n el signo $ devuelve el resultado com o
In g re s e u n a F ra s e ¡E s tu d ia n d o V IS U A L B A S IC
tip o Cadena, de lo c o n tra rio el tip o d evuelto es Variant. L o n g itu d d e la F r a s e
23 r
M u e s tr a
P rim e r C a r á c t e r n :::
R IG H T .- Obtiene de una cadena una cantidad de caracteres empezando por U ltim o C a r á c t e r c N uevo
D e l 2 d o a l G to C a r á c t e r
la derecha. Sintaxis Right(Cadena, N) stu d i
S a lir i
P o s i c i ó n d e la 1 r a le tr a *A'
L E F T .- Obtiene de una cadena una cantidad de caracteres empezando por
M in ú s c u la s e s tu d ia n d o v is u a l b a s ic
la Izquierda. Sintaxis Left(Cadena, N) M a y ú sc u la s E S T U D IA N D O V IS U A L B A SIC
MXD. - Obtiene de una cadena una cantidad de caracteres S ó lo la p r im e ra e n M a y ú s c u la E s t u d i a n d o V is u a l B a s ic
a partir de una determinada posición.
Sintaxis Mid(Cadena, Posición, N) l ’A S O N ° 01: D ib u ja r los controles.
D onde N indica la cantidad de caracteres que se desea obtener.
Labell :|Text1
L E N .- Obtiene la longitud de una cadena, es decir la cantidad de caracteres Label2 Labell 0
que contiene incluyendo los espacios en blanco. LabeB Label! 1
T R IM .- Q uita los espacios en blanco que se encuentran al in ic io y al fin a l de LabeM Labell 2
una cadena. Label5 Labell 3
R T R IM .- Quita los espacios en blanco al fin a l de una cadena. LabeS Label14
L T R IM .- Quita los espacios en blanco que se encuentran al in ic io de una Label? Labell 5
cadena. LabeB Labell 6
U C A S E .- Convierte una cadena a mayúsculas. LabeIS Labell 7
L C A S E .- Convierte una cadena a minúsculas.
P A S O N ° 02: A s ig n a r las propiedades a los controles.
La sintaxis de las funciones anteriores es: Función (Cadena) Ud., está en condiciones de asignar las propiedades a los controles: A signe
la propiedad C ap tion a las etiquetas desde L a b e ll hasta Lab el7 y a los
S T R C O N V : Esta función permite convertir una cadena a 3 formas diferentes: botones de com m andos. T e x tl y las etiquetas desde L ab eI 8 hasta L a b e ll3
STRCONV (Cadena, Valor) deben estar en blanco.
P A S O N ° 03: E s c rib ir las instrucciones para los controles.
El valor indica el tipo de conversión y puede ser:
1. Convierte el texto a mayúscula. Prívate Sub Com m andi JClick()
Prívate Sub Commandl_Click() Textl = ""
2. Convierte el texto a minúscula. LabellO = Len(Trím(Textl )) LabellO =
3. Convierte la primera letra de cada palabra a mayúscula. tM belll = Left(Trím( Textl ), 1) L abelll =
IN S T R : Obtiene un número que indica la posición de una subcadena dentro de Labell2 = Right(Trim(Textl ), 1) Labell2 =
Labell3 = Mid(Trím(Textl), 2, 5) Labell3 =
una cadena. Label 14 =
Labell4 = lnStr(Textl, "a")
IN STR (Valor, Cadena, Subcadena) Labell 5 = LCase(Textl) Labell5 =
Label 16 = UCase(Textl) Label 16 =
E l v a lo r in d ic a la p o sició n de la cadena desde donde se va a buscar la
L a b e l17 =
subcadena. Cadena es el texto donde se desea buscar y Subcadena es el Label 17 = StrConv(Textl, 3)
Textl.SetFocus
te xto que desea buscar. End Sub End Sub

144 - G rupo E d it o r i a l M ee a b v te
como debe ser. CAPÍTULO III: Elementos de la Programación
PASO N ° 03 E s c rib ir las instrucciones.
FUNCIONES TIPO FECHA L a siguiente in stru cció n muestran en la etiqueta N ° 12 la fecha y hora del
NOW.- O btiene la fecha y hora del sistema. sistema. Se deben e s c rib ir en el evento F orm Load.
DATE.- O btiene la fecha del sistema.
Prívate Sub Form_Load()
YEAR.- O btiene el año de una fecha.
L abell2 = "Hoy es " + Str(Now)
MONTH.- O btiene el núm ero mes de una fecha.
End Sub
DAY.- O btiene el día de una fecha.
Las siguientes instrucciones perm iten v is u a liz a r los resultados que se de­
W E E K D A Y .-O b tie n e el núm ero del día de la semana.
sean. Se escriben en el evento C lic k del C o m m a n d l (O K ).
D o m in g o = 1 , Lunes = 2, M artes = 3, etc.
CVDATE.- C on vierte una cadena en un va lo r tip o fecha. Prívate Sub Comm andl_Click()
Dim fecha As Date
ISDATE.-V e rifica si un determ inado va lo r puede considerarse de tip o fecha. Dim ndia, nmes As String *10
La fu n c ió n Format perm ite asignar un fo rm a to a las fechas: Dim día, mes, año, diasemana As Integer
d-m-y 21-8-98 fecha = CVdate(Text2)
dd/mm/yy 21/08/98 dia = Day (fecha)
dd-mmmm-yyyy 21-Ago-1998 mes — Month(fecha)
h:m:s: AM /P M , dd/mm/yy 20:35:20 PM, 21/08/98 año = Year(fecha)
diasemana - WeekDay(fecha)
APLICACION DESARROLLADA N° 14 Label7 - dia
Label8 = mes
Se debe ingresar e l nom bre y la fecha de nacim ie nto de una persona y Label9 - año
visualizarse p o r separado: El día, mes, año, núm ero del día de la semana, la LabellO = diasemana
fecha en letras y la fecha y hora actual. ‘convierte el N° del día de la semana en letras
‘Si desea escribir dos instrucciones en una
‘línea, debe separarlas po r dos puntos
Nombre fjO S E MARIA Select Case diasemana
Fecha de Nacimiento 11 7-1 0-86 Case 1 : ndia = "Domingo"
D ía Ingresado P7 Case 2 : ndia = "Lunes "
Mes Ingresado |ïô O k Case 3 : ndia = "Martes"
Año Ingresado |1986
Salir Case 4 : ndia = "Miércoles”
D ía de la semana
Case 5 : ndia = "Jueves"
V'í&rsr&s-. / Z afe Case 6 : ndia = "Viernes"
iHoy es 1 7 /0 7 /1 998 11:26:58 PM
Case 7 : ndia - "Sábado"
End Select
‘convierte el N° del mes en letras.
PASO N° 01 D ib u ja r los controles. Select Case mes
=asi- 2l Case 1: nmes = "Enero"
Labell jfT extl
Case 2: nmes - "Febrero"
Label2 jText2
Case 3: nmes = "Marzo"
Label3 Label7
Case 4: nmes - "Abril"
Label4 LabeIS
Case 5: nmes = "Mayo"
Label5 Label9 Case 6: nmes = "Junio"
LabeIS L abell O Case 7: nmes - "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes - "Setiembre"
Case 10: nmes = "Octubre"
Case 11: nmes = "Noviembre"
PASO N° 02 A s ig n a r las propiedades. Case 12: nmes = "Diciembre"
A sig ne las propiedades a los controles de tal manera que se visua lice n com o End Select
Labell 1 = ndia+", "+Str(dia)+" de "+nmes+" de "+Str(año)
se m uestra en la a plicación a desarrollar. End Sub

1 4 6 ^ 1 G rupo E d it o r i a l Megahyte 147 « ¡s»


VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
Valorl
FUNCIÓN DATEADD Es o p c io n a l y perm ite in d ic a r cuál es el p rim e r día de la semana se usará
Perm ite increm entar o d is m in u ir un inte rva lo de tiem po a una fecha. E l
V isual Basic. En fo rm a predeterm inada el p rim e r día de la semana es el
in te rva lo de tiem pos puede ser un num ero de días, semanas, meses, años,
D o m in g o . Los valores que se pueden e s c rib ir son:
etc., retornando una nueva fecha.
Su sintaxis es: D ateA d d ("In te rva lo ",V alo r,F e ch a)
Intervalo Valor Descripción
1 Domingo (predeterminado)
In d ica qué in te rva lo de tie m p o se va a increm entar o d is m in u ir a la fecha.
L o s valores que puede tener son: 2 Lunes
3 Martes
Intervalo Descripción 4 Miércoles
yyyy Año
5 Jueves
q Trimestre
m Mes 6 Viernes
y Día del año 7 Sábado
d Día VaIor2
w Día de la semana Es o p cio n a l y perm ite in d ic a r cuál es la p rim era semana del año que usará
ww Semana
h Hora V isual Basic. En fo rm a predeterm inada es la semana que contiene al p rim ero
n Minuto de enero. L os valores que se pueden e s c rib ir son:
s Segundo V alor D escripción
Valor 1 E m p ie z a c o n la se m a na en la q ue se e n c u e n tra e l 1 de E n e ro
Es la cantidad del in te rv a lo de tie m p o que se va a increm entar o d is m in u ir a (predeterm inado).
una fecha. U n v a lo r p o s itiv o increm enta y un v a lo r n egativo dism inuye. 2 Em pieza con la Ira. semana que tenga al menos 4 días en el nuevo año.
Fecha 3 Empieza con la Ira semana que esté completamente incluida en el nuevo año.
Es la fecha a la cual se va a d is m in u ir o increm entar el in te rv a lo de tiem po L a siguiente in s tru c c ió n m uestra en la etiqueta N ° 1 (L a b e ll) la d iferencia
Ejemplo: en semanas que existe entre el 30 de Setiem bre del año 1999 y el 01 de
Las siguientes instrucciones muestran en L a b e ll la fecha actual y en Label2 M a y o del año 2000.
la fecha a nte rio r pero increm entada en dos semanas. Si desea d is m in u ir dos L a b e ll = D a te D iff("w w ", C V D a te ("3 0 -0 9 -9 9 "), C V D a te fO 1-05-00"))
semanas, debe e s c rib ir menos dos (- 2 ).
NOTA
Label 1 = Now
V isual Basic devuelve cero (0) si las fechas se encuentran dentro del m ism o
Label2 = DateAdd("ww", 2, Now)
in te rv a lo de tie m p o indicado. Por eje m p lo, si el p rim e r día de la semana es
dom ingo, la instrucción:
FUNCIÓN DATEDIFF
Labell = DateDiff("ww", C V D atef 14-07-00"), CV D atef 15-07-00"))
D evuelve la d ife re n cia entre dos fechas en un in te rv a lo de tie m p o indicado.
Muestra en Labell el valor cero (0) porque el 14-07-00 es viernes y el 15-07-00es
P or ejem plo, la d ife re n cia de dos fechas en días, semanas, meses, etc. Su
sintaxis es: sábado (la misma semana).
DateDiff(Intervalo, Fecha I, Fecha2, Valor I,VaIor2) L a instrucción:
Intervalo Labell = DateDiff("ww", CV D atef 15-07-00"), CVDate(" 16-07-00"))
In d ica en qué in te rva lo de tie m p o se va a c a lcu la r la d ife re n cia entre las dos M uestra en L a b e ll el v a lo r uno (1) porque el 15 de J u lio del año 2000 es
fechas. Los valores que puede tener son los m ism os que en la función DateAdd. sábado y el 16 de Ju lio del año 2000 es d o m in g o (siguiente semana).
Fechal y fecha2
Son las fechas entre las cuales se va a c a lcu la r la d iferencia.

148 G ru po E d it o r ia l Megabyte<|f¡¡jj||| 149


VISUAL BASIC como debe se r.. . > CAPÍTULO III: Elementos de la Programación
FUNCIÓN DATEPART 1. ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Perm ite obtener el in te rv a lo de tie m p o en el cual se encuentra una fecha. Instrucciones del Form_Activate
Prívate Sub Form_Activate()
P o r e je m p lo, a qué núm ero de la semana del año corresponde a una fecha.
Textl = ""
Su sintaxis es: Label7 = ""
DatePart(Intervalo, Fecha, Valorl,VaIor2) LabelS = ""
Intervalo Textl. SetFocus
F onnl.C aption = "Fecha A c tu a l: " + Str(Date)
In d ica el in te rva lo de tie m p o en el que se encuentra la fecha. Los valores
End Sub
que puede tener son los m ism os que en la fu n c ió n D ateA dd.
Instrucciones del del Botón Aceptar
Fecha Prívate Sub Commandl _Cl¡ck()
Es la fecha que se desea evaluar. Dim Dia,Mes As Integer
Valorl y Valor2 Dim Fecha As date
Son los m ism os que los de la fu n ció n D a te D iff. IflsDate(Textl) Then
Fecha = CDate(Textl)
Por e jem plo, la siguiente in stru cció n m uestra en L ab el 1 el trim e stre del año
Día = Day( Fecha)
al cual pertenece la fecha actual.
Mes = Month( Fecha)
Label 1 = DatePart("q", Now) Rem ESTACION DE NACIMIENTO
If(Dui>=23And Mes=12) OrMes- 10rMes=2 Or(Dia<=22 AndMes=3) Then Label6= "Verano"
APLICACIÓN DE EJEMPLO: lf(Dia>=23AndMes=3) 0rMes=4 0rMes=5 Or (Dia<=22And Mes=6) Then Label6= "Otoño"
E sta a p lic a c ió n p e rm ite in g re s a r una fe c h a de n a c im ie n to y m ue stra lf(Dia> =23 AndMe=6)0rMes=70r Mes=8 Or (Dia< =22AndMes=9) Then LabeI6= "Invierno"
in fo rm a ció n u tiliza n d o las funciones anteriores: lf(Dia>=23AndMes=9) 0rMes=l()0rMes=II 0r(Dia< =22AndMes= 12) Then Label6="Primav.
Rem SIGNO ZODIACAL
TTTc: lf(Dia>=21 And Mes=3) Or (Dia <= 20 And Mes = 4) Then Label7 = "Aries"
Fecha de Nacimiento |oi -05-68 1 I f (Dia>=21 And Mes=4) Or (Dia <= 20 And Mes = 5) Then Label7 = "Tauro"
N om bre de la E s ta c ió n en la q u e n a c ió jO toño
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 = "Cáncer"
S igno Z o d ia c a l al q u e p e rte n e c e |Tauro
lf(Dia>=23 And Mes = 7) Or (Dia <= 22 And Mes = 8) Then Label7 = "Leo"
N 9 de la S em ana del A ñ o e n q u e n a c ió h 8 I f (Dia>=23 And Mes=8) Or (Dia < =22 And Mes = 9) Then Label7 = "Virgo"
M eses T ranscurridos d e s d e q u e n a c ió {377
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 M es= ll) Then Label7="Escorpio"
F e c h a A c tu a l D e spués de 3 Sem anas lf(Dia>=22 And M es= Il) Or (Dia<=21 And Mes=12) Then Label7="Sagitario"
23-10-1999 If(Dia>=22 And Mes=12) Or (Dia< = 19 And M es=l) Then Label7="Capricorn."
I f (Dia>=20 And M es=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"
1. DIBUJAR LOS CONTROLES Label8 = DatePart("ww", CDate(Textl))
g n ^ — — ■ 1□ 1x 1 Label9 = DateDiff("m", CDate(Textl), Date)
Label 11 = DateAdd("ww", 3, Date)
L a b e ll jl* e x t l C om m andl j
Else
L a b e l2 L a b e IS MsgBox "La fecha ingresada no es correcta", 64, "Verifique"
L a b e l3 L a b e l7 Textl.SetFocus
End If
L a b e l4 L a b e lQ
End Sub
L = b » l5 L a b ' 19 Instrucciones del del Botón Salir
L a b e l! O Prívate Sub Command2_Click()
End
L a b e ll 1 C om m and?
End Sub

150 G ru po E d it o r ia l M egabyte^
O

m k » VISUAL B A SW co.no t e t e s e , . . CAPÍTULO III: Elementos de la Programación %


VAL
F U N C IO N E S T IP O H O R A
I .a fu n c ió n Val convierte una cadena de caracteres en un v a lo r num érico.
TIM E
VAL(Cadena)
D evu elve la H ora exacta del sistema H H :M M :S S .
STR
HOUR ,u fu n c ió n Str co nvierte un v a lo r num érico en una cadena de caracteres.
O btiene sólo las Horas (H H ). STR(Valor Numérico)
M INUTE CHR
D evuelve el carácter A S C II de un valor. C H R (V a lo r).
O btiene sólo los M in u to s (M M ).
ASC
SECOND D evuelve el v a lo r A S C II de un carácter. A S C (C arácter).
O btiene sólo los Segundos (SS). FORM AT
R ealiza lo m ism o que STR , y además da un fo rm a to a la salida de acuerdo
F U N C IO N E S N U M E R IC A S con el patrón especificado.
ABS Ejemplo:
O btiene el v a lo r absoluto de un núm ero. A B S (N ú m e ro ). Si la variable Sueldo = 635, la siguiente instru cció n :
BVT
Textl = Format(Sueldo,” ###,##0.00” )
O btiene la parte entera de un núm ero. IN T (N ú m e ro ).
SQR V is u a liz a en la caja de texto el v a lo r: 635.00
O btiene L a raíz cuadrada de un núm ero. S Q R (N úm ero ). E l s ím b o lo # rep re se n ta un d íg ito c u a lq u ie ra , e x c e p to los ceros no
RND
significativos. E l sím bolo cero (0) representa un d ígito cualquiera, incluyendo
R etorna un v a lo r random .
los ceros no s ig n ific a tiv o s y además redondea el resultado. E l punto indica
Para obtener núm eros aleatorios en un in te rv a lo dado, use esta fó rm u la :
la p osición del punto d ecim al y la com a es el separador de m iles. O tros
Int( i(Lím._superior-Km._inferior+l)*Rnd+ lím.Jnferior) sím bolos que tam bién se pueden usar son: + -$ () y espacios. E l sím bo lo %
Por ejem plo, para obtener números aleatorios entre 12 y 50 u tilic e la siguiente representa el v a lo r p o r ciento y añade este sím bolo al resultado.
form ula:
Para indicar el separador decimal (punto o coma) debe hacerlo en la
Int((50 - 12 + 1) * Rnd + 12) configuración del Windows.
RANDO M IZE
In ic ia liz a el generador de núm eros aleatorios, p e rm itie n d o que no se repita ISNUM ERIC
la secuencia de núm eros aleatorios anteriores. Perm ite saber si un v a lo r se puede considerar com o num érico.

SGN ISNUMERIC(Valor)

O btiene el signo de un núm ero. SGN(Número) ISEM PTY


P erm ite saber si una variab le está vacía.
-1 Negativo, 0 Cero, 1 Positivo
ISEMPTY (Variable)
HEX
C on vie rte un n úm ero a Base H exa de cim a l. HEX(Número). ISNULL
OCT Perm ite saber si el contenido de una variab le no es válido.
C o n vie rte un núm ero a Base O ctal. OCT(Número). ISNULL(Variable)

152 G r u po E d it o r ia i Megabyte 1 fc 153 ^


O

ja m CAPÍTULO III: Elementos de la Programación ^


VISUAL BASIC como debe ser.
APLICACIÓN DESARROLLADA N° 15 NUEVAS FUNCIONES
Esta aplicación es un eje m p lo de la u tilid a d de las funciones tip o num éricas.

□ x L a Versión 6.0 de V isual Basic tiene las siguientes funciones:


ROUND
Ingrese un número j[~ Labell ¡(Textl

Label2 LabeIS
Esta fu n c ió n perm ite redondear un núm ero a una determ inada cantidad de
Parle Entera
Label3 LabellO Commandl decimales.
Parte Decima! M U E S TR A
Labe!4 LabelH
Round (Valor.; Número de Decimales)
Valor Absoluto Command?
NUEVO
Label5 Labell 2
M O NTHNAM E
R a íz cuadrada
Command3
SALIR
LabelB Labell 3 Esta fu n c ió n m uestra el nom bre del mes a p a rtir de un núm ero entre 1 y 12.
Signo del Número

Valor Octal (Base 8) Label? Labell 4 MonthName (Numero, Valor Lógico)


Valor Hexadecimal (Base 16) Labelô Labell 5 El núm ero debe estar entre 1 y 12 de lo c o n tra rio se m uestra un mensaje de
error. E l v a lo r ló g ic o es o pcion al: T rue in d ic a que el nom bre se m uestre en
abreviatura y False com pleto.
A sig ne la propiedad C aption al fo rm u la rio , botones de comandos y etiquetas
W EEKYDAYNAME
desde L a b e ll hasta L a b e l 8 . E l resto debe estar en blanco. M uestra el nom bre del día de la semana a p a rtir de un N ° entre 1 y 7 según
Instrucciones del botón M U E STR A: el 1er. D ía de la semana co nfig urad o.
Prívate Sub Commandl_Click() WeekDayName (Número, Valor lógico,Primer Día)
Dim NUM As Double
I f lsNumeric(Textl) Then N úm ero debe estar entre 1 y 7, V a lo r L ó g ic o in d ic a si el nom bre se muestra
NUM = Val(Textl) en abreviatura. P rim e r D ía co n fig u ra el día que se debe considerar el que
Label9 = Int(NUM)
LabellO = NUM - Val(Label9) in ic ia la semana y puede tener uno de los siguientes valores:
Labelll = Abs(NUM)
1 Domingo (Predeterminado), 2 Lunes, 3 M artes,... 7 Sábado.
‘No se puede obtener la Raíz Cuadrada de un # Negativo
IfNUM > 0 Then Por ejem plo: W e e kD ayN am e(3,F alse,5) d evuelve sábado porque el 1er día
Lab el 12 = Sqr(NUM)
Else de la semana se ha c o n fig u ra d o a 5 (Jueves).
Lab el 12 - "No Existe" R E P LA C E
End If Reemplaza una subcadena p o r otra dentro de una cadena.
Labell 3 = Sgn(NUM)
LabelM = Oct(NUM) Replace (Cadena, SubCadenal, SubCadena2, ValorI, Valor2)
Labell 5 = Hex(NUM) ( 'adena es aquella donde se desea re a liz a r el reem plazo.
Else
MsgBox "Debe ingresar un valor numérico", 0, "Sólo números" SubCadenal es la subcadena que va hacer reemplazada.
Textl = "" SubCadenal es la subcadena reem plazante.
Textl.SetFocus V a lo r 1 es un v a lo r que in d ic a la p osición de la cadena desde donde se va a
End If luiscar la subcadena que va hacer reemplazada.
End Sub V a lo ré in d ic a la ca n tid a d de veces que desea buscar y ree m p laza r la
En el botón N ue vo, lim p ie T e x tl y las etiquetas desde L ab el9 hasta Label5 ubcadena. E l v a lo r - 1 (pred eterm in ad o) in d ic a que busque y reem place
lodas las subcadenas que se encuentren.
y el botón S a lir escriba la in stru cció n E N D .
|VISUAL BASIC como debe ser... - "xs CAPITULO III: Elementos de la Programación
STRREVERSE FUNCIÓN SHELL
In v ie rte los caracteres de una cadena.

StrReverse (Cadena) La fu n c ió n S H E L L se u tiliz a para ejecutar program as (archivos ejecutables


com o *.E X E , *.C O M , etc.) desde el V isu a l Basic.
El ú ltim o carácter lo coloca p rim e ro , el p e n ú ltim o lo coloca segundo, etc. Su sintaxis es:
FORMATCURRENCY
A sig n a un fo rm a to m onetario a los núm eros. El signo m onetario depende de SHELL “RUTA Y NOMBRE DEL PROGRAMA”,
la C onfigu ración R egional.
La ruta es la d ire cció n exacta de la carpeta donde se encuentra el program a
FormatCurrency (Número, Valorl, Valor2, Valor3, Valor4) que se desea ejecutar.
V a lo r l: Indica la cantidad de decimales. E l v a lo r in d ic a el e stilo de la ventana donde se va a ejecutar el program a:
Valor2: Indica si se muestra un cero en la parte entera cuando no hay decimales.
Valor3: Indica si los negativos deben estar entre paréntesis. 0 : O cu lta la ventana donde se ejecuta el archivo.
Valor4: Indica si se muestra el separador para los miles. 1 : E jecu ta el p ro g ra m a en su ve n ta n a d e ta m a ñ o norm al.
2 : E jecuta el program a con su ventana m in im iza da .
Valor2, valor3 y Valor4 pueden ser: 3 : E jecuta el program a con su ventana m axim izada.
-1 SI, 0 N O ,- 2 Según la configuración Regional 4 : E jecuta el program a con el tam año y posición mas reciente de su
NOTA ventana. L a ventana actual co n tin u a activa.
Si no in d ica n in gú n valor, V isu a l Basic m uestra los resultados según la 6: Ejecuta el program a con su ventana m in im iz a d a y la ventana actual
co nfig uració n regional (In icio /C o n fig u ra ció n /P a n e l de C o n tro l) c o ntin ua activa.

Si no escribe el v a lo r el program a se vis u a liz a con la ventana m in im iza da .


Configuración Por ejem plo, la siguiente in s tru c c ió n ejecuta la calculadora del w ind ow s.
regional

FORMATNUMBER Shell "c:\window s\calc.exe", 1


Esta fu n c ió n es s im ila r a F o rm a tC u rre n c y pero no m uestra el s ím b o lo D e sp u é s d e e je c u ta r el p ro g ra m a , V isual B a sic c o n tin u a e je c u ta n d o
m onetario. la s s ig u ie n te s in s tr u c c io n e s q u e s ig u e n a l S H E L L . E sto n o s d á la
FORMATDATETIME p o s ib ilid a d d e e je c u ta r v a rio s p ro g ra m a s. P o r e je m p lo la s sig u ie n te s
A sig n a un fo rm a to a datos tip o fecha y hora. in stru c c io n e s e je c u ta n la ca lc u la d o ra y el p a n e l de control.
Form atD ateTim e(F echa, Valor) Shell "c:\windows\calc.exe", 1
E l v a lo r puede ser: Shell "c:\windows\control.exe", 1
0: F orm ato general (Fecha u H ora). L a f u n c i ó n S h e ll d e v u e lv e un v a lo r tip o D o u b le q u e in d ic a s i e l
1: Form ato de fecha largo. p ro g ra m a se ha e je cu ta d o con éxito, ca so c o n tra rio d evu e lv e cero (0).
2: Form ato de fecha corto. P a ra o b te n e r este v a lo r u tilice la sig u ie n te sin taxis:
3: F orm ato de hora según la c o n fig u ra c ió n regional.
4: M uestra la hora en fo rm a to de 24 hora. V A R IA B LE = SH E LL(“ R U TAY NOM BRE D E L PROG RAM A” , VALOR)

156 G r u po E d it o r ia l Meeabvte
|¡ I ¡ ¡ i > VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación %
APLICACIÓN DESARROLLADA N° 16 FOR-NEXT
L a siguiente a p lica ció n p erm ite ejecutar desde el V isu a l B a sic algunos P erm ite crear bucles. U n bucle es la re p e tic ió n de una o más instrucciones.
program as. Su sintaxis es:
F O R variable = v.inicial T O v.final S T E P incremento
¡a. u so d e l s h ell
_________________________ M
Instrucción(es)
|P r o g r a m a a E /e c u ta r : N E X T variable
STEP: Sólo es necesario cuando el incremento es diferente de 1.
C A LC U LA D O R A E LE C TR O N IC A EXIT FORM: Permite salir del bucle.
DO-LOOP
MICROSOFT W O R D
Permite ejecutar una o más instrucciones mientras una condición se cumpla
MICROSOFT EXCEL (W H IL E ) o hasta que se cum pla una c o n d ic ió n ( U N T IL ). Tiene cuatro
sintaxis:
EXP LO R A D O R DE W IN D O W S
D o W hile Condición D o Until Condición
SALIR A L D .O .S. Instrucción(es) Instrucción(es)

í...... FIN A L IZ A R ....... ]} Loop Loop


Do Do
Instrucción(es) Instrucción(es)
Si sale al D.O.S., escriba EXIT para regresar al Windows.
Loop W hile Condición L oop Until Condición
La instrucción de cada Botón de Comando es:
M UY IMPORTANTE
Private Sub Command 1JClickf) M ientras Visual Basic está ejecutando un bucle, no reconoce ningún evento. Esto
Shell "C:\WlNDOWS\CALC.EXE", 1 lo p u ed e evitar con la instrucción D oEvents.
End Sub
DOEVENTS
Prívate Sub Command2_Click()
Shell "C:\Archivos deprograma\Microsoft Offtce\Office\WINWORD.EXE", 1 D oE ven ts p a sa el co n tro l a l sistem a o p era tivo y verifica si a ocu rrid o
End Sub a lg ú n even to . S i a o c u rrid o un e v e n to o e v e n to s lo s e je c u ta y lu eg o
Prívate Sub Commands_Click() co n tin u a con el e v en to inicial.
Shell "C:\Archivos de programa\Microsoft Ojfice\Office\EXCEL.EXE", I E je m p lo s:
End Sub
Dim x Integer E stas instrucciones m ueven la etiqueta N° 1 de
Prívate Sub Command4_Click()
For x = 1 To 10000 izq u ierd a a d erec h a y no se reco n o ce n ingún
Shell "C:\WINDOWS\EXPLORER.EXE", I
End Sub Labell .Left = x evento hasta que termine.
Next
Prívate Sub Command5_Click()
Shell "C:\WINDOWS\COMMAND.COM", 1 Dim x As Integer
End Sub E stas instrucciones m ueven la etiqueta N° 1 de
For x = / To 10000 izquierda a derecha, p ero cada vez que ejecuta el
Prívate Sub Commandó_Click() Labe 11. Left = x bucle verifica si ha ocurrido algún evento pa ra
End Doevents ejecutarlo.
End Sub Next

'mm ™ G ru po E d it o r ia l Megabyte
m s* VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
P A S O N ° 0 3 :E s c rib ir las instrucciones para los controles.
APLICACION DESARROLLADA N° 17
Se debe ingresar un texto y luego se debe m ostrar letra p o r letra del texto Instrucciones del botón OK:
ju n to con su v a lo r A S C II y su va lo r B in a rio ; además, el va lo r b in a rio se debe
desplazar de izqu ierda a derecha p o r el fo rm u la rio . Prívate Sub Commandl_C!ick()
TEXTO = Trim(Textl)
Ö E JE M P L O S D E B U C LES • . |n| x| For X - 1 To Len( TEXTO)
Label7 = " "
IN G R E S E U N T E X T O
LETRA = Mid(TEXTO, X, 1)
LE TR A
Label5 = LETRA
VALOR = Asc( LETRA)
V A L O R A SC II Labeló = VALOR
La be 17 = BlNARIO( VALOR)
V A L O R B IN A R IO
Label8 = Label7
‘Mvimiento del valor Binario
OK
For T = 1 Tó 5000 Step 0.1
Label8.Left - T
Next T
N extX
End
P A S O N ° 01: D ib u ja r los controles
End Sub

I ^ Form » -.In i x |
Instrucciones de la función BINARIO:
L a b e ll IfT e x tl

La b e l2 LabeIS Prívate Function BINARIO(NUM)


Dim VALORBIN As String
La b e l3 LabelB Do While NUM > 1
RESTO = NUM Mod 2
La bel4 L a bel?
NUM = N U M \2
C om m a n d l I
VALORBIN = Trim(Str(RESTO)) + Trim( VALORBIN)
Loop
LabelQ VALORBIN = Trím(Str(NUM)) + VALORBIN
BINARIO = VALORBIN
End Function
P A S O N ° 02: A s ig n a r las propiedades a los controles.
A sig n e la p ropiedad C ap tion a los controles según el ejem plo.

160 G ru po E d it o r ia l Megabyte < 16, 4 ¡£ »


ill i^ VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación ^ ¡¡¡¡¡1

i
APLICACIÓN DESARROLLADA N° 18
ARRAYS Se debe ingresar un núm ero del 1 al 7 y v is u a liz a r el nom bre del día de la
semana.
U n array perm ite almacenar en una sola variable, varios elementos del m ism o
tip o u tiliz a n d o un índice. El p rim e r elem ento de un array se alm acena en - I1-n|
---- x |1
---1----
fo rm a predeterm inada en el índice 0, pero con la instru cció n O PTIO N B A SE
7, le in d ica al V isual Basic que el p rim e r elem ento de un array se almacene Ingrese un número (1-7]
en el índice 1.
C on la palabra P U B L IC se declaran arrays globales y lo debe hacer en la
sección de declaraciones de un m ód ulo .
C on la palabra D IM se declaran arrays a n iv e l del m ód ulo o del fo rm u la rio .
GK
C on la palabra STA TIC se declaran arrays locales a un p rocedim iento.
Salir

A r r a y s E s tá tic o s .
Se caracterizan porque tienen un n úm ero fijo de elementos. E jem plos: 1. D ib u ja r los controles y asignarle sus propiedades.
Dim Nom (19) A s String 2. D eclarar en la sección de declaración del fo rm u la rio .
D ecla ra la va riab le N om de tip o cadena que p erm ite alm acenar veinte Dim D (1 To 7) As String * 9
elem entos (de 0 a 19). 3. A s ig n a r los elementos al array en F O R M L O A D .
Dim A (1 to 15) A s Integer Prívate Sub Form_Load()
'Almacena los elementos en el Array
D eclara la variable A de tipo integer que perm ite alm acenar 15 elementos D (1) = "Lunes"
(de 1 a 15). D(2) = "Martes"
Static N um (1 to 4, 1 to 4) A s Integer D(3) = "Mi ércoles"
D(4) = "Jueves"
D eclara la variable N um de dos dim ensiones (4 * 4) de tip o Entero. D(5) = "Viernes"
A r r a y s D in á m ic o s . D(6) = "Sábado"
D (7) = "Domingo"
Se caracterizan porque sus dim ensiones no son fijas.
End Sub
E l espacio para un array d in ám ico será asignado durante la e jecución del 4. Escribrir las instrucciones del Botón OK.
pro gram a . Un array d in ám ico, puede ser red im e nsion a do en c u a lq u ie r Prívate Sub Commandl_Click()
m om ento de la ejecución del program a. Dim N As Integer
N = Val(Textl)
R E D IM If N >= 1 And N <= 7 Then
Es una in stru cció n que perm ite ca m b ia r e l núm ero de elementos de un array, L ubel2- "El número ingresado representa el día "+D(N)
se debe e scrib ir solamente en un p ro ce d im ie n to . E je m p lo: El se
MsgBox "Sólo números del 1 al 7", 0, "Por favor"
Dim Num () As Integer Textl = ""
D ecla ra ción din ám ica de la va riab le N u m de tip o Entero. Textl.SetFocus
En el m om ento que necesite asignarle espacio puede e scribir: End If
End Sub
Redim N um (N )
D onde N contiene el valor con el que desea redim ensionar la variable N um . El botón S A L IR debe tener la in stru cció n E N D .

íljllllll^ 162 G ru p o E d ito ria l Megabvte


(
VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación

CREAR UNARRAYDE CONTROLES APLICACIÓN DESARROLLADA N° 19


E xisten dos form as de crear un array de controles: L a siguiente aplicación perm ite ingresar valores en un array de 4 X 4 ó
l.Cuando los controles ya están dibujados en el formulario. lle n a rlo con valores al azar entre 1 y 50, luego se pueden ordenar en fo rm a
Si los controles ya están dibujados en el fo rm u la rio y desea crear con ellos ascendente y restaurar los valores iniciale s.
un array de controles, asígneles el m ism o nom bre (propiedad Ñ A M E ) a PASO N° 1: D ib u ja r los controles
cada uno de ellos. A l escribir el m ism o nom bre al segundo c o n tro l se
ti, F o tm l ¡U s T E l
visualiza el siguiente mensaje:
F ra m e l
M icrosoft V isu a l Basic |[T e x tl |T e x t2 I T e xt3 j T ext4 C om m andl

Y a existe un control llam a do 'N'. ¿ D e se a crear u n a m atriz de C om m a n d 2


| t e xt5 JT extG |Tex<7 I T e x t8
co n tro le s ?
C om m a n d 3
1T ext9 I T e x tl 0 |T e x t1 1 T e x tl 2
Sí No
C om m a n d 4

|T e x t1 3 |T e x tl 4 | t e x tl 5 1T e x tl 6
C om m and5
Haga c lic k en el botón SI y continúe asignado el m ism o nom bre a los si­
guientes controles. Cuando todos los controles tienen un m ism o nom bre se
tiene un array con una sola dim ensión cuyos elementos se d iferen cian por el
PASO N° 2: Convertir las Cajas de Texto en un array.
v a lo r de su propiedad IN D E X de cada co n tro l, por ejem plo: E l p rim e r con­
tro l tendrá en su propiedad Index el v a lo r 0, el segundo c o n tro l tendrá el
Cree un array de controles con las cajas de te xto usando cualquiera de los
v a lo r 1, etc.
dos form as indicas y asígnele el n om bre N en la propiedad Ñame a cada
2. Cuando los controles todavía no están dibujados en el formulario.
una de ellas.
Si los controles todavía no los ha d ibujado en el fo rm u la rio , entonces d ib u ­
je sólo el p rim e r c o n tro l y asígnele, si lo desea, un nom bre diferente al que ¡i,. ORDENACION DE UN ARRAY
tiene en fo rm a predeterm inada, luego selecciónelo haciendo un C lic k en
V alores del Array
dich o co n tro l y pulse las teclas CTRL+C, para co p ia rlo en la m em oria
NUEVO
de la com putadora y después pulse las teclas CTRL+V, para pegarlo en
el fo rm u la rio . I2 1 I4 I 5
Í3

[ ' O R D E Ñ A R ']
L a p rim era vez que U d. pulsa CRTL+V, se visua liza el mensaje anterior,
haga C lic k en el botón SI y continúe pulsando CTRL+V hasta que tenga I8 I 12 !
1 |23 28
RESTAURAR I
la cantidad de controles deseadas. Cada c o n tro l que pega se ubica en la
parte superior izquierda del form ulario uno sobre otro, con el m ism o nombre,
I 43 1 44 |S3 |54
LLENAR
pero con la propiedad IN D E X diferente. Cuando term ine ubíquelos en su
respectivo lu g a r y en el orden correcto.

L as tecla s C T R L + C eq uivalen a la o p ció n C o p ia r (C o p y) de la opción


j GG
I 76 leo 1154 SALIR

E D IT A R (E D IT ) d e la B arra de M en ú y C T R L + V eq u iv a le a la opción
P e g a r (P aste).

164 G ru p o E d ito r ia l Mega bvte


CAPÍTULO III: Elementos de la Programación ^|É feiÍP
áüÉyÉÍ!' VISUAL BASIC como debe ser.. .
PASO N° 3: Escribir las instrucciones para los controles. Instrucciones del Botón LLENAR
En el objeto G E N E R A L y en el evento D E S C R IP C IO N E S del fo rm u la rio Estas instrucciones llenan las cajas de texto con valores al azar entre 1 y 50.
declare las siguientes variables:

L a fu n c ió n R N D , perm ite obtener valores al azar y para obtener valores al


Se declara la variab le O R IG E N tip o array a n iv e l de fo rm u la rio para poder
azar entre un rango determ inado se u tiliz a la siguiente fo rm u la :
llam ar a los datos desde cu alqu ier pro ced im ien to .
La va ria b le Y A se u tiliz a para saber si ya se alm acenaron los valores Int((límitesup - límiteinf + 1) * Rnd + límiteinf)
originales en el array O R IG E N
Límitesup:
Dim ORIGEN( 16) As Integer
Es el v a lo r m á xim o que deseamos obtener.
Dim YA As Boolean

Instrucciones del Evento FORM ACTIVATE Límiteinf:


Es el v a lo r m ín im o que se deseamos obtener.
A l activarse el fo rm u la rio se llam an a las instrucciones del C o m m a n d l para
lim p ia r el contenido de las cajas de texto. Por e je m p lo para obtener valores al azar sólo entre 7 y 36 se escribe:

Prívate Sub Form_Activate()


lnt( ( 3 6 - 7 + 1 ) * Rnd + 7).
‘A l activarse el formulario se llaman a las instrucciones del
'Commandl para limpiar el contenido de las cajas de texto
CommandljC lick Int:
End Sub Es una fu n c ió n que p erm ite obtener sólo la parte entera (sin decim ales) de
un valor.

Instrucciones del Botón NUEVO Prívate Sub Command4_Clíck()


‘Almacena en las cajas de texto
Estas instrucciones perm iten lim p ia r el contenido de las cajas de texto para
‘valor al azar entre 1 y 50
ingresar nuevos valores.
F orX = OTo 15
Prívate Sub Commandl_Click() N(X) = lnt((50 -1 + 1 )* Rnd + I)
Dim X A i Integer Next X
F orX = OTo 15 Activa el botón ORDENAR
N(X) = " " Command2.Enabled = True
N extX
‘Desactiva el botón RESTAURAR
N(0).SetFocus
Command3.Enabled = False
‘Activa el botón ORDENAR
Command2.Enabled = True ‘Inicializa la variable Ya
‘Inicializa la variable Ya YA = False
YA = False End Sub
End Sub

166 G ru p o E d ito ria l Megabyte


VISUAL BASIC como debe. ser. _. CAPÍTULO III: Elementos de la Programación
Instrucciones del Botón ORDENAR APLICACIÓN DESARROLLADA N° 20
Prívate Sub C o m m a n d l _C lick()
La siguiente a plicación perm ite m anejar los elem entos de array de 4 x 4.
Dim A R ( 16) A i Integer
‘Copia los valores de las cajas de texto en las Estos elementos son valores n um éricos de tip o entero con los cuales se
‘variables tipo array A R y O RIG EN realiza los siguientes procesos:
F o r X = 0 T o l5
I fN o t YA Then 1.- Suma las filas.
O RIG EN(X) = Val(N(X)) 2.- Suma las colum nas
E n d lf 3.- Sum ar las diagonales, etc.
A R (X ) = Val(N(X))
N ext a. MANEJO DE ARRAYS ■ ■ ■ - !n |x ¡

‘O rdena los valores que se encuentran en la variable A R C0L1 COL 2 COL 3 COLI
Do FILA 1 [ i [2 [6 p p - LIMPIAR EL ARRAY i
sw - 0
F or X = 0 7o 14 F IU 2 |Í2 |— - p------- f -------- |20 LIMPIA LOS BESULTADOsj

I fO p tio n l Then FIL43 p [5 [3 jÍ3 SUMA U S COLUMNAS |

IfA R (X ) > A R (X + 1) Then n w . p ------- [ío — p ----------p — p - SUMA LAS ElLAS |


A X - A R (X ) [ _ _

A R (X ) = A R (X + 1)
A R (X + 1) = A X | SUMAS INDEPENDIENTES -----
sw - 1
COLUMNA 1 | COLUMNA 2 | COLUMNA 3 | COLUMNA 4 |
E n d lf
Else FILAI 1 FILA 2 | FILA3 1 F ILM 1 1
IfA R (X ) < A R (X + 1) Then
DIAGONAL Ni 1 | \ ) | j DIAGONALN12 [ / ) !
A X = A R (X )
A R (X ) = A R ( X + 1) |25 |15
SAUR 1 1

A R (X + 1) - A X
sw = 1
E n d lf
E n d lf PASO N° 1: Dibujar los controles.
N e x tX
Loop Until sw = O Labell Label2 Label3 LabeM .........................
‘M uestra los valores ordenados en las cajas de textos
F o r X - O To 15 Label5

|7^r fr¿r [ f ür l*™ ;
N (X ) = A R (X ) ; 1Text5 ¡Text6 |Text7 jíexl8 Label14 • - Command2 |
Labelß
N e x tX
YA - True : Labd7 •f r ^ T fie x iT ö f í ^ ñ T fr3 rt2 \ Command3 |

• Label8 |TexH3 ¡Text14 |TexH5 fTextlG L-abel16 Command4 |


‘A ctiva el botón restaurar
C om m and3.E nabled - True : LabeB LabellO Labdl.1 Label12 : : : : : : :

E nd Sub
Instrucciones del Botón RESTAURAR
E sta s in s tr u c c io n e s m u e s tra n en la s c a ja s ele te x to lo s va lo re s en la
p o s ic ió n o r ig in a l (a n te s ele o rd e n a rse ).
Comrr¡aiid9 I Commandl 0 I Command'll I Commandl 2 I;
Prívate Sub Command3_Click()
For X = O To 15 Commandl 3 Commandl 4

N(X) = ORICEN(X) Labell 8 Labell 9


NextX Commandl 5

End Sub
168 G ru p o E d ito r ia l Megabyte
¡

á lll^ É I’' VISUAL BASIC como debe ser.. . > CAPÍTULO III: Elementos de la Programación
PASO N° 2: Convertir las Cajas de Texto en un array. PASO N° 6: Escribir las instrucciones para los controles.
En la ventana de declaración del fo rm u la rio d efin a las siguientes variables:
U tilic e cualquiera de las dos form as explicadas. A signe el nom bre N a cada
una de las cajas de Texto. Dim COL, F1L, X, ST As Integer
Dim A(1 To 4, 1 To 4), SUMA(1 To 4) As Integer

PASO N" 3: Convertir las Etiquetas desde Label9 hasta Labell2 C rear el siguiente p ro ced im ien to en el fo rm u la rio .
en un array de controles. E ste p ro ce d im ien to p e rm ite p a sa r los valores a lm a c en a d o s en la s cajas
A signe a cada una de estas etiquetas el nom bre SC empezando p o r Label9 d e texto a l a rra y d efin id o en la va ria b le A .
en form a ordenada hasta label 12, pero al fin a l cambie el v a lo r de la propiedad
NO TA:
IN D E X de cada etiqueta de tal manera que Label9 se llam e SC, pero que su
E l ín d ic e d e l a rra y d o n d e se p a sa n lo s va lo re s d e la s c a ja s d e texto
propiedad IN D E X tenga el v a lo r 1, L a b e llO tenga en su propiedad IN D E X
em p ie za n con el v a lo r 1.
el va lo r 2, Label 11 tenga en su propiedad IN D E X el v a lo r 3, L ab el 12 tenga
en su propiedad IN D E X el va lo r 4. Sub PASAR()
X=0
Para cam biar el va lo r de la propiedad IN D E X de cada c o n tro l debe empezar For COL = lT o 4
p o r el ultimo (en el e je m p lo em piece p o r L a b e l 12). Esto nos perm ite For FIL = lT o 4
A(COL, FIL) = Val(N(X))
program ar de una fo rm a más cóm oda p o r que el array de controles em pieza
X =X+1
con el In dice uno (1) y no con el cero (0).
Next FIL
Next COL
PASO N° 4: Convertir las Etiquetas desde Labell3 hasta Labelló End Sub
en un nuevo array de controles.
Instrucciones para el evento FORM_ACTIVATE.
Prívate Sub Form_Activate()
Asigne a cada una de estas etiquetas el nom bre SF empezando p o r Label 13
‘Al activarse el formulario llama al procedimiento
en form a ordenada hasta label 16, pero al fin a l cambie el va lo r de la propiedad
‘COMMAND1JCLICK (Limpia los valores) y al
IN D E X de cada etiqueta de tal manera que Label 13 se llam e SF, pero que 'procedimiento COMMAND2_CLICK (Limpia los resultados)
su propiedad IN D E X tenga el va lo r 1, Label 14 tenga en su propiedad IN D E X Commandl jC lick
el va lo r 2, Label 15 tenga en su propiedad ÍN D E X el v a lo r 3 y Label 16 tenga Command2_Cl ick
en su propiedad IN D E X el va lo r 4. End Sub
Botón LIMPIAR EL ARRAY Botón L IM P IA LOS RESULTADOS
MUY IMPORTANTE
Private Sub Commandl_Click() Prívate Sub Command2_Click()
N o se o lvid e em pezar por el ú ltim o co n tro l (en el e je m p lo em piece por
'Limpia los valores del array 'Limpia los resultados
L a b e lló ) para ca m biar el va lo r de la propiedad IN D E X . F orX - OTo 15 F orX - 1 To 4
PASO N° 5: Asignar a los otros controles sus propiedades. N(X) = "" SF(X) = ""
L a propiedad p rin c ip a l a m o d ific a r es C A P T IO N para los botones de Next X SC(X) = ""
comandos com o para las etiquetas, algunas etiquetas tienen además en la N(0).SetFocus Next X
propiedad B O R D E R S T Y L E el v a lo r 1-S ing le Fixed. End Sub End Sub

170 ^ G ru po E d it o r ia l Megabyte < ^ ¡||¡|| 171


/

VISUAL BASIC como debe ser.. CAPITULO III: Elementos de la


In s tru c c io n e s d e l B o tó n S U M A L A S C O L U M N A S Instrucciones: Botón COLUMNA 3 Instrucciones:Botón COLUMNA 4
Prívate Sub Command7_Click() Prívate Sub Command8_Click()
P rivate Sub C om m and3_C lick()
‘Suma sólo la columna 3 ‘Suma sólo la columna 4
‘Llam a al procedim iento "PASAR"
S T -0 ST= 0
PASAR
PASAR PASAR
‘SUM A L A S C O LU M N A S D E L A R R AY
Command2_Click Command2_Click
F or CO L = 1 To 4
For X = lT o 4 F orX = lT o 4
SU M A(C O L) = 0
S T = S T + A(X, 3) ST = ST + A(X, 4)
F or FIL = 1 To 4
NextX NextX
SU M A (C O L) = SU M A (C O L) + A (F IL, COL)
SC(3) = ST SC(4) = ST
N ext FIL
End Sub End Sub
N ext COL
F o r X = 1 To 4 Instrucciones del Botón FILA 1 Instrucciones del Botón FILA 2
SC (X ) = SU M A (X ) Prívate Sub Command9_Click() Prívate Sub Commandl 0_Click()
N e x tX ‘Suma sólo la fila 1 ‘Suma sólo la fila 2
E nd Sub ST = 0 ST = 0
PASAR PASAR
In s tru c c io n e s d e l B o tó n S U M A L A S F IL A S Command2_Click Command2_Click
Prívate Sub C om m and4_C lick() F orX = I To 4 For X = 1 To 4
S T = S T + A (l, X) ST = ST + A(2, X)
‘Llam a al p rocedim iento "PASAR"
NextX NextX
PASAR
SF( 1) = ST SF(2) = ST
‘SUM A L A S F ILA S D E L A R R A Y
End Sub End Sub
F or F IL = I To 4
SU M A (F IL) = 0 Instrucciones del Botón FILA 3 Instrucciones del Botón FILA 4
For CO L = 1 To 4 Prívate Sub Commandl 1_Click() Prívate Sub Commandl 2_Clíck()
SU M A (F IL) = SU M A (F IL ) + A(FIL, CO L) ‘Suma sólo la fila 3 ‘Suma sólo la fila 4
N ext COL ST = 0 ST = 0
PASAR PASAR
N ext FIL
Commcind2_Click Command2_Clíck
F or X = 1 To 4
For X = IT o 4 For X = 1 To 4
SF(X) = SU M A(X)
ST = ST + A(3, X) ST = ST + A(4, X)
N e x tX
NextX NextX
E nd Sub SF(3) = ST SF(4) = ST
Instrucciones: Botón COLUMNA 1 Instrucciones: Botón COLUMNA 2 End Sub End Sub
Prívate Sub Command5_Click() Prívate Sub Command6_Click()
‘Suma sólo la columna 1 ‘Suma sólo la columna 2 Instruc.:Botón DIAGONAL 1(\) Instruc.: Botón DIAGONAL 2 (/)
ST = 0 PASAR Prívate Sub Commandl 3_Click() Prívate Sub Commandl4_Click()
PASAR ‘Suma la diagonal 1 ( \ ) ‘Suma la diagonal 2 ( / )
ST = 0
PASAR PASAR
Command2_Click Command2_Click
ST = 0 ST = 0
F orX = 1 To 4 F orX = 1 To 4
F orX = 1 To 4 For X = 1 To 4
ST = ST + A(X, 1) ST = ST + A(X, 2) ST = ST + A(X, X) ST = ST + A(X, 5 - X)
NextX NextX NextX NextX
S C (1 ) = ST SC(2) = ST Labe! 18 = ST Lab el 19 = ST
End Sub End Sub Eiul Sub End Sub

G ru p o E d ito ria l M egabyte^ 173


VISUAL BASIC como debe ser... CAPÍTULO III: Elementos de la Programación
APLICACIÓN DESARROLLADA N° 21 PASO N° 2: Asignar las propiedades a los controles.
La siguiente a plicación perm ite re a liza r operaciones con arrays com o sumar A las etiquetas N° 1, 2 y 3, al Fram e y a los C om m ands, asígneles en su
dos arrays, restar, m u ltip lic a r, etc. C a p tio n los mensajes com o en el eje m p lo.
m. O P E R A C IO N E S C O N A R R A Y S PASO N° 3: Escribir las instrucciones para los controles.
AR RAY " A " ARRAY "B " D efinir las variables a nivel de Form ulario
[a p¡ Í5 [5 [9 pr Dim X, F, C A s Byte
Dim AA( 1 To 3, 1 To 3) A s Inte ge r
I3 |7 |-4 |7 1 10
Dim AB( ¡ T o 3, 1 To 3) A s Integer
Io |-5 |-1
I9 3 1
Dim AR( I To 3, ¡ To 3) A s Single
Transpuesta | Transpuesta |
Instrucciones del Form_Activate.
R E SU LTADO Prívate Sub Form_Activate()
Borrar | Rem Limpian el contenido de los arrays
I 13 I 8 1 4 For X = OTo 8
Llenar j
I 10 1 8 1 6 A(X) = »"
Salir j
1 9 1 -2 i ° B(X) = ""
OPERACIONES : R(X) = ""
N extX
i ¿ urna i| R e sta J M ultip lic a [ d iv id e | 2A * 3B A(0).SetFocus
End Sub
Instrucciones del Botón LLE N A R .
PASO N° 1: Dibujar los controles Prívate Sub Command9_Click() •
D ib u je los co ntrole s com o de m uestran en el ejemplo. Para el 1er. A rra y, Rem Llenan los dos Arrays con valores entre -5 y ¡0.
d ib u je la le ra ., caja de texto y asígnele el nombre (Ñam e) A, luego cópiela Randomize
F o rX = OTo 8
hasta tener 9 (desde A (0 ) hasta A ( 8)). A l 2do. Array, asígnele el nom bre B A(X) = Int((10 - (-5) + l ) * R n d + (-5))
y al 3er.array (etiquetas) asígnele el nom bre R. B(X) = Int((10 - (-5) + ¡) * Rnd + (-5))
N e x tX
End Sub
Labell • ■• Label2 Instrucciones del Botón BO RRAR.
|T e x t l J T extl |Text1
Prívate Sub Command8_Click()
jTextl T extl Textl
Form_Activate
|T extl T extl Textl jT ex tl |Text1~ |T extl
End Sub
JT extl Textl Textl JTextl jT extl jTextl

Commandl - • Command2 I • Transpuesta para el Array A. Transpuesta para el Array B.


Private Sub Command¡_Click() Prívate Sub Com mandl_Click()
Label3
Rem Traspuesta del array A Rem Traspuesta del array B
Label4 Label4 Label4 Command8 PASAR PASAR
Label4 Label4 Label4 Commarid9 j For F - ¡T o 3 For F = 1 To 3
For C = 1 To 3 For C - ¡ To 3
Label4 Label4 Label4 Commandl 0
AR(C, F) = AA(F, C) AR(C, F) = AB(F, C)
Framel Next C Next C
Commands Command4 Commands Commands Command7 Next F Next F
MOSTRAR MOSTRAR
End Sub End Sub
174 G ru po E d it o r ia l M eg a b y te^
Ufo VISUAL BASIC como debe se r.. . CAPITULO III: Elementos de la Programación
Instrucciones del Botón SUMAR. Instrucciones del Botón RESTAR. Instrucciones del Botón DIVIDIR.
Prívate Sub Command3_Click() Prívate Sub CommandA_Click() Prívate Sub Command6_Click()
Rem Suma los valores. Rem Resta los valores. Rem Divide los valores de los Arrays
PASAR PASAR PASAR
For F = 1 To 3
For F ■=1 To3 For F - 1 To 3
For C = 1 To 3
For C = 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) AR(F,C)=AA(F,C)-AB(F,C) AR(F, C) = AA(F, C)/AB(F, C)
Next C Next C End If
Next F Next F Next C
MOSTRAR MOSTRAR Next F
End Sub End Sub Rem Muestra los resultados con 2 decimales
Dim N As Byte
Instrucciones del Botón MULTIPLICAR. For F = 1 To 3
Prívate Sub Command5_Click() For C = 1 To 3
Rem Multiplicación los valores de los Arrays R(N) = Format(AR(F, C), "##0.00")
Dim Y As Byte N = N+ 1
Next C ■
PASAR
Next F
For F - 1 To 3 End Sub
For C - 1 To 3
AR(F, C) = 0 Instrucciones del PROCEDIMIENTO PASAR.
For Y = 1 To 3 Sub PASAR()
AR(F, C) = AR(F, C) + (AA(F Y) * AB( Y, C)) 'Pasan los elementos desde los Text al Array Bidimesional.
Next Y Dim N As Byte
For F = 1 To 3
Next C
F orC = 1 To 3
Next F AA(F, C) = A(N)
MOSTRAR AB(F, O = B(N)
End Sub N = N+ 1
Next C
Instrucciones del Botón 2A + 3B (Multiplicación Escalar). Next F
Prívate Sub Command7_Click() End Sub
Rem Multiplicación Escalar 2A.3B
PASAR Instrucciones del Botón MOSTRAR.
For F = 1 To 3 'Muestran los resultados en el array R (etiquetas).
F orC = 1 To 3 Sub MOSTRARO
Dim N As Byte
AR(F, C) = AA(F, C )* 2 + AB(F, C) * 3 For F = 1 To 3
Next C For C = 1 To 3
Next F R(N) = AR(F, C)
MOSTRAR N = N+ I
End Sub Next C
Next F
End Sub
176 G ru po E d it o r ia l Megabyte 177 «
A S if r VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
ERRORES MAS COMUNES
PREG UNTAS DE REPASO Ng 03
S i a l e je c u ta r o d e sa rro lla r una a p lic a c ió n se m u e stra un m e n sa je de
error, trate d e so lu c io n a rlo Ud., m ism o, d e esa m a n era es p o c o p ro b a b le 1. Por defecto una variab le es de tip o :
c¡ue lo vu elva a com eter. 2. Escriba la sintaxis de la fu n c ió n M sgb ox.
3. Por qué es im portante Setfocus.
Microsoft Visual Basic 4. ¿Qué debe hacer para que no se produzca un e rro r cuando se quiere
u tiliz a r una variable no declarada o d efin id a?
Compile error: Variable no definida. Está usando una 5. E xp liq u e los atributos de una variable.
variable sin definirla. Defina la variable o 6. E xp liq u e las características de una variable, Loca l, a N iv e l de F orm ulario
Variable not defined
borre O PTIO N E X P L IC IT del objeto y G lobal.
GENERAL. 7. ¿Cóm o se activa la ventana para declarar variables a N iv e l de M ódulo?
Aceptar Ayuda
8. ¿Cóm o se declara la va riab le A de tip o In te ge r y de ám bito G lo ba l.
9. U na variable num érica p o r defecto tiene el v a lo r .....y la de tip o cadena
10. ¿C óm o se borra el contenido de una caja de textos?
Microsoft Visual Basic 11. ¿ Q u é v e n ta n a se v is u a liz a c o n la s ig u ie n te in s tr u c c ió n ?
R = M S G B O X (“ A C C E S O D E N E G A D O ” ,2 l , ” L O S IE N T O ” )
Compile error:
Se esperaba separador de lista o 12. De la pregunta a nte rio r ¿Qué v a lo r tom a la variable R si el usuario
* Expected: list separator o r ) paréntesis. hace c lic k en Cancelar?
Verifique que ha cerrado paréntesis. 13. ¿ Q u é v e n ta n a se v is u a liz a c o n la s ig u ie n te in s tr u c c ió n ?
T = M S G B O X (“ F IN A L IZ A L A A P L IC A C IO N ” ,3 6,’’R E S P O N D A ” )
[ Aceptar ] Ayuda
14. ¿Qué ventana se v is u a liz a con la siguiente in stru cció n ? M S G B O X
“ B ie nve nid o al Sistem a” .
15. E scriba los Iconos y Botones con su respectivo v a lo r que podem os
Microsoft Visual Basic visu a liza r en el M sgb ox.
16. ¿Qué valores puede d e v o lv e r el M s g b o x y a qué botón pertenece?
Compile error: Se esperaba THEN. 17. ¿Qué fu n c ió n cum ple: C H R (13 )?
Probablemente se o lv id o de escribir 18. ¿Qué es una palabra reservada y con qué palabra reservada se define
Expected: Then or GoTo
T H E N después de la condición en la una variable y qué fu n c ió n cum ple?
instrucción IF. 19. ¿Si en la ventana de declaración de variables se tiene la instru cció n
Aceptar jl Avuda O P T IO N E X P L IC IT qué s ig n ifica ?
20 ¿Cuantos tipos de p rocedim ientos existente?

— I IM P O R T A N T E
Run-time error '13': Con los conocim ientos adquiridos hasta ahora ya está en condiciones de
Type mismatch desarrollar m uchas Aplicaciones.
Error de Tipo
Los Datos o variables
son de diferente tipo.

End Debug Help

178 G ru p o E d ito r ia l Megabyte 179


CAPITULO IV

SISTEMA
DE
VENTAS

Castañeda O 54:42 AM

HORA
mm
: |1 1 :1 8 :2 5 PM

Salir
'v'rrr-—•

MEJORANDO EL ASPECTO
DE LOS FORMULARIOS
f
M A R C O (F R A M E ):

IIB p

Es un c o n tro l que se u tiliz a para m e jo ra r el aspecto de un fo rm u la rio y para


agrupar controles de tal manera que se puedan m anejar com o un sólo c o n tro l.
Se puede d ib u ja r sobre controles que están en el fo rm u la rio , los
cuales quedarán ocultos. Pulse las teclas < C T R L > + < K > para restaurar o
v is u a liz a r los controles ocultados. Esto no sucede con las etiquetas, por lo
que se recom ienda d ib u ja r p rim ero el F R A M E y luego las etiquetas (Label).

P R IN C IP A LE S PRO PIED AD ES D E UN F R A M E :
ÑAME
Perm ite asignarle un nom bre. Por defecto el nom bre es F ra m e l, Fram e2,
Fram e3 etc. Según el núm ero de m arcos que se d ib u je n en el fo rm u la rio .
BAC KC O LO R
Selecciona un c o lo r de fo n d o para el m arco.
BO R D ER STYLE
S elecciona el e stilo del borde.
C A P T IO N
A sig n a un T ítu lo al m arco.
EN ABLED
P erm ite que el m arco se encuentre a c tiv o o no.
FONT
Para cam biar el tip o , tam año y e stilo de letra.
FO RECO LO R
A sig na un c o lo r de las letra.
M O U S E P O IN T E R
Para seleccionar el tip o de puntero de mouse.
V IS IB L E
Para in d ic a r si se debe m ostrar el m arco.

NOTA :
Para agrupar varios controles en un m arco, p rim ero dibuje el m arco y encim a los
controles. C ualquier p ro p ied a d que le cam bia al m arco será tam bién pa ra los
controles que se encuentran dentro de él.

I w m ■ « m m
VISUAL BASIC como debe ser.. . -
E je m p lo : F IG U R A S (S H A P E ):
U d. puede desarrollar la siguiente a p lica ció n usando marcos.
0
a .. M A T R I C U L A D E A L U M N O S

-D A T O S PERSONALES Es un control que se u tiliza para m ejorar el aspecto de un fo rm u la rio dibujando


Nombre
fig u ra s de d iferen te form a.
Dirección
T eléfono j"

P R IN C IP A L E S P R O P IE D A D E S DE UN SHAPE:

ÑAME
Perm ite asignarle un nom bre. Por defecto el nom bre es S h a p e l, Shape2,
Shape3 etc. Según el núm ero de fig u ra s que se d ib u je n en el fo rm u la rio .
BAC KSTYLE
A S IG N A N D O CO LO RES
Selecciona el e stilo del fo n d o para la fig ura.
Q BCO LO R :
Es una fu n c ió n que p e rm ite asignar colores. BO RDERCO LO R
Su sintaxis es QBCOLOR(Valor). E l v a lo r es un num ero entre 0 y 15 que A sig n a un c o lo r para el borde de la fig u ra .
representa el v a lo r a asignar:
BO RD ERSTYLE
COLOR OSCURO CLARO
Negro 0 8 A s ig n a el estilo del borde.
Azul 1 9 B O R D E R W ID T H
Verde 2 10
Aguamarina 3 11 Para cam biar el ancho del borde.
Ro jo 4 12
Fucsia 5 13 F IL L C O L O R
Amarillo 6 14 A s ig n a el c o lo r que rellen a la fig u ra .
Blanco 7 15
F IL L S T Y L E
L a siguiente in s tru c c ió n asigna el c o lo r azul claro al fo rm u la rio N ° 1:
F orm l.B ackC olor = QBColor(9) Para in d ic a r el e stilo del llenado de la fig u ra .

RGB: SHAPE
Es una fu n c ió n que p e rm ite asignar un c o lo r que se obtiene de los colores Para seleccionar el tip o de la fig u ra que deseamos
R ojo , Verde y A z u l.
Su sintaxis es: R G B (Valorl, Valor2, Valor3). Los tres valores pueden ser I Shape lo - RectanaleHfföSS*‘
un núm ero entre 0 y 255 que representan la intensidad asignada a los colores 0 - Rectangle
R ojo, Verde y A z u l para obtener el c o lo r deseado. E l V a lo r l representa la 1 - Square
intensidad asignada al c o lo r R ojo, el V alor2 representa la intensidad asignada 2 - Oval
3 - Circle
al c o lo r Verde y el va lo r3 la intensidad para el c o lo r A z u l. 4 - Rounded Rectangle
L a s ig u ie n te in s tru c c ió n a sig na un c o lo r rosa do al fo r m u la r io N ° l: 5 - Rounded Square
F orm l.B ackC olor = RGB(255, 0, 190)
184 G ru p o E d ito r ia l Megabyte
MI
W t& m VISUAL BASIC como debe ser.. .
___________________ ____ o

LINEA (LINE): P IC T U R E B O X ( C A J A D E IM A G E N ) :

Es un control que se u tiliza para m ejorar el aspecto de un form u la rio dibujando


líneas. Es un control que se u tiliz a para m ejorar el aspecto de un fo rm u la rio
insertando dibujos o gráficos. Estos gráficos pueden ser M a p a de B its , Iconos
o M e ta rc h iv o s . Los g rá fic o s que se m uestran en este c o n tro l tom an
P R IN C IP A LE S PRO PIED AD ES D E L CO NTROL LIN E :
automáticamente el mismo tamaño del control.
Los archivos m apa de b its , son imágenes representadas por pixeles.
ÑAME
Norm almente estos archivos tienen la extensión *.BM P.
P erm ite asignarle un nom bre. P or defecto el nom bre es L in e l, L in e 2 , L in e 3
Los Iconos son gráficos que se u tiliz a n norm alm ente para representar
etc. Según el núm ero de líneas que se d ib u je n en el fo rm u la rio .
aplicaciones minimizadas en M ic ro s o ft W indow s. Estos archivos tienen la
BORDERCOLOR extensión *.IC O .
A sig n a un c o lo r para el borde de la línea. Los M e ta rc h iv o s representan gráficos como líneas, círculos, etc., como
BORDERSTYLE pixeles. Estos archivos normalmente tienen la extensión *.W M F . El este control
también puede mostrar archivos M etarchivos mejorados con la extensión * .JPG
A s ig n a el e stilo del borde.
y *.G IF.
BORDERWIDTH Ud., p u ed e utilizar cualquiera de los g ráficos que estén instalados en su
Para ca m b ia r el ancho del borde. com putadora o crear sus pro p io s gráficos utilizando p o r ejem plo el Paintbrush.
DRAWMODE PRINCIPALES PROPIEDADES DE UN PICTURE BOX:
A sig n a el m odo de la línea. ÑAME
VISIBLE P erm ite asignarle un nom bre. Por defecto el nom bre es P ic tu re l, Picture2,
Para in d ic a r si se desea visu a liz a r la fig u ra . Picture3, etc.
APPEARANCE
Ejemplo : Para seleccionar la apariencia del co ntrol.
El siguiente fo rm u la rio presenta algunos ejem plos de figuras y líneas que se AUTOSIZE
pueden d ib u ja r en una aplicación. Para in d ic a r si el g rá fico debe visualizarse con su tamaño o rig in a l o según el
tam año del P ictureB ox.
O
BAC KC O LO R
Selecciona un c o lo r para el fondo.
BORDERSTYLE
A sig n a el estilo del borde.
DRAWSTYLE
Asigna el estilo de línea de los círculos y cuadros creados con los métodos gráficos.
DRAW W IDTH
¡¡E tiq ue ta d e n tro de la Ftguid
\\ Asigna el ancho de línea de los círculos y cuadros creados con los métodos gráficos.
Y\
\ \
• .......
EN ABLED
A c tiv a o desactiva el co ntrol.

186 G ru p o E d ito r ia l M eg a b y te^


Ufo VISUAL BASIC como debe ser.
FILLCOLOR ■
METODOS G RÁFICO S
A s ig n a el c o lo r que se usado para lle n a r form as, tam bién se usa para llen ar
c írc u lo s y cuadros creados con los m étodos g ráficos C irc le y L in e . Son instrucciones que operan sobre un objeto com o un Form , P ictureBox,
FILLSTYLE P rin te r y efectúa operaciones de d ib u jo en tie m p o de ejecución com o una
A s ig n a el e stilo de re llen o para los controles Shape, así com o los círculos y
a nim a ción o sim ulación. L os m étodos g rá ficos son:
los cuadros creados con los m étodos g rá ficos C irc le y L in e .
FONTTRANSPARENT CIRCLE
In d ic a si el texto y los g ráficos de fo n d o de un objeto F orm o Printer, o de un
P erm ite d ib u ja r círculos, una elipses o arcos. S intaxis:
c o n tro l P ictu reB o x, se m uestran en el espacio situado entre los caracteres.
FORECOLOR C irc le (x ,y ), radio, c o lo r
A s ig n a el c o lo r para los círculos y los cuadros creados con los métodos Si se o m ite el c o lo r se tom a el de la p ropiedad F orecolor. Los argum entos
g rá fic o s C irc le y L in e . Para que se a ctive el c o lo r asignado, la propiedad X ,Y es el punto central del círcu lo . Por e je m p lo, la siguiente instru cció n
D ra w m o d e debe tener el v a lo r 13 - C o p y Pen d ib u ja un círcu lo en un c o n tro l P ic tu re B o x de c o lo r ro jo .
PICTURE
P ic tu re l.C irc le (1 0 0 0 ,4 0 0 ), 250, R G B (2 5 5 ,0 ,0 )
S elecciona el g rá fico o d ib u jo que se desea insertar en el fo rm u la rio . U d.
debe buscar el d ire c to rio donde se encuentran estos gráficos. Las características del c írc u lo dependen de los valores asignados a las pro­
SCALEMODE piedades: D raw style, F illc o lo r, etc.
In d ic a m ediante un v a lo r la unidad de m edida de las coordenadas del control. Para crear elipses o arcos u tilic e la sintaxis:
l= T w ip , 2 = P u n to s , 3 = P ix e l, 4 = C a rá c te r, 5 = P u lg a d a , 6 = M ilí m e tr o , C irc le (x ,y ), radio, color, in ic io , fin , aspecto
7=centím etro. In ic io y F in , se u tiliz a n para e spe cifica r en radianes las posiciones de in ic io
SCALEWIDTH y de fin del arco. E l in te rv a lo para ambos es de -2 p i radianes a 2 p i radianes.
In d ica el va lo r m áxim o del ancho de un control cuando se u tiliz a instrucciones E l v a lo r predeterm inado para in ic io es 0 radianes; el v a lo r predeterm inado
para g rá ficos.
para fin es 2 * pi radianes.
SCALEHEIGHT A specto, es un v a lo r de pre cisió n sim p le que in d ic a la relació n de aspecto
Indica el valor m áxim o de la altura de un control cuando se u tiliza instrucciones
del círculo. E l valor predeterminado es 1.0, lo que produce un círculo perfecto.
para g rá ficos.
VISIBLE
Para in d ic a r si se desea visu a liza r el d ib u jo o g rá fico .
LINE
Perm ite d ib u ja r líneas o rectángulos. S intaxis:
Ejemplo de una aplicación con el control PictureBox. Line (xl, yl) - (x2, y2), [color], [B][F]
n r m — n i mi 11« ■ miman m i n i n a ...........
i- Información dei A lu m n o ...... -...................................
X I y Y l , es el punto in ic ia l de la línea o rectángulo.
Alumno j
X 2 y Y 2 , es el punto fin a l de la línea o rectángulo.
I Curso !

N ota N* 01 |
B Es opcional. Si se in c lu y e , hace que se d ib u je un cuadro usando las
Nota N 9 02 I coordenadas para espe cifica r las esquinas opuestas del cuadro.
Promedio F Es opcional. Si se u tiliza la opción B, la opción F especifica que el
Observación
cuadro se llena con el m ism o co lo r u tiliza do para d ib uja r el cuadro. N o puede
Opc/ones Dispan/bfes: u tiliza r F sin B. Si se u tiliza B sin F, el cuadro se llena con los valores actuales de
N uevo Calcular el Promedio Salir
F illC o lo r y F illS tyle. E l valor predeterminado para F illS tyle es transparente.

188 G ru p o E d ito r ia l M egabyte^


é B B fa - VISUAL BASIC como debe ser.. .
L a siguiente in stru cció n d ib u ja una línea en el c o n tro l P ictu reB o x. P A S O N ° 1: D ib u ja r los c o n tro le s :
P ic tu r e l.L in e (100, I0 0 )-(8 0 0 , 1000) D ib u je 3 P ictu reB o x, un botón de com andos y un Tim er.
¡ i. Formi
L a siguiente in stru cció n d ib u ja un rectángulo en el c o n tro l P ictu re B o x.
P ic tu r e l.L in e (100, 100 )-(8 0 0 , 1000), , B

E l c o lo r de los g ráficos que se d ib u ja n en el eje m p lo, depende de la p ro p ie ­


dad F ore color porque no se a especificado el color.

C LS
B o rra el texto o los g rá fico s d ib u ja d o en el fo rm u la rio o en el c o n tro l
Command!
P ictu reB o x.
P or ejem plo la siguiente in stru cció n borra lo d ib u ja d o en el p rim e r c o n tro l
P ictu reB o x.
P ic tu r e l. c ls P A S O N ° 2: E s c rib ir las instrucciones para los controles.

P R IN T D ebe crear 3 p rocedim ientos para que cada uno de ellos d ib u je círculos,
M uestra un texto en un fo rm u la rio o en el co n tro l P ictu reB o x. líneas y rectángulos.
Por e jem plo la siguiente instru cció n m uestra el texto “ D IB U J A N D O ” en el
p rim e r c o n tro l P ictureB ox. Rem Definición de las variables
Public maxcolumna, maxfila, color As Integer
P ic tu r e l.P r in t " D IB U J A N D O ” Public coll, col2, fill, fil2 As Integer
APLICACIÓN DESARROLLADA N° 22 Sub lineas()
En la siguiente a plicación se m uestra dentro de tres controles P icturebox maxcolumna = Picture2.ScaleWidth
círculos, líneas y rectángulos con un tam año, c o lo r y p o sició n al azar. maxfila = Picture2.ScaleHeight
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
Métodos Gráficos fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = Int((maxfila - 1 + 1 ) * Rnd + 1)
color = I n t ((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 () P r i v a t e Su b F orm _L oad()
c írc u lo s R a nd om ize
lin e a s T i m e r l . I n t e r v a l = 100
Finalizar re c tá n g u lo s End Sub
End Sub

G ru p o E d ito ria l Megabyte ~4 l p li| 191


éS iñ k > VISUAL BASIC como debe se r...
Sub círculos()
Dim columna, fila, margder, margsup, margderm As BUSCANDO G RAFICO S EN LA COMPUTADORA
Integer
Dim margsupm, maxradioder, maxradiosup, radio As
Integer
maxcolumna = Picturel.ScaleWidth N orm alm ente los gráficos que Ud. puede insertar se encuentran en la carpeta
maxfila = Picturel.ScaleHeight G raphics que se encuentra dentro de V b . Tam bién puede insertar gráficos
columna = I nt((maxcolumna - 1 + 1 ) * Rnd + 1) del M ic ro s o ft O ffic e que norm alm ente se encuentran en la siguiente ruta:
fila = Int((maxfila - 1 + 1 ) * Rnd + 1)
C :\A rc h iv o d e P m g r g m a s \M ic r o s o ft O ffic e \C lip a rt\P o p u la r
margder = Picturel.ScaleWidth 'máximo ancho
margsup = Picturel.ScaleHeight ' máxima altura
Reí7i Obtiene el punto central del. control picture Si desea buscar en el disco de su com putadora todos los grá ficos que puede
margderm = Picturel.ScaleWidth / 2 insertar, siga los siguientes pasos:
margsupm = Picturel.ScaleHeight / 2 Haga un C lic k en el B o tó n In ic io de la barra de
color = I n t ((14 - 1 + 1 ) * Rnd + 1) 'Color al azar á l ~É1 Programas ►
tareas del W in d o w s y e lija la opción Buscar y
If columna>margderm Then ----- 3 Documentos ►
maxradioder=margder-columna luego A rc h iv o s o Carpetas.
El se Configuración ►
maxradioder = columna m
End If \ Buscar ►|
Archivos o carpetas...

If fila > margsupm Then PC...

maxradiosup = margsup - fila 1 ^


Ayuda ^ Mediante Miciosoft Outlook...
El se
maxradiosup = fila Ejecutar...

End If
If maxradioder > maxradiosup Then íy j Suspender
radio = maxradiosup
El se ^ jj Apagar el sistema...
radio = maxradioder
End If |i;ÍH jn ic iq i
Picturel.ForeColor = QBColor(color)
Picturel.Circle (columna, fila), radio
If (Int(Timer) Mod 10) = O Then 2. Visualizará la siguiente ventana:
Picturel.Cls
Picture2.Cls m Buscai: todos los archivos
A rc h iv o E d ició n Ver O p c io n e s A yuda
Picture3.Cls
Randomize N om bre y u b ic a c ió n | F e c h a de m o difica ció n ] A v a n z a d a s j
End If B uscar ahora |
End Sub Nom bre:

Sub rectángulos() B uscar en: |M i PC -w j Examinar., N u e v a b ú sq u e da


maxcolumna - Picture3.ScaleWidth
maxfila = Picture3.ScaleHeight in c lu ir subcarpetas
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1) A
fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = In t ((maxfila - 1 + 1 ) * Rnd + 1)
color = I n t ((14 - 1 + 1) * Rnd + 1)
Picture3.ForeColor = QBColor(color) En la caja de textos N O M B R E : escriba un asterisco ( * ) y luego un punto
Picture3.Line (coll, fill)- (col2, fil2), , B seguido de la extensión del tip o de a rc h iv o g rá fic o que desea buscar.
End Sub
192 G ru p o E d ito ria l Megabyte <
H- VISUAL BASIC como debe se r..
Por ejem plo: Para buscar todos los archivos gráficos que tengan la extensión I M A G E ( IM A G E N ) :
BM P, se debe e scribir: *.B M P
Si desea buscar varios tipos de archivos gráficos a la vez, indíquelos separados
p or un espacio en blanco.
Por ejem plo: para buscar todos los g rá fico s con la extensión B M P , IC O y Este co ntrol perm ite m ostrar g rá fico s en un fo rm u la rio , s im ila r al control
W M F , debe e scribir: * .B M P *.IC O * .W M F P ictureB ox. Se diferen cian porque el c o n tro l Im agen no tiene ninguno de
En la caja de textos B U S C A R EN : seleccione M I PC para que los archivos los m étodos g ráficos n i todas las propiedades y otros m étodos que el control
g rá ficos se busquen en todos los discos de su com putadora. Así: P ictu reB o x tiene.

A rc h iv o E d ic ió n Ver O p c io n e s Ayüda E l tam año del g rá fic o que se alm acena en este c o n tro l no depende del
N o m b re y u b ic a c ió n j F e c h a d e m o d ific a c ió n | A v a n z a d a s j tam año del co ntrol, si no que u tiliz a su p ro p io tamaño. La propiedad Stretch
B u sca r a h o ra I
determ ina si el tam año del g rá fic o depende del tam año del co ntrol.
N om bre: |* .B M P " ICO X.W M P --------------- 3
N u e va búsqueda
B u sca r en: |M i P C E xam inar.. T IM E R (R E L O J ):
W in c lu ir s u b ca rp e ta sj
A

Es un c o n tro l que se u tiliz a para poder ejecutar instrucciones cada cierta


3. H aga c lic k en el botón B U S C A R A H O R A para que em piece la bús­
cantidad de segundos. Puede ayudar a m e jo ra r el aspecto de un fo rm u la rio .
queda de todos los archivos que tienen las extensiones indicadas (ar­
ch ivo s gráficos). P or cada a rch ivo que se encuentra se v is u a liza la ruta
exacta donde está ubicado para que al u tiliz a r la propiedad P IC T U R E PRIN C IP ALES PRO PIED AD ES D E U N TIM ER:
U d., pueda buscar la carpeta y u b ica rlo s rápidam ente.
H B uscar: a rchiv o s c o n nom bre “ .B M P “ .ICO " W M P |q»x i ÑAME
¿Archivo Edición Ver Qpciones Ay¿jd»

Nombre y ubicación j Fecha de modificación ] Avanzadas j


I Buscar ahora
Perm ite asignarle un nom bre. Por defecto el nom bre es T im e rl, T im e r2 ,
Nombre |- BMP “ ICG “ WMP I T im e r3 etc. Según el núm ero de controles que se d ib uje n en el fo rm u la rio .
Buscar jMiPC
~Ei ¿•Jueva búsqueda I

EN ABLED
fv? incluir subcarpetas

Perm ite que el c o n tro l se encuentre a c tiv o o no.


I En carpeta | Tama... | Tipo Modificado ■*- I
Notel 6. ico C:\Archivos de prograrrtaSDevStudioWBSGraphi... 2KB Icono 20/02/97 12:00 AM IN T E R V A L
C:\Archivos de programaSDevStudioWBSGraphi... 2KB Icono 20/02/97 12:00 AM
Notel 7.ico
C:\Archivos de prograrna\DevStud¡o\VB\Graphi... 2KB Icono 20/02/97 12:00 AM -----1
Notel 8.ico
PenOI .ico C:\Archivos de programa\DevStudio\VB\Graphi... 2KB Icono 20/02/97 12:00 AM In dica el tie m p o en que se deben ejecutar las instrucciones. E l v a lo r 1000
Pen02.ico C:\Archivos de programa\DevStudioW/B\.Graphi .. 2KB Icono 20/02/97 12:00 AM
^*Pen03.ico C:VArchivos de programa\DevStudio\VB\Graphi 2KB Icono 20/02/97 12:00 AM —| in d ica cada segundo.
« í
161 6 archivo(s) encontrado(s) Las instrucciones que queremos que se ejecuten cada cierto tiem po se deben
NOTA: e s c rib ir en el E v e n to T im e r de este co n tro l.
• Para visualizar la ruta com pleta de cada archivo am plíe la colum na En Carpeta.
• A rchivos que se m uestren depende de los que tenga instalados en su com putadora.
,n ,
194 G ru p o E d ito ria l M egab yte^
T

VISUAL BASIC como debe se r.. < > CAPITULO IV: Mejorando el Aspecto de los Formularios ^
APLICACIÓN DESARROLLADA N° 23 E l g rá fic o del c o n tro l PICTUREBOX se lla m a DINERO.WMF, que
En la siguiente aplicación se u tiliz a n funciones tratadas anteriorm ente y norm alm ente se encuentra en la carpeta: A rch iv o s d e P rogram aSM icrosoft
ejem plos de cóm o m ejora r el aspecto del fo rm u la rio : O ffic e \C lip a r t\P o p u la r
Búsquelos, y si no los encuentra p ractique insertando otros gráficos.
FECHA : J21 -07-1S A las etiquetas donde se m uestran la fecha y hora no les asigne ninguna
- V e n ia d e P ro d u c to s :
Nom bre del Producto JJ- propiedad, porque se visua liza n cuando se ejecuta el program a.
Precio Unitario E l c o n tro l Timer lo puede d ib u ja r en cu a lq u ie r parte del fo rm u la rio porque
C antidad T
cuando ejecuta la a plicación no se v is u a liz a y tiene un solo tamaño.

I.G.V. J”
PASO N° 03: E s c rib ir
las instrucciones de cada co ntrol.
Total I- Instrucciones Form Activate Instrucciones del B. Calcular
Lo que puede hacer : —
Prívate Sub Form_Acüvate() Prívate Sub Command2_Click()
^ I Textl = "" Dim ST, IGV, TPAs Single
J ju e v o ] fíe s u lta d o s Text2 = "" ST = Val(Text2) * Val(Text3)
Text3 = "" IGV= S T * 18 /1 0 0
L a b e lll = "" TP = S T + IG V
PASO N° 1: DIBUJAR LOS CONTROLES: L abell2 = "" Labell 1 =Format(ST, "###,##0.00")
Labell3 = "" Labell2=Format(IGV, "###,##0.00")
Labell Label2 Label3 Label4 Textl.SetFocus Labell3=Format(TP, "###,##0.00")
■Framel----------------
End Sub End Sub
Label5 (Textl Instrucciones del b o t ó n Nuevo.
Label6 |jext2 Private Sub Commandl_Click()
© Form_Activa te
Label7 | t ext3 End Sub
Instrucciones del b o t ó n Salir
Label8 Labell 1
Prívate Sub Command3_Click()
Label9 Labell 2
Dim R As Integer
Labell 0 Labell 3
R = MsgBox("Está seguro de salir", 36, "Cuidado")
-Frame2------------
If R = 6 Then End
Command! Command2 Command3
End Sub
Instrucciones del Evento L O A D : 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.
PASO N° 02: ASIGNAR LAS PROPIEDADES. P r í v a t e S ub F orm _L oad()
Asígnele las propiedades a cada uno de los controles que se muestran en el L a b e l2 = F o rm a t(D a te , "d d -m m -yyyy")
F o r m l . C a p t i o n = "V ENTAS" + S p a c e ( 5 0 )
form ulario, de tal manera que tenga un aspecto sim ila r a la aplicación planteada.
T im e r1 . I n t e r v a l = 100
NOTA: End Sub
Los botones de comandos deben tener en su propiedad SY T L E el valor 1 Gráfico y Instrucciones del control T IM E R : Visualizan la hora en la etiqueta 4 y mueven la palabra
en su propiedad PICTURE asígnele los gráficos indicados. VENTAS en el título del formulario.
Los nombres de los gráficos en el orden que se muestran en la aplicación a desarrollar P r i v a t e S u b T i m e r l _ T i m e r ()
son: PAINT.BMP, PREVIEW.BMP, POINT4.1CO, que normalmente se encuentran L a b e l 4 = F o r m a t ( T i m e , " h h :mm: s s AMPM")
en la siguiente carpeta: Archivos de Programa\DevStudio\Vb\Graphics Forml.Caption = Mid(Forml.Caption, 2) + LeftfForml.Caption, 1)
End Sub

^ |||jj|Íf^ 196 G ru p o E d ito r ia l Megabyte


197 i n *
áülÉ É ^ VISUAL BASIC como debe ser.. .
PASO N 2 02: Escribir las instrucciones.
APLICACIÓN DESARROLLADA N° 24
D e fin ir las variables a u tiliz a r en la sección de declaración del fo rm u la rio .
En esta a p lica ció n se u tiliz a la in stru cció n P R IN T que perm ite e s c rib ir
mensajes directam ente en el fo rm u la rio y T A B para dejar espacios antes 101 Project! - Formi (Code)
r ° M
de im p rim ir. |(General) jrJ 1(Declarations)
Esta a plica ció n es una pantalla de presentación con un texto de fo nd o, una
Dirn T, N As Irxteger
etiqueta cuyo contenido va m od ifica n do su tamaño y un grá fico que se m ueve
de derecha a izquierda. ▼:
■-ill jlP
« PANTALLA DE PRESENTACION H S I3E 3
Visual Basic como debe ser... Juan José Castañeda León E s c rib ir las instrucciones en el evento A C T IV A T E del fo rm u la rio para que
Visual Basic como debe ser...
Visual Basic como debe ser... V IS U A L Juan José Castañeda León
Juan José Castañeda León
se ejecutan cuando el fo rm u la rio se activa. Estas instrucciones m uestran un
Visual Basic como debe ser...
Visual Basic como debe ser.. IA % I4 Juan José Castañeda León
Juan José Castañeda León
texto de fo nd o en el fo rm u la rio .
Visual Basic com o debe ser. Juan José Castañeda León Prívate Sub Form_Activate()
Visual Basic como debe ser... Juan José Castañeda León
Visual Basic como debe ser... Juan José Castañeda León Dím X As Integer
Visual Basic como debe ser... Juan José Castañeda León 'Ancho del Formulario
Visual Basic como debe ser.. Juan José Castañeda León Forml.Wídth - 6400
Visual Basic como debe ser. OK j Juan José Castañeda León
Visual Basic com o debe ser... Juan José Castañeda León
'Altura del Formulario
Visual Basic com o debe ser... Juan José Castañeda León Forml.Height = 3330
Visual Basic com o debe ser... Juan José Castañeda León Labell.AutoSíze = True
Visual Basic como debe ser... Juan José Castañeda León For X = 1 To 35
Visual Basic com o debe ser... Juan José Castañeda León
Print T a b ( X ) " V i s u a l Basic como debe ser. . .
Print Tab(60 - X ) ; "Juan José Castañeda León"
P A S O N ° 0 1 : D ebe d ib u ja r en el fo rm u la rio una e tiq u e ta (L a b e l), un Next X
g rá fic o (p ictu re b o x), un re lo j (tim e r) y un b otón de comandos (com m and). A 'Posición inicial del Gráfico
T = 6000
la etiqueta, al botón de com ando y al fo rm u la rio , m od ifíqu e le s su propiedad
'Puesta en marcha del Reloj
C ap tion co m o se m uestra en la fig u ra anterior: Timerl.Interval = 1 0
End Sub
«i. Form!
Instrucciones del E ve nto T IM E R
Prívate Sub Timerl_Timer ()
Lab ell 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
E l botón O K debe tener la in stru cció n E N D .

G rupo E ditorial M t «
a m
|¡ ! ¡ l i > VISUAL BASIC como debe se r...
IMAGELIST (LISTA DE IMAGENES): El contenido de la Hoja Im ágenes es:
wn
S 1 G en eral [ i m á g e n e s |) C o l o r
Im agen actual
Este c o n tro l perm ite alm acenar im ágenes o g ráficos con la extensión IC O Index: h &ey: 1
(* .IC O ) y con la extensión B M P ( * .B M P ) en la m em oria de la com putadora lag: 1
para poder m an ip u la rlo s en nuestro program a. Im ágenes:

Si no se encuentra en la caja de herram ientas debe seguir cualquiera de los


siguientes pasos: U
1. En la caja de herram ientas haga c lic k con el botón derecho y e lija la Insertar imagen.. ! Quitar imagen I Núm ero de imágenes:

o p ció n C O M P O N E N T E S .
2. D e la o pción P ro je ct e lija C O M P O N E N T E S . A c e p ta r j C a n ce la r

3. Pulse las teclas < C R T L > + < T > .


De la lista de com ponentes haga c lic k en la ca silla del c o n tro l llam ada: En esta hoja podemos adicionar o e lim in a r más gráficos del control im agelist.
Microsoft Windows Common Controls 5.0. E l b otón Insertar Imagen perm ite buscar y seleccionar una im agen para
adicionarla.
Tam bién se puede lla m a r este co n tro l, si elegim os la o p ció n C O N T R O L E S E l botón Quitar Imagen perm ite b o rra r una im agen.
D E VB E D IC IO N E M P R E S A R IA L , en el m om ento de ingresar a V isu al En la caja de textos Key, se puede asignar uno o más caracteres que van a
B asic o crear un nuevo proyecto. id e n tific a r a cada im agen alm acena en el co n tro l.
PRINCIPALES PROPIEDADES DE UN IMAGELIST: En la caja de textos Tag se puede e s c rib ir un te xto el cual queda alm acena­
Las propiedades principales del control se obtiene con sólo e le gir la propiedad do para poder u tiliz a rlo en c u alqu ier m om ento si lo deseamos.
C ustum ize (personalizado). Se v is u a liz a la siguiente ventana con tres hojas En la caja de textos Index se v is u a liza el núm ero de im agen activa y p e rm i­
o fichas: General, Im ágenes y color. te a ctiva r a cu a lq u ie r otra imagen.
P á g in a s d e p r o p ie d a d e s tm \ En la etiqueta N ú m e ro de Imágenes se v isu a liza la cantidad de imágenes
í j « n * r . * ! j ] Im á g e n e s J C o lo r que tiene el co n tro l Im agelist.
r - 1 6 X 1 6 H e ig h t: | Ejemplo de algunos gráficos que puede insertar en el control Imagelist:
3 2 x 32
W id t h : f
r - 4 8 X 48 Páginas de propiedades
LE]
C u s to m
G e n e ra l Im á g e n e s | c o lo r

1^ J U s e M a s k C o lo r Im a g e n a c tu a l
in d e x : [g Key: p

lag: r
Im ág enes:

A c e p ta r | C a n c e la r | A yuda

[ in se rta r im age n... | Q u ita r im age n | N ú m ero de im áge nes: J?


L a h o ja General, p erm ite asignar la a ltu ra y el ancho para los g rá fico s que
se van a a lm ace n ar en este c o n tro l. Estos va lo re s se pueden c a m b ia r
A c e p ta r j C a n c e la r j A p lic a r A yuda
solam ente cuando el co n tro l no tenga nin gú n g rá fic o alm acenado.

200 G ru p o E d ito ria l Megabyte 201


£ 3 ^ VISUAL BASIC como debe ser. >CAPÍTULO IV: Mejorando el Aspecto de los Formularios
El contenido de la Hoja C olor es: APLICACIÓN DESARROLLADA N° 25
P á g in a s d e p r o p ie d a d e s Inserte en el c o n tro l Im a g e list una cantidad determ inada de im ágenes para
G e n e ra l ) Im á g e n e s C o lo r j que luego se m uestren una a c o n tin u a ció n de o tra al hacer c lic k en el botón
P ro p ie d a d e s: C o n ju n to d e co lo re s: M O S T R A R S IG U IE N T E . D ib u je en un fo rm u la rio un c o n tro l Im agelist,
r-T j C olo res e s tá n d a r un Picture y dos com m and.
P a le ta d e co lo re s:
■laskColor « . M U E S T R A D E IM A G E N E S EHJ
| C ara d e l b o tó n g] -i
E scrito rio

m E s p a c io d e tra b a jo d e la a p lic a c ió n

F o n d o d e la v e n ta n a
jlJ
E d ita r c o n tro l p e rso n a liz a d o ...

A c e p ta r ~| C a n c e la r A p lic a r Mostrar Siguiente

S ALIR
B a c k C o lo r p erm ite asignar un c o lo r de fo n d o y M a s k C o Io r asigna un c o lo r
para la mascara del co ntrol.
Una vez que insertó imágenes en el co ntrol Im a g e L is tl, use la propiedad
E l co n tro l tam bién tiene la propiedad U sem askC olor para establecer un valor
Personalizado, escriba las siguientes instrucciones en el botón M o s tra r Siguiente:
que determ ina si el c o lo r asignado en la propiedad M a s k C o Io r es u tiliz a d o Prívate Sub Commandl_Click()
com o una máscara. S ta tic P As In te 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
M A N E T O D E L A S IM Á G E N E S D E L C O N T R O L IM A G E L I S T P = 1
End I f
P ic tu r e l = Im a g e L is tl.L is tlm a g e s(P ). P ic tu re
Para obtener cualquiera de las im ágenes que se encuentran almacenas en End Sub
el c o n tro l Im a g e list se u tiliz a la siguiente sintaxis: Las instrucciones anteriores perm iten mostrar las imágenes una a continuación
Control_ImageList.Listlmages(índice).picture de otra y cuando se llega a la u ltim a muestra nuevamente la primera.

FU N C IO N LO ADPICTURE
E l ín dice es un v a lo r que in d ica el n úm ero de la im agen que se quiere
obtener.Por ejem plo, para m ostrar en el co n tro l Picture 1 la im agen N° 3 del Es una fu n c ió n que p erm ite c o lo ca r en un c o n tro l Im age o P ictu reB o x un
c o n tro l Im a g e list N ° 1 se escribe. g rá fic o . Su sintaxis es:
Nombre_del_Control=loadpicture (ruta y nombre de gráfico)
Picturel = ImageListl.Listlmages(3).Picture Ej empl os:
P ic tu rel = L oadP icture( "graphics\icons\com puter\key04. ico ")
Para saber cuantas imágenes tiene el co n tro l Im a g e L is t u tilic e la propiedad
Im age 1 = L o a d P icture("graphics\icons\com puter\key04.ico")
C ount. Por ejem plo, la siguiente in s tru c c ió n alm acena en la variable N, la P ic tu rel = L oadPicture( "c:\vb\m etafiles\com puter.w m f")
cantidad de im ágenes del co n tro l Im a g e lis t 1.
M U Y IMPORTANTE
N = ImageListl.Listlmages.Count Ud., debe escribir correctam ente la ruta de donde se encuentra el gráfico que desea
colocar en el control PictureBox o en el control Image.

202 G ru p o E d ito ria l Megabyte <||§ § f | 203


VISUAL BASIC como debe se r... ' CAPITULO IV: Mejorando el Aspecto de los Formularios

CALENDAR: (CALENDARIO) APLICACIÓN DESARROLLADA N° 26


L a a plica ció n muestra la fecha seleccionada en una etiqueta, pero en letras.
ig g ig w a g ta i'gi'ai» «í ¿y;iis tii ¡ggggj
O c tu b re 1998|octubre ~£\ j-m s _-J
Es un control que se utiliza para manejar la fecha del sistema de una manera
D om Lun Mar Mié Ju e Vie Sáb
personalizada. Este control muestra en el form ulario un calendario con la fecha 1 2 3
actual seleccionada y nos permite buscar otra fecha en cualquier mes o año. De la 4 5 6 7 8 9 10
11 12 13 14 15 16 .............i
lista de componentes haga click en la casilla del control llamado: Microsoft ca­ 18 19 20 21 22 23 24
lendar Control. 25 26 27 28 29 30 31
4 6
PR IN C IP A LE S PRO PIED AD ES D E UN CALEND AR:
CUSTOM
Permite personalizar el control Calendar. DESARROLLO DE LA APLICACIÓN
DAY Para desarrollar esta aplicación dibuje en el form ulario el control Calendar y dos
Obtiene el día de la fecha seleccionada y permite seleccionar un etiquetas. Luego se debe programar en el evento C lick del control Calendar.
nuevo día. El signo dólar ($) al final de una variable indica que la variable es de tipo String.
DAYFONTCOLOR INSTRUCCIONES DEL CONTROL CALENDAR.
Asigna el color para los nombres de los días. Prívate Sub Calendarl_Click()
DAYLENGTH Labell = Calendar1.Valué
Indica la forma de visualizar el nombre de los días de la semana. diasemana = WeekDay(Labell)
FIRSTDAY dia$ = Day(Labell)
Permite indicar el primer día de la semana a visualizar en el mes = Month(LabellJ
calendario. año$ = Year(Labell)
GRIDCELLEFFECT Select Case diasemana
Cambia el estilo de las líneas del calendario. Case 1 : diasem "Domingo"
GRIDFONTCOLOR
Case 2 : diasem "Lunes"
Case 3 : diasem "Martes"
Asigna un color para los días del mes. Case 4 : diasem "Mi ércol es "
MONTH Case 5: diasem = "Jueves"
Obtiene el número del mes seleccionado y permite seleccionar un Case 6: diasem = "Viernes"
nuevo mes. Case 7: diasem = "Sábado"
MONTHLENGTH End Select
Indica la forma de visualizar el nombre de los meses. Select Case mes
SHOWDATESELECT Case 1: nmes = "Enero"
Permite que se muestren los botones para seleccionar una nueva Case 2: nmes = "Febrero"
fecha del calendario.
Case 3: nmes = "Marzo"
Case 4: nmes = "Abril"
SHOWDAY Case 5: nmes = "Mayo"
Permite que se muestren los nombres de los días de la semana en Case 6: nmes = "Junio"
el calendario. Case 7: nmes = "Julio"
SHOWVERTICALGRID Case 8: nmes = "Agosto"
Permite visualizar las líneas verticales del calendario. Case 9: nmes = "Setiembre"
VALUE Case 10 : nmes = "Octubre"
Permite obtener la fecha seleccionada del calendario. Case 11 : nmes = "Noviembre
YEAR Case 12 : nmes = "Diciembre
Obtiene el año de la fecha seleccionada y permite seleccionar un End Select
Label2 = diasem + dia$ + " de " + tunes + " de " + año$
nuevo año. End Sub

204 G rupo E d it o r i a l M e g a b y t e ^ ”^
VISUAL BASIC corno debe s e r ... C APITU LO IV: Mejorando el Aspecto de los Formularios

STATUSBAR (BARRA DE ESTADO) STYLE


Perm ite in d ic a r el estilo de la barra de estado. E l estilo 0 -strN orm al, muestra
' ts;;::
r~ r la barra de estado con todos los paneles asignados y el e stilo 1-sbrS im ple
muestra sólo el texto escrito en la propiedad S im p le Text.
Este co n tro l se u tiliz a para m ostrar una barra de estado en un fo rm u la rio
MOUSEPOINTER
norm alm ente en la parte in fe rio r en la cual se puede m ostrar in fo rm a c ió n Se u tiliz a para in d ic a r la fo rm a que tendrá el puntero del mouse cada vez
co m o p o r eje m p lo la fecha y hora del sistema, el estado del teclado, o que éste pase p o r la barra de estado. Si desea com o puntero del m ouse un

c u a lq u ie r o tro tip o de mensaje. g rá fic o seleccionado p o r U d. Debe e le g ir la ú ltim a o p ció n (99-ccC ustom ).
L a selección del g rá fic o los puede hacer en la página Im agen com o se verá
Esta in fo rm a c ió n se visu a liza en determ inados espacios dentro de la barra
más adelante.
de estado llam ados paneles los cuales pueden ser hasta 16. SIMPLE TEXT
Si no se visua liza en la caja de herram ientas, haga c lic k en la ca silla del Perm ite e s c rib ir un texto el cual se v isu a liza en la barra de estado cuando
en la p ropiedad S tyle se e lig e el e stilo 1-sbrS im ple.
c o n tro l llam ado: Microsoft Windows Common Controls 5.0 de la lista
OLEDDROPMODE
de componentes.
D evu elve o establece el m odo en que un com ponente de destino rea liza las
operaciones de co locación.
P R IN C IP A LE S PRO PIED AD ES D E U N STATU SBARS: ENABLED
In d ic a si la barra de estado debe estar activada o desactivada.
Las propiedades principales del co ntrol se obtiene con sólo ele gir la propiedad
SHOWTIPS
C ustum ize (personalizado). Se visualiza la siguiente ventana con cuatro hojas
In d ic a si la barra de estado debe m ostrar el te xto de ayuda que se escribe
o fichas: General, Paneles, Fuente e Im agen.
en la p ropiedad T o o ltip te x t de la h oja Paneles.
E l conte nid o de la hoja General es: E l contenido de la hoja Paneles es:
am ar G e n eral P a n e le s j F u e n te ) Im a g e n ]
G e n e ra l j Pan eles ] F u e n t e | Im a g e n j
Incjex: f panel j Q u it a r p a n e l

Style: H f W BfflllTO Te x t:

M o useP ointe r: j o - c c D e ía u lt T o o l T i p T ext:

G imple T ext. K ey: M ín im u m W i d t h : 11 4 4 0 .0 0

T aa A c tu a l W id t h : 11 4 4 0 0 0
Q L E D ro p M o d e : jo - c c O L E D ro p N o n e
A lig n m e n t: Im a g e n
E n a b le d fs? S h o w T ip s
E x a m in a r...
Sfttle: 0 - s b rT e x t

B e v e l: 1 - s b r ln s e t 'W I

A u t o S ize: O - s b rN o A u tc ^~ | E n a b le d Jv'

J J Ayuda

A c e p ta r j C a n c e la r | Aplicar, Ayuda INDEX


Visualiza o selecciona cualquiera de los paneles creados en la barra de estado.

206 G ru p o E d ito r ia l Mega


¿ S S t t VISUAL BASIC como debe se r... <CAPITULO IV: Mejorando el Aspecto de los F orm ularios^
TKXT E l co nte nid o de la h o ja F u e n te es:
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.
G e n e ra l ] P a n e le s F u e n te Im a g e n )
TOOLTIPTEXT P ro p ie d a d e s : F u e n te : Xam año:
Permite escribir un texto de ayuda que se visualiza cuando el puntero del mouse se Permite cambiar el tipo
¡M S S a n s S erif z ] I82 6 JÜ
de le tra , tam año y
encuentre en el panel siempre y cuando la propiedad Show Tips de la hoja General E fe c to s
r N e g rita r S u b ra y a d o asignar efectos al texto
se encuentre activada.
1 C u rs iv a r T achado que se muestra en la
KEY
T e x to d e ejem p lo : barra de estado.
Permite asignar uno o más caracteres que van a identificar a cada panel. No acepta
números. M S S a n s S erif

TAG
Permite escribir un texto el cual queda almacenado para poder utilizarlo en cualquier
momento si lo deseamos. A c e p ta r |

ALIGNMENT
Alinea el texto o el gráfico dentro del panel a la izquierda, centro o derecha. E l contenido de la h o ja Im a g e n es:
STYLE
Permite seleccionar el tipo de información que desea mostrar en el panel. Si desea Esta hoja permite
G e n e ra l | P a n e le s j F u e n te Im a g e n j seleccionar un gráfico el
visualizar el texto escrito en la propiedad Text, debe elegir el estilo 0-sbrText. Aquí
. ______
P ropiedad e s: V is ta previa: cual va a reemplazar al
puede elegir que se muestre la fecha u hora del sistema, el estado del teclado, etc.
puntero del mouse cuándo
BEVEL
lo ubiquemos en cualquier
Selecciona el tipo de borde del panel (sin relieve, bajo relieve o en alto relieve). parte de la barra de estado.
A IT O S IZ E El gráfico que Ud. elija se
Para indicar si el tamaño del panel debe estar de acuerdo al tamaño de lo que visualiza siempre y cuando
contiene o no. se halla seleccionado la
M IN IM U M W IDTH E xam inar... VJMzi — i opción 99-ccCustom de la
Para indicar el ancho mínimo que puede tener el panel. -------- propiedad MousePointer
EXAM INAR A c e p ta r I C a n c e la r
J ____ I de la hoja General..
Permite seleccionar un gráfico que va a acompañar a la información que mostramos
en el panel. Ud., debe conocer previamente la ruta de la carpeta donde se encuen­ EJEM PLO DE UNAAPLICAGON USANDO ELCONTROLSTATUSBAR
tran los archivos de gráficos en su computadora. tm iS M m m n ™ i ^'m rr— — T - idi *i
Una de las rutas donde puede encontrar archivos de gráficos es:
C:\Archivos de Programa\DevStudio\Vb\Graphics'Sicons Y luego en cualquiera
de las carpetas que contiene. S IS T E M A
SIN IM AG EN DE 1
Borra el gráfico asignado al panel ?

ENABLED VENTAS
Para indicar si el panel debe estar activado o no.
VISIBLE
Para indicar si el panel debe estar visualizar o no.
/ X 8 /0 5 /9 9 J o sé C astañ eda 4 42 AM
I
208 G ru p o E d ito r ia l Megabyte 209
^ Íllíl¡|> VISUAL BASIC como debe ser.. . >CAPITULO IV: Mejorando el Aspecto de los Formularios ^
A signe las propiedades al c o n tro l Toolsbar de tal manera que tenga el m ism o PANTALLAS DE PRESENTACIÓN
aspecto de la a plicación m ostrada. Tam bién se puede program ar dentro de 1. Pantalla desarrollada en Power Point.
este co n tro l, p o r eje m p lo: Se desea que al hacer c lic k en la calculadora, se
a ctive la calculadora del w ind ow s.
L a propiedad INDEX del PANEL nos p erm ite saber en cuál de ellos el
usuario h izo c lic k . A l hacer c lic k en el p rim e r panel la propiedad Index tom a
el v a lo r 1, al hacer c lic k en el segundo panel, la propiedad In de x tom a el •' rm *
v a lo r 2 , etc.
Entonces las siguientes instrucciones para el co n tro l son: o ttjR a nrrj i t
Prívate Sub StatusBarl _PanelClick(ByVal Panel As ComctlLib. Panel) T R A N S P O R T S .A
If Panel.Index = 4 Then
Shell "c:\windows\calc.exe", 1
End If f; sai is ¡1
End Sub
U d., puede diseñar su pantalla en Pow er P o in t y pegarla en su fo rm u la rio o
Si U d., ha asignado uno o más caracteres en la p ro p ie d a d K E Y , entonces
a ctiva rla . Si usted pega la pantalla, ésta se v is u a liza rá estática (sin los
ta m b ién puede id e n tific a r e l panel donde se h iz o C lic k , m ediante esta m ovim ientos o efectos asignados) Para e llo una vez que term inó de diseñarla,
propiedad. Por ejem plo: Si ha asignado las letras CAL en la propiedad K E Y preséntela (C lic k en el B o tó n P R E S E N T A C I O N C O N D I A P O S I T IV A ) y
del panel n úm ero 4 (calcula do ra ), entonces puede e s c rib ir ta m b ién las pulse IMPR PANT (Print Screen), luego vaya al V isu al Basic y,haga
siguientes instrucciones en el co ntrol: c lic k en cu a lq u ie r parte d el fo rm u la rio y pulse CTRL+V. Si desea b o rra r la
Prívate Sub StatusBar l_PanelClick(By Val Panel As ComctlLib.Panel) pantalla, borre el co nte nid o de la propiedad P icture del fo rm u la rio .
I f P a n e l . K e y = "CAL" T h e n Para a c tiv a r una p an talla en P ow er P o in t desde V isu al Basic y v is u a liz a r
S h e l l " c : \ w i n d o w s \ c a l c . e x e “, 1 los m ovim ie n to s y efectos que le asignó, puede u tiliz a r el c o n tro l O L E .
End I f
End Sub EL CONTROL OLE
NOTA Perm ite insertar objetos. A l d ib uja rlo s se visua liza una caja de d iá lo g o donde
se puede e le g ir el o bjeto a insertar. Si pulsó C A N C E L A R y salió de la caja
SHELL p erm ite ejecutar program as (*.exe) desde el V isual B asic y el valor l le
de d ia lo g o , para regresar haga un c lic k con el botón derecho del m ouse en
indica que el program a se debe ejecutar con e l tam año d e ventana norm al. D ebe
el c o n tro l O L E y e lija la o pción INSERTAR OBJETO.
especificar correctam ente la ruta y el nom bre del archivo.
I Insellai o b j e t o ... . ........ « . S I
CALCULADORA DEL WINDOWS 3* Tips de objeto: I Aceptar
Edición Ver Ayuda ¡ <• Crear Quevo
Adobe«-Table 2.5 Cancelar
Clip de multimedia
f" Crear desde archivo Corel PHOTO-PAINT 5.0 Imagen
CorelCHART! 5.0 Chart
CorelDRAW! 5.0 Gráfico
I postrar como icono
CorelDRAW! 5.0 Presentation Exchar ,
E l CorelEquation! 1.0 Equation .T I
r ~ B ack 1 CE 1
C 1
Resultado
MC 8 9 / s q rt Inserta un nuevo objeto de Adobe Photoshop
Image en el documento.

MR 4 5 6 %

MS 1 2 3 1 /x

M+ 0 +h f
La opción C rear d esd e A rc h iv o perm ite seleccionar el archivo previam ente
creado

210 G ru p o E d ito r ia l Megabyte


7

VISUAL BASIC como debe se r... CAPÍTULO IV: Mejorando el Aspecto de los Formularios
Instrucciones del control TIMER
ACTIVAR UNA PRESENTACIÓN EN POWER POINT Private Sub TimerI JTimer()
Una vez creada y grabada la presentación en Power Point, active el Visual Static N As Byte
Basic y en un form u la rio en blanco pegue el control O LE y en la ventana que se Labell(N). Visible = True ‘Muestra de la letra
Labell(N).Top = 2000 'Ubicación vertical
visualiza e lija la opción C rear desde A rch ivo , luego haga c lic en el botón E x a ­
Labell(N ).Left = P ‘Ubicación horizontal
m in a r para buscar y seleccionar la presentación creada en Power Point ha­ P = P + 500 ‘Velocidad de movimiento de las letras
ciendo clic en el botón Insertar y luego en Aceptar. En el evento Form Load IfP > FIN Then
del form u la rio debe escribir: FIN = FIN + Label 1(N). Width + 200
P riva t e S u b F o rm _ L o a d () P =0
N= N+ 1
O l e l . V i s i b l e = F a lse
End I f
O le l.A c tin o = 7 I fN > 6 Then
End Sub Tim erl.Inten’al = 0
Com mandl .Visible - True
2. Muestra la palabra SISTEMA letra por letra. End I f
End Sub
3. Mueve las palabras y oscurece y aclara el formulario
SISTEMA . P R E S E N T A C IO N 1-ñJSlJü'
ic s ^ 'l
o * ..j
BIENVENIDOS
En un fo rm ulario debe crear un array de 7 etiquetas. Para ello, D ibuje la etiqueta
N° 01, luego pulse C T R L + C y luego C T R L + V hasta com pletar las siete (desde
Labell(O ) hasta L a b ell(6 )). También debe dibujar un control T IM E R y un
botón de comandos el cual tiene el gráfico llamado: P O IN T4.IC O (opcional).
A cada etiqueta debe asignarle una letra de la palabra S IS T E M A . Labe] 1(0)
debe tener en su propiedad C aption la letra S, L a b e ll( l) la letra I, etc. AL SISTEM A
INSTRUCCIONES:
Definir las variable en la sección de declaración del formulario
P u b lic P As I n t e g e r
P u b li c F IN A s I n t e g e r D ibuje en el form ulario dos
etiquetas, dos control Tirner, un L ab e ll
In stru ccio n es del p roced im ien to FORM ACTIVATE P ic tu re B o x y un b o tó n de
Prívate Sub Form_Activate()
Dim X As Byte com andos. A las etiquetas,
Formt. WindowState = 2 ‘Maximiza el Formulario P ic tu re B o x y b o tó n de
For X = OTo 6 co m a n d o a síg n e le s la s
Labell(X).FontName = "Couríer New" ‘Tipo de letra Label2
Labell(X).FontSize = 72 'Tamaño de letra propiedades como se muestran
Labell(X). Visible = False ‘Oculto en la figura anterior.
Labell(X).BackStyle = 0 ‘Transparente Com m andl
Labell(X).AutoSize = True
Next X
FIN = 2500 ‘Ubicación de la primera letra Definir las variable en la sección de declaración del formulario
Commandl. Visible = False ‘Oculta el Botón OK
P u b l i c N, I As In te g e r
Timerl Anterval = 100
End Sub Public sw, CLARO As Boolean

- *- G rupo Editorial Megabyte m m


VISUAL BASIC como debe se r.. .
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 () HSCROLL Y VSCROLL (Barras de Desplazamiento)
F o rm l.W in d o w S ta te = 2
T i m e r l . I n t e r v a l = 100 il
jj il il
T im e r 2 . I n t e r v a l = 100
End Sub Las barras de desplazam iento son controles que se pueden u tiliz a r para
varias aplicaciones com o p o r ejem plo para v is u a liz a r in fo rm a c ió n cuando
Instrucciones del TIM E R 1 Instrucciones del T IM E R 2 se encuentra en un c o n tro l donde no se puede v is u a liz a r toda al m ism o
Suben y bajan las palabras Aclaran y oscurecen el formulario. tie m p o, para increm entar o d ism in u ir el valor de una variable, etc.
Prívate Sub Timerl_Timer() Prívate SubTimer2_Timer() Sus p rin c ip a le s p ro p ie d a d e s son:
Ifsw Then If C LA R O Then
N = N - 200 1 = 1 -5 LARG ECHANG E
IfN < 0 Then If 1 = 0 Then Para in d ic a r el increm ento o decrem ento de la propiedad Valué cada vez
sw = False C LA R O = False que el usuario haga c lic k en el área de desplazam iento.
E n d lf End If SM ALLC H AN G E
Else Else Para in d ic a r el increm ento o decrem ento de la propiedad Valué cada vez
N = N + 200 1 = 1+ 5 que el usuario haga c lic k en la fle cha de desplazamiento.
IfN > 7000 Then If I = 255 Then MAX
sw = True C LA R O = True Para in d ic a r el v a lo r m á x im o que puede to m a r el v a lo r de la propiedad
E n d lf End If Valué. E l v a lo r predeterm inado es 32767.
E n d lf End If M IN
Labell.Top = N Form 1.BackColor=RGB(0,1,0) Para in d ica r el v a lo r m ín im o que puede tom ar el v a lo r de la propiedad Valué.
Label2. Top = 7000 - N End Sub E l v a lo r predeterm inado es 0.
End Sub VALU E
In d ic a la posición actual del cuadro de desplazam iento. Esta propiedad es la
P ractique cam biando la p o sició n d el de la v a ria b le I en R G B . predeterm inada de las barras de desplazam iento, esto quiere d e c ir que para
E xiste n m uchas otras form as de crear pantallas de presentación y muchas refe rirm os a esta propiedad sólo se necesita e s c rib ir el nom bre del control
veces depende de la cre a tivid a d de cada uno. Por ejem plo: las dos instrucciones realizan lo m ism o: R = H sc ro lll. Valué y
T am b ié n puede in s e rta r otros o bjetos c o m o p o r e je m p lo : im ágenes de R = H s c r o lll
M ic ro s o ft, galería de imágenes, Hojas y gráficos de Excel etc. APLICACIÓN DESARROLLADA N° 27
Para e llo , haga c lic k con el botón derecho del m ouse en c u a lq u ie r parte de la Esta a plicación perm ite m o d ific a r el c o lo r del fo nd o del fo rm u la rio con
caja de herram ientas y e lija la o p ció n com ponentes y de la pan talla que se diferentes tonalidades, y m o ve r un gráfico.
v is u a liz a e lija la h o ja O B J E T O S IN S E R T A B L E S .
« U SO DE S C R O LLB A R S M 3
Intensidad
M u e ve el Gráfico
R O JO j J M 1255 A.

VERDE j J 1 » 1 1255

Selected Items Only


Adobe Phiotoshop Imaj- AZUL j J M 1255 jd
Location: \\COM13\D\ADOBE\PHOTOSHP.EXE

=J Em pezar 1 Salir 1

214 G rupo E d ito r ia l Megabyte'1 215


S l b VISUAL BASIC como debe ser. . ,
P A S O N ° 0 1: D IB U J A R L O S C O N T R O L E S . Instrucciones del F o rm _ A c tiv a te para que al activarse el fo rm u la rio las

D ib u je los controles com o se m uestra a continuación: barras de desplazam iento y las etiquetas N ° 5 ,6 y 7 tengan el v a lo r cero (0).
Priv a t e S u b F o r m _ A c t i v a t e ()
I t i Form l imi— — .Inlxl H S c r o l l l . V a lu é = 0
H S c ro ll2 .V a lu é = 0
Label4
H S c r o l l 3 . V a lu é = 0
Labell
V S c r o l l l . V a lu é = 0
jlU Labe!5 LabeIS
P ic tu re l.T o p = 0
L a b e l5 = 0
Label2 Label6 L a b e16 = 0
±1 Label7 = 0
Label3 <1 1 jü
Label7 End Sub
Instrucciones del p ro ce d im ie n to C A M B IO , que perm iten ca m b ia r el c o lo r
Command! | Command2 |
del fo n d o del fo rm u la rio de acuerdo al v a lo r de la propiedad Valué de cada
una de las barras de desplazam iento.
P A S O N ° 02: A S IG N A R L A S P R O P IE D A D E S . S u b CAMBIO()
D im ROJO, VERDE, AZUL A s B y t e
A sig n e las propiedades a las etiquetas y botones de com andos com o de
ROJO = H S c r o l l l
m uestra en la a p lica ció n a desarrollar. 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)
Instrucciones del F o rm _ L o a d para que al ejecutar la a plica ció n se asignen L a b e l5 = H S c ro lll
las propiedades a las barras de desplazam iento. L a b e l6 = H S c ro ll2
L a b e l7 = H S c ro ll3
End Sub
Prívate Sub Form_Load() Instrucciones del B o tó n E M P E Z A R .
HScrolll.Min = 0 P r í v a t e S u b C o m m a n d l _ C l i c k ()
HScrolll.Max = 255 F o rm _ A ctiva t e
End Sub
HScrolll.LargeChange = 5
HScrolll .SmallChange = 5 D en tro de cada Barra se llam a al p ro ce d im ie n to C A M B IO .
HScroll2.Min = 0 Prívate Sub HScrolll_Change()
HScrolll.Max = 255 CAMBIO
HScroll2.LargeCh.ange - 5 End Sub
HScroll2.SmallChange - 5 Prívate Sub HScroll2_Change()
HScroll3.Min = 0 CAMBIO
HScroll3.Max = 2 5 5 End Sub
HScroll3.LargeChange - 5 Prívate Sub HScroll3_Change()
HScrollJ. SmallChange = 5 CAMBIO
VScrolll.Min = 0 End Sub
VScrolll.Max = Forml .ScaleHeight Instrucciones del c o n tro l V S C R O L L 1 .
VScrolll .LargeChange = 100 P r í v a t e S u b V S c r o l l l _ C h a n g e ()
VScrolll.SmallChange = 25 P ic tu re l.T o p = V S c ro lll
End Sub End Sub

- lí* G r u p o E d it o r ia l M e g a b y t e < |f ¡ ||¡ |j j f


^ ¡llíiil? ' VISUAL BASIC como debe ser. . C A P ÍT U L O IV : M ejorando el A specto á c los F orm ularios

PROGRESSBAR (Barra de Progreso) PREGUNTAS DE REPASO N 2 0 4


m
1. ¿Qué casilla debe activar en las lista de componentes si en
M uestra una barra que re fle ja la ejecución de un proceso en la com putado­ la caja de herramientas no encuentra el control ImageList?
ra. En la ventana de com ponentes se llam a: M icro so ft W indow s C om m on 2. Explique los métodos gráficos.
C ontrols 6.0. Sus p rincip ale s propiedades son: 3. ¿Con qué propiedad se puede saber el panel donde el usuario
MAX
hizo click en el control StatusBar?
In d ica el v a lo r m á xim o que puede tom ar el control.
4. ¿Cuál es la diferencia entre Qbcolor y RGB?
M IN
5. ¿Cuál es la utilidad del control Calendar?
In d ica el va lo r m ín im o que puede to m a r el control.
6. Explique cómo se pueden buscar los gráficos que tenemos
VALU E
ín d ica el v a lo r del c o n tro l en un determ inado m om ento. disponibles en nuestra computadora.
7. ¿Qué significa el signo de dólar ($) al final de una variable?
m P r o y e c to l - F orm l (C ódigo) |_ |a |x | 8. ¿Qué valor debe tener el control Timer en su propiedad
P a ra d e s a r r o lla r u n jF o rm jrj jA c tív a te +j Interval para que las instrucciones que contiene se ejecuten
e je m p lo , pegue en un P r í v a t e S u b F o r m _ A c t i v at e () cada segundo?
Dim x As Integer
fo rm u la rio en blanco el P r o g r e s s B a r 1.M a x = 1000 9. ¿Qué diferencia encuentra entre el control Hscroll y Vscroll?
c o n tro l P ro gressB ar y F o r x = 1 To 1 0 0 0 10. ¿Qué es un método gráfico?
en su p ro c e d im ie n to P r o g r e s s B a r 1.V a l u é = x
11. ¿Cómo podemos saber la ruta exacta de un archivográfico?
N e xt x
F orm A ctíva te escriba: E n d Sub 12 .¿Cuál es el valor predeterminado de la propiedadMax y Min di>
£<11 Jl f l los controles Hscroll y Vscroll?
13. ¿Cuál es la diferencia entre los controles Image y PictureBox?
C O N T R O L S L ID E R 14. ¿Cuántos tipos de figuras se pueden dibujar con el control
tr. Shape?
Es un c o n tro l que p erm ite desplazar una barra a través de una m arca que 15. ¿Cuál es la ventaja de usar el control Frame?
tiene el co n tro l. Se puede m anejar de manera casi ig u a l a los controles 16. ¿Cuál es la utilidad del control ImageList?
H s c ro ll y V s c ro ll. En la ventana de com ponentes se lla m a : M ic ro so ft 17. ¿Cuales son los tipo de gráficos que se pueden insertar en el
W indow s C o m m o n C o n tro ls 6.0. control PictureBox?
Sus p rincipales propiedades son: 18. ¿Con qué función se puede colocar un gráfico en un control
LAR G EC H AN G E PictureBox o Image?
In d ica el n úm ero de marcas que se desplazará la barra al presionar las 19. ¿Cómo le indicamos a Visual Basic que deje de ejecutar las
teclas R E P Á G o A V P Á G o al hacer clic en el control. instrucciones que se encuentran en el control Timer.?
SM ALLC H AN G E 20. ¿Qué función cumple las pulsación de las tecla CTRL+K cuando
In d ica el n úm ero de marcas que se desplazará la barra al presionar las trabajamos con el control Frame?
teclas Flecha Izq uie rd a o Flecha Derecha.
M A X y M IN Es muy importante que Ud., se formule nuevas aplicaciones o
Son sim ilares a las del c o n tro l ProgressBar. intercambie aplicaciones propuestas entre sus compañeros de estudio
O R IE N T A T IO N y desarrollarlas con la finalidad de enriquecer sus conocimientos.
In d ica la p o sició n del c o n tro l (H o riz o n ta l o V e rtical)
VALU E r
In dica el v a lo r del c o n tro l en un determ inado m om ento.
N O T A : D e s a rro lle la a p lic a c ió n N ° 27 u s a n d o este c o n tro l.

jfjjj l l p l » 218 G ru p o E d ito r ia l Megabyte * |¡ ¡ íj |¡ |¡


CAPITULO V
TA DE PASAJES

A gencia de Transporte "EL PROVINCIANO S.,

Pasajero |H T 0 RAMIREZ

D.N.I. |1 6895654

Hora de Salida Destino :


C 8 :0 0 pm . Lima
(* 9:00 prn.
ffiLSoft D a tò S .A
annan n is iE a g

Fecha Ö7/Z3/9B
1 PR O F O R M A
•' ............
OBSERVACr .Wc |X IM E N A TORREE

le c c ió n 1CAS TI LLA 2565


Precio
î^omputadaroa | p æ ker Bell -| 7DOLOO
p 1p e s c u t ¡
y re s o ia s |D a s k e t 40a -] 270.00

í ^ u b Total 970.00 I.G.V. 174.G0 Total 1 1 44. EO

\ _ Q tra F W q r n a - j „ V-lA

INGRESO
PERSONALIZADO
DE DATOS
<X ¿> CAPÍTULO V: Ingreso Personalizado de Datos
C O M B O (L IS T A D E S P L E G A B L E ):

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.
PR IN C IPA L E S PR O PIE D A D E S DE UN CO M BO :
ÑAME
Permite asignarle un nombre. Por defecto el nombre es Com bol, Combo2,
Combo3 etc. Según el número de controles que se dibujen en el formulario.
ENABLED
Para indicar si debe estar activo o no.
FO NT
P erm ite seleccionar el tipo, tam año y estilo de letra.
L IS T
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>.
LISTIN D EX
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.
SO R TED
t
Para indicar si los elementos deben salir ordenados.
STY LE
Selecciona el modo de elegir los elementos del control. TEXT
Para indicar lo que se va a m ostrar autom áticam ente en el control y
almacena el texto seleccionado.
V ISIB L E
Para indicar si se debe visualizar el combo.
VISUAL BASIC como debe ser.. CAPÍTULO V: Ingreso Personalizado de Datos ;l l ¡ | ¡ | |
APLICACION DESARROLLADA N 28 PASO N° 03: Escribir las instrucciones para los controles.

Esta aplicación debe permitir al usuario ingresar el nombre del alumno, su Instrucciones del botón O T R O A LU M N O
especialidad y tumo. Al hacer click en cualquiera de los Combo se debe
desplegar las opciones posibles a elegir. Prívate Sub Com m andl_Click()
‘Borra el contenido de Textl
Jn Jxj Textl =
‘Muestra el elemento predeterminado del Com bol (Computación)
Alumno Daniel Riveía Combol. Listlndex = 0
'Muestra el elemento predeterminado del Combo2 (M añana)
Especialidad JComputación jr ] Especialidad ^ « 3 Combo2.Listlndex - 0
‘Ubica el cursor en Textl para ingresar un nuevo alumno
Turno Arquitectura
^ U!ri° ¡Mañana j- ]
Secretariado
Textl. SetFocus
Sistemas End Sub
Otro Alumno Finalizar
Olio Alumno Finaliza!
El botón FINALIZAR debe tener la instrucción END.

PASO N° 01: Dibujar los controles. A PL IC A C IO N PRO PU ESTA N° 07

e . 4V i
Labell
Nombre
1
Label2 jcom bol

Tipo [Permanente
Label3 |Combo2 3 z\
Estado Civil 1Casado
Command! Command2 ZÏ
Categoria | a -i

PASO N° 02: Asignar las propiedades.


Ingresar Otro Salir
I
EOQUEIA CAPTION
Label 1 Alumno COMBO TEXT LIST
Label2 Especialidad Combol Computación Computación Tipo : Permanente, Contratado, Eventual.
Label3 Turno Arquitectura Estado Civil : Casado, Soltero, Viudo, Divorciado.
Secretariado Categoría : A -l, A-2, A-3 B -l, B-2, B-3.
COMANDO CAPTION Sistemas
Command I &Otro Alumno
Command2 &Finalizar Combo2 Mañana Mañana
Tarde
1EXTO TEXT Noche
Textl En Blanco

224 : G r u p o E d it o r ia l
VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N° 29 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
P a g o p o r H o ra [1 5 .0 0
Label5 TOTALA PAGAR 0 - None
Labeló En Blanco 1 - Fixed Single
H o r a s T r a b a ja d a s | ■ Label7 En Blanco 2 - Fixed Single
T 0 TAL A PAGAR f p | COMANDO CAPTION ENABLED
Commandl &Nuevo False
Command2 &Salir True
N uevo S a lir

FIGURA VISIBLE PICTURE


Picture 1 False Gráfico que se indica
La aplicación debe tener las siguientes características:
COMBO TEXT LIST
1. Al ejecutar la aplicación, el gráfico debe estar oculto y el botón Nuevo Combo 1 Permanente Permanente
desactivado hasta que se comience a ingresar el nombre del trabajador. Contratado
Eventual
2. El pago por hora se visualiza en forma automática y depende del tipo de
empleado: Permanente S/.15.00, Contratado S/.10.00 y Eventual SI.
5.00. Ud. Puede cambiar otras propiedades que crea conveniente.
3. No existe el botón Calcular, entonces el total a pagar debe visualizarse PASO N° 03: Escribir las instrucciones de los controles.
automáticamente cuando el usuario ingrese el N° de horas trabajadas o
cuando cambie el tipo de empleado. M UY IM PO R T A N TE:
4. En el número de horas trabajadas no se permite el ingreso de letras (no se El valor cero (0) puede reemplazar al valor False y el valor uno (1) puede
activa el botón Nuevo). reemplazar al valor True. Ejemplo:

Com m andl.Visible=True es igual a Com m andl.Visible=l


PASO N° 1: Dibujar los controles.
Com m andl.Visible=False es igual a Com m andl.Visible=0

Instrucciones del botón Nuevo: limpia las cajas de texto y las etiquetas,
L a b e ll jlT e x t l además muestra el tipo de empleado por defecto y oculta el gráfico.
L a b e l2 jC o m b o l ^ |
Prívate Sub Com mandI_Click()
L a b e l3 L a b e lG ---------- Textl =
Com bol .Listlndex = 0
LabeM |T e x t2
Labeló =
L a b e l5 L a b e l7 Text2 =
Label7 —
Com m andl Com m and2
Picture! .Visible = 0
End Sub
ÍÜ Ü Í> VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
Instrucciones del C om bol: permiten visualizar en forma automática el In stru ccio n es de Text2: Verifica que se ingrese sólo números en las
pago por hora, según el tipo de empleado que se elija y si ya se ingresó las horas trabajas y calcula en forma automática el total a pagar. Se puede
horas trabajas visualiza el total a pagar. realizar la misma operación usando la función ISNUMERIC.

Prívate Sub C om bol_C lick() Prívate Sub Textl_Cliange()


N = Combol .Listlndex I f Trim(Text2) = Or Val(Text2) = 0 Then
Select Case N Command 1.Enabled = 0
‘Si N vale 0 a elegido la primera opción
Else
Case 0
Labeló = "15.00” Command 1.Enabled = 1
Case 1 Label?-Format(Val(Labeló) * Val(Text2), "###,##0.00”)
‘Si N vale 1 a elegido la segunda opción End I f
Labeló = "10.00” E nd Sub
Case 2
‘Si N vale 2 a elegido la tercera opción A P L IC A C IÓ N P R O P U E S T A N° 08
Labeló = “5 .0 0 ”
End Select Si es Soltero debe pedir la edad y el N° de hermanos y si es casado debe
‘Pregunta si no se ha ingresado el pagos por hora pedir el tiempo de casado y el N° de hijos.
I f Trim(Text2) = Then
‘Si no ha sido ingresado pide N" de horas trabajadas
Text2.SetFocus
Nombre Nom bre
Else
‘Si se ha ingresado calcula el total a pagar Estado Civil |Soltero Estado Civil [Casado
Label7 = Format(Val(Labeló) * Val(Text2), "###,##0.00”)
End I f E dad | Tiem po d e Casado j

End Sub N 5 de herm anos | N s d e hijos j

Instrucciones de T extl: Verifica si se ha comenzado a ingresar el nombre.


Si es verdad activa el botón Nuevo y visualiza el gráfico.
N u evo J Sal» J N u evo j Salir

Prívate Sub Textl_Change()


I f Trim( Textl) = Then M U Y IM P O R T A N T E
Command2.Enabled = 0
Pie ture 1.Visible - 0
Else Ud., fo rm ú le se nuevas aplicaciones o intercam bie aplicaciones
Command2.Enabled = 1 p ropuestas entre sus com pañeros y desarróllelas con
Picturel.Visible = 1 la fin a lid a d de enriquecer sus conocim ientos.
End I f

“ E l q u e a p r e n d e y a p r e n d e y n o p r a c tic a , es c om o el
q u e a r a y a r a y n u n c a s ie m b ra ”
o
# • V ISl’AL BASIC como debe ser.. CAPITULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N° 31 PASO N° 02: Asignar las propiedades.

JQI-xJ EITQUEIÄ CAPTION BORDERSTYLE


Labell Profesor 0 - None
Label2 Tipo de Curso 0 - None
Tipo de Curso | a p u w TIVÖS ^ Label3 Nombre del Curso 0 - None
Nombre del Curso |W IN D O W S 95 jr ]
COMANDO CAPTION ENABLED
Command 1 &Nuevo True
Command2 &Salir True
Nuevo Salir

TEXTO TEXT
Textl En Blanco
Esta aplicación permite asignar un curso a cada profesor. Primero se debe COMBO TEXT LIST
ingresar su nombre y luego seleccionar el tipo de curso: Aplicativos, Combol En Blanco En Blanco
Programación, Otros. Según el tipo de curso, se mostrará una lista de cursos: Combo2 En Blanco En Blanco

A PLIC A TIV O S P R O G R A M A C IO N OTRO S Ud. Puede cambiar otras propiedades que crea conveniente.
Windows 95 Foxpro Internet
Word Visual Basic Correo Electrónico
Excel Visual Foxpro Inglés Técnico PASO N° 03: Escribir las instrucciones de los controles.
Power Point Power Builder
Instrucciones del Form JL oad para asignar las propiedades o valores iniciales
IM P O R T A N T E : de cada Combo.
CLEAR : Permite limpiar el contenido de un combo. Prívate Sub Form_Load()
Nombre del Control. Clear ‘Limpia el contenido del combol
A D D 1TE M : Permite adicionar un elemento a un combo. C om bol.C lear
Nombre del Control. Additem “Elemento ” 'Adiciona elementos al combol
Combol.Additem “APLICATIVOS”
En está aplicación de ejem plo, las propiedades de cada combo se Com bol.Additem “PROGRAM ACIÓN”
asignan en el Evento Form_Load. Combo 1.Additem “O TRO S”
‘Limpia el contenido del combo2
PASO N° 1: Dibujar los controles. Combo2.Clear
‘Adiciona elementos al combo2
a ; .=..l.s l->d Combo2.Additem “WINDOWS 9 5 ”
L a b e ll jfT e x t l Combo2.Additem “W ORD”
L a b e l2 [C o m b o l
zJ Combo2.Additem “EXC EL”
Combo2.Additem “P O IN T”
L a b e l3 |C o m b o 2 .... -1 ‘Permite que se visualice el ler. elemento de cada combo
C om m andl | C o m rn a n d 2 I Combo l.Listlndex = 0
Combo2.Listlndex - 0
End Sub

230 G r u p o E d it o r ia l Megabyte-^
¿ S ü t VISUAL BASIC como debe ser... CAPITULO V: Ingreso Personalizado de Datos " llliJ S P '

Instrucciones del Combol para que de acuerdo al tipo de curso que se A P L IC A C IÓ N D E S A R R O L L A D A N° 32


seleccione, se muestre en el combo2 los nombres de los cursos. Una empresa de venta de computadoras necesita un formulario que permita
realizar su proforma. Dicha empresa tiene los siguientes productos:
P r í v a t e S u b C o m b o l _ C l í c k ()
n = C o m b o l. L í s t l n d e x Computadoras Precio Impresoras Precio
S e l e c t C ase n
IBM 850.00 Epson LX-300 180.00'
C ase 0 Packer Bell 700.00 Deskject 400 270.00
Combo2. C 1 ea r 380.00
Acer 600.00 IBM graphics
C o m b o 2 . A d d l t e m "WINDOWS 9 5 "
Combo2 . A d d l t e m "WORD"
C o m b o 2 . A d d l t e m "EXCEL" « t S o it D a ta S .A n s ix i
C o m b o 2 . A d d l t e m "PO IN T" m F e c h a 0 7 /2 3 /9 8
P R O F O R M A
Combo2. L í s t l n d e x = 0
C lie n te |X IM E N A T O R R E S
C ase 1
D ire c c ió n (C A S T IL L A 2 5 6 5
Combo2. C 1ear
C o m b o 2 . A d d l t e m "FOXPRO" C o m p u ta d o ra s | p a c k e r B e ll [ 7 0 0 .0 0

C o m b o 2 . A d d l t e m "V ISU A L B A S I C "


Im p re s o ra s |D e s k je t4 0 0 -■ | 2 7 0 .0 0
C o m b o 2 . A d d l t e m "V ISU A L FOXPRO"
C o m b o 2 . A d d l t e m ”POWER BU ILD ER" S u b T o ta l 9 7 0 .0 0 I.G .V . 1 7 4 .6 0 T o ta l 1 1 4 4 .6 0
Combo2. L í s t l n d e x = 0
C ase 2 C a lc u la r j O tra P ro fo rm a | _______ S a lir |

Combo2. C 1ear
Combo2 . A d d l t e m "I N T E R N E T "
C o m b o 2 . A d d l t e m "CORREO ELECTRÓNICO" • El botón Calcular permitirá obtener el Sub Total, IGV (18%) y el Total.
Combo2 . A d d l t e m "IN G LÉ S TÉCNICO" • El botón O tra Proform a permitirá limpiar los datos y pedir otros.
Combo2. L í s t l n d e x = 0 • El botón Salir finalizará el programa.
End S e l e c t
End Sub
PASO N° 01: Dibujar los controles.
Instrucciones del Commandl (Nuevo), para ingresar un nuevo profesor. I in. Formi m ém
A signa los valores por defecto a cada com bo y para ello, llam a el LabeH Label2
procedimiento Form_Load que contiene dichas instrucciones. —
Labe!3 ¡T e x tl

Label4 |ïe x t 2
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 Label5 I C om bol Label7
T e x tl =
T e x t l . S e tF o c u s LabelB |C om bo2 Labe!8

'L l a m a a l p r o c e d i m i e n t o F o r m _ L o a d
Form _Load L abe l9 L a b e ll 0 L ab e ll 1
End Sub
Com m andl Com m and2 Com m and3 |
En e l command2 s e e sc rib e la in stru c c ió n E N D . 1

232 G r u p o E d it o r ia l Megabvte
|¡ S S ¡ ^ VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
PASO N° 02: Asignar las propiedades. In stru c c io n e s del-C om bo2.
A las etiquetas y botones de comandos, asígneles la propiedad Caption, como Estas instrucciones permiten visualizar el precio de la impresora cuando el
se muestra en la aplicación. usuario la selecciona.

P r i v a t e Sub C o m b o 2 _ C lick()
TEXTO TEXT
Textl En Blanco D im n A s I n t e g e r
Text2 En Blanco n = Combo2. L i s t l n d e x .
S e l e c t C ase n
LINEA BORDEWIDTH C ase 0 : L a b e l8 = " 1 8 0 .0 0 "
Linei 4 C ase 1 : L a b e l8 = " 2 7 0 .0 0 "
Line2 4 C ase 2 : L a b e l8 = "3 8 0 .0 0 "
End S e l e c t
combo text LIST End Sub
Combol IBM IBM
Packer Bell Instrucciones del Botón CALCULAR.
Acer
P r í v a t e S u b C o m m a n d l _ C l i c k ()
Combo2 Epson LX-300 Epson LX-300 D im s t , i g v , t t A s S i n g l e
Deskject 400 s t = V a l(L a b e l7 ) + V a l(L a b e l8 )
IBM graphics i g v = s t * 18 / 100
t t = s t + ig v
Ud. Puede cambiar otras propiedades que crea conveniente. 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 llO = " I .G .V . " + F o rm a t$ ( i g v , " # # # ,# # 0 .0 0 " )
PASO N° 03: Escribir las instrucciones de los controles. L a b e l l l = " T o ta l " + F o rm a t$ ( t t , " # # # ,# # 0 .0 0 " )
End Sub
In stru ccio n es del C o m b o l.
Estas instrucciones permiten visualizar el precio de la computadora cuando Instrucciones del Botón OTRA PROFORMA.
el usuario la selecciona en el combo N°1 haciendo click. P r í v a t e S u b C o m m a n d 2 _ C l i c k ()
T e x tl = "”
P r í v a t e S u b C o m b o l _ C l i c k () T e x t 2 = ""
D im n A s I n t e g e r 'M u e str a en l o s com bos e l p r i m e r e le m e n to
n = Combo1 . L i s t i n d e x C o m b o l. L i s t l n d e x = 0
Select Case n Combo2. L i s t l n d e x = 0
C ase 0 L a b e l 9 = ”"
L a b e l 7 = "8 5 0 .0 0 " L a b e l l O = ""
C ase 1 L a b e l l l = ""
L a b e l 7 = "7 0 0 .0 0 " T e x t l . S e tF o c u s
C ase 2
End Sub
L a b e l 7 = " 6 0 0 .0 0 "
End S e l e c t
End Sub
El botón SALIR debe tener la instrucción END.

234 G r u p o E d it o r ia l Megabyte'^¡|
w
VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
OPTION BUTTON (BOTON DE OPCION): A P L IC A C IO N D E S A R R O L L A D A 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.
Es un control que permite ingresar datos por selección. De esta forma sólo
se puede seleccionar una opción de un grupo de ellas.
í:i J n jx j
PR IN C IPA LE S PR O PIE D A D E S DE UN O P T IO N BU TTO N:
Nombre Nombre |

ÑAME Estado Civil : Nuevo - Estado Civil:-....... Nuevo


Permite asignarle un nombre. Por defecto el nombre es <• Soltero (a) r Soltero [a)
Optionl, 0ption2, 0ption3 etc. Salir Salir
C Casado [a) (• Casado [a]
A IJ G N M E N T
Para indicar la ubicación del texto y del botón.
CAPTION Sueldo n s ir Sueldo (250.00
Para escribir el texto que acompaña al botón. Edad Tiempo de Servicio |
ENABLED
Para indicar si debe estar activo o no. N! de hermanos N! de Hijos I
FONT
Permite seleccionar el tipo, tamaño y estilo de letra.
FORECOLOR PASO N ’ 1: Dibujar los controles.
Selecciona un color de la letra.
VALUE
Permite saber si un botón ha sido elegido o seleccionado.
VISIBLE
Para indicar si se debe visualizar. Labell |Texti

Framel Commandl I
M UY IM PO R T A N T E
C Optionl
Para preguntar si un botón de opción está seleccionado se utiliza la f ' 0ption2 Command2

propiedad Valué. Por ejem plo, para preguntar si el botón N°1 está
seleccionado se escribe: Label2 LabeB

Label3 |Texl2
I f O p t i o n l . V a lu é = T rue th e n
LabeW |Text3
También se puede preguntar asi: I f O p tio n l th e n
P a ra 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 com ando s e le
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 le
a s i g n a e l v a l o r FA LSE , E j e m p l o :
PASO N° 02: Asignar las propiedades.
O p tio n l.v a lu e = T r u e o O p tio n l= T ru e Lo s e l e c c i o n a . Asigne las propiedades como se muestra en la aplicación planteada.
O p tio n l,v a lu e = F a ls e o O p tio n l= F a lse Q u ita la s e le c c ió n .

ÉÉÉ^ 236 G r u p o E d it o r ia l Megabyte


O

VISUAL BASIC como debe ser. . . CAPÍTULO V: Ingreso Personalizado de Datos


A P L IC A C IÓ N D E S A R R O L L A D A N° 34
PASO N° 03: Escribir las instrucciones de los controles.
P r í v a t e S u b C o n u n a n d l_ _ C líc k () Esta aplicación permite ingresar dos valores numéricos y según el botón de
T e x t l = "" opción que se elija, se mostrará el resultado.
T e x t 2 = ""
T e x t 3 = ""
O p t i o n l . V a lu é = 1
L a b e 13 = " E d a d "
Labell ( i exl1
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 tF o c u s Label2 |T e xt2

End Sub (• 0 phon1 Label3

Si el usuario hace un click en el botón N° 1, se cambia el contenido de las etiquetas N° C 0pl¡on 2


Label4
1, N° 2 y N° 3 por: Edad, N”de hermanos y 200.00 respectivamente. C 0ption 3
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 l3 = "Edad" r 0ption 4 Commandl Command2

L a b e l 4 = "N g d e H e r m a n o s "
L a b e l5 = "2 0 0 .0 0 "
T e x t2 . S e tF o c u s
PASO N’ 01: Dibujar los controles.
End Sub
OPERACIONES ARITMETICAS P its ]
Si el usuario hace un click en el botón N° 2, se cambia el contenido de las etiquetas
V alor N * 01
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 () V alor NS 02
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 = "N B d e H i j o s "
C Sum a
L a b e l5 = " 2 5 0 .0 0 " j R E S U LT A D O
T e x t2 . S e tF o c u s (" Resta
End Sub
r* M ultiplica

Si no desea escribir las instrucciones en el evento Click de los botones de opciones, r Divide OK SALIR

puede agregar un botón 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 lic k ()
I f O p tio n l Then
L a b e 1 3 = "E d a d "
PASO N° 02: Asignar las propiedades.
L a b e l 4 = "N e d e H e r m a n o s "
L a b e l5 = " 2 0 0 .0 0 " PASO N° 03: Escribir las instrucciones de los controles.
Text2.SetFocus
End I f Instrucciones de Commandl (OK):
I f O p tio n 2 T hen P r i v a t e Sub C o m m a n d l_ C lic k ()
L a b e 1 3 = "T ie m p o d e S e r v i c i o " I f O p tio n l Then L a b e l4 = V a l(T e x tl) + V a l(T e x t2 )
L a b e l 4 = "N B d e H i j o s " I f O p tio n 2 Then L a b e l4 = V a l(T e x tl) - V a l(T e x t2 )
L a b e l 5 = " 2 5 0 .0 0 "
I f O p tio n 3 Then L a b e l4 = V a l(T e x tl) * V a l(T e x t2 )
T e x t 2 . S e tF o c u s
I f O p tio n 4 Then L a b el4 = V a l( T e x tl) / V a l(T e x t2 )
End I f
End Sub E nd Sub

G r u p o E d it o r ia l Megabyte(
VISUAL BASIC como debe ser. . . | > CAPITULO V: Ingreso Personalizado de Datos
L A A P L IC A C IO N A D E S A R R O L L A R E S :
C H E C K BOX (CA JA DE V E R IFIC A C IO N ):

P tí
Es un control que permite seleccionar una opción. Se diferencia de los botones
de opciones porque se puede seleccionar varias opciones de un grupo.
VISUAL BASIC
PR IN C IPA L E S PR O PIED A D E S DE UN C H E C K BOX:

ÑAME 1 [Negritai f" Subrayado T~ Cursiva


Permite asignarle un nombre. Por defecto el nombre es
Checkl, Check2, Check3 etc. Salir
AUGNMENT
Para indicar la ubicación del texto y de la caja.
CAPTION
Para escribir el texto que acompaña a la caja. PASO N° 01: Dibujar los controles.
ENABLED
Para indicar si debe estar activo o no. Ê3
PONT’
Permite seleccionar el tipo, tamaño y estilo de letra. L a b e l!
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.
iCheckl r Check2 J— Check3

A P L IC A C IÓ N D E S A R R O L L A D A N° 35
Commandl

Esta aplicación es un ejemplo de cómo se puede usar las cajas de verificación.


Para preguntar si una caja de verificación está seleccionada se utiliza la
propiedad Valué. Para preguntar si la caja de verificación N° 1 está PASO N° 02: Asignar las propiedades.
seleccionada se escribe:
ETIQUETA CAPTION BORDERSTYLE
If Checkl. Valué = 1 Then Labell Visual Basic 1 - Fixed Single
CAJA DE VERIF. CAPTION VALUE
También se puede preguntar de la siguiente manera: Checkl Negrita 0 - Unchecked
Check2 Subrayado 0 - Unchecked
If Checkl Then Check3 Cursiva 0 - Unchecked
COMANDOS CAPTION
A l i g u a l q u e l o s O p tio n B u tto n s e p u e d e n s e le c c io n a r o Commandl &Salir
q u ita r la s e le c c ió n con l o s v a l o r e s TRU E o F A L S E :
FORMULARIO CAPTION
C h e c k l.v a lu e = T r u e o C h e c k l= T r u e Lo selecciona. Formi Estilos de Letra
C h e c k l. v a lu e = F a ls e o C h e c k l= F a ls e Le quita la selección.

® ¡ f ^ 240 G r u p o E d it o r ia l Megabyte
|¡ l l t y ¡ |> VISUAL BASIC como debe ser. . . CAPITULO V: Ingreso ¡
L ISTB O X (CA JA DE LISTA)
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 Es un control que permite mostrar en una lista un conjunto de elementos o
asigna el valor True. alternativas que el usuario puede seleccionar.
PR IN C IPA LE S PR O PIED A D E S DE UN LISTB O X :
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 lu é = 1 Then ÑAM E
L a b e1 1 .F o n tB o ld = True Permite asignarle un nombre. Por defecto el nombre es
E lse Listl, List2, List3 etc.
L a b e l l . F o n tB o ld = F a ls e ENABLED
End I f Para indicar si debe estar activo o no.
End Sub FONT
Permite seleccionar el tipo, tamaño y estilo de letra.
Si el usuario hace un click en la caja N° 2, se verifica sí está seleccionada. FO R EC O LO R
Para activar la letra subrayada, a la propiedad FontUnderline de la etiqueta Selecciona un color de la letra.
LIST
se le asigna el valor True. Permite ingresar los elementos o alternativas que el
usuario puede elegir de este control. Por cada elemento
P r í v a t e S u b C h e c k 2 _ C l í c k () que se ingrese se debe pulsar <CTRL> + <ENTER>. Para
I f C h e c k 2 . V a lu é = 1 Then insertar un elemento, ubique el cursor al inicio de
L a b e l l . F o n tU n d e rlin e = True donde lo desea insertar y pulse <CTRL> + <ENTER>.
E lse LISTCOUNT
L a b e l l . F o n tU n d e rlin e = F a lse Permite obteneí el número de elementos de la lista.
End I f LISTINDEX
End Sub Para saber el elemento que el usuario ha elegido. El
valor -1 indica que no se ha seleccionado ningún
elemento, 0 indica el primer elemento, 1 el segundo,etc.
Si el usuario hace un click en la caja N° 3, se verifica sí está seleccionada. SORTED
Para activar la letra cursiva, a la propiedad Fontltalic de la etiqueta se le Para indicar si los elementos deben salir ordenador.
asigna el valor True. STYLE
Para indicar la forma de seleccionar un elemento:
P r í v a t e S u b C h e c k 3 _ C l i c k () O-Standard ó 1-Checkbox. La opción 1-Checkbox permite
I f C h e c k 3 . V a lu é = 1 Then que cada elemento funcione como una casilla de
L a b e l l . F o n t l t a l i c = True verificación.
E lse T O O L T IP T E X T
L a b e l l .F o n t l t a l i c = F a lse Para mostrar un mensaje de ayuda cuando el puntero
End I f del mouse se encuentre sobre el control.
End Sub V ISIB L E
Para indicar si el control se debe visualizar.

G r u p o E d it o r ia l Megabyte^
CAPÍTULO V: Ingreso Personalizado de Datos
A P L IC A C IO N D E S A R R O L L A D A N° 36 Asignar los valores al array; es decir los precios de los pasajes. Se ejecutan
t * V E N T A D E P A S A JE * « 5 3 * 3 1
cuando se activa el formulario.
Al hacer Doble Click o pulsar F7 en cualquier parte libre del formulario elija
A g e n c ia d e T ra n s p o rte " S IN R E T O R N O S .A ."
el evento ACTIVATE.
P a s a je r o ( R u b é n C a s t illo

D .N .I.
Prívate Sub Form_Activate() Instrucciones del Botón Nuevo.
| l 6374657
P R E C IO (0 ) 60 P r í v a t e S u b C o m m a n d l_ C lic k ()
D e s t in o : P R E C IO (1 ) 50
P r e c io 1 5 0 .0 0
L i s t l .L is tln d e x = 0
L im a ^ P R E C IO ( 2 ) 30 C h e c k l.V a lu é = 0
¡ s e r a s * » — P ? [D e s c u e n to ! js .O O
T r u jillo ----- P R E C IO (3 ) 30 T e x t l = ""
P iu r a P R E C IO (4 ) 50 Text2 = ”
T O T A L S /. 4 5 .0 0
End Sub L a b e l7 =
N uevo j S a lir L a b el8 =
L a b el9 =
T e x t l . SetF ocus
D.N.I, y el lugar de destino que se debe seleccionar de una lista, luego debe
End Sub
mostrar en forma automática su precio y opcionalmente un descuento del
10%. Los lugares de destino y su precio son: Lima S/. 60.00, Chimbóte S/.
50.00, Trujillo S/. 30.00, Piura S/. 30.00 y Tumbes S/. 50.00. El precio debe Instrucciones de la Casilla de Verificación (CHECK1), para que al activar
estar almacenado en un array. 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 ()
PASO N° 1 : D ib u jar los controles. D im 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
D es = V a l( L a b e l7 ) * 10 / 100
L a h > a t3 ----------------------- L a b e l8 = F o r m a t(D e s , " # # 0 .0 0 " )
L at»ol3 jT e x t2 Else
L a b e l5 L o b o l7
L a b e l8 = 0
----- I Checkl L o b o ie
End I f
L a b e lB L ab e IS
T o t = V a l(L a b e l7 ) - V a l(L a b e l8 )
L a b e l9 = F o rm a t ( T o t, " # # 0 .0 0 " )
Com m andl | Com m and2 1
E nd S ub ?
N O TA : Instrucciones del Control LIST1, para que al seleccionar un elemento
La barra de desplazamiento vertical del control List se muestra en forma automática cuando no (destino), se visualicen los resultados.
se puede visualizar todos los elementos que contiene.
P r ív a te Sub L is tl_ C lic k ( ) '
D im N A s I n t e g e r
PASO N° 02: A signar las propiedades a los controles. D im D e s , T o t A s S i n g l e
Ud., está en condiciones de asignar las propiedades a los controles como se N = L i s t l . L is tln d e x
muestra en la aplicación a desarrollar. Los elementos se ingresan a la lista L a b e l 7 = F o r m a t( P R E C I O ( N ) , " # # 0 . 0 0 ”)
de la misma forma que en un Combo. Las cajas de texto deben estar en I f C h e c k l Then
blanco. D es = V a l( L a b e l7 ) * 10 / 100
L a b e l8 = F o r m a t(D e s , " # # 0 .0 0 " )
PASO N° 03: E sc rib ir las instrucciones de los controles. Else
L a b e l8 = 0
Definir la variable PRECIO de tipo Array para cinco elementos en la ventana End I f
de declaración del formulario (General - Declarations). T o t = V a l(L a b e l7 ) + V a l(L a b e l8 )
‘CINCO ELEMENTO (DE 0 A 4) L a b e l9 - F o r m a t( T o t, " # # 0 .0 0 " )
Dim PREClO(5) A s Single End Sub

FnrrnRiAr M e g a b y , e « S
wæÆ ï VISU A L BASIC como debe ser.. . CAPÍTULO V: Ingreso Personalizado de Datos
CALCULWiWSDÍAS DE FERTILIDAD SEGÚN ELMÉTODODELRITMO in s tru c c io n e s de lo s b o to n e s

BOTÓN P E R IO D O M EN STRU A L REGULAR


G C liíS MENSTRUALES REGULARES Prívate Sub Commandl_Click()
Si una mujer tiene ciclos Menstruales Regulares, sus días probables de fertilidad empiezan Dim fecha As String
a losódíasde su primer día de menstruación y duran 13 días. Por ejemplo: Si su primer Dim R, X As Integer
día de menstruación fue el 01 de Oct, sus días fértiles empiezan el 7 de Oct y terminan en Listl.Clear : ListíC lear : List3.Clear
19deOct. fecha = InputBox(“Ingrese la Fecha del Primer Día” + Chr(13) + “ de la
última menstruación”, “MENSTRUACION REGULAR”)
If Not IsDate(fecha) Then
OCLQ8 MENSTRUALES IRREGULARES MsgBox “HA INGRESADO UNA FECHA INCORRECTA”, 16, “CUIDADO”
Para determinar los días probables de fertilidad en mujeres con ciclos Menstruales Else
R = MsgBox(“ ler. Día de Menstruación + Format(CDate(fecha), “Long
Irregulares, se tiene que saber cuál es el período de días mas largo y mas corto en los Date”), 36, “ES LA FECHA CORRECTA”)
últimos 6 (seis) ciclos menstruales. A la cantidad de días mas corto se le resta 18 If R = 6 Then
(dieciocho) para obtener a los cuantos días de su primer día de menstruación empieza Labell=” ler. Día de Menstruación:”+Format(CDate(fecha),”Long Date”)
sus días fértiles y al periodo de días mas largo se le resta 11 (once) para obtener a los Frame2 = “DIAS PROBABLES EN CICLO MENSTRUAL REGULAR DE: “
For X = 0 To 5
cuantos días de su primer día de menstruación terminan sus días fértiles. Por ejemplo, Listl.Addltem (CDate(fecha) + X) 'DIAS PROBABLES DE NO FERTILIDAD
si el periodo de días mas corto fue de 24 días y el ciclo mas largo fue de 32 días, Next X
entonces, sus días fértiles empiezan a los seis días de su primer día de menstruación For X = 6 To 18
(contando uno el primer día de su menstruación) y terminan a los 21 días de iniciado su List2.AddItem (CDate(fecha) + X) ‘DIAS PROBABLES DE FERTILIDAD
Next X
periodo menstrual. For X = 19 To 27
■». M t T O D O " D E L R I T M O " O M E T O D O " N A T U R A L " List3.AddItem (CDate(fecha) + X) ‘DIAS PROBABLES DE FERTILIDAD
D I A i» P R O B A R L E S D E E E R T I I ID A D E N Next X
M itr.* liu « c ió n l l r g u l . « I M c n iliu o c ió n lii a g u la i
End If
E n d lf
End Sub
r D Ía d o M e n stru ac ió n : D o m in g o , 2 3 ck» E n e r o d e 2 0 0 0

•A S P R O B A B L E S E N C IC L O M E N S T R U A L R E G J L A R D E : ..............................
BOTÓN PERIODO MENSTRUAL REGULAR
NO FER TILID AD F E R T IL ID A D NO FER TILID AD
Prívate Sub Command2_Click()
2 3 /0 1 /0 0 2 9 /0 1 /OU 1 1 /0 2 /0 0
Dim fecha As String
2 4 /0 1 /0 0
2 5 /0 1 /0 0
3 0 /0 1 /0 0 1 2 /0 2 /0 0 Dim L, C, INICIO, FINAL, R, x As Integer
2 6 /0 1 /0 0
3 1 /0 1 /0 0
0 1 /0 2 /0 0
1 3 /0 2 /0 0
1 4 /0 2 /0 0 C = Val(InputBox(“Número de días más corto”,"DE LOS ULTIMOS 6 CICLOS MENSTRUALES"))
2 7 /0 1 /0 0
2 8 /0 1 /0 0
0 2 /0 2 /0 0
0 3 /0 2 /0 0 —
1 5 / 0 2 /0 0
1 6 /0 2 /0 0
L = Val(InputBox(“Número de días más largo “, “DE LOS ULTIMOS 6 CICLOS MENSTRUALES'))
0 4 /0 2 /0 0
0 5 /0 2 /0 0
1 7 /0 2 /0 0
1 0 /0 2 /0 0
INICIO = C - 18
0 6 /0 2 /0 0 JT J 1 9 /0 2 /0 0 FINAL = L - 11
MsgBox “El período fértil empieza a los “ & INICIO & “ días de la menstruación” & Chr(13) & “ y
FUENTE O B S T E T R IZ M at a lla n a H u rta d o - C o p . 7 5 9 7 S e i v icio d e C o n se je ría IN N P A R E S * C hiciayo termina después de “ & FINAL & “ dias de tu mestruación”, 64, “CUlDAIX V’
fecha=InputBox(“ingresa ek día de tu última menstruación”,’’MENSTRUACION IREGULAR”)
D IA S P R O B A B L E S D E F E R T I L I D A D E N
If Not IsDate(fecha) Then
MsgBox “HA INGRESADO UNA FECHA INCORRECTA ”, 16, “CUIDADO”
M e n s tr u a c ió n R é g u la i M e n s t r u a c i ó n li r é g u l a i
Else
If R = 6 Then
1 et. D í a d e M e n stru ac ió n : M a lte s , 0 4 d e E n e r o d e 2 0 0 0
P e ó o d o m a s c o ito : 2 6 d í a s y p e í io d o m a s largo: 31 d ía s Labell = “ 1er. Día de Menstruación: “ + Format(CDate(fecha), “Long Date”)
Labell = Labell & Chr(13) & “Periodo mas corto: “ & C & " días y
D IA S P R O B A B L E S E N C I C L O M E N S T R U A L I R E G U L A R D E . periodo mas largo: “ & L & “ días”
N O FER TILID A D F E R T IL ID A D N O FERTILID AD Frame2 = “DIAS PROBABLES EN CICLO MENSTRUAL IREGULAR DE: “
0 4 /0 1 /0 0
0 5 /0 1 /0 0
1112/0
/011/0
/000 2 5 / 0 1 /0 0 For x = 0 To INICIO - 2
0 6 /0 1 /0 0 1 3 /0 1 /0 0
2 6 / 0 1 /0 0
2 7 / 0 1 /0 0 Listl.Addltem (CDate(fecha) + x) ‘DIAS PROBABLES DE NO FERTILIDAD
0 7 /0 1 /0 0
0 8 /0 1 /0 0
1 4 /0 1 /0 0
1 5 /0 1 /0 0
2 8 / 0 1 /0 0
2 9 / 0 1 /0 0
Next x
0 9 /0 1 /0 0
10/01/00 1 6 /0 1 /0 0
1 7 /0 1 /0 0
3 0 / 0 1 /0 0 For x = INICIO - 1 To FINAL
3 1 / 0 1 /0 0
1 8 /0 1 /0 0 0 1 /0 2 /0 0 List2.AddItem (CDate(fecha) + x) ‘DIAS PROBABLES DE FERTILIDAD
1 9 /0 1 /0 0 02/02/00 Next x
For x = FINAL + 1 To 30
FUENTE O B S T E T R IZ : S u s a n a M a ta l a n a H u rla d o - C o p 7 5 9 7 S e iv ic io d e C o n se je ría IN N P A R E S - C N d a y o
List3.AddItem (CDate(fecha) + x) ‘DIAS PROBABLES DE FERTILIDAD
Next x
Para desarrollar esta aplicación, dibuje en un formulario 2 controles Frame, 2 boto­ End If
nes de comandos, 4 etiquetas y 3 ListBox. End If
End Sub

► 246 G r upo E ditorial Megabyte^


iÉÉÉÍÉÍ» VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
U PD O W N BUDDYCONTROL
Se utiliza para escribir el nombre de un control que se encuentre dibujado en
1: 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,
Este control muestra dos botones con flechas que nos permiten incrementar entonces debe escribir Text3 o el nombre que le a asignado en Ñame.
o disminuir un valor. Se puede relacionar o no con otro control como por A U TOBUD DY
ejemplo con una caja de textos para que funcionen como un solo control. Permite que el control UpDown se relacione automáticamente con el control
que usted ha dibujado inmediatamente antes o despues de dibujar del
PR IN C IPA L E S PR O PIE D A D E S D E C O N T R O L U PDO W N : control UpDown.
Las propiedades principales del control se obtiene con sólo elegir la propiedad SYNCBUDDY
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas: Se utiliza para indicar si la propiedad Valué del control UpDown debe estai
General, Relaciones y Desplazamiento. sincronizada con la propiedad predeterminada o seleccionada del control
con el que se encuentra relacionado. Si se relaciona con una caja de textos,
la^TTiT-Tl-'MdJ I II I I I I I ■ ■ ■ ■ ■ ■ ■ ■ ■ E l la propiedad predeterminada es Text, esto quiere decir que en la propiedad
General | Relaciones | Desplazamiento j
Text de la caja de texto se muestra el valor la propiedad Valué del control
UpDown.
Qriontntíon |0 c-c20r¡©n»«t¡onV©r»icoil _~]
B U D D Y PR O PERTY
OLEDrouM ode jü - cc20LED ropN one j- ] Se utiliza para seleccionar una propiedad para la relación 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
_J C a n c e la r j ______________|A y u d a G en e ra ! | R elaciones D e s p la za m ie n to |

In te iva lo d e d e s p la z a m ie n to ,

y e lu e M in: M ax
A L IG M E N T B fó fu l r Wmp
Coloca el control UpDown a la derecha o izquierda del control con el que se
ha relacionado. T a s a d e d e s p la z a m ie n to
In c re m e n t j
O R IE N T A T IO N
Coloca el control en forma vertical o en forma horizontal ! ir'
O LEDROPM O DE
Devuelve o establece el modo en que un componente de destino realiza las | A ce p ta r j Cancetai' J Aphj. y | A y ix l .

operaciones de colocación. VALUE


Contiene un valor que depende de los botones donde se hizo clíck. Este
E l contenido de la hoja Relaciones es: valor se visualiza en el control relacionado.
M IN
G e n e ra l R e la c io n e s JD e s p la z a m ie n to j Se utiliza para indicar el valor mínimo para el control UpDown.
B u d d y C o n tro l | M AX
f~ ÍAutoBu¿cíyj í~ Se utiliza para indicar el valor máximo para el control UpDown.
W RAP
I □ Esta propiedad permite establecer si el valor regresa al valor mínimo cada
vez que se llegue al valor máximo o viceversa.
IN C R E M E N T
Esta propiedad permite establecer el valor del incremento o decremento
I A c e p ta r | C a n c e la r | A p liç a r j Ayuda
para cada vez que se haga clik en los botones del control UpDown.

248 G r u p o E d it o r ia l Megab
íM B á ? VISUAL BASIC como debe ser... > CAPÍTULO V: Ingreso Personalizado de Datos Í s S S Í Í P
Ejemplo: Si en la propiedad Mask Ud., escribe:
M A SK E D B O X
#### .- Permite ingresar cuatro dígitos.
##| ???? .- Permite ingresar cuatro letras.
##??## .- Permite ingresar dos dígitos, luego dos letras y
Este control permite ingresar y visualizar datos con un formato determinado. luego dos dígitos mas.
Si no le asignamos ningún formato de ingreso o visualización se comporta de ##/##/## o ##-##-## .- Facilita el ingreso de un fecha, pero
una manera similar al de una caja de textos. no controla si la fecha ingresada es correcta.
##:##.## .- Facilita el ingreso de las horas,minutos y
segundos, pero no controla si se ingresada correctamente.
PR IN C IPA L E S PR O PIE D A D E S D E L C O N T R O L M ASK ED BOX :
###,###.## .- Facilita el ingreso de cantidades utilizando
miles y dos decimales.
FORMAT >?<??????? .- Permite ingresar ocho letras, la primera la
Sirve para seleccionar el formado de visualización de los convierte a mayúscula y el resto en minúsculas.
datos. Estos datos pueden ser de tipo numérico, fecha, hora \<####\> .- Permite ingresar cuatro dígitos entre los signos
y texto. Por ejemplo: Formato monetario $#,##0.00; ($#,##0.00) mayor y menor.
Utiliza separador de miles; presenta los números negativos entre paréntesis. ##CAAAAA .- Permite ingresar dos dígitos, -un espacio (opcional)
Formato de porcentaje. 0% y luego cinco valores alfanuméricos (letras o números).
Multiplica el valor por 100 y agrega un signo de porcentaje.
Formato de fecha largo, dddddd NOTA:
Ejemplo: Domingo 13 de Junio de 1999 Para borrar dentro de un programa el contenido de este control, primero debe borrar lo que
Formato de fecha medio, dd-mrm-yy contiene en la propiedad Mask y luego se borra lo que contiene la propiedad Text.
Ejemplo: 13-Jun-99.
Formato de fecha corto, ddddd
Ejemplo: 13/06/99. MaskedBox 1.Mask =""
Formato de hora largo, tttt MaskedBox 1.Text=""
Ejemplo: 1:30:42 A.M.
Formato de hora medio. hh:mm AM/PM ALLOW PROM PT
Ejemplo: 1:30 A.M. Se utiliza para indicar el carácter de petición se puede considerar como un
Formato de hora corto. hh:mm ingreso válido.
Ejemplo: 1:30. PRO M PTCH A R
Se utiliza para indicar el carácter de petición de los datos. El carácter
MASK predeterminado es el subrayado (_), pero Ud., puede utilizar cualquier otro
Sirve para asignar un formado para ingresar datos. carácter.
Los caracteres más utilizados son:
# .- Indica que sólo se deben ingresar dígitos. M UY IM PO R T A N TE
? .- Indica que sólo se deben ingresar letras.
. .-Se utiliza para separar decimales. Si no desea visualizar ningún carácter de petición de datos, borre el carácter
, .- Se utiliza para separar miles. que se encuentra en la propiedad PromptChar y luego pulse la tecla ALT y
: .-Se utiliza para separar en las horas. el número 255.
/ .-Se utiliza para separar en las fechas.
En los cuatro caracteres anteriores verifique la configuración P R O M P T IN C L U D E
de su computadora (Configuración regional).
A .-- Indica que sólo se deben ingresar letras o números. Se utiliza para indicar si al referirnos al contenido de la propiedad Text se va
> .- Convierte las siguientes letras amayúsculas. a tomar en cuenta el carácter de petición.
< .- Convierte las siguientes letras aminúsculas.
C .- Indica que sólo debe aceptar espacios. NOTA:
\ .- Permite incluir cualquier carácter anterior dentro de ( uando se ingresa un valor incorrecto; es decir, no cumple el formato establecido, entonces
la máscara. se ejecutan las instrucciones del evento ValidationError.

250 G rupo E ditorial M e g a b y t e < | ¡ ¡ ¡ ^


como debe ser... CAPITULO V: Ingreso Personalizado de Datos ^ ¡¡
PASO N° 2: Asignar las propiedades a los controles.
APLICACION DESARROLLADA N° 37
iü, IN G R E S O DE P A C IE N T E S
AL formulado, frame, etiquetas y botones de comandos asígneles la propiedad
E s ìz i
Caption como se muestra en la aplicación a desarrollar.
N o m b re d e l P a c ie n te jjO R G E R IO S
Las cajas de texto: Text2, Text4 y Textó deben tener en su propiedad
F e c h a d e In g re s o |0 4 /0 8 /1 9 99 - A c tu a liz a r e l S is te m a j] BorderStyle el valor 0-None y en su propiedad Width el valor 200.
H o ra d e In g re s o (2 4 H s .) 1 6 :2 0 :1 5 - I
A c tu a liz a r e l S is te m a Las cajas de texto: Text3 y Text5 deben tener en su propiedad BorderStyle
3
S a la N s [ I - 1 2 ) el valor 0-None, en su propiedad Width el valor 90 y en su propiedad Texl
N uevo
dos punto (:).
A s e g u ra d o ( S / N ) ? S alir
Las cajas de texto desde Text2 hasta Textó, deben estar lo mas juntas
D a lo s d e l S is te m a :
Fecha j M ié rc o le s 4 d e A g o s to d e 1 9 9 9 H o ra 1 6 :2 0 :3 0
posibles. Esto lo puede lograr usando la propiedad Left.
Los controles UpDown 1 y UpDown2 no deben tener ninguna propiedad
porque no están ligados a ningún control, trabajan en forma independiente.
Debe tener las siguientes características:
El control UpDown3 está ligado al control Text7, por lo tanto, debe tener las
1. La Fecha y la hora de ingreso se pueden modificar con el control UpDown. siguientes propiedades:
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. UPDOWN BUDDYCONTROL SYNCBUDDY BUDDYPROPERTY MIN MAX WRAP
3. Para ingresar la sala se deben utilizar un caja de textos y un control UpDown. UpDown3 Text7 True Predeterminado 1 12 True
4. En Asegurado sólo se debe aceptar las letras S(si) o N(no).
Las propiedades de los controles MASKEDBOX son:
5. Los botones Actualizar el Sistema, deben actualizar la fecha y hora del
sistema. FORMAT MASK ENABLED
MASKEDBOX
6. Se deben visualizar la fecha y hora del sistema. MaskedBoxl En Blanco #/# # /# # # # True
MaskedBox2 En Blanco >? True
PASO N° 1: Dibujar los controles. MaskedBox3 dddddd En Blanco False
Maskedbox4 ttttt En Blanco False

PASO N° 3: Escribir las instrucciones para los controles.

Definir las variables a nivel de formulario:


jjl Proyeclol - Form! (Código) m u
(General) (Declaraciones)

O ption E x p l ic i t
Dim CAJA, HORAS, MINUTOS, SEGUNDOS As Byte
Dim FECHA As Date

NOTA: Cuando dibuje los controles MaskedBox, no se visualizaran los nombres


(salen en blanco).

S i G rupo E ditorial M e g a b y t e « *
CAPÍTULO V: Ingreso Personalizado de Datos
Instrucciones del Control UpDown2
Instrucciones del Procedimiento M U ESTRA TIEM PO
Al hacer click en la flecha hacia abajo disminuye las horas, los minutos o
S u b MUESTRATIEMPO () segundos, dependiendo de donde se encuentre el cursor. En form a
T e x t 2 = F o r m a t(H O R A S , " 0 0 " )
T e x t 4 = F o r m a t( M IN U T O S , " 0 0 " )
predetermina disminuyen los segundos.
T e x t 6 = Form a t(S E G U N D O S, " 0 0 " ) P r í v a t e S u b U p D o w n 2 _ D o w n C l i c k ()
End Sub S e l e c t C a s e CAJA
C ase 2
Instrucciones del evento Form_activate HORAS = HORAS - 1
I f HORAS = - 1 T h e n HORAS = 23
P r í v a t e S u b F o r m _ A c t i v a t e () C ase 4
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 T im er MINUTOS = MINUTOS - 1
CAJA = 6 'L o s s e g u n d o s d e m o d i f i c a n e n fo r m a p r e d e t e r m i n a d a I f MINUTOS = - 1 T h e n MINUTOS = 59
FECHA = D a t e C ase 6
SEGUNDOS = SEGUNDOS - 1
M a s k E d B o x l . T e x t = Format(FECHA, " d d / m m / y y y y " ) I f SEGUNDOS = - 1 T h e n SEGUNDOS = 5 9
M a sk E d B o x 2 . T e x t = "N" End S e l e c t
M a s k E d B o x 3 . T e x t = D a t e 'M u e s t r a l a F e c h a d e l S i s t e m a MUESTRATIEMPO
M a s k E d B o x 4 . T e x t = T im e 'M u e s t r a l a H ora d e l S i s t e m a End Sub
HORAS = H o u r ( T im e )
MINUTOS = M i n u t e ( T i m e ) Al hacer click en la flecha hacia arriba aumentan las horas, los minutos o
SEGUNDOS = S e c o n d ( T i m e ) segundos, dependiendo de donde se encuentre el cursor. En form a
MUESTRATIEMPO predetermina aumentan los segundos.
T e x t l = ""
P r í v a t e S u b U p D ow n2 _U p C lic k ()
T e x t7 = 1 S e l e c t C a s e CAJA
T e x t l . S etF o cu s C ase 2
End Sub HORAS = HORAS + 1
I f HORAS = 24 T h e n HORAS = 0
Instrucciones del Control Timer C ase 4
MINUTOS = MINUTOS + 1
'Muestra la hora del sistema I f MINUTOS = 6 0 T hen MINUTOS = 0
P r í v a t e S u b T i m e r l _ T i m e r () C ase 6
M a sk E d B o x 4 . T e x t = T im e SEGUNDOS = SEGUNDOS + 1
End Sub I f SEGUNDOS = 6 0 T h en SEGUNDOS = 0
E nd S e l e c t
Instrucciones del Control UpDownl MUESTRATIEMPO
End Sub
'A l h a c e r c l i c k e n 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 S u b U p D o w n l_ D o w n C lic k () Instrucciones del Botón Actualizar el Sistema (Fecha)
FECHA = C V D a t e ( M a s k E d B o x l . T e x t ) - 1 P r í v a t e S u b C o m m a n d l _ C l i c k ()
D a t e = C V D a t e ( M a s k E d B o x l .T e x t )
M a s k E d B o x l . T e x t = Format(FECHA, " d d / m m / y y y y " ) M a sk E d B o x 3 . T e x t = D a t e
E nd S u b End S u b
'A l h a c e r c l i c k e n l a f l e c h a h a c i a a r r i b a a u m e n ta l a f e c h a . Instrucciones del Botón Actualizar el Sistema (Hora)
P r í v a t e S u b U p D o w n l_ U p C lic k () P r í v a t e S u b C o m m a n d 2 _ C lic k ( )
FECHA = C V D a t e ( M a s k E d B o x l . T e x t ) + 1 HORAS = V a l ( T e x t 2 )
MINUTOS = V a l ( T e x t 4 )
M a s k E d B o x l . T e x t - Format(FECHA, " d d / m m / y y y y " ) SEGUNDOS = V a l ( T e x t 2)
E nd S u b Time = CVDate ( S t r (HORAS) +":"+Str (MINUTOS) +*: "+Str (SEGUNDOS))
M a sk E d B o x 4 . T e x t = T im e
E nd S u b

254 G rupo .............R, a l M e g a b y te # *


Í ¡ f Í ^ VISUAL BASIC como debe ser. . . < 3§ CAPÍTULO V: Ingreso Personalizado de Datos '%

Instrucciones del Control M askEdB oxl INSTRUCCIÓN SENDKEYS


Al dejar de ingresar la fecha de ingreso, verifica que la fecha es correcta.
Hace que Visual Basic considera que se han pulsado teclas com o si
P r í v a t e S u b M a s k E d B o x l _ L o s t F o c u s () hubiésemos utilizado el teclado. Esto quiere decir que con esta instrucción
I f N o t ( I s D a t e ( M a s k E d B o x l . T e x t ) ) T hen podem os presionar autom áticam ente las teclas ENTER, ESCAPE,
M sgB ox "No e s una f e c h a C o r r e c t a " , 1 6 , "R ec tifiq u e " BACKSPACE, TAB, etc., o escribir algún texto sin que el usuario, es decir,
M a skE d B o xl. S e tF o c u s la persona que esta usando la computadora lo haga. Por ejemplo, para enviar
E nd I f el texto Visual, se escribe: SendKeys "Visual”
Erid S u b
Los signos más(+), intercalación(A), porcentaje(%), tilde(~), los paréntesisO
y las teclas especiales deben de estar entre llaves ({}). Debe utilizar el
Instrucciones del Control M askEdBox2
nombre correcto de las teclas especiales en mayúsculas o minúsculas.
Permiten que sólo se ingresen las letras N o S.
TECLA NOMBRE TECLA NOMBRE
P r í v a t e Sub M a skE d B o x2 _ K eyP ress(K eyA scii A s I n t e g e r ) RETROCESO {BACKSPACE}, {BSJ INSERT {INSERT} o {INS}
Dim K A s I n t e g e r INTER (BREAK) FLECHA IZQ {LEFT}
K = A s e (U C a se (C h r (K e y A s c i i ) ) ) BLOQM AYÚS ¡CAPSLOCKj BLOQ NÚM {NUMLOCK}
SUPR (DELETE} o (DEL) RE PAG {PGDN}
I f N o t (K = 83 Or K = 78 Or K = 2 7 Or K = 13 Or K = 8) Then
FLECHA ABAJO (DOWN} AVPÁG {PGUP}
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 IMPR PANT {PRTSC}
FIN (END)
E nd I f {ENTER}o ~ FLECHA DER {RIGHT}
ENTRAR
E nd S u b ESC {ESC} BLOQ DESPL {SCROLLLOCK}
AYUDA {HELP} TAB {TAB}
Instrucciones de las Cajas de Texto INICIO (HOME) FLECHA ARRIBA {UP}
Al ubicar el cursor en una caja de textos la variable Caja indica dónde de
Las teclas de función Fl, F2, etc., tienen el mismo nombre.
hizo Click y selecciona lo que contienen. Ejemplos:
Las siguientes instrucciones ubican el cursor en Textl y pulsan en
P r i v a t e S u b T e x t2 _ G o tF o c u s () P r i v a t e S u b T e x t 4 _ G o t F o c u s () forma automática la tecla TAB.
CAJA=2 'H i z o c l i c k e n T e x t 2 CAJA=4 ' H i z o c l i c k e n T e x t 4 Textl.setfocus
Sendkeys "{TAB}"
T e x t2 . S e lS ta r t = 0 T e x t4 .S e lS ta r t = 0 Las siguientes instrucciones ubican el cursor en el Command2 y pulsan
T e x t2 . S e lL e n g th = T e x t 4 . S e lL e n g th = L e n (T ext4 ) en forma automática la tecla ENTER que equivale a hacer click, por lo
L e n ( T e x t2) T ext4 = T e x t 4 . S e i T e x t tanto ejecutarán las instrucciones que se encuentran en dicho botón
T e x t2 = T e x t2 . S elT exc E nd S u b de comandos.
End Sub Command2.SetFocus
SendKeys ''{enter}"
P r i v a t e S u b T e x t 6 _ G o t F o c u s () P r i v a t e S u b T e x t 7 _ G o t F o c u s () La siguiente instrucción pulsa en forma automáticas las teclas 'Í’AB y
ENTER:
CAJA=6 'H i z o c l i c k e n T e x t 6 T e x t7 . S e lS ta r t = 0 SendKeys "{tab}{enter}"
T e x t6 .S e lS ta r t - 0 T e x t7 . S e lL e n g th = L en (T ext7 ) Para combinar las teclas con CTRL, MAYÚS (SHIFT) y ALT, debe escribir
T e x t 6 . S e lL e n g th = L e n (T extß ) T ext 7 = Text 7 .S ei Text primero el código de la tecla:
Text 6 = Text 6 .Sei Text End Sub CTRL (CONTROL) A MAYÚS (SHIFT) + ALT %.
End Sub Y luego el nombre de la tecla que desea entre paréntesis. Por
ejemplo, La siguiente instrucción pulsa en forma automática F4,
manteniendo presionada la tecla ALT. S e n d K e y s "% ({F 4}) “
I n s t r u c c i o n e s d e l B o t ó n Nuevo La siguiente instrucción mantiene presionada la tecla Shift, mientras
P r i v a t e S u b C o n m a n d 3 _ C l i c k () escribe la palabra trabajo. S e n d K e y s "+ ( t r a b a j o ) "
F o rm _ A c tiv a te
End Sub Se puede indicar también la cantidad de veces que desea que se pulse
la tecla. Por ejemplo, la siguiente instrucción pulsa 6 veces la
tecla BACKSPACE: S e n d K e y s "(B S 6} "
E l Botón salir debe tener la instrucción END.

256 G ru po E d it o r ia l Megabyte
i y ,SY.VIL BA SIC como debe ser.
A P L IC A C IO N D E SA R R O L L A D A N° 38 Instrucciones del procedim iento Form _Activate
P r i v a t e S u b F o r m _ A c t iv a t e ()
Esta aplicación permite ingresar datos, pero tiene un botón que hace una Rem D a to s a v i s u a l i z a r e n l a d e m o s t r a c i ó n
demostración de cómo ingresarlos. NOMBRE = "OLGA UBILLUS D. "
EDAD = "25 ANOS"
DIRECCION = "A v. IMELDA LOPEZ 2 8 5 "
TELEFONO = "2 2 2 3 2 4 "
Nombre
r DATO = 1
Y = 0
E d ad
T e x tl = : T e x t 2 = "" : T e x t3 = "" : T e x t4 =
D irección
(Demostración C o m b o l. L i s t l n d e x = 0 : T e x t l . S e tF o c u s
T eléfoho End Sub

Estudios j Primaria Instrucciones del botón Dem ostración.


P r i v a t e S u b C o m m a n d 3 _ C lic k ()
N u e vo S a lir F o r m _ A c tiv a t e
C om m andl. E n a b le d = F a l s e
C omm and2. E n a b le d = F a l s e
C omm and3. E n a b le d = F a l s e
PASO N° 1: Dibujar los controles. T im e r 1 . I n t e r v a l = 10 0
End Sub
-IPI *1
Lab e ll ¡T e x tl
Instrucciones del-control T im erl
P r i v a t e S u b T im e r l _ T im e r ()
Label2 |T e x t2 Y = Y + 1
Label3 |T e x t3
S e l e c t C a se DATO
Com m and3
C a se 1
Labe!4 | f ext4 S e n d K e y s M id (NOMBRE, Y, 1)
LabeIS
I f Y = L e n (NOMBRE) T h en CAMBIO
C om bol
" 3 :: C a se 2
S e n d K e y s M id (EDAD, Y, 1)
Com m and! Com m and2 I f Y = L e n (EDAD) T h en CAMBIO
C a se 3
S e n d K e y s M id (DIRECCION, Y, 1)
I f Y = L e n (DIRECCION) T h en CAMBIO
C a se 4
PASO N° 2: Asignar las propiedades a los controles. S e n d K e y s M i d (TELEFONO, Y, 1)
A las etiquetas y botones de comandos asígneles su propiedad Caption como I f Y = L e n (TELEFONO) T hen CAMBIO
C a se 5
se muestra en la aplicación a desarrollar. 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 tie m p o
El C om bol debe tener en su propiedad List, los valores: Prim aria, S e n d K e y s " ( { f 4 } ) " 'M u e s tr a l o s e l e m e n t o s d e l Combol
Secundaria y Superior. DATO = DATO + 1
C a se 6
S e n d K e y s " ( { dow n })"
PASO N" 3: Escribir las instrucciones para los controles. DATO = DATO + 1
C a se 7
Definir las variables a nivel de formulario. S e n d K e y s " ( {dow n })"
P u b l i c DATO, Y, N A s B y t e DATO = DATO + 1
P u b l i c NOMBRE, EDAD, D IR EC C IO N , TELEFONO A s S t r i n g C a se E l s e
T im e r l. I n te r v a l = 0
C om m andl. E n a b le d = T r u e
Procedimiento Cambio Instrucciones del botón Nuevo Command2. E n a b le d = T r u e
S u b CAMBIO () P r í v a t e S u b C o m m a n d l _ C l í c k () Command3.E n a b le d = T r u e
DATO = DATO + 1 F o rm _ A c tiv a te C om m andl. S e tF o c u s
End S e l e c t
Y = 0 End Sub End Sub
SendK eys " { TAB }'
End Sub

258 259 « ¡ g »
G r u p o E d it o r ia l Megabyte*
O
VISUAL BASIC como debe ser.. CAPÍTULO V: Ingreso Personalizado de Datos
A P L IC A C IO N D E SA R R O L L A D A N° 39
ARRASTRAR Y COLOCAR
Esta aplicación consiste en el juego “TRES EN RAYA” para lo cual se
Para que usted pueda desarrollar programas donde se permita Arrastrar y utiliza el proceso de Arrastrar y Colocar.
Colocar Objetos, primero debe saber siguiente:
yjS*í
EVENTO DRAGDROP
Es un evento cuyas instrucciones que contiene se ejecutan cuando se termina
el proceso de Arrastrar y Colocar. ü? r ■***«
Recibe normalmente tres valores en las siguientes variables:
SOURCE: Es una variable que representa al control que se esta arrastrando. r~m r fe
Puede utilizar esta variable para asignar valores a las propiedades de dicho ix : r p ^
control.
j & l í i x a Muela
X: Es una variable que representa la posición Horizontal del puntero del mouse.
Y: Es una variable que representa la posición Vertical del puntero del mouse. ■■ ... ..... .
p B t m & x W 0 1 corneto
Si trabajamos con array de controles también devuelve un valor en la variable
INDEX que representa al N° del control del array que se está utilizando.
EVENTO DRAGOVER PASO N° 1: Dibujar los controles.
Es un evento cuyas instrucciones que contiene se ejecutan cuando el proceso
de Arrastrar y Colocar se esta realizando. Picturel Picture2 Array de Pictureó Picture3 Picture4
Recibe los mismos valores que el evento DragDrop, pero además: (de0a8)
STATE: Es una variable que representa cuál es la situación del control que mm
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. Hcture5 ■ -Picture7
La be ll Labe(2
PROPIEDAD DRAGM ODE
Cuando un control tiene esta propiedad se utiliza para indicar cómo se debe Label3 LabeM

iniciar el proceso Arrastrar y Colocar. jT e x tl IT ext2

Si se le asigna el valor 0 (Manual) se necesita utilizar el método Drag para Frame4


r C he ck!
iniciar el proceso.
Si se le asigna el valor 1 (Automático) el proceso se inicia automáticamente
cuando usted lo requiera.
M ÉTODO DRAG PASO N° 2: Asignar las propiedades.
Este método se utiliza para iniciar, term inar o cancelar un proceso de Coloque el Picture2 sobre el Picturel y el Picture4 sobre el Picture3.
Arrastrar y Colocar. Su sintaxis es: Sólo al Picture5 y Picture7 asigneles en su propiedad DragMode el valor I
Nom bre del Control.Drag Valor (Automático). Los gráficos utilizados en la propiedad picture de algunos
El valor puede ser: controles son: Face03.ico (Alegre), Face04.ico (Triste), House.ico (Casa),
0 : Cancela el proceso de Arrastrar y Colocar. Match.ico (Fuego), TrffclOa.ico (Semáforo), EraseOl .ico (Borrador). Si no
1 : Inicia el proceso de Arrastrar y Colocar. los tiene utilice cualquier otro.
2 : Termina el proceso de Arrastrar y Colocar. A los otros controles asigneles las propiedades como se indica en la
La siguiente aplicación muestra un ejemplo de Arrastrar y Colocar: aplicación.

260 G r u p o E d it o r ia l Megabyte ^ ||i |||


ÍS Í¡^ VISUAL BASIC como debe ser. . . CAPÍTULO V: Ingreso Personalizado de Datos
PASO N° 3: Escribir las instrucciones para los controles Instrucciones del Array Pictureó (Programa en cualquiera de ellos)
Private Sub Picture6_DragDrop(Index As Integer, Source As Control, xA s Single,
Y As Single)
Instrucciones del botón Nuevo Juego. Rem Coloca la figura
Private Sub Commandl_C lick() Pictureóf Index) = Source
Dim x A s Byte Rem Activa el jugador de turno
Rem Oculta las figuras alegre y triste If Source = Picture5 Then
Picture 1. Visible = False Frame ¡.Enabled = False
Picture2.Visible = False Frame 3. Enabled = True
Picture3.Visible = False Else
Picture4.Visible = False Frame 1. Enabled - True
Rem Limpia el tablero del tres en raya Frame3. Enabled = False
End If
For x = 0 To 8
Rem Pregunta si hubo un ganador (Tres en raya horizontal)
Pictureófx) = LoadPicture("") IfPictureó(O) = Pictureóf 1) And Picture6( 1) = Pictureóf2) Then Call ganadorfO)
Next x If Pictureóf3) = Pictureóf4) And Pictureóf4) = Pictureóf5) Then Call ganado rf3)
Rem Pregunta quién juega primero IfPictureófó) = Pictureóf 7) And Pictureó(7) - Pictureó(8) Then Call ganadorfó)
I f Check2 Then Rem Pregunta si hubo un ganador f Tres en raya vertical)
Frame ¡.Enabled = True If Pictureóf0) = Pictureóf 3) And Pictureó(3) - Pictureófó) Then Call ganadorfO)
Frame 3. Enabled = False If Pictureóf 1) = Pictureóf4) And Pictureóf4) = Pictureóf 7) Then Call ganado rf I)
Else If Pictureóf 2) = Pictureóf5) And Pictureóf5) = Pictureóf8) Then Call ganado rf 2)
Frame 1. Enabled = False Rem Pregunta si hubo un ganador (Tres en raya diagonal)
Frame3. Enabled - True IfPictureó(O) = Pictureó(4) And Pictureó(4) = Pictureó(8) Then Call ganadorfO)
If Pictureóf 2) = Pictureóf4) And Pictureóf4) = Pictureóf6) Then Call ganado rf 2)
End I f
End Sub
Rem Activa el tablero del tres en raya
Frame2. Enabled = True Instrucciones del Procedim iento GANADOR.
End Sub Sub ganadorfcarta)
Rem Pregunta si ganó el ju gar N° 01
Instrucciones del botón Inicializar el Puntaje. If Pictureóf carta) - Picture5 Then
Private Sub Com m and!_Click() Picturel. Visible = True
Labell = 0 Picture4. Visible = True
Label2 = 0 MsgBox “Ganó el Jugador N° 01 “+Chr(13)+Chr(34)+Textl+Chr(34),ó4,
E nd Sub “Felicitaciones ”
Labell = Labell + 10
Instrucciones del Form _Activate Frame2. Enabled = False
Instrucciones del C h eck l
End If
Private Sub C heckl jC lic k () Prívate Sub Form_Activatef)
Rem Pregunta si ganó el ju gar N° 02
I f Checkl Then Checkl. Valué = 1 If Pictureóf carta) = Picture7 Then
Labell .Visible = True Check2. Valué - 1 Picture2. Visible = True
Label2.Visible = True C om m andl _Click Picture3. Visible = True
Else E nd Sub MsgBox “Ganó el Jugador N° 02 “+Chr(13)+Chr(34)+Text2+Chr(34), ó4,
Label ¡.Visible = False “Felicitaciones ”
luibel2.Visible = False Label2 = Label2 + 10
End I f Frame2.Enabled = False
End Sub End If
End Sub

262 G r u p o E d it o r ia l Megabyte
à I Ì VISUAL BASIC como debe ser...

AHORRE TIEM PO AL PROGRAMAR PREGUNTAS DE REPASO N° 05


1. ¿Cómo se pregunta si un control OptionButton está activado?
IN STR U C C IÓ N W IT H 2. ¿Qué instrucción o método permite quitar un elemento del control
ComboBox y ListBox?
Esta instrucción permite ahorrar tiempo al momento de programar, porque 3. ¿Cuál es la diferencia entre las propiedades Format y Mask del control
evita referirnos varias veces al nombre de un control. MaskEdBox?
Su sintaxis en la siguiente: 4. ¿Cómo sabemos el elemento que el usuario a elegido de un control,
ComboBox o ListBox?
With Nombre del Control 5. ¿Cóm o se puede verificar que la fecha ingresada en el control
MaskEdBox es correcta?
Instrucción (es) 6. ¿Cuál es la diferencia entre en un OptionButton y CheckBox?
7. ¿Qué ventaja tiene el control MaskEdBox sobre un TextBox?
End With 8. ¿Qué utilidad tiene la propiedad Warp en el control UpDown?
9. ¿Qué teclas se deben pulsar por cada elemento que desea adicionar al
Dentro del bloque de instrucciones, usted puede referirse a cualquier control ListBox o ComboBox?
propiedad o método del control indicado con sólo escribir un punto (.) antes 10. ¿Cómo se pregunta si un control Checkbox está activado?
de la propiedad o método. 11. ¿Qué debe hacer si no desea visualizar el caracter de petición en el
Ejemplo: control MaskEdBox?
Las siguientes instrucciones: 12. El Valor True se puede reemplazar por el núm ero____ y el valor False
por el núm ero____ .
C o m b o l.A d d lte m "Api i c a t i v o s " 13. ¿Cuál es la propiedad que permite saber si un control OptionButton o
C o m b o l. A d d l tem " P r o g r a m a d ón " CheckBox se encuentran activados o no?
C o m b o l.A d d lte m " O tr o s " 14. ¿Qué utilidad tiene la instrucción Sendkeys?
C o m b o l. L i s t l n d e x = 0 15. ¿Cuál sería el formato de la propiedad Mask del MaskEdBox para
ingresar una fecha apartir del año 2000 (4 digitos)?
Se pueden escribir de la siguiente manera 16. ¿Con qué instrucción o método se puede agregar elementos al control
ComboBox y ListBox?
Wi t h Com bo1 17. ¿Cómo se borra el contenido de un control MaskEdBox?
.A d d lte m " A p l i c a t i v o s " 18. ¿Qué utilidad tiene la propiedad Buddycontrol de un UpDown?
. A d d lte m "P ro g ra m a ció n " 19. ¿Qué evento se ejecuta en el control MaskEdBox cuando se ingresan
.A d d lte m "O tro s" los que se cumple el formato establecido?
.L istln d e x = 0 20. ¿Cómo podemos hacer que se muestren los elementos de un ComboBox
E n d Wi t h en forma automatica con la instrucción SendKeys?

IM P O R T A N T E : Es m uy importante que usted, se fo rm u le nuevas aplicaciones o


Cuando tengas que repetir instrucciones similares es un programa, utiliza las intercambie aplicaciones propuestas entre sus compañeros de
herramientas de Copiar y Pegar, la cuales también permiten ahorrar tiempo estudio y desarrollarlas con la finalidad de enriquecer sus
durante la programación. conocimientos.

COPIAR -> Ctrl + C o Edición/Copiar


PEGAR -> Ctrl + V o Edición/Pegar

264 G r u p o E d it o r ia l Megabyte
BASIC como debe ser.. .

PREGUNTAS DE REPASO N° 06
1. ¿Cómo quita un formulario de sus aplicación?
2. ¿Qué debe hacer si desea evitar que se muestre la ventana de diálogo
cada vez que agrega un formulario a su aplicación?
3. ¿Se puede grabar dos formularios con el mismo nombre?
CAPITULO VI
4. ¿Cuáles son los pasos para agregar la calculadora de Visual Basic a una Aqirfior Inrmulino
aplicación? N u o to I E ü is te n ltí I
5. ¿Es obligatorio ocultar un formulario para visualizar otro durante la
ejecución de una aplicación?
6. ¿Se puede agregar a una aplicación un formulario que en su propiedad E M t M M t V B D a ta / W fitfin t About L o g In O p t io n s S p la s h T ip O f

Ñame tenga el mismo nombre de uno de los formularios de dicha F a rm e p a ra O a io g D ia lo g D ld a q S cre e n T h e D ew ¥


W\2ard f-rwfrvii
f o m id Jab.i<
ri
as de
aplicación? d ata s . . . \
7. ¿Cuál es la diferencia entre Hide y Unload? Q- en a o. a o. en. &
8. ¿Qué debe hacer si en una aplicación tiene varios formularios y desea A d d in O D B C Efr’o w s e r CvstaG rid Q u e ry s A c e rc a Entelo d e ü p e t o ...

visualiza o modifcar uno de ellos? Loa In de sesión


9. Explique cómo se adiciona un formulario ya creado a una nueva aplicación. A b rir

10. Cuando se ejecuta una aplicación, Visual Basic en forma predeterminada L -e n e e le i ¡


ejecuta el formulario N °___ . Ájiuda
11. ¿Q ué m ensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicación y a qué se deben? -08-98
12. ¿Cómo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
13. ¿Cuál es la diferencia entre Show y Load?
14. Explique la palabra clave Me.
BIENVENIDOS
15. Explique cómo se adiciona un formulario en blanco a una aplicación.
16. Si tiene una aplicación con 5 formularios. Cuando grabe la aplicación AL
cuántos nombres debe ingresar.
17. ¿Qué debe hacer para que Visual Basic ejecute primero un formulario SISTEM A
diferente al que ejecuta en forma predeterminada?
18. ¿Cómo se declara una variable o procedimiento para poder usarlo en
"lü D K lD l Cancelar
cualquier formulario de una aplicación?
19. ¿Cuál es la diferencia entre la calculadora del Visual Basic y la
calculadora del Windows?
20. ¿Cuando quita un formulario de su aplicación, se borra físicamente del
disco de su computadora? MANEJO DE
La creatividad es m uy importante, form úlese nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compañeros de estudio VARIOS
y desarrollarlas con la finalidad de enriquecer sus conocimientos.
FORMULARIOS
266 G r u p o E d it o r ia l Megabyte
CAPÍTULO VI: Manejo de Varios Formularios

RIOS
MANEJO DE VARIOS FORMULARIOS
r- ——

Cada vez que ingresa al Visual Basic, muestra una aplicación que tiene en
forma predeterminada un formulario (Form l). Pero puede agregar más
formularios.

AGREGAR FORMULARIOS A UNA APLICACIÓN:


Existen 3 formas de agregar formularios:
1. De la opción Project (Proyecto) de la Barra de Menú elija Add Form
(Agregar Formulario).
2. Haga Click en el botón Add Form de la barra de Herramientas.
3. En la ventana de proyecto haga click con el botón derecho del Mouse y
elija la opción Agregar, luego formulario.

Í3 - BOTON ADD FORM

Según como está configurado el Visual Basic puede visualizar la siguiente


ventana:
A g reg ar form ulario í?|x|
Nuevo | Existente |

a ¿V ¿V Q D Q D Q.
2 2 2 2 3 8 1 VB D a t a A s is te n t A bout L og In O p tio n s S p la s h Tip Of
F o rm e p a r a D ialog D ialog D ialog S c re e n T he D ay
W iz a rd fo rm u la n
os de
d a t o s ...

O O O O O Q O CJ '
A ddiri ODBC B ro w s e r D a ta G rid Q u e ry s A c e rc a Inicio d e O p c io ... f
L og In de s e s ió n

Abtir

Cancelar |

Ayyda | >

f” N fi mostrar esfe cuadro de diálogo en el futuro

Si no desea visualizar esta ventana active la casilla:


No mostrar este cuadro de diálogo en elfuturo.
Si desea visualizarla: Active la opción 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 aplicación. Para ello, selecciónelo
y haga click en el botón Abrir.
á U l É l b - VISUAL BASIC como debe ser: . . CAPÍTULO VI: Manejo de Varios Formularios <11111

QUITAR FORM ULARIOS DE UNA APLICACIÓN:


En la hoja Existente, se muestran los formularios que Ud., a diseño y
Para quitar un formulario de su aplicación pude seguir cualquiera de los
permite agregarlos a su nueva aplicación. Para que esto tenga éxito debe
de tener cuidado que los nuevos formularios existentes que desea agregar siguientes pasos:
no tengan el mismo nombre (propiedad Ñame) de los formularios que tiene 1. De la opción Project (Proyecto) de la Barra de Menú elija Remove
en su aplicación actual. Form (Quitar Formulario).
Por ejemplo, se desea agregar a la aplicación actual un formulario que tiene en 2. En la ventana de proyecto haga click con el botón derecho del Mouse en
su propiedad Ñame el nombre Forml, pero en la aplicación actual ya existe un el nombre del formulario que desea quitar y elija la opción Remove
formulario que en sus propiedad Ñame tiene dicho nombre. Entonces se visualizan Form.
los siguientes mensajes de error:
NOTA:
Microsoft Visual Basic Cuando Ud., quita formularios de su aplicación que previamente a grabado,
Errores de carga. Consulte 'C:\Archivos de program a\DevStudio\VB\Form 1 log' para
Visual Basic no los borra de su computadora, sólo los quita de la aplicación
& obtener más detalles actual. Esto quiere decir que Ud., puede volver a agregar dicho formulario a su
aplicación o en cualquier otra.
Aceptar j| Ayuda

SELECCIONAR EL FORMULARIO A EJECUTARSE PRIMERO:


M icro so ft V isu a l B a sic Visual Basic en forma predeterminada ejecuta el formulario N° 1 cuando
Ud., ejecuta su aplicación. Si desea indicarle que ejecute otro formulario
f \ N o se c a rg a rá 'F o rm l* El nom bre y a e stá e n uso.
puede seguir cualquiera de los siguientes pasos:
1. De la opción Project (Proyecto) de la Barra de Menú elija Properties
I r ^ A c j^ c ir )| Ayuda j
Project (Propiedades del Proyecto)
2. En la ventana de proyecto haga click con el botón derecho del Mouse en
Para solucionar este problema cambie el nombre de la propiedad Ñame a cualquiera el nombre del proyecto y elija la opción Propiedades del Proyecto.
de los formularios. Se visualiza la siguiente ventana:
Para visualizar todos los formularios que tienen nuestra aplicación podemos
acticar la ventana de proyectos. Por ejemplo, la siguiente ventana indica G e n e r a l j G e n e r a r j C o m p ila r | C o m p o n e n t e |

que tenemos 4 formularios: T ip o d e p r o y e c t o : O b j e t o in ic ia l:

N o£nt> f© d « p r o y e c t o :
j P ro y e c to 1 Id . d e c o n te x to ,
' CD d e la A y u d a d e l
h o m b re d e l a rc h iv o d e A y u d a : p ro y e c to :

C3 F o rm l (F o r m i)
i----------------------------------------- n¡— '—
a F o rm 2 (F o r m 2 ) d e s c rip c ió n d e l p r o y e c to :

a F o rm 3 (F o r m 3 ) I-----------------------------------------------------------------
a Fo rrn 4 (F o r m 4 ) r~
A c tu a liz a r c o n t r o l e s A c tiv e X C

r I 3
Haga click en el signo más (+) si no se visualizan los formularios.
A c e p ta r } C a n c e l a r __ | A yuda

Los nombres de los formularios que se visualizan dependen del asignado en


su propiedad Ñame.
Haga click en la flecha hacia ahajo de Startup Object (Objeto Inicial) y seleccione
Para visualizar o modificar cualquier formulario, haga doble click en su el formulario que desea que se ejecute primero.
nombre o pulse SHIFT+F7.

p 270 Grupo Editorial Megabyte


íÉ Ü ^ I é ¡- VISUAL BASIC como debe ser. . . CAPITULO VI: io de Varios Formularios 'M,

M U Y IM PO R TA N TE A P L IC A C IO N D E SA R R O L L A D A N H40
Esta aplicación es un ejemplo de cómo se manejan varios formulario en una
Si desea referirse a la propiedad de un control que se encuentra en aplicación.
otro formulario, debe utiliza el signo de admiración:
PASO N° 01
Nombre del Form ulario!Control. Propiedad = Valor
Agregue y dibuje los formularios siguientes:
Ejemplo:
La siguiente instrucción m uestra en la etiqueta N° 2 del form ulario
Form3 la palabra HOLA. Esto se puede realizar desde cualquier fo r ­ FO R M I FO RM 2
IN G R ES O LE DA
mulario.
Centro de Estudios

Form3!Label2 = "Hola" Especialidad X.■


Ciclo Apodeiado(a) J¡~
Los nombres de los formularios en forma predeterminada son: Form 1, Form2, Turno N* de Hermanos |
Form3, etc. según la cantidad de formularios que adicione a su aplicación. Aula [“
Lugar de Origen j
Tipo de Vivienda |
INSTRUCCIONES PARA M ANEJAR FORM ULARIOS MUEVO I SAUR I
NUEVO {

LOAD :
Permite cargar un formulario en la memoria, pero no lo visualiza. Para tener FO RM 3 FO RM 4
acceso a los controles y propiedades de un formulario, éste debe estar car­
gado en memoria. INGRESO DE D A TO S: * Nombre J[~
LOAD Nombre del Formulario
DATOS EERSONALES | Dirección f“
UNLOAD :
Permite descargar (cierra) un formulario de la memoria independientemen­ DATOS ACADEMICOS j Teléfono |~

te de que se esté o no visualizando. DATO FAMILIARES I


Fecha de Nac. |~

UNLOAD Nombre del Formulario Sexo |


HIDE : IÂÏÏR”]|
MUEVO I SALIR
Permite ocultar un formulario.
Nombre del Formulario.HIDE
SHOW :
Permite visualizar un formulario. FO RM 5 FO RM 6
Nombre del Formulario.SHOW Sjxl
Hora: 4;30pm.
Fecha: 21-08-98
Ejemplos:
FORM2.SHOW Muestra el form ulario N° 2. B IE N V E N ID O S Ingiese los Datos Correctos :
UNLOAD FORM2 Descarga el form ulario N° 2. Usuario Jj
AL P a ssw o rd i—

La palabra clave M E puede reemplazar al nombre del formulario actual. S IS T E M A


UNLOAD ME Descarga el form ulario activo. I Cancelar I

272 G rupo E ditorial Megabvte


CAPÍTULO VI: Manejo de Varios Formularios ^ ¡ § |f ||

PASO N° 02
INSTRUCCIONES DEL FORM3
INSTRUCCIONES DEL FORM1 Las instrucciones del Commandl (Datos Personales) oculta el Form3 (Menú
Las instrucciones del Commandl (OK) permiten ocultar el formulario N° 1 Principal) y visualiza el Form4 (Ingreso de datos Personales).
P r í v a t e Sub C o m m a n d ita i c k ( )
y visualizar el formulario N° 2 . F o rm 3 .H íd e
P r í v a t e S u b C o m m a n d l _ C l i c k () F o rm 4 . Show
F o r m l. H íd e End Sub
F orm 2. Show
Las instrucciones del Command2 (Datos Académicos) oculta ei Form3
End Sub
(Menú Principal) y visualiza el Form5 (Ingreso de datos Académicos).
Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicación. P r i v a t e Su b C o m m a n d 2 _ C lick()
F orm 3. H íd e
P r í v a t e S u b C o m m and 2_ _C lick ()
F orm 5. Show
D ím R A s I n t e g e r
R = M sg B o x("E sta s e g u r o " , 36, "C u id a d o ") End Sub
I f R = 6 Then End Las instrucciones del Command3 (Datos Familiares) oculta el Form3 (Menú
End Sub Principal) y visualiza el Formó (Ingreso de datos Personales).
P r í v a t e S u b C o m m a n d 3 _ C l i c k ()
INSTRUCCIONES DEL FORM2 F orm 3. H íd e
Las instrucciones del C om m andl (OK) verifica que se ha ingresado F o rm 6 . Show
correctamente el nombre del usuario y su password. El nombre del usuario End Sub
es JUAN JOSE y su password VISUAL. Las instrucciones del Command4 (Salir) permiten finalizar la aplicación.
La caja dE textos N° 2 (Text2) debe tener en la propiedad Passwordchar el P r í v a t e S u b C o m m a n d 4 _ C l i c k ()
asterisco (*) para que no se vea el password cuando es ingresado. R = M sgB ox( "E sta s e g u r o " , 36, "C u id a d o ")
I f R = 6 Then End
P r í v a t e S u b C o m m a n d l_ C lic k ( ) End Sub
I f U C a s e ( T r i m ( T e x t l ) ) = "JUAN JOSE" A n d UCase ( T r i m ( T e x t 2 ) )
= "VISUAL" Then INSTRUCCIONES DEL FORM4
F o r m 2 .H íd e Instrucciones del botón Nuevo.
F o rm 3 . Show ^ P r í v a t e S u b C o m m a n d l _ C l i c k ()
El se T e x tl _ » »
M sgBox "DATOS INCORRECTOS", 1 6 , "ACCESO DENEGADO"
T e x t 2 _ n»
T e x t l = "" T e x t 3 _ il n
T e x t 2 = "" T e x t4 = " "
T e x t l . S etF o cu s T e x t5 = " "
E nd I f T e x tl S e tF o c u s
End S u b End Sub
Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicación.
Instrucciones del botón Salir.
P r í v a t e S u b C o m m a n d 2 _ C lic k () P r í v a t e S u b C o m m a n d 2 _ C l i c k ()
Dim R A s I n t e g e r F orm 4. H íd e
R = M sgB ox( "E sta s e g u r o " , 36, "C u id a d o ") F o rm 3 . Show
I f R = 6 T h e n End End Sub

275
w X ÉÍfo VISUAL BASIC como debe ser.. CAPÍTULO VI: Manejo de Varios Formularios
INSTRUCCIONES DEL FORM5 T IPO S D E FO R M U L A R IO S
Instrucciones del botón Nuevo. Formulario Modal:
P r í v a t e S u b C o m m a n d l _ C l í c k () Consiste en un formulario que NO permite continuar ejecutando la aplicación
T e x tl = o pasar a otro formulario sin que se cierre correctamente. Para mostrar un
T e x t2 = formulario y que funcione de tipo Modal sólo debe escribir del método Show
T e x t3 = el número 1 o la palabra vbModal. Ejempo: FormS.Show 1
T e x té = Formulario No Modal
T e x t5 = Consiste en un formulario que SI permite continuar con la ejecución de la
T e x t l . S e tF o c u s aplicación o pasar a otro formulario sin necesidad que el formulario se cierre.
End Sub Para mostrar un formulario y que funcione de tipo No Modal se debe escribir
del método Show sin ningún parámetro. Ejempo: Form3.Show
Instrucciones del botón Salir.
P r í v a t e S u b C o m m a n d 2 _ C lic k ()
TIPO D E IN T ER FA Z
F o r m 5 .H i d e
F o rm 3 . Show SDI (Interfaz de Documentos Simples)
End Sub Permiten crear aplicaciones con los formularios estándar o normales como
los utilizados en los ejemplos anteriores.
INSTRUCCIONES DEL FORMÓ MDI (Interfaz de Documentos Múltiples)
Instrucciones del botón Nuevo. Permiten crear aplicaciones que mantienen varios formularios (secundarios)
P r i v a t e S u b C o m m a n d l _ C l i c k () dentro de un formulario principal llamado MDI. Los MDI sólo aceptan
T e x t l = "" controles que tengan la propiedad Align como StatusBar, ToolBar y Picture
T e x t 2 = "" (puede dibujar otros sobre este control) o aquellos que no se visualicen al
T e x t 3 = "" momento de ejecutarse el formulario como el control Timer.
T e x t 4 = "" DESARROLLAR UNA APLICACIÓN CON UN FORMULARIO MDI
T e x t l . S e tF o c u s Para desarrollar la aplicación anterior con formularios MDI y secundarios
E nd Sub siga los siguientes pasos:
Elija la opción Proyecto y luego Agregar Formulario MDI. En este formulario
Instrucciones del botón Salir. MDI diseñe el Menú Principal y al resto de formularios asígneles en su
P r í v a t e S u b C o m m a n d 2 _ C lic k () propiedad MDIChild el valor TRUE.
F o r m ó . H id e
F o rm 3 . Show P R O C E D IM IE N T O M A IN
End Sub Si desea que su aplicación ejecute primero un procedimiento, entonces en la
opción Proyecto/Propiedades del Proyecto/Objeto Inicial, elija Sub Main. El
¿Qué instrucciones debe tener el botón OK si se quiere desarrollar la aplicac. procedimiento Sub Main lo debe crear en un módulo. Por ejemplo, en la aplicación
anterior con botones de opciones? anterior agregue un módulo y un formulario (Form7) y diseñe en él una pantalla
f . _ |□ | x | de presentación la cual se visualizará por 3 segundos antes de mostrar el formulario
N° 1 (Bienvenida). En este formulario debe dibujar un control Timer.
In g ie r o d e D ato .-
Instrucciones del Timer Instrucciones del procedimiento Main
(• .D a to s P e rs o n a le s Prívate Sub Timerl_Timer() Prívate Sub Main ()
C' D a to s A c a d é m ic o s £ n Form7.Show
Timer 1. Inten’al = 0 Fonn 7¡Timer. Interval = 3000
D a to s F am ilia re s
Forml.Show End Suh
r Sa lir End Sub

OK |
IMPORTANTE: Cada aplicación Sólo acepta un formulario MDI y los formularios
secundarios no se pueden llamar de tipo Modal.
276 G r u p o E d it o r ia l Megabyte < I p f i^ G r u p o E d it o r ia l Megabyte 277 « 9
VISUAL BASIC como debe ser.. . CAPÍTULO VI: Manejo de Varios Formularios

APLICACION DESARROLLADA N° 41 Los botones MODIFICAR y ELIMINAR sólo se deben activarse cuando
el usuario selecciona un registro.
Desarrolle una aplicación que permita manejar y compartir información de
El botón ADICIONAR debe permitir regresar al formulario N° 1 para seguir
tres formularios. adicionando registros.
El primer formulario debe permitir el ingreso o adición de registros como se El botón VER ESTADISTICA debe permitir pasar al siguiente formulario
muestra en la figura siguiente:
(N° 3) para visualizar una estadística de los registros que se van adicionando.
o
El botón MODIFICAR debe llevar los datos del registro seleccionado al
NOMBRE
formularios N° 1 y eliminarlo del formulario actual para poder modificarlos y
EDAD
si después de modificarlo se hace un click en el botón adicionar se vuelve a
adicionar el registro, con los datos ya modificados.
D IS T R IT O A D IC IO N A R El botón ELIMINAR debe permitir eliminar el registro que el usuario a
V E R R E G IS T R O S
seleccionado. Antes de eliminar el registro se debe pedir una confirmación.
S E X O ( M /F )

S A L IR
El formulario N° 3 debe mostrar la estadística de los registros adicionales como se
muestra en la siguiente figura.
El ingreso de datos debe tener las siguientes características:
1. El nombre, distrito y sexo se deben convertir autom áticam ente a - E S T A D IS T IC A D E L O S R E G IS T R O S IN G R E S A D O S M C T E 3

mayúsculas. M AYORES DE EDAD [5 (6 2 .5 * )


2. En la edad sólo se debe permitir el ingreso de números y con un máximo
M EN OR ES DE EDAD I 3 (3 7 .5 * )
de dos dígitos.
3. En el sexo sólo se debe ingresar la letra M o la letra F.
4. Sólo de debe activar el botón adicionar cuando se hallan ingresado los HOM BRES |~4 (5 0 .0 * )

cuatro datos. M UJER ES [4 (5 0 .0 * )


|{ V E R R E G I S T R O S ]|

5. Al hacer click en el botón A D IC IO N A R , los registros ingresados se


_ A D IC IO N A R
deben almacenar en la lista que se encuentran en el formulario N° 2.
HOM BRES M AYORES
6. El botón VER R E G IST R O S, debe mostrar el formulario N°2 para I 3 (3 7 .5 * )
T O T A L D E R E G IS TR O S
visualizar los registros adicionados. HOM BRES M EN OR ES |l (1 2 5 * )
1 8 (1 0 0 5*)
M U JER ES M AYO R ES |2 (2 5 .0 * )
El segundo formulario debe permitir visualizar y manipular los registros que se
adicionaron en el formulario N° 1. M U JER ES M EN O R ES fT~ (2 5 To * r

- Ini xj

NOMBRE D IS T R IT O SEXO

:^ 12 LAM BAYEQUE M -
El botón VER REGISTROS de mostrar el formulario N° 2 para visualizar­
JU A N
RO DO LFO 56 C H IC L A Y O M los registros adicionados.
M A R IA 23 REQUE F
L U IS 22 M ONSEFU M
K A R IN A 14 FERREÑAFE F El botón ADICIONAR debe mostrar el formularios N° 1 para poder ingresar
90 C H IC L A Y O M
LU K Y
A D R IA N A 1 O LM O S F jd
nuevos registros.

A D IC IO N A R V E R E S T A D IS T IC A M O D IF IC A R E L IM IN A R

278 G r u p o E d it o r ia l Megabyte" G rupo E ditorial Megabyte , 279 á m m


VISUAL BASIC como debe ser... CAPÍTULO VI: Manejo de Varios Formularios
DESARROLLO DE LA APLICACIÓN FORMULARIO N e 03
.o
PASO NH01: Debe adicionar a su proyecto 3 formularios y luego a cada L a b e ll LabeIS

uno de ellos le debe dibujar sus controles y propiedades. Así: Label2 • Labell O

Labell 1
FORMULARIO N 2 01 Commandl
Labe)4 Labell 2
Command2
Label5 Labell 3
L a b e ll
LabelS Labell 4
Labell 7

Label7 Labell 5 Labell 8


L abel2 |T e x t2
Lat>el8 Labell 6

L abel3 ]T e x t3 G om m andl

Com m and2 Las etiquetas desde la N° 9 hasta la N° 16 y la N° 18 deben quedar en


L abel4
C om m and3
blanco y en su propiedad BorderStyle deben tener el valor 1 - Fixed Single.

PASO N" 02:Escribir las instrucciones para los controles.


Asigne la propiedad Caption a los controles, como se muestra en la aplicación Instrucciones de los controles del F O RM U LARIO N° 1.
a desarrollar. El botón adicionar debe tener el valor False en su propiedad Debajo de cualquier instrucción END SUB escriba: SUB VERIFICA.
Enabled y las etiquetes el valor True en su propiedad Autosize.
jF o rm Loa d »j
F O R M U L A R IO N2 02
Private Sub Form L o a d () a.

End Sub
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
form ulario llamado VERIFICA:
j(General) |VERIFICA
d
AL formulario, etiquetas y botones de comandos asígneles su propiedad Private Sub Form L o a d () —

Caption como se muestra en la aplicación. Los botones Adicionar y Eliminar


End Sub
debe estar desactivados. Los List deben estar en blanco. Las propiedades Sub V E R I F I C A ()
de las cajas de texto son: I
1
E n d S ub

CONTROL TEXT MAXLENGTH m < 11


Textl En Blanco 0
Text2 En Blanco 2 Este procedimiento permite controlar que se halla escrito información en
Text3 En Blanco 0 las cuatro cajas de texto para poder activar el botón ADICIONAR, de lo
Text4 En Blanco 1 contrario lo desactiva.

280 G ru p o E d it o r ia l M e g a b y te < Ü iiíÉ IÜ ^ G r u p o E d it o r ia l Megabyte 281


CAPÍTULO VI: Manejo de Varios Formularios
VISUAL BASIC corno debe ser...
Las instrucciones de la caja de texto N° 1 que permiten convertir a mayúsculas
Las instrucciones que se deben escribir en este procedimiento Son: el texto que se ingresa, se deben escribir en el evento Keypress el cual
S u b v e r i f i c a () almacena en la variable Keyascii el valor ASCII de cada carácter que se
I f T r i m ( T e x t l ) <> "" A n d T r i m ( T e x t 2 ) <> "" A n d T r i m ( T e x t 3 ) escribe en la caja de textos.
o "" A n d T r im ( T e x t 4) <> "" Then
Com m andl. E n a b l e d = T r u e
E lse Las letras minúsculas en el código ASCII comienzan a partir del numero 97
Com m andl. E n a b l e d = F a l s e hasta el 122 (a=97, b=98, etc.).
End I f
End S u b
Las letras mayúsculas en el código ASCII comienzan a partir del numero 65
En el evento CHANGE de cada Caja de Textos se debe llamar a este hasta el 90 (A=65, B=66, etc.), por lo tanto, la diferencia entre mayúsculas
procedimiento. Así: y minúsculas es 32. Si se quiere convertir una letra minúscula a mayúscula,
entonces a su valor ASCII de dicha letra se le debe restar 32.
P r i v a t e S u b T e x t l _ C h a n g e () P r i v a t e S u b T e x t 3 _ C h a n g e ()
V e rific a v e rific a Otra forma de convertir cada carácter a mayúsculas es usando la siguiente
End S u b End S u b
instrucción:
P r i v a t e S u b T e x t 2 _ C h a n g e () P r í v a t e S u b T e x t 4 _ C h a n g e ()
v e rific a v e r i f i ca KeyAscii = A s e (UCase(Chr(KeyAscii)))
End S u b End S u b
Instrucciones del evento Keypress de TEXTL
Instrucciones del botón ADICIONAR
Permite pasar los datos ingresados en las cajas de texto a sus respectivas
P r ív a te Sub T e x tl_ K e y P re ss(K e y A scii As In te g e r )
listas que se encuentran en el formularios N° 02. 'P r e g u n ta s i l a l e t r a p u ls a d a e s t a en m i n ú s c u l a .
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 K e y A s c i i >= 9 7 A n d K e y A s c i i <= 1 2 2 T h e n
F orm 2!L i s t i . A d d lte m T e x 1 1 'S i e s m in ú s c u la l e r e s t a 32.
F orm 2!L i s t 2 . A d d lte m T e x t2 K e y A s c i i = K e y A s c i i - 32
F orm 2!L i s t 3 . A d d l t e m T e x t3 End I f
F orm 2!L i s t 4 . A d d lte m T e x t4
End Sub
T e x tl = ""
T e x t 2 = ""
T e x t 3 = "" Para que una caja de textos acepte sólo valores numéricos también se le
T e x t 4 = "" debe programa en el evento Keyascii.
T e x t l . S e tF o c u s
End Sub El Valor ASCII de la tecla pulsada se convierte en el carácter ASCII
Instrucciones del botón VER REGISTROS correspondiente y se pregunta si es menor a cero (0) o mayor a nueve (9),
Permite activar el formulario N° 02 para visualizar los registros adicionados. si la respuesta es verdad significa que no se ingreso un numero, entonces
P r í v a t e S u b C o m m a n d 2 _ C l i c k () hacemos que Visual Basic ignore el carácter ingresado asignándole el valor
F o rm 2 . Show cero a la variable Keyascii. También se debe ignorar la tecla pulsada cuando
F o r m l. H id e el valor ASCII sea diferente de 8 que pertenece a la tecla de Retroceso
End Sub para que se pueda borrar lo que se escribe.
E l botón SA L IR debe tener la instrucción END

G r u p o E d it o r ia l Megabyte 283
282 G r u p o E d it o r ia l Megabyte<
|¡ l l l lÉ I > VISUAL BASIC como debe ser... CAPÍTULO VI: Manejo de Varios Formularios
Instrucciones del evento Keypress de TEXT2. Instrucciones de los controles del FORM ULARIO N° 2.
P r iv a te Sub T ext2 _ K eyP ress(K eyA scii As In te g e r ) Definir la variable NUM de tipo entero a nivel del formulario. Esto se hace
Dim TECLA A s S t r i n g * 1 en el Objeto GENERAL y el Evento DECLARATIONS. D im N U M As
TECLA = C h r ( K e y A s c i i )
I f (TECLA < "0" Or TECLA > "9") A n d K e y A s c i i <> 8 Then
Integer
K e y A sc ii = 0
End I f
(General) -r (Declarations)
End S u b
Dira MUM As Integer
Las instrucciones de la caja de textos N° 3 son similares a las de la caja de
textos N° 1. < 11
Instrucciones del evento Keypress de TEXT3. Crear un nuevo procedim iento llamado SELECCIONA, que permite
P r ív a te Sub T e x t3 _ K e y P r e s s (K e y A s c ii As I n te g e r ) seleccionar todo el registro cuando el usuario hace click en cualquiera de las
' S I SE INGRESA EN MINUSCULAS LO CONVIERTE A MAYUSCULAS listas además permite activar los botones de comandos Command3 y
I f K e y A s c i i >= 9 7 A n d K e y A s c i i <= 1 2 2 T h e n Command4.
K e y A s c i i = K e y A s c i i - 32 Para ello en cualquier parte libre de la ventana de código escriba: SUB
End I f SELEC C IO N A y luego pulse la tecla EN TE R .
End Sub
1 tW P r o i e c l l - F o rm 3 (C o d e )
Las instrucciones de la caja de texto N° 4. ¡F o r m [L o a d

Permiten aceptar sólo las letras F o M y si se ingresan en minúsculas se P riv a te Sub C o rra n e in c i2 _ C 1 i c k ( ) “¡H
F o r m l. Show — ^
deben convertir a mayúsculas. F o rrn 3 . H ic ie
End Sub
Primero se pregunta si el valor ASCII del carácter pulsado es 102 ó 109 que
corresponden a las letras <f> o <m> en minúsculas. Si la respuesta es P r iv a te Sub F o rm A c t í v a t e ()
verdad se le resta 32 y si el valor ASCII es diferente de 70, 77 y 8 que
End Sub
corresponden a las letras <F>, <M> en mayúsculas y a la tecla de Retroceso
(BackSpace <-), el carácter es ignorado, es decir no se visualiza, porque le
asignamos el valor cero (0) a la variable Keyascii.
y SUB

m 11 i
S E L E C C IO N A

►n
.

Se visualizará la siguiente pantalla:


Instrucciones del evento Keypress de TEXT4.
P r i v a t e S u b T e x t4 _ _ K e y P re ss ( K e y A s c i i A s 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 ( K e y A s c i i = 1 0 2 Or K e y A s c i i = 1 0 9 ) T h en
K e y A s c i i = K e y A s c i i - 32
E l s e l f K e y A s c ii < > 7 0 A n d K e y A s c i i < > 7 7 A n d K e y A s c ii < > 8 Then
K eyA scii = 0
End I f
End Sub

l |¡ ¡ ! § ^ 284 G ru po E d it o r ia l Megabyte *G ru p o E d ito r ia l Megabyte 285


^ f |¡ |||» VISUAL BASIC como debe ser... CAPÍTULO VI: Manejo de Varios Formularios
Luego escriba dentro del procedimiento las instrucciones. Instrucciones del Botón VER ESTADISTICA.
Estas instrucciones permiten seleccionar todo un registro cuando el usuario Permiten pasar al Formulario N° 3 para visualizar la estadística de los regis­
hace click en cualquiera de las listas. tros que se van adicionando.

L i s t l . L i s t l n d e x = NUM Prívate Sub Command2_Click()


L i s t 2 . L i s t l n d e x = NUM Dim N, EDAD, MAYORES, MENORES, HOMBRES As Intege r
L i s t 3 . L i s t l n d e x = NUM Dim MUJERES,HOMMAY, HOMMEN, MUJMAY, MUJMENAs Integer
L i s t 4 . L i s t l n d e x = NUM Dim SEXO Aó' String * 1
Command3. E n a b l e d = T r u e ‘Cuenta la cantidad de registros adicionados.
N = Listl.ListCount
C om m an d4 . E n a b l e d = T r u e For X = 1 ToN
‘Activa en forma secuencial una edad ingresada.
La ventana de código tendrá el siguiente aspecto: List2. Listlndex = X - 1
‘Almacena en la variable EDAD, la edad activa.
(General) -*• SELECCIONA zl EDAD = Val(List2.Text)
‘Activa en forma secuencial un sexo ingresado.
Suta S E L E C C I O N A ()
L i s t 1.L istIndex = N U M
i List4. Listlndex - X - 1
‘Almacena en la variable SEXO, el sexo activado.
L i s t 2 .Listlndex = NU M SEXO - Trim(List4. Text)
List3 .Listlndex = NU11 ‘Cuenta los mayores y menores de edad.
L i s t 4 .Listlndex = NU M IfEDAD > = 18 Then
C o n m a n d 3 .Enabled = True MAYORES = MAYORES + 1
C o m m a n d 4 .Enabled = True Else
End Sub
MENORES = MENORES + 1
E n d lf
k hjl L! ‘Cuenta los hombres y las mujeres.
IfSEXO = "M" Then
Este procedimiento es invocado cuando el usuario hace click en cualquiera HOMBRES = HOMBRES + 1
de la lista, para ello se tiene que program ar en el evento Click de cada Lista. Else
MUJERES = MUJERES + 1
E n d lf
P r í v a t e S u b L i s t l _ C l i c k () P r í v a t e S u b L i s t 2 _ C l i c k ()
‘Cuenta los hombres mayores y menores de edad.
NUM = L i s t 2 . L i s t l n d e x
NUM = L i s t l . L i s t l n d e x IfSEXO="M "AndEDAD>=18 Then HOMMAY = HOMMAY + 1
SELECCIONA SELECCIONA IfSEXO - "M"And EDAD< 18 Then HOMMEN = HOMMEN + 1
End Sub End Sub ‘Cuenta las mujeres mayores y menores de edad.
IfSEXO= "F" And E D AD >=18 Then MUJMAY - MUJMAY + 1
P r í v a t e S u b L i s t 3 _ C l i c k () P r ív a te Sub L is t4 _ C lic k ( ) IfSEXO= "F" And EDAD<18 Then MUJMEN = MUJMEN + 1
NUM = L i s t 4 . L i s t l n d e x N extX
NUM = L i s t 3 . L i s t l n d e x
SELECCIONA SELECCIONA
‘Obtiene los respectivos porcentajes.
End Sub End Sub
PORCMAY = MAYORES * 100/ N
PORCMEN = MENORES * 100/ N
Instrucciones del Botón ADICIONAR. PORCHOM = HOMBRES * 100/ N
Permiten mostrar el formulario N° 1 para poder adicionar más registros. PORCMUJ = MUJERES * 1 0 0 /N
PORCHOMMAY = HOMMAY * 1 0 0 /N
P r í v a t e S u b C o m m a n d l _ C l i c k ()
PORCHOMMEN = HOMMEN * 1 0 0 /N
F o r m l. Show PORCMUJMAY = MUJMAY * 1 0 0 /N
F orm 2. H id e PORCMUJMEN = MUJMEN * 1 0 0 /N
End Sub

286 G r u p o E d it o r ia l Megabyte^ m G r u p o E d it o r ia l Megabyte 287


CAPITULO VI: Manejo de Varios Formularios
J Ü Ü É ^ VISUAL BASIC como debe ser...
'Muestra los resultados en el formulario N° 03 Instrucciones del Evento ACTIVATE del Formulario.
Form3!Label9=Str(MAYORES)+"("+Format(PORCMAY, "##0.0")+ "%)"
Form3!Label 10-Str(MENORES) + "("+Format(PORCMEN, "##0.0”)+ "%)" Estas instrucciones se ejecutan cuando el formulario es activado y permiten
Form3!Labelll=Str(HOMBRES)+ "("+Format(PORCHOM, "##0.0")+ "%)"
Form3!Labell2=Str(MUJERES)+ "("+Format(PORCMUJ, "##0.0")+ "%)" que no se encuentre seleccionado ningún registro y a demás desactiva los
Form3!Labell3-Str(HOMMAY)+ "("+Format(PORCHOMMAY, "##0.0")+ "%)" botones MODIFICAR y ELIMINAR.
Form3!Label 14=StríHOMMEN)+ "("+Format(PORCHOMMEN, "##0.0")+ "%)"
Form3!Label 1 5 - Str(MUJMAY)+ "("+Format(PORCMUJMAY, "##0.0")+ "%)" P r í v a t e S u b F o r m _ A c t í v a t e ()
Form3!Labell6=Str(MUJMEN)+ "("+Fonnat(PORCMUJMEN, ”##0.0")+ "%)"
Form3!Label 18 = Str(N) + " (100%)" L i s t l . L i s t l n d e x = -1
'Muestra el formulario N° 3 L i s t 2 . L í s t l n d e x = -1
Form3.Show L i s t 3 . L i s t l n d e x = -1
Form2.Hide L i s t 4 . L í s t l n d e x = -1
End Sub C o m m a n d 3 .E n a b le d = F a l s e
Instrucciones del Botón M ODIFICAR. C o m m a nd 4. E n a b l e d = F a l s e
Permiten pasar al Formulario N° 1 los datos del registro seleccionado para End Sub
poder modificarlos y borra estos datos originales de las listas.
Prívate Sub Command3_Click()
Dim E A í Integer In strucciones de los con troles del F O R M U L A R IO N° 3
Forml ITextl = Listl.Text
Forml !Text2 = List2.Text
Forml !Text3 = List3.Text
Forml!Text4 - List4.Text
Instrucciones del Botón VER REGISTROS.
E - Listl.Listlndex
Listl.Removeltem (E) Permiten visualizar el formulario N° 2 donde se encuentran todos los registros
List2.RemoveItem (E)
List3.RemoveItem (E) adicionados.
List4.RemoveItem (E)
Forml .Show P r í v a t e S u b C o m m a n d l _ C l í c k ()
Form2.Hide F orm 2. Show
End Sub F orm 3. H íd e
End Sub
Instrucciones del Botón ELIM INAR.
Borra de las listas el registro seleccionado, pidiendo una respuesta de con­
firmación. Instrucciones del Botón ADICIONAR.
Prívate Sub Command4_Click()
Dim E, R As Integer Permiten visualizar el formulario N° 1 para poder adicionar más registros.
R-M sgBox( "ESTA SEGURO DE ELIMINAR EL REGISTRO",3 6 ,"CUIDADO")
IfR = 6 Then P r i v a t e S u b C o m m a n d 2 _ C lic k ()
E = Listl.Listlndex F o r m l. Show
Listl.Removeltem (E) F o r w 3 . H id e
List2.Removeltem (E)
List3.Removeltem (E) End Sub
List4.Removeltem (E)
End If
Command3. Enabled = False
Command4.Enabled = False
End Sub

288 G r u p o E d it o r ia l Megabyte < ® g


G r u p o E d it o r ia l Megabyte 289 ^
CAPÍTULO VI: Manejo de Varios Formularios
VK vk/ VISUAL BASIC como debe ser. . .
ERRORES MAS COMUNES PREGUNTAS DE REPASO N° 06
Microsoft Visual Basic Su aplicación no tiene 1. ¿Cómo quita un formulario de sus aplicación?
especificado un formulario 2. ¿Qué debe hacer si desea evitar que se muestre la ventana de diálogo
Debe haber un formulario de inicio o un procedimiento Sub Ma¡n[) para ejecutar primero. cada vez que agrega un formulario a su aplicación?
Haga clic en el botón 3. ¿Se puede grabar dos formularios con el mismo nombre? ,
Aceptar y seleccione un 4. ¿Cuáles son los pasos para agregar la calculadora de Visual Basic a una
Aceptar Ayuda aplicación?
formulario en Objeto
5. ¿Es obligatorio ocultar un formulario para visualizar otro durante la
Inicial. ejecución de una aplicación?
M icrosoft Visual Basic 6. ¿Se puede agregar a una aplicación un formulario que en su propiedad
Ñame tenga el mismo nombre de uno de los formularios de dicha
Error '4 24' en tiernpo de ejecución : Está tratando de utilizar un aplicación?
Se requiere un objeto formulario que no tiene en 7. ¿Cuál es la diferencia entre Hide y Unload?
su aplicación o escribió 8. ¿Qué debe hacer si en una aplicación tiene varios formularios y desea
en forma incorrecta visualiza o modificar uno de ellos?
su nombre. 9. Explique cómo se adiciona un formulario ya creado a una nueva aplicación.
10. Cuando se ejecuta una aplicación, Visual Basic en forma predeterminada
ejecuta el formulario N °___ .
Term inar A yuda
11. ¿Qué m ensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicación y a qué se deben?
AI ejecutar el programa finaliza inmediatamente. 12. ¿Cómo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
S eg u ram en te por 10 Proyecto! - Fornii (Código) 13. ¿Cuál es la diferencia entre Show y Load?
casualidad escribió la Fo rm Load 14. Explique la palabra clave Me.
instrucción END en el 15. Explique cómo se adiciona un formulario en blanco a una aplicación.
evento Form Load o Private Sub Form_Load() 16. Si tiene una aplicación con 5 formularios. Cuando grabe la aplicación
en A ctiv ate del End cuántos nombres debe ingresar.
End Sub 17. ¿Qué debe hacer para que Visual Basic ejecute primero un formulario
fo rm u la rio que se
diferente al que ejecuta en forma predeterminada?
ejecuta primero. 18. ¿Cómo se declara una variable o procedimiento para poder usarlo en
cualquier formulario de una aplicación?
19. ¿Cuál es la diferencia entre la calculadora del Visual Basic y la
Al llamar a un formulario, no se muestra ninguno. calculadora del Windows?
Seguramente m P ro y e c to l - F o im l (C ó d ig o )
20. ¿Cuando quita un formulario de su aplicación, se borra físicamente del
escribió Hide en disco de su computadora?
jc o m m a n d l C lic k
lugar de Show.
Private Sub Commandl_Click ( ) Tj La creatividad es m uy importante, form úlese nuevas aplicaciones o
Fo rml.Hide — intercambie aplicaciones propuestas entre sus compañeros de
Fo rm2.Hide estudio y desarrollarlas con la finalidad de enriquecer sus
End Sub conocimientos.

■ ill _l T

I p ll^ G r u p o E d it o r ia l Megabyte 291 é m m


290 G r u p o E d it o r ia l Megabyte"
CAPITULO VII
Cacílen; CONGRESO
Name: "Iñgresc T
Indes.:
tlPlPí-CintextlD: J o NeaotlatePccsIbciri
C h© cke>d T ? E Ln a bl& d R? risible

SISTEMA

DISEÑO
DE
MENÚ
C A P IT U L O V II: D iseñ o de M e n ú

D IS E Ñ O D E M E N Ú

Para activar el editor de menú puede seguir uno de los siguientes pasos:
1. De la barra de menú elegir la opción Tools (Herramientas) y luego Menú
Editor.
2. Presionar las tecla <CRTL> + E.
3. Hacer un click en el botón de Diseño de Menú.

H BOTÓN DE DISEÑO DE MENÚ

El editor de menú es:

CAPTION
Permite escribir la opción que deseamos visualizar en el menú.
Puede usar el & para subrayar una letra de una opción.
ÑAM E
Permite asignarle un nombre a cada opción. Es obligatorio que toda opción
tenga un nombre. Este nombre debe ser único, es decir, no deben, existir dos
opciones con el mismo nombre y además 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 rápido a cada opción. No puede usarse
para las opciones principales.
CHECKED
Sirve para indicar con un aspa si una opción está activa.

I p f l^ G r u p o E d it o r ia l Megabyte 295 a »
V4s?0¡k ', VISUAL BASIC como debe ser. CAPITULO VII: Diseño de Menú

ENABLED Al ejecutar la aplicación se visualiza las ventanas siguientes. El gráfico es


Permite desactivar una opción para que no se pueda elegir. opcional y está diseñado con un Picture Box.
V ISIB L E
Permite que una opción se pueda visualizar o no. IN G R E S O F IN A L IZ A R

W IN D O W L IST
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.
FL E C H A IZQ U IER D A
Permite mover una opción más a la izquierda dentro del menú con la finali­
dad que se ubique en un nivel más alto.
FL E C H A D ER EC H A
Mueve una opción más a la derecha con la finalidad que sea una subopción
de la que se encuentra en la parte superior. Las opciones principales deben
IN G R E S O
estar bien a la izquierda y las subopciones más a la derecha según el nivel
que le corresponde.
.
FL E C H A ARRIBA . . permjte mover una opción hacia arriba.
F L E C H A A B A JO : Permite mover una opción hacia abajo.
NEX T (Siguiente) : Permite ir a la opción siguiente.
IN SER T (In sertar) : Permite insertar una nueva opción.
D E L E T E (Elim inar) : Permite borrar una nueva opción.

NOTA
Para crear una línea de separación entre grupos de opciones, escriba
sólo un guión en el CAPTION y especificar cualquier nombre en ÑAME.
NO TA:
La aplicación desarrollada anterior puede tener también un menú de opcio­ Cada opción se considera un botón de comandos, esto quiere decir
nes. Por ejemplo en el formulario N° 03 se puede escribir el menú siguiente que Ud. puede escribir instrucciones dentro de cada una de ellas, las
menu. cuales se ejecutan cuando el usuario elige dicha opción.
C a Q tio n : ] S JN G R E S O

N am e: j IN G R E S O | C ancel
Las instrucciones de cada opción en esta aplicación son las mismas de los
In d e & : |~ Shortcut: [(None) 3 botones de comandos del formulario N° 03 de la aplicación N° 30.
H e lp C o n te x tID : jo NegotiatePosition: Jo - N one T 1

fP Risible f W in d o W L is t
Si no desea ocultar el formulario del menú principal cuando se llame a un
r~ C hecked í*7 E n a b le d
formulario, no escriba la instrucción FORM3.HIDE
Next 1 insert j D e le te I

■D A T O S & P E R S O N A L E S C trl+ P PrivaleSubDATOSPER_Click() PrivateSiéDATOSACA_Qkk() PrivateSubDATOSFAR__Qi<M)


■D A TO S & A C A D E M IC O S
■D A TO S & F A M IL IA R E S
C trl-t-A
C trl+ F Fomú.Hide Fomú.Hide Forrn3.Hide
F I& N A L IZ A R
Fonn4.Show Fomó.Sliow
■NO
FomúSIiow
■SI C trl+ Q
EndSub
EjtdSub EtidSub

La opción Salir debe tener la instrucción END.

296 G r u p o E d it o r ia l Megabyte < G r u p o E d it o r ia l Megabyte 297


l i l i l í VISUAL BASIC como debe ser...
CAPITULO Vil: Diseño de Menú mm
INSTRUCCIÓN PQPUPMENU
CONTROL TOOLBAR
Detiene la ejecución del programa y activa el menú en el formulario. El
programa continua su ejecución cuando deja de utilizar el menú. Su sintaxis
es: ^¿J
PopupM enu Nombre, Ubicación,X, Y,Opción,Negrita
Permite crear junto con el control Imagelist, barras de herramientas para
Nombre que acompañen a un menú de opciones. La barra de herramientas son un
Es el nombre del menú que desea activar. conjunto de botones con un texto y/o gráfico que se utilizan para acceder de
Ubicación una manera rápida a las opciones más utilizadas de un menú. Como por
Para indicar en qué parte de la pantalla se va a ubicar el menú en relación ejemplo:
a la posición del formulario donde hizo clic y qué comportamiento debe
tener. Sus valores pueden ser:
Para Ubicación D & s ü zl X f
0 (Predeterminado). El menú a la derecha de donde hizo clic. Nuevo Abrir Grabar Imprimir Ordenar Eliminar Ayuda Salir
4 El menú se muestra en el centro de donde hizo clic.
6 El menú se muestra a la izquierda de donde hizo clic.
Estos gráficos Ud. los puede colocar en la barra de herramientas de cual
Para Comportamiento
quier menú, siempre y cuando existan en su computadora. Los nombres de
0 Ignora la pulsación del botón derecho del Mouse.
2 El menú reconoce la pulsación del botón derecho del Mouse. cada uno de ellos en el orden en que se visualizan son: New.bmp, Open.bmp,
Para cambiar la Ubicación y el Comportamiento se utiliza la palabra OR. Save.bmp, Print.bmo, Sortasc.bmp, Delete.bmp, Help.bmp. y Trffc 14.ico
Por ejemplo, la siguiente instrucción activa el menú Ingreso en el centro de Puede utilizar en la barra de herramientas cualquier otro gráfico con la ex
donde hace Clic y reconoce el botón derecho del Mouse. PopupMenu In­ tensión *.BMP o *.ICO.
greso 4 Or 3.
X, Y Si este control no se encuentra en la caja de herramientas debe seguir cual­
Es la posición horizontal (X) y vertical (Y) del formulario donde desea mos­ quiera de los siguientes pasos:
trar el menú.
Opción_Negrita 1. En la caja de herramientas haga click con el botón derecho y elija la
Sirve para indicar el nombre de una de las opciones del menú que desea opción COMPONENTES.
visualizar en negrita cuando se muestra el menú. 2. De la opción Project de la barra de menú elija COMPONENTES.
Por ejemplo, La siguiente instrucción activa el menú INGRESO en las co­ 3. Pulse las teclas <CRTL> + <T>.
ordenadas 5000, 6000 y pone en negrita la opción DATOSPER.
No reconoce la pulsación del botón derecho del Mouse (si un valor no se
De la lista de componentes haga click en la casilla del control llamada:
indica, se deja una coma).
Microsoft Windows Common Controls.
PopupM enu Ingreso„5000.6000,D atosPer
NOTA:
Sólo el nombre del menú es obligatorio. Esta instrucción normalmente se También se puede llamar este control, si elegimos la opción CONTROLAS
escribe en el evento MouseDown o MouseUp explicado en la página N° 52. DE VB EDICION EMPRESARIAL, en el momento de ingresar a Visual
Por ejemplo, la instrucción anterior se ejecua cuando el usuario hace clic Basic o crear un nuevo proyecto.
con el botón Derecho del Mouse en cualquier parte libre del formulario.

298 G ru po E d it o r ia l Megabyte ^ ¡ |||¡ |f


G ru po E d it o r ia l Megabyte 299
VISUAL BASIC como debe ser.. . CAPITULO Vil: Diseño de Menú
PRINCIPALES PROPIEDADES DEL CONTROL TOOLBAR: BUTTONW IDTH
Permite indicar el ancho de los botones.
Las propiedades principales del control se obtiene con sólo elegir la propiedad HELPFILE
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas: Aquí se indica la ruta de acceso y el nombre de un archivo de Ayuda de
General, Botones e Imagen. M icrosoft W indows usado por la aplicación para presentar Ayuda o
documentación en pantalla.
El contenido de la hoja General es: ALLOW COSTOM IZE
v \ :■ ' ' -v m • <- - ■; ; . . .w >, ? . ■ ■ •" - jü Se utiliza para indicar si el usuario final puede personalizar un control Tool bar
G o n o ra l JBotones» | I m a g e n J con el cuadro de diálogo Personalizar barra de herramientas.
fc íjo u s e P o inter: ................ : -i SHOWTIPS
im o ig e L is t j < N in g u n o > -J Se utiliza para indicar si se debe visualizar el texto de ayuda asignado a
B o r d e irS ly l® ] ti - c c N o n a rJ cada botón.
A ja p ta o ra n c ra : j 1 -c c 3D .zJ WRAPPABLE
Q L E P r o p M o c lo : Jü c c O LEID r o p 1' J o ñ o

1 le J p C o n t e x t lD M é l p ¿ íle : |
jd
Se utiliza para indicar si el tamaño de los botones de la barra de herramientas
1"
D u tt o n tJ o ig h t. J2 6 4 \H r ? A l lo w C u s t a t r iiz e W W ro p p a b le
depende del tamaño del formulario.
B u tto n W id t h : j ? 8 8 .0 0 S h o w T ip s Fs E n a b le d ENABLED
Permite activar o desactivar la barra de herramientas.
A c e p te « ¡ C a n c e la r Ayude
L

El contenido de la hoja Botones es:


M OUSEPOINTER
Se utiliza para indicar la forma que tendrá el puntero del mouse cada vez G e n e ra l B o to n e# j im a g e n j
que lo ubiquemos dentro de la barra de herramientas. Si desea como puntero In d e x : -JT * | »1 | In s e rta r b o tó n | Q u ito / b o tó n
del mouse un gráfico seleccionado por Ud. Debe elegir la última opción C o p tiQ n | d e s c r ip tio n : | '

(99-ccCustom). La selección del gráfico los puede hacer en la página Imagen ¥«>lue [o tb r U n p r e s s e d ' ~^|
como se verá más adelante. SM ® jo tb rO e fe u lt V^idth ( P la c e h o ld e r ) |

IMAGELIST lag |
Se utiliza para seleccionar el control ImageList desde donde queremos T o o lT t p T e g t J~ 11

obtener los gráficos para la barra de herramientas. Im ag e.

F? V is ib le & fc n e b le d f~ h jix e d S t a ie
Ud., debe dibujar primero el control ImageList en el formulario y asignar los
gráficos antes de comenzar a darle las propiedades al control ToolsBar
(Capitulo IV).
BORDERSTYLE INDEX
Selecciona el estilo del borde de la barra de herramientas. Visualiza o selecciona cualquiera de los paneles creados en la barra de
APPEARANCE estado. También sirve para identificar a cada uno de los botones.
Selecciona la apariencia de la barra de herramientas. CAPTION
OLEDROPM ODE Permite escribir un texto el cual se va a visualizar en el botón de la barra de
Establece el modo en que un componente de destino realiza las operaciones herramientas.
de colocación. KEY
HELPCONTEXTID Permite asignar uno o más caracteres que van a identificar a cada panel.
Permite indicar un número de contexto asociado a un objeto. Se utiliza para No acepta números.
proporciona Ayuda interactiva para la aplicación. STYLE
BUTTONHEIGHT Permite seleccionar estilo de cada botón.
Permite indicar la altura de los botones.

300 G r u p o E d it o r ia l Megabyte ^ § ¡j|f|f G r u p o E d it o r ia l Megabyte 301 ^


VISUAL BASIC como debe ser.. . «il .^ .5 CAPÍTULO VII: Diseño de Menú < € ¡¡¡¡1
Si la opción VENTAS es la más utilizada, podemos programar de tal mane­
Ejemplo de una aplicación utilizando Menú, ToolBar y StatusBar.
ra que el usuario la active haciendo un Click con el botón derecho del Mouse
Sub M enú de Ventas: en cualquier parte del formulario.

P R O D U C TO S C L IE N T E S V E N TA S U T IL IT A R IO S S A L IR

Nuevos Usuarios
M W\ a
Calculadora Borrar Usuarios
Actualizar la Fecha y Hora Cambiar Clave
BIENVE Copia de Seguridad
D.Û.S.
BIENVENIDOS
AL AL
SISTEMA S I S T ERealizar
M I Qrl+R
------------- Consultar Ventas ►

Presupuestos
Registro de Ventas

2 9 /0 5 /9 9 C h ic la y o - P e r ú \ ' I 6 :4 4 A M
f\ 29/05/99 C h ic la y o - P e rú Í> 1
...... »
3:1 4 A M

Para esto, debe programar en el evento MouseDown del formulario:


Sub M enú de Utilitarios:
Private Sub FonnMouseUp(Button As Integer, ShiftAs Integer, XAs Single, YAs Single)
If Button = 2 Then
PopupMenu Ventas
PRODUCTOS CUENTES UTILITARIOS SALIR
End If
Realizar Ctil+R I
m ili 1,1') ' U .’ I.IMUMMWI Por Vendedor Qrl+V End Sub
Presupuestos Por Linea Ctrl+L
Registro de Ventas
Por Producto Ctrl+P
PROGRAMAR DENTRO DEL TOOLBAR
Por Fecha Ctil+F
Suponiendo que el primer botón está ligado a la opción Nuevos Clientes
Por Turno Ctrl+T
AL (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
SISTEMA 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
A . 2 9 /0 5 /9 9 C h ic la y o - P e r ú 6 :4 4 A M If Button.Index = 4 Then Shell “C:\Windows\Calc.exe", 1
End Sub

302 G r u p o E d it o r ia l Megabyte ¡ ||¡ |j ¡ ^ G ru po E d it o r ia l Megabyte 303 ^ § ¡ |¡ ||l


é S S tè ' VISUAL BASIC como debe ser... CAPITULO Vil: Diseño de Menú
Dentro de las propiedades de la Barra de Herramientas, en la hoja Botones APLICACIÓN DESARROLLADA N° 43
también se muestra el siguiente marco:
Esta aplicación consiste en adicionar dos formularios más al menú anterior
ButtonMenus (form2 y form3).
Index: [1 Insertar ButtonMenu | Quitar ButtonMenu |

Text: | Keji: | Tag: |


En el formulario N° 2 se debe ingresar el nombre de un usuario y su respectiva
clave de acceso (password).
l>7 Enabled 17 Visible
Son 3 usuarios los que acepta el sistema:

USUARIO PASSWORD
Esto permite agregar Sub Opciones a cualquier botón de la Barra de JULIO XYZ
Herramientas, como por ejemplo: 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 aplicación llenándose de puntos de color
negros el formulario. Para salir de la aplicación se debe presionar CTRL +
ALT + SUPR o apagar la computadora.
Para realizar esto, debe seleccionar en la hoja botones (Propiedad Index) el
botón al cual desea asignarles sub opciones y en su propiedad Style asignar El usuario JULIO es el dueño de la empresa, por lo tanto debe tener acceso
el valor 5 - tbrDropDown, luego dentro del marco ButtonMenus insertarle a todas las opciones del menú.
(Insert ButtonMenu) las sub opciones que desea, usando la propiedad Text El usuario PEDRO no debe ingresar a las opciones Actualizar los Precios
para escribir el título de cada opción. ni a Cuentas Corrientes (deben estar desactivadas), además no debe
visualizar la opción Usuarios.
Para saber qué sub opción ha elegido el usuario se debe programar
en el evento ButtonM enuClick usando la propiedad Text. El usuario ANA debe tener desactivadas las opciones M antenimiento que
se encuentra dentro de Productos e Internet que se encuentra dentro de
Prívate Sub Toolbarl_ButtonM enuClick(ByVal ButtonM enu As ...) Utilitarios. Además no debe visualizar la opción VENTAS.
I f ButtonMenu.Text = “Ordenado ” Then
‘Escriba aquí las instrucciones para la opción Ordenados
MsgBox “Ordenado”, 64, “Bienvenido”
End I f
I f ButtonMenu.Text = “Sin O rdenar” Then
‘Escriba aquí las instrucciones para la opción Sin Ordenar
MsgBox “Sin Ordenado”, 64, “Bienvenido”
End I f
End Sub

||||||^ 304 G r u p o E d it o r ia l M e g a b y t e ^ j j j ^ l Grupo Editorial Megabyte 305 « ¡ K


<í>
| BASIC como debe ser. CAPÍTULO VII: Diseño de Menú
PASO N° 01:
Agregar dos formularios más a la aplicación anterior que contiene el menú.
PASO N° 03: Escribir las instrucciones para los controles.
El formulario N° 02 debe tener dos etiquetas, dos cajas de texto y dos botones
Declarar la variable US en un módulo para poder compartirla entre los
de comandos.
lormularios de la aplicación. Para ello, de la opción Proyecto elija Agregar
El formulario N° 03 no debe tener ningún control. Módulo. ____________

¡¡.ACCESO AL SISTEMA íi, Form3


P ro y e c to l - M o d u le l (Código)

(General) (Declaraciones)
¡aa
Public US As String
USUARIO

CLAVE
Instrucciones del procedimiento Form_Activate del Formulario N° 01,
OK CANCELAR 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 C a s e US
NOTA; C a s e "JU L IO "
Para llenar un formulario con puntos se debe utilizar la instrucción PSET, Rem NO TIE N E NINGUNA R E ST R IC C IÓ N
cuya sintaxis es: C a s e "PEDRO"
N om brejC ontrol.P set (x,y), (color) A c tu a l i z a r _ P r e c i o s . E n a b le d = F a ls e
Donde X, Y son las coordenadas del control donde desea escribir el punto y C u e n ta _ C o r r ie n te . E n a b le d = F a ls e
U s u a r io s .V is ib le = F a lse
COLOR, es un valor que indica el color del punto, puede utilizar la función C a s e "ANA"
RGB o QBCOLOR. M a n te m ie n to .E n a b le d = F a ls e
Si no se especifica el nombre del control, el punto se dibuja en el formulario I n t e r n e t . E n a b le d = F a ls e
activo. V e n ta s . V is ib le = F a lse
Las propiedades DrawWidth se utiliza para indicar el grosor del punto. End S e l e c t
End Sub
Por ejemplo, las siguientes instrucciones muestran un punto de color celeste
en el formulario activo. NOTA:
D raw W idth - 0 No olvide de utilizar el nombre correcto que asignó en la propiedad ÑAME a cada opción.
P s e t (2 0 0 0 ,6 0 0 0 ), Q b c o lo r (11) Cuando grabe el módulo creado obtiene la extensión *.BAS.

PASO N° 02: Asignar las propiedades a los controles INSTRUCCIONES DEL FORM ULARIO N° 02
Instrucciones del Procedimiento Form_Activate.
Al formulario N° 02, a las etiquetas y botones de comandos asígneles la P r í v a t e S u b F o r m _ _ A c t i v a t e ()
propiedad Caption como se indica. T e x t l = ”"
El formulario N° 03 debe tener el valor FALSE en sus propiedades ControlBox T e x t 2 = ""
y ShowinTaskbar y en su propiedad WindowState el valor 2 (Maximizado). T e x t l . S e tF o c u s
End Sub

@¡¡¡¡!¡¡¡{§¡j¡í? 306 G r u p o E d it o r ia l Megabyte


illlÉ l* VISUAL BASIC como debe ser... CAPITULO VII: Diseño de Menú
Instrucciones del Botón OK. C O N T R O L SSTAB
Verifican si se ingreso el usuario y su password correcto y brindar hasta tres opor­ fSS,
tunidades para ingresar.
Prívate Sub Command 1_Click()
Static OP As Byte Permite diseñar varias páginas en un solo formulario con lo cual podemos
Dim PW As String también crear menús.
US = UCasefTextl)
P W — TJ C n sp ( T e x t 2 ) Si este control no se encuentra en la caja de herramientas active la lista de
l f U S - “JULIO ” And PW = “XYZ” O rU S = “PEDRO" And componentes y haga clic en la casilla de Microsoft:
PW = “ABCD ” Or US = “ANA ” And PW = “1234 ” Then
Unload Form2
Forml.Show M icrosoft Tabbed Dialog Control
Else
OP = OP + 1
IfO P = 3 Then
MsgBox “Datos Incorrectos" + Chr(13) + Chr(13) + “ Tiene “ _ PRINCIPALES PROPIEDADES DE UN CONTROL SSTAB:
+ Str(3 - OP) + “ oportunidades”, 16, “ACCESO DENEGADO’
Form3.Show ÑAM E
Else Permite asignarle un nombre. Por default el nombre es Sstabl, Sstab2, Sstab3,
MsgBox “Datos Incorrectos” + Chr(13) + Chr(13) + “ Tiene “ _
+ Str(3 - OP) + “ oportunidades", 16, “ACCESO DENEGADO” etc.
Form_Activate CAPTION
End If Para escribir el título de la página que está seleccionada.
End If
End Sub
ENABLED
Para indicar si el control debe estar activado o no.
INSTRUCCIONES DEL FORMULARIO N° 03 FONT
instrucciones del procedimiento Form_Activate Para indicar el tipo, tamaño y estilo de letra.
Prívate Sub Form_Activate() FO RECO LO R
Form3.Caption - “Cierre la aplicación, no tiene acceso” + Space(135)
Mensaje Para seleccionar el color de las letras.
End Sub TAB
Para indicar la página que debe estar activa.
instrucciones del Procedimiento MENSAJE
Sub Mensaje() TABORIENTATION
Dim x, y As Integer Para indicar la posición del título de las páginas..
DrawWidth = 10 ‘Establece el grosor de los puntos a Imprimir TABS
Do
Form3.Caption Mid(Form3.Caption, 2) + Left(Form3.Caption, 1) Para indicar el número de páginas que debe tener el control.
F orx - lT o 35000 TABSPERROW
Ncxt x Para indicar el número de páginas por fila.
PSet (Rnd * ScaleWidth, Rnd * SaleHeight), QBColor(O)
VISIBLE
Loop
End Sub Para indicar si el control se del?e visualizar.

IMPORTANTE
Configure el Visual Basic de tal manera que ejecute primero el formulario N° 02.

|¡ j § ¡ |^ 308 Grupo E d itorial M egabyte ^ § ¡¡1 * G ru p o E d ito r ia l Megabyte 309 ^


VISUAL BASIC como debe se r... ■■■ CAPITULO VII: Diseño de Menú
EJEM PLO: ER R O RES MAS COM UNES
Usando SSTAB, los formularios 03, 04, 05 y 06 de la aplicación N° 30 se Microsoft Visual Basic Se olvido de asignarle el
pueden desarrollar en un solo, como se puede observar a continuación. nombre (Ñame) a la opción
El co n tro l M e n u d e b e tener un nom bre que Visual Basic tiene
Las propiedades que debe asignar al control SSTAB es CAPTION: seleccionada.
Toda opción debe tener un
PERSONALES ACADÉMICOS FAMILIARES Aceptar j| Ayuda nombre.

Dentro de cada hoja se deben dibujar las etiquetas, cajas de texto y botones
de comandos correspondiente. Microsoft Visual Basic A las opciones principales
no se les puede asignar
Nose puede colocar aquí una marcade verificación Checked, entonces
fid isi JSL5I
desactive esta casilla a la
Labell INGRESO DE DATOS
opción que Visual Basic tie­
PERSÖHÄL|s|T ACADEMICOS J FAMILIARES Aceptar ; Ayuda ne seleccionada.
Nombre

Dirección
Microsoft Visual Basic Pulsó dos o más veces la fle­
Teléfono cha a la derecha saltando
Fecha de Nac.
O El elem ento de m enú ha saltado un nivel uno o más niveles. Pulse la
Sexo flecha a la izquierda en la
NUEVO SALIR
opción seleccionada para
A c e p ta r J j | A yu d a corregir este error.

Microsoft Visual Basic A asignado una tecla rápida


fflI lllliifa iM — T M (Shortcut) a una opción prin­
No se puede asignar una tecla de método abreviado a un menú de nivel superior cipal.
I INGRESO DE DATOS
| ING RESO DE DATOS 0 Las opciones que tiene sub
PERSONALES ; ACADEMICÓSfl FAMILIARES ' PERSONALES 7 ACADEMICOS | f M ÜARÉsT
opciones no pueden tener
Aceptar i Ayuda Shortcut.
Centro de Esludios [" Apoderado(a) |~

Especialidad p
N! de hermanos [""
Gclo | Microsoft Visual Basic C Escribió dos opciones con el
Lugar de Origen |~
Turno | mismo nombre (Ñame).
Aula | ” Tipo deVivienda | El elemento de la matriz de controles de menú debe tener un índice Dos opciones pueden tener
0 el mismo Caption, pero noel
NUEVO | SALIR [ NUEVO [ SALIR [
mismo nombre.
i Aceptar j Ayuda

310 G r u p o E d it o r ia l Megabyte G r u p o E d it o r ia l Megabyte 311


lS ll!> VISUAL BASIC como debe ser...

PREGUNTAS DE REPASO N° 07

1. ¿Con qué finalidad se puede crear utilizar un menú?


CAPITULO VIII
2. ¿Cuántas y cuáles con las formas de ingresar al Editor de Menú?
3. ¿A qué opciones de un menú se les puede asignar la propiedad Shortcut?
4. ¿Cuál es la diferencia entre la propiedad Caption y Ñame?
5. ¿Qué requisitos debe cumplir la propiedad Ñame de una opción?
6. ¿Cómo se programa dentro de una opción?
7. ¿Cuál es la importancia de un control ToolBar?
8. ¿Con qué otros controles se puede crear un menú?
9. ¿Cómo se sabe la opción que el usuario a elegido de un control ToolBar?
10. ¿Para qué sirve y cómo funciona PopupMenu?
11. ¿Cuál es la ventaja y cómo funciona el control SSTAB?
12. ¿Qué control permite asignar gráficos al ToolBar?
13. ¿Qué debe hacer si la opción para ingresar al E ditor 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. ¿Cuál es la ventaja de usar un menú en un aplicación?
17. ¿Dos opciones pueden tener el mismo nombre (Ñame)?
18. ¿Se puede dejar espacios en blanco en la propiedad Caption y Ñame
de una opción?
19. ¿Qué propiedades de un control Tovar se consideran más importantes?
C h lo la y o

P u * r t D E la in
L â rfi b r a q u a
3
-*•

S
Up
3

20. ¿Cuál es la diferencia entre las propiedades Tabs y TabsPerRow del R E S IS T R D A C T U A L | T O P O S | 5


A U R |

control SSTAB?

MANEJO
La C REATIVID AD es m uy importante, form úlese nuevas
aplicaciones o intercambie aplicaciones propuestas entre sus
compañeros de estudio y desarróllelas con la fin alidad de
DE
enriquecer sus conocimientos.
ARCHIVOS
312 G r u p o E d it o r ia l Megabyte ^ |§ |¡ |j j i
W
> CAPÍTULO 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. Sólo se puede cambiar de unidad durante la
ejecución del programa. Su nombre predeterminado es D rivel, Drive2, etc.
Al dibujarlo se visualiza

j— i c: [CETDI]

D IR LIST BO X

Muestra las carpetas, llamadas también 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. Sólo se puede cambiar de
unidad durante la ejecución del programa. Su nombre predeterminado es
D irl, Dir2, etc. y cuando se dibuja se visualiza:

Q l Archivos de programa —
: \i DevStudio

FILELISTBO X

Muestra los archivo que pertenecen a la carpeta que se encuentra activa o


a la establecida en su propiedad PATH durante la ejecución del programa.
Su nombre predeterminado es F ilel, File2, etc. y cuando se dibuja se visualiza:

ADDSCCES.DLL
AD D SC CU S.D LL !
aplicación sueldo neto, ene
aplicación sueldo neto.vbp H

G r u p o E d it o r ia l Megabyte 315
VISUAL BASIC como debe ser... CAPITULO VIII: Manejo de Archivos
Las principales propiedades del control FileListBox son: A P L IC A C IO N D E SA R R O L L A D A N° 45
ARCHIVE
Para indicar si muestra los archivos con atributo de modificado. La siguiente aplicación muestra las carpetas de la unidad selecciona y los
FTLENAME archivos de la carpeta que se selecciona, además permite establecer el tipo
Obtiene el nombre del archivo seleccionado. de archivos a visualizar (ingresando la extensión) y cuando se muestran
fflDDEN archivos *.EXE, los podemos ejecutar.
Para indicar si muestra los archivos ocultos.
NORMAL
Para indicar si muestra los archivos con atributo de normal.
PATH U N ID A D C A R P ETA A R C H IV O

Indica la ruta del archivo seleccionado. I — l e : |C. ] - I


1 — S lc A
• W IN D O W S
■*. 1
E x te n s ió n j” E X E
■ ■ ------1
PATTERN í""1 A rc h iv o s recibidos

A C C S T A T .E X E
_ J COM M AND
Acepta caracteres comodines (* y ?) para seleccionar los archivos que se desean _ J C O N F IG
A R P .E X E S i

visualizar. El signo de interrogación (?) reemplaza a un carácter y el asterisco (*) a r~ l


i i
C o o k ie s
Crystal
C O N TR O L EXE
C S 3 K I T .E X E -r J
dos o mas.
READONLY
Para indicar si muestra los archivos de solo lectura. Unidad |c: [CUCHO]

SYSTEM Carpata |c:\WINDOWS

Para indicar si muestra los archivos de sistema. Archivo |CA4_CEXE

A P L IC A C IÓ N D E S A R R O L L A D A N° 44 Ejecutar el program a | £»alir j


La siguiente aplicación 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. PASO N° 01: DIBUJAR LOS CONTROLES.
MIRANDO ARCHIVOS

le : [CETDI]

_ J C :\ ADDSCCES.DLL
â
Archivos de prograr- ADDSCCUS.DLL
aplicación sueldo neto.exe
aplicación sueldo neto.vbp
aplicación sueldo neto.vbw I

Para desarrollar esta aplicación sólo se debe programaren el evento Change de los
controles DriveListBox y DirListBox.

Instrucciones del control DriveListBox:


Prívate Sub Drivel_Change()
Dirl.Path = Drivel.Drive
End Sub PASO N° 02: ASIGNAR LAS PROPIEDADES.
Instrucciones del control DirListBox: Asigne las propiedades sólo a las etiquetas y a los botones de comandos
Prívate Sub Dirl_Change() como se indica en la aplicación a desarrollar.
Filel.Path = Dirl.Path La caja de texto Textl, debe estar en blanco.

G r u p o E d it o r ia l Megabyte 317 w m
VISUAL BASIC como debe ser. CAPÍTULO VIII: Manejo de Archivos
C O N M O N D IA L O G
PASO N° 03: ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES.

Instrucciones evento Form_Load


Prívate Sub Form_Load() Presenta los cuadros de diálogo más comunes del Windows. Su nombre
D rivel jC hange predeterminado es CommonDialogl, CommonDialog2, etc.
End Sub Sus principales propiedades son:
Instrucciones del control DriveListBox:
Prívate Sub D rivel_C hange() ACTION
D irl.P ath = Drivel.D rive Se utiliza para indicar el cuadro de diálogo que deseamos activar. Los valores
Label7 = Drivel.D rive que puede tener son:
End Sub 0 Ningún cuadro
1 Activa el cuadro de diálogo Abrir.
Instrucciones del control DirListBox: 2 Activa el cuadro de diálogo Guardar como.
Prívate Sub D irl_C hange() 3 Activa el cuadro de diálogo Color.
F ilel = D irl.Path
Label8 = D irl.Path 4 Activa el cuadro de diálogo Fuente.
Commandl .Enabled = False 5 Activa el cuadro de diálogo Imprimir.
End Sub 6 Activa la ayuda del Windows.
También se puede utilizar los métodos para activar el cuadro de diálogo que
Instrucciones del control FileListBox: desea: ShowOpen (Abrir), ShowSave (Guardar como), ShowColor (Color),
Prívate Sub F ilel_C lick() ShowFont (Fuente), ShowPrinter (Imprimir) y ShowHelp (Ayuda)
Label9 = Filel.filenam e
I f Right(UCase(Label9), 3) = "EXE" Then
Commandl .Enabled = True EJEMPLO DE CUADROS DE DIALOGO
Else
Commandl .Enabled - False . tr«pn©»«r*'
End I f ■3
E 'la d o p«ecM<iro«rvidA. Liil«
E nd Sub T*k > Arr*o La «»W iíI« i
_________ lue UOoadör)' LPT 1:
r «nmnlqrio I Imprimir en un archivo
Instrucciones del control Textl: Colores básicos:
Comas
Prívate Sub Textl_Change() ir r r r r i r r Imprima -
r»- Todo Número de £«p¡«s;
Filel. Pattern = Textl ■ r r r r i a s s
E nd Sub
■ r i ï E i i a i I Aceptar. I Cancelar |
Prívate Sub Textl _KeyPress(KeyAscii As Integer) ■ ■ ■ ■ ■ ■ ■ ■
c = Chr(KeyAscii) ■ r r R i i r i r
I f c = "*" O r c = "." O r e = "?" Then Fijante:
Textl JChange Colores personalizados: IA n al N <mlo w
"■i’ À b adi M T C o n d e m S d r Ä l
End I f r r r r~ r r »rAiiäi
'•t1 Ai liti B lack —*
End Sub r mm ® b
Definir colores personalizados»
Instrucciones del botón Ejecutar el Programa.
Prívate Sub Com m andl _Click() Aceptar Cancelar 1
I
Ta c ty r to
£ u l> i a y a d o
; AaBbY y Z z
Dim N n v JntPQpr
f ~ ...— -------
N = Shell( D irl.Path + V + F ilel filenam e, 1) A lf a b e to :
jKassiHiMasw»«*wa -i
End Sub

w 318 G r u p o E d it o r ia l Megabyte ^ G r u p o E d it o r ia l Megabyte 319


s , VISUAL BASIC como debe se r.. . CAPITULO VIII: Manejo de Archivos %
PR O PIE D A D E S PARA E L C U A D R O FU E N T E S P R O P IE D A D E S PARA EL C U A D R O C O L O R

Antes de usar el método ShowFont tiene que asignar a la propiedad Flags CO LO R


una de tres valores: ( )btiene el color seleccionado.
&H3 Muestra los tipos de letra que acepta el monitor y la impresora. I'LAGS
&H2 Muestra sólo los tipos de letra que acepta la impresora. So utiliza para configurar el cuadro de diálogo Color.
&H 1 Muestra sólo los tipos de letra que acepta el monitor. I .os valor que puede tener son:
Si no establece Flags, aparecerá el siguiente mensaje de error: &H2 Presenta el cuadro con los colores personalizados.
& 114 Desactiva el botón de comando Definir colores personalizado.

N o h a y fu e n te s in s ta la d a s . P R O P IE D A D E S PA R A E L C U A D R O A B R IR Y G U A R D A R
P a ra in sta la rla s, a b r a la c a r p e t a F u e n t e s e n el P a n e l d e co n tro l.

DEFAULTEXT
Indica la extensión predeterminada de los archivos.
KILENAME
También puede asignar a la propiedad Flags, entre otros, los siguientes valores: Obtiene el nombre del archivo seleccionado.
FILTER
&H200 Activa el botón Aplicar en el cuadro de diálogo. I establece los filtros para los tipos de archivos a visualizar.
&H 100 Especifica que el cuadro de diálogo permite los efectos de tachado, La sintaxis apara establecer un filtro es:
subrayado y color. Filter = descripciónl \filtrol \descripción2 \filtro2...
&H2000 Especifica que el cuadro de diálogo selecciona sólo tamaños de Para separar cada descripción y filtro debe utilizar el carácter N° 124 (|).
fuente dentro del intervalo especificado por las propiedades Min y Ejemplo, las instrucciones:
Max.
NOTA: C'onimonDialogl.Fílter = “Documentos(*.Doc)|*.Doc|Gráficos(*.Bmp)|*.Bmp|Todos|*.*”
Utilice el operador OR para asignar dos valores a la propiedad Flags, por CommonDialogl.ShowOpen
ejemplo, se puede escribir en un botón de comandos:
Com monD ialogl.Flags = &H2 Or &H100 Muestran la siguiente ventana de Abrir:
C om m onD ialogl. ShowFont Abrir 1

Buscar en | _ j| Vfb zJ £ j f t j f ü ü j
CO LO R
_ j Clisvr _ J samples L_j Winapi
Obtiene el color seleccionado para la letra. _ ] Graphics _ J Setup _ j Wizards
FO NTBO LD _ J Help __1setupkit

Indica si ha seleccionado negrita. _J0dbc _ J Tempiate


_ j report C_1 Tsql
FONTITALIC _ j Repostry __1 vbortline
Indica si ha seleccionado cursiva.
FO NTSTRIK ETHRU
Indica si ha seleccionado tachado. Nombre de archivo: 1 | £ btlf J
FO NTUNDERLINE Archivos de tipo: j Documentos^. Doc) _LÍ Cancelar I
!Documenios(*.Doc1 ■JMNIrilrittflHpMU .......... . ■
Indica si ha seleccionado subrayado. Gráficos(“ Bmp)
1--------------------------
FO NTNAM E NOTA:
Todos

Obtiene el nombre del tipo de letra seleccionada. Sino especifica la propiedad Filter, el combo de Archivos de Tipo se muestra
FONTSIZE en blanco, permitiendo ver todos los archivos.
Obtiene el tamaño de letra seleccionada.

^ 320 G r u p o E d it o r ia l M egabyte^ G r u p o E d it o r ia l Megabyte 321


VISUAL BASIC como debe ser... CAPITULO VIII: Manejo de Archivos
IIITERIMMX
A P L IC A C IÓ N D E SA R R O L L A D A N° 46
Para indicar el filtro predeterminado de los que se ha colocado en la propiedad Filter.
Por ejemplo, la siguiente instrucción hace que se muestre el segundo filtro de los La siguiente aplicación permite asignar un gráfico, un color de fondo, un
establecidos: tipo y color de letra utilizando las cajas de diálogo.
CbmnlmDial(^lEltel•=',DocuI^xa^tos(*I)c)c)(*.Doc|Graficos(*.Bn^p)|*.Brnpf^odos(*.*,'
CbmrnonDialogLFilterindex=2
CommonDialogLShowOpen
CUADROS OE DIÁLOGO azi
FLAGS
Se utiliza para configurar el cuadro de diálogo Abrir o Guardar. VISUAL BASIC
Los valor que puede tener son:
&H1000 Especifica que el usuario sólo 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 válido, se mostrará
una advertencia.
&H4 Oculta la casilla de verificación Sólo lectura.
&H8 Hace que el cuadro de diálogo restablezca como directorio actual el que lo
era en el momento de abrirse el cuadro de diálogo.
&H8000 Especifica que el archivo devuelto no tendrá establecido el atributo de FUENTE GRÁFICO FONDO LETRAS
Sólo lectura y no estará en un directorio protegido contra escritura.
&H2 Hace que el cuadro de diálogo Guardar como genere un cuadro de mensajes
si el archivo seleccionado ya existe. El usuario tiene que confirmar si desea
sobrescribiré! archivo. PASO N° 01: DIBUJAR LOS CONTROLES.
IMTDIK Dibuje una etiqueta, un PictureBox, cuatro botones de comandos y un control
Establece la ruta de la carpeta predetermina al para Abrir o Grabar un archivo. Por CommonDialog como se muestra a continuación:
ejemplo, la siguiente instrucción hace que se muestre la carpeta del Windows en
forma predeterminada. üi. Formi m u
CommonDialogl.InitDir - "c:\windows"
CommonDialog l.ShowOpen LabeH

PROPIEDADES PARA EL CUADRO IMPRIMIR

COPIES El número de copias que se van a imprimir.


FROMPAGE
La página en la que se inicia la impresión.
TOPAGE
La página en la que se detiene la impresión.
Los principales valores de la propiedad Flags
&H80000 Desactiva la casilla para Imprimir en un archivo. Commandl Command2 UommandS Command4
&H 100000 Oculta la casilla para Imprimir en un archivo.
&H40 Hace que el sistema presente el cuadro de diálogo Configurar impresora
en vez del cuadro de diálogo Imprimir.
&H20 Devuelve o establece el estado de la casilla de verificación Imprimir en un PASO N° 02: ASIGNAR LAS PROPIEDADES A LOS CONTROLES.
archivo. Asigna la propiedad Caption a la etiqueta y a los botones de comandos. Al
&H400 Devuelve el nombre de la impresora predeterminada. control PictureBox asígnele el gráfico indicado o cualquier otro. El control
CommonDialog no tiene ninguna propiedad.

€ ¡ S ¡ I 5' 322 G r u p o E d i t o r i a l M e g a b y te < | § | g


¡ § |¡ ||1 ^ G r u p o E d it o r ia l Megabyte 323
¡¡B B k VISUAL BASIC como debe ser... CAPÍTULO VIII: Manejo de Archivos %

PASO N° 03: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES. USO DE LA IM PRESO R A

Instrucciones del botón FUENTE Para manejar la impresora dentro de un programa se debe utilizar el objeto PRINTER.
Prívate Sub Commandl_Click() PRINCIPALES PROPIEDADES DELOBJETO PRINTER:
CommonDialogl.FontName = "ARIAL" ‘Tipo de letra predeterminada COLORMODE
CommonDialogl.Flags = &H3 Or &H100 Se utiliza sólo para impresoras a color para indicar si va a imprimir en color o negro (escala de
CommonDialog 1.ShowFont grises). Si le asigna el valor uno (1) imprimir en negro y dos (2) imprime en color.
Labell. FontName = CommonDialogl .FontName COPIES
Indica el número de copias a imprimir.
Labell .FontSize = CommonDialogl .FontSize CURRENTX
Labell. Fontltalic = CommonDialogl .Fontltalic Establece la posición Horizontal donde deseamos imprimir.
Labell. FontUnderline = CommonDialogl.FontUnderline CURRENTY
Labell.ForeColor = CommonDialogl .Color Establece la posición Vertical donde deseamos imprimir.
End Sub
DEVTCENAME
Obtiene el nombre del dispositivo.
DRIYERNAME
Instrucciones del botón GRÁFICO Obtiene el nombre del controlador.
Prívate Sub Command2_Click() FONTBOLD
CommonDialogl.Filter = "WMF\*.wmf\ICO\*.ico\BMP\*.bmp\Todos\*. *" Permite indicar si se imprime en negrita.
CommonDialogl. ShowOpen PONTITALIC
Permite indicar si se imprime en cursiva.
Picturel.Picture - LoadPicture(CommonDialogl.filename) FONTSTTRIKErHRU
End Sub Permite indicar si se imprime con letras tachadas.
FONTUNDERLINE
Instrucciones del botón FONDO Permite indicar si se imprime con subrayado.
Prívate Sub Command3_Click()
FONTNAME
Permite establecer el tipo de letra para la impresión.
CommonDialogl.Flags - &H2 FONTSIZE
CommonDialogl.ShowColor Permite establecer el tamaño de letra para la impresión.
Picturel.BackColor - CommonDialogl.Color HEJGHT
Labell. BackColor = CommonDialogl .Color Para indicar la altura del papel donde desea imprimir.
End Sub
WIDTH
Para indicar el ancho del papel donde desea imprimir
ORIENTARON
Instrucciones del botón LETRAS Permite establecer si se imprime en forma horizontal o vertical. Asignándole el valor
Prívate Sub Command4_Click() I se imprime vertical y 0 Horizontal.
CommonDialogl .Flags - &H2 PAGE
CommonDialogl.ShowColor
Devuelve el número de la página que se esta imprimiendo.
PAPERBPM
Labell.ForeColor = CommonDialogl.Color Establece la forma de introducir el papel a la impresora. Los principales valores que
End Sub puede tener son:
1 Utilizar papel de la bandeja superior.
4 Esperar a la inserción manual de cada hoja.
7 (Predeterminado) Utilizar papel de la bandeja activa.
8 Utilizar papel del alimentador por tracción.

lililí 324 G r u p o E d it o r ia l Megabyte <IÉp l l G r u p o E d it o r ia l Megabyte 325 m m


Ü ! Ü |> VISUAL BASIC como debe ser... „ CAPÍTULO VIII: Manejo de Archivos ^ ¡¡B
M E T O D O PR IN T
PAPERSIZE
Es un método que usado con el objeto Printer, permite imprimir información en la
Establece el tamaño del papel donde desea imprimir. Los valores principales son:
I Carta, 216 x 279 mm impresora.
8 A3,297 x 420mm Su sintaxis para imprimir en la impresora es:
9 A4,210 x 297mm PRINTER.PRINT Expresión
II A5,148x210mm Donde expresión es lo que deseamos imprimir. Si es un mensaje debe ir entre comillas
12 B4,250 x 354mm (") o apostrofes (‘). Ejemplos:
13 B5,182x257 mm La siguiente instrucción imprime VISUAL BASIC en la impresora.
14 Folio, 216x330 mm Printer.Print "VISUALBASIC”
39 Continuo USA estándar, 310 x 280 mm Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
40 Continuo alemán estándar, 216 x 305 mm DEBE SER..., pero en dos líneas diferentes.
41 Continuo alemán oficio, 216 x 330 mm Printer.Print "VISUALBASIC"
256 Definido por el usuario Printer.Print "COMO DEBE SER... "
Cuando le asigna el valor 256 el tamaño del papel será el indicado por la propiedades Después de la expresión puede utilizar una coma (,) que permite imprimir el siguiente
Height y Width. mensaje en la misma línea pero después de ocho (8) espacios o puede utilizar un
PORT punto y coma (;) que permite imprimiré! siguiente mensaje en la misma línea pero
Devuelve el nombre del puerto por el que se envía los documentos a la impresora. junto a la anterior.
PRINTQIAI.ITY
Establece la calidad de impresión. Sus valores pueden ser: Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
CONTANTE VALOR CALIDAD DEBE SER..., en la misma línea pero separados por 8 espacios (hay una coma después
vbPRPQDraft -1 Resolución borrador de imprimir VISUAL BASIC).
vbPRPQLow -2 Resolución baja Printer.Print "VISUALBASIC",
vbPRPQMedium -3 Resolución media
vbPRPQHigh -4 Resolución alta Printer.Print "COMO DEBE SER... "
SCALEMODE Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
Establecen la unidad de medida para el objeto Printer. Los valores que puede tener DEBE SER..., en la misma línea pero juntos (hay un punto y coma después de
son: imprimir VISUAL BASIC).
1 (Predeterminado). Establece la unidad de medida Twip. Printer.Print "VISUAL BASIC";
2 Punto (72 puntos por pulgada lógica). Printer.Print "COMO DEBE SER... "
3 Píxel (resolución del monitor o la impresora). Las siguientes instrucciones imprimen: SU EDAD ES: 31 AÑOS.
4 Carácter (horizontal= 120 twips por unidad; vertical=240 twips por unidad). Dim E As Integer
5 Pulgada. E = 31
6 Milímetro. Print "SU EDAD ES: Str(E); " AÑOS"
7 Centímetro.
ZOOM La instrucción Printer.Print sin ningún parámetro deja una linea en blanco.
Indica el porcentaje en que se amplia o reduce el resultado impreso.
IN ST R U C C IÓ N TAB
PRINCIPALES M ÉTODOS DEL OBJETO PRINTER: La instrucción Tab se utiliza junto con Print para indicar el número de la columna de
la línea actual donde desea imprimir la siguiente expresión. Por ejemplo:
ENDDOC I .a instrucción imprime en la columna 20 la palabra COMPUTACION.
Inicia el envía la información a la impresora. Printer.Print Tab(20); "Computación"
K IL L IX X
La siguiente instrucción imprime en la columna 10 el texto VISUAL BASIC y en la
Finaliza el trabajo de impresión en ejecución. columna 30 el texto COMO DEBE SER...
NEWPAGE
Avanza a la siguiente página e incrementa el valor de la propiedad Page en 1 (uno).
Print Tab(10); "VISUALBASIC"; Tab(30); "COMO DEBE SER.."

326 G r u p o E d it o r ia l Megabyte G r u p o E d it o r ia l Megabyte 327 m m


'íZtS&m' VISUAL BASIC como debe ser. CAPÍTULO VIII: Manejo de Archivos
IN ST R U C C IÓ N SPC Instrucciones del botón Nuevo o Almacenar.
Esta instrucción permite dejar espacios en blanco antes de imprimir. P r i v a t e S u b C o m m a n d l _ C l i c k ()
La siguiente instrucción imprime los textos VISUAL BASIC y COMO DEBE SER..., I f C o m m a n d l . C a p t i o n = " & N u evo" T h e n
separados por 5 espacios en blanco. C o m m an d l. C a p t i o n = "¿ A lm a c e n a r"
Print "VISUAL BASIC"; Spc(5); "COMO DEBE SER..." Conunand2. E n a b l e d = T r u e
NOTA: F ram e1 . E n a b le d = T ru e
• Es opcional escribir los punto y coma en las instrucciones TAB y SPC, porque se lim p ia
escriben automáticamente. T e x t l . S e tF o c u s
• Cuando la columna donde trata de imprimir con la instrucción TAB está ocupada E lse
por la expresión anterior, entonces se imprime en la columna indica pero en la
C o m m a n d l . C a p t i o n = "& N uevo"
siguiente línea.
Command2. E n a b l e d = F a l s e
P R IN T F O R M Fram e1 . E n a b le d = F a ls e
Es un método que pertenece a los formularios y permite imprimirlo incluyendo todos Rem p a s a l o s d a t o s d e l a s C a j a s d e T e x t o a l o s L i s t
los controles que contiene incluyendo gráficos. Para ello asigne el valor TRUE a la L i s t l .A d d lte m T e x tl
propiedad AUTOREDRAW del formulario que desea imprimir. Su sintaxis es: L i s t 2 .A d d lte m T e x t2
Nombre_Del_Fonnulario.PRINTFORM vL i s t 3 .A d d lte m T ext3
End I f
A P L IC A C IO N D E SA R R O L L A D A N° 47 End Sub
La siguiente aplicación es un ejemplo del uso de laimpresora imprimiendo los datos
de una sola persona o un listado general. Inst, del FormActivate. Inst, del botón Cancelar.
USO DE LA IM PRE SO RA -mixi P r i v a t e S u b F o r m _ A c t i v a t e () P r iv a te Sub
D a lo s P e r s o n a le s : C o m m a n d l. C a p t i o n = "&Nuevo C o m m a n d 2 _ C lick()
Nombre ¡Cesar Labell ] Textl Command2. E n a b l e d = F a l s e
Almacenar j F o rm _ A c tiv a te
Distrito ||_a Victoria Label2 (7ext2
Fram e1 . E n a b le d = F a l s e End Sub
Edad f 35 Cancelar
Label3 I ™3 lim p ia
End Sub
Anaximandro -1
Ana María
lie7 Fi't1'Jifflffli'‘wWnffT PROCEDIMIENTO LIMPIA PROCEDIMIENTO MUESTRA
Karina
S u b l i m p i a () S u b MUESTRA ()
jd
IM P R IM IR
T e x tl = "" T e x tl = L i s t l
Frame2
REGISTRO ACTUAL Command3 | Command4
T e x t 2 = "" T e x t2 = L i s t 2
T ex tJ = "" T e x t3 = L i s t 3
End Sub End Sub
PASO N" 01: DIBUJAR LOS CONTROLES.
Dibuje los controles y asígnele las propiedades como se muestra a continuación.
Las listas deben quedar en blanco: INSTRUCCIONES DE LOS CONTROLES LIST
PASO N° 02: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES. Private Sub Ustl_CUck( ) Private Sub lJst2_Click() Private Sub List3_Click()
Definir las variables a nivel de formulario. N = List2.ListIndex N = List3.ListIndex
N = Listl.Listindex
Dim N As Byte List 1.ListIndex=N
List2.ListIndex - N Listi. Ustlndex = N
Instrucciones del botón Salir.
List3.ListIndex = N List3.ListIndex = N List2.UstIndex = N
Prívate Sub CommandS_Click()
End Sub MUESTRA MUESTRA
IfMsgBox("ESTA SEGURO DE SALIR", 36, "CUIDADO") = 6 Then End
End Sub End Sub End Sub

328 G r u p o E d it o r ia l Megabyte^ E d it o r ia l Megabyte 329


VISUAL BASIC como debe ser. . . •■■■■.■*,•• CAPITULO VIII: Manejo de Archivos ^
Instrucciones del procedim iento E N C A B E Z A D O COMANDOS DEL D.O.S.
Sub ENCABEZADOO
Printer.FontName = "Arial" Todas las tareas para manejar archivos o carpetas, se pueden realizar a través del
Printer.FontSize - 8 Windows y con las cajas de diálogo (CommonDialog), pero Visual Basic también
Printer.Print Tab(33);"PáGINA N°" + Str(Printer.Page);Tab(80); acepta instrucciones que se usan en el D.O.S:
"Fecha y H o r a + Str(CVDate(Now)) niR
Printer.CurrentY - 1 0
Printer.Print Permite obtener el nombre de un archivo, el nombre de la carpeta actual o el nombre
Printer.FontName = "courier new" de la etiqueta del disco.
Printer.FontSize = 22 Su sintaxis es: DIR (RUTA, VALOR)
Printer.Print Tab(12); "LISTADO DE REGISTROS" Ruta es el ubicación y el nombre del archivo que desea obtener. Se pueden utilizar
Printer.FontSize = 10 los caracteres comodín:
Printer.Print * Que representa dos o más caracteres.
Printer.Print Tab(20);"NOMBRE"; Tab(40); "DISTRITO"; Tab(70); "EDAD" ? Que representa un solo carácter.
Printer.Print Tab(20); String(55, "*") Es un valor que indica el atributo del archivo.
End Sub Los valores pueden ser:
In strucciones del B otón R egistro A ctual. vbNormal 0 Normal
Prívate Sub Command3jClick() vbHidden 2 Oculto
Printer.PrintQuality = -4 vbSystem 4 Archivo de sistema
Printer.ScaleMode = 6 vbVolume 8 Etiqueta de volumen; si se especifica se ignoran todos
Printer.PaperSize = 9 los atributos.
Printer.CurrentY = 10 vbDirectory 16 Directorio o carpeta.
Printer.FontName = "courier new" FTLECOPY
Printer.FontSize = 20 Copia un archivo. Por ejemplo, la siguiente instrucción copia el archivo
Printer.Print Tab(17); "DATOS PERSONALES" INFORME.DOC AL DISCO A: FileCopy "INFORME.DOC ", "A:"
Printer.FontSize - 14 KIIJ.
Printer.Print
Printer.Print Tab(20); "Nombre................: " + Textl Borra un archivo. Por ejemplo, la siguiente instrucción borra el archivo
Printer.Print Tab(20); "Distrito...............: " + Text2 INFORME.DOC: KILL “INFORME.DOC
Printer.Print Tab(20); "Edad.................... : " + Text3 ÑAME
Printer.EndDoc Cambia el nombre de un archivo, directorio o carpeta. Por ejemplo, las instrucción
End Sub cambia el nombre DATOS.DOC por HOY.DOC
Ñame “DATOS.DOC”As “HOY.DOC”
( URDIR
Instrucciones del procedim iento Todos. Devuelve la unidad y ruta actual. La siguiente instrucción almacena en Label 1, la
Prívate Sub Command4_Click() unidad y ruta actual: Labell=CURDIR
Printer.PrintQuality = -4 CHDIR
Printer.ScaleMode = 6:Printer.PaperSize=9:Printer.CurrentY = 10
ENCABEZADO Cambia la unidad y ruta actual. Por ejemplo, la instrucción cambia a una nueva
F orX - 1 To Listl.ListCount ruta: C:\Windows.
Printer.FontName = "courier new" MKDIR
Printer.FontSize - 1 0 Crea una nueva carpeta. Por ejemplo la siguiente instrucción crea la carpeta Agenda:
Listl.Listlndex = X - 1:List2.Listlitdex = X - 1: List3.ListIndex = X - 1 MKDIR “C:\AGENDA”
Printer.Print Tab(20);Listl; Tab(40); List2; Tab(72); List3 RMDIR
IfX Mod 3 - 0 Then Borra una carpeta, siempre y cuando se encuentre vacía. Por ejemplo: RMDIR
Printer.NewPage “C:\AGENDDA”. Boira la carpeta AGENDA.
ENCABEZADO
CHDRIVE
E n d lf
Next X Cambia de unidad de disco. Por ejemplo, la siguiente instrucción cambia a la unidad
Printer.EndDoc A:. CHDRIVE “A:”.
End Sub

330 G r u p o E d it o r ia l Megabyte G r u p o E d it o r ia l Megabyte 331


VISUAL BASIC como debe ser... CAPÍTULO VIII: Manejo de Archivos %
A LGUN OS E R R O R E S IN T ER C EPTA B LES
CONTROL DE ERRORES
Número Descripción
La instrucción ON ERROR 5 El argumento o la llamada al procedimiento no son válidos
6 Desbordamiento
Esta instrucción permite detectar errores durante la ejecución de los programas. 7 Sin memoria
Cada vez que hay un error se puede llamar a un grupo de instrucción para poder 9 El subíndice está fuera del intervalo
controlarlo y evitar que nuestro programa deje de funcionar en un momento 11 División por cero
inesperado. 13 No coinciden los tipos
Tiene 3 sintaxis: 20 Resume sin Error
35 No se ha definido Sub, Function o Property
On Error GoTo Nombre_deIaIínea 47 Hay demasiados clientes de la aplicación DLL
Con esta sintaxis, cada vez que se produce un error se ejecutan las instrucciones 52 Nombre o número de archivo incorrecto
que están después del nombre de la línea. El nombre de la línea debe terminar con 53 Imposible encontrar el archivo especificado
dos puntos (:). Antes del nombre de la línea debe escribir la instrucción EXIT SUB 54 Modo de archivo incorrecto
On Error Resume Next 55 El archivo ya está abierto
57 Error de E/S de dispositivo
Con esta sintaxis, cada vez que se produce un error la computadora ejecuta la 58 El archivo ya existe
siguiente instrucción después de la línea de ocurrió el error. 61 Disco lleno
On Error GoToO 62 La entrada de datos ha sobrepasado el final del archivo
Con esta sintaxis, se desactiva el control de errores. 63 El número de registro es incorrecto
67 Hay demasiados archivos
71 El disco no está listo
EL OBJETO ERR 74 Imposible cambiar el nombre con una unidad de disco diferente
75 Error de acceso a la ruta o al archivo
El objeto ERR contiene información acerca del error que se a producido. Su 92 El bucle For no está inicializado
propiedades más importantes son: 94 El uso de Nuil no es válido
DESCRIPTION.- Devuelve el mensaje que muestra el sistema por el error producido. 321 Formato de archivo no válido
NUMBER.- Devuelve el número del error. 380 Valor de propiedad no válido
SOURCE.- Devuelve el nombre del objeto donde ocurrió el error. 381 El índice de la matriz de propiedades no es válido
382 Set no se admite en tiempo ae ejecución
383 Set no se admite (propiedad de sólo lectura)
EJEMPLO DE CÓMO CONTROLAR LOS ERRORES 385 Se necesita un índice de matriz de propiedad
387 Set no está permitido
Prívate Sub Command l_Click() 393 La propiedad no se puede leer en tiempo de ejecución
Dim NUMERR, R As Integer 400 El formulario ya está mostrado. Imposible mostrar en forma modal
Rem ACTIVA EL CONTROL DE ERRORES 402 Primero debe cerrar u ocultar el formulario modal superior
On Error GoTo VERIFICA 422 No se encontró la propiedad
423 No se ha encontrado la propiedad o el método
424 Se requiere un objeto
Instrucciones 438 El objeto no acepta esta propiedad o método
449 El argumento no es opcional
ExitSub 450 Número de argumentos erróneo o asignación de propiedad no valida
VERIFICA: 451 El objeto no es una colección
NUMERR = Err.Number 459 Este componente no acepta eventos
482 Error de impresora
Select Case NUMERR 483 El controlador de im presora no admite la propiedad especificada
Case 6: MsgBox "DEFINE CORRECTAMENTE TU VARIABLE", 16, "ERROR" 484 Problemas al obtener información de la impresora desde el
Case 11: MsgBox "NO SE PUEDE DIVIDIR ENTRE CERO", 16, "ERROR" sistema; asegúrese de que la impresora está configurada correctamente
Case 61: MsgBox "EL DISCO NO TIENE ESPACIO LIBRE", 16. "ERROR" 485 El tipo de imagen no es válido
485 No se puede imprimir la imagen de formulario en este tipo de
Case 71: MsgBox "INSERTE CORRECTAMENTE EL DISCO", 16, "ERROR" impresora
Case Else 520 No se puede vaciar el Portapapeles
MsgBox "HA OCURRIDO UN ERROR NO CONTROLADO EN:" _ 521 No se puede abrir el Portapapeles
+ Err.Source+Chr( 13)+"Número de Error:"+Str(Err.Number) _ 735 Imposible guardar el archivo en TEM P
+ Chr(I3)+"Descripción :"+Err.Description + Chr(13) 744 No se encontró el texto de búsqueda
End Select 31001 Sin memoria
31027 Imposible activar el objeto
End Sub

332 G r u p o E d i t o r i a l M e g a b v t e < || ¡ | ¡ | G r u p o E d it o r ia l Megabyte 333


A t VISUAL BASIC como debe ser.. . CAPÍTULO VIII: Manejo de Archivos
RICHTEXBOX MÉTODO LOADFILE
A b re un a rch ivo con fo rm a to R TF o de tip o texto. Su sintaxis:
R ic h T e x tB o x .L o a d F ile “ru ta y n o m b r e ”, Valor.
E l v a lo r in d ic a el tip o de a rchivo: 0 R T F y 1 Texto.
Es s im ila r a una caja de textos. Se d iferen cia porque este c o n tro l perm ite MÉTODO SAVEFILE
asignar un fo rm a to a todo o parte del texto y tiene otras características más Graba un a rch ivo R T F o texto. Su sintaxis es s im ila r a LoadF ile.
avanzadas com o por ejem plo, perm ite a b rir y grabar archivos con fo rm a to Aplicación de Ejemplo
R T F y texto A S C II norm al usando los m étodos L o a d F ile y SaveFile. L a siguiente a p lica ció n que perm ita a b rir y grabar archivos.

^ ^ r c h Í vo s H 0 E 3 I
A parte de las propiedades de la caja de texto, tiene las siguientes:
|j ÁBRÍR j | GRABAR |

BULLETINDENT CONTENIDO DEL ARCHIVO


In dica la sangría con la que debe trabajar. EL SID A
SID A significa Síndrome de Inmuno Deficiencia Adquirida y es una enfermnedad que hasta
DISABLENOSCRO LL ahora no tie n e cura, por lo tanto, trae como consecuencia la muerte sin tomar en cuenta la edad,
Acepta un valor lógico que indica si están activadas las barras de desplazamiento. el color, la raza, el sexo ni el nivel económico de una persona.
RIGHTM ARGIN El SIDA es la etapa m as avanzada de la infección producida por el Virus de Inmunodeficiencia
H um ana (VIH). Esto quiere decir que antes que una persona tenga S ID A primero tiene el virus
Perm ite in d ic a r el margen derecho. V IH y este virus se contagia principalmente por tener re la c io n e s se x u a le s sin p ro te c c ió n con
SCROLLBARS una persona infectada con este virus del VIH. La protección m as usada es el CONDÓN.
In dica si el co n tro l debe tener las barras de desplazam iento. La persona que tiene el virus VIH que es el principio del SIDA no tiene ningún síntoma ni ninguna
forma de saber a simple vista (sólo a través de la prueba de Elisa) que tiene el virus, por eso es
SELALIGNM ENT muy importante, si vas a tener relaciones sexuales, el u so d e l C o n d ó n el cual también te protege
A lin e a el texto asignándole los valores N u il (ninguna), 0 (izq uie rd a), 1 de las enfermedades de transmisión sexual (ETS) como Sífilis, Gonorrea, Herpes, Chancro
((derecha) y 3 (centro). Blando, Candidiasis, Verruga, etc.
Muchas personas dicen que hacerlo con condón "no es igual”, pero tu tienes que saber que una
SELBOLD v id a co n SID A tam p o co e s ig u al y es preferible, si no tienes un condón " p e r d e r " una relación
A c tiv a o desactiva el estilo N e g rita al te xto seleccionado. sexual o una noche de placer, que perder la salud y sobre todo la VIDA.
SELITALIC "N o o lv id es que tu fam ilia te q u ie re y te necesita'*
A c tiv a o desactiva el estilo C u rsiva al te xto seleccionado.
SELSTRIKETHRU DESARROLLO
A c tiv a o desactiva el estilo Tachado al texto seleccionado.
D ib u je en un fo rm u la rio dos botones de com andos, una etiqueta, un co ntrol
SELUNDERLINE
R ichT extB o x y un co n tro l C om m ondialog
A c tiv a o desactiva el e stilo Subrayado texto seleccionado.
SELBULLET INSTRUCCIONES DEL BOTÓN ABRIR.
A c tiv a o desactiva el e stilo con V iñ e ta te xto seleccionado. Pri vate Sub Command l_Click()
SELCOLOR On Error GoTo PRUEBA
A sig na un c o lo r al texto seleccionado. CommonDialogl .Filter="RTF (*.RTF)|*.RTF |TEXTO (*.TXT)|*.TXT"
SELFO NTNAM E CommonDialogl .ShowOpen
A sig na un tip o de letra al texto seleccionado. RichTextBox 1.LoadFile CommonDialog 1.filename, CommonDialog 1.FilterI ndex-1
SELFONTSIZE Exit Sub
A sig na un tam año de letra al texto seleccionado. PRUEBA:
SELPROTECTED MsgBox "NO SE PUEDE TENER ACCESO A L ARCHIVO", 64, "ERROR"
Acepta un v a lo r ló g ic o que ind ica si el te xto seleccionado esta p rotegido, es End Sub
decir, no puede m odificarse.
Las instrucciones del botón Grabar son similares a la de Abrir, sólo cambie la
propiedad ShowOpen por ShowSavey el método LoadFilepor SaveFile.

334 G r u p o E d it o r ia l Megabyte H ü j ¡ ^ G r u p o E d it o r ia l Megabyte 335


VISUAL BASIC como debe ser. . . CAPÍTULO VIII: Manejo de Archivos

FUNCIONES API APAGAR LA COMPUTADORA AUTOMATICAMENTE


.........
A P I s ig n ific a In te rfa z de Program ación de A p lica cion es y son un co njun to Función ExitWindowsEx
de funciones que tiene el W in do w s que nos ayudan a desarrollar aplicaciones Es una fu n ció n A P I que perm ite apagar en fo rm a autom ática la com putadora
o tareas de una más rápida y sencilla. a través de una a plicación. Su sintaxis es:
Para u tiliz a r una fu n c ió n A P I de W in d o w s debe agregarla al m ó d u lo de su E x itW in d o w sE x (V A L O R 1 ,V A L O R 2 )
aplicación. Para e llo siga los siguientes pasos: E l v a lo r2 siem pre es cero (0).
1. De la o pción C om plem entos e lija V is o r A P I. Los princip ale s valores que puede tener V a lo r I son 1,2,5 y 6 :
Si no e ncu en tra la o p c ió n V is o r A P I, ingrese a A d m in is tra d o r de 1 A paga la com putadora pero si tenemos un a rch ivo sin grabar, pregunta
C om plem entos y active la ca silla de V B A P I View er. si deseamos grabarlo.
2. De la ventana que se visu a liza al ingresar a la o p ció n V is o r A P I e lija 2 R e in ic ia liz a la com putadora pero si tenemos un a rc h iv o sin grabar,
A rc h iv o y luego C argar A rc h iv o de Texto. pregunta si deseamos grabarlo.
5 A paga la com putadora sin preguntar si deseamos grabar un a rchivo
C om ptern e n t o s dis p o n ib le s :
que tenemos sin grabar.
C om plem entos f A c e p ta r |

: M ic ro s o ft D o la T o o li 6 R ein icia liza la com putadora sin preguntar si deseamos grabar un archivo
A d m inistrador visual de d a to s ... : VB A c tiv e X C o n tro l In te r fa c e W iz a rd
1 VB A c tiv e X D o c u m e n t Mwji a tio n W iz a rd
I VB A d d In T oolbar
que tenemos sin grabar.
D iseñador de in fo rm e s ... • tT-7.r
i VB A p p lic a tio n W iz a rd

A d m inistra dor de com p le m e n to s.,


j VB C lass Bui!d«»t U tility
; v o D a ta F o rm W iz a rd
j VB P r o p e r ty P a ge W iza rd
APLICACION DE EJEM PLO
) vm T -SQ t. D e b u g g e r
Visor API : VB W iz a i d M an ag er i,. F U N C IO N A P I MZi
R E IN IC IA LIZA R LA C OM P U TA D O R A
3. Ingrese a la carpeta W in a p i y seleccione el a rch ivo W in 3 2 a p i.
Seleccione un archivo de texto API m a l Seleccione un archivo de texlo API
A PAG AR LA C O M P U TA D O R A
ßuscaren: | _ j Vb
“3
__i Clisvr C J samples _ 1 Winapi
_ ] Graphics i_ J Setup _ J Wizards
_ J Help __1setupkit License C rear una nueva a plica ció n y a d icion arle un m ó d u lo (P royecto A gregar
_ )0 d b c
_ J report
C_] Template
-J T s q l
f Redist
M ó d u lo ), luego inserte en d ich o m ó d u lo la fu n c ió n A P I E x itW in d o w s E x y
_ j Repostry __1vbonline escriba en los botones de com andos las instrucciones correspondientes.
Botón Reinicializar la Computadora
Nombre de archivo: ¡f" hombre de archivo: |f
Prívate Sub C o m m a n d l_ C lic k ()
Archivos de tipo: ¡Texto TXT) Archivos de tipo: [Texto (‘ TX T)
D im N A s Integer
N = E x itW in d o w s E x ( 6 , 0)
Se m uestra una ventana con 5 botones de comandos: End Sub
BU SCA R : Perm ite buscar a una fu n ció n . Botón Apagar la Computadora
AGREGAR : A grega a la lista la fu n c ió n seleccionada. Prívate Sub C o m m a n d 2 _ C lic k ()
QUITAR : Q u ita una fu n c ió n de la lista de funciones seleccionadas. D im N As Integer
CO PIAR : C op ia la fu n c ió n seleccionada en el portapapeles. N = E x itW in d o w s E x (5 , 0)
INSERTAR : Inserta la fu n c ió n o funciones seleccionadas en la ventana End Sub
de declaraciones el fo rm u la rio activo o del m ódulo.
MUY IMPORTANTE NOTA:
Estas funciones deben estar en el m ó d u lo de la aplicación. Para e llo adicione Estas in s tru c c io n e s se pueden u tiliz a r cu an do el u s u a rio no ingresa
un m ód ulo antes de rea liza r los pasos indicados. correctam ente el Password o C lave.

336 G r u p o E d it o r ia l Megabyte < G r u p o E d it o r ia l Megabyte


w
f a VISUAL BASIC como debe ser.. . CAPÍTULO VIII: Manejo de Archivos
En tip o de Em paquetado e lija Paquete de In sta la ción Estándar y en o p cio ­
C R EA R D ISC O S DE IN ST A L A C IO N nes de Cab. E lija M ú ltip le s A rc h iv o s Cab.

4 Amtente de empaquetado y «Sstrfcuctán - Opciones de cab

V isual Basic crea de una manera m uy fá c il y rápida los discos de instalación , Ot>í el t*« ie paquete * * desea c*ear
‘ - > 4 ’ pars el paquee. Si va a á ñ itu k su apicación en dwjjetes
de cualquier aplicación que usted desarrolle con la fin a lid a d que la aplicación «b e oea» múltiples «c b vw ,:ab y especftcsr un tamaño oe
A’’’ ' Paiola cpqón apropíadí.
la instale y ejecute en cu alqu ier com putadora sin necesidad que ésta tenga J ! ®
el V isu a l Basic.
■ Î
Para crear los discos de instalación grabe correctamente su aplicación y salga Jifa de empèqüRôdo: Opdones de .cab
del V isu a l Basic, luego de su ventana de acceso e lija : H erra m ie n ta s de
Ur único archivo .cab
M icro so ft Visual B a sic 6.0\A sistente p a ra E m paquetado y D istribución. (* archvcs .cat<
JT J Internet txptorer *
lanario de ardv/o .cab:
Microsoft Ollice 2000 Profesional ►
fTíre 3
j r j Microsoft Office Took ►
^ Microsoft Visual Studio SO Herramientas de Microsoft Visual Studio S O
-ä Microsoft Web Pubfcshing ► L ÍJ Herramientas empresariales de Microsoft Visual SL..
■ _Tj PLATINUM WotkView fot Internet Explorer ► Microsoft Visual SourceSafe Ayjda { Cancefcr | <Antcror | S qugte > |
™ -3 Power 8 0 ► Microsoft Visual Basic S O
_ jj favoritos
^ > .3 Servicios en línea ► Microsoft Visual FoxPro 6.0
l _ j documentos
Configuración
> - i j Sybase
. T j The Hacker Antivirus
1. Distribuir la Aplicación
&
^ fiuscar
Ayuda
- i j WinZip Para e llo , haga c lic k en el botón Distribuir y siga las instrucciones del
J3 Ejecutar..
j j Explotador de Wndows
A sistente.
'¿ i- Internet Explorer
*J* Apagar el sistema. MS-OOS En M étodos de D is trib u c ió n E lija D isquetes y en U nidades de D isco
|§É!"í£!í?r V Outlook Express
■3 e lija la unidad donde va a crear los discos de instalación.
Se visu a liza la ventana de Asistente de ■-J Asistente de empaquetado y distribución - Método de distribución •jpAsiitente de empaquetado y distribución •Unidad de duquete

Em paquetado y D is trib u c ió n donde se ; Eifa el tpe de dístróución qjc desea reafc». a?a unauneW de cüsruete er, labta de abafe

debe hacer C lic en el botón E xa m in ar M


para buscar y seleccionar el p royecto OM'*»»
,

al cual le va a crear los discos de insta­


lación. .’-áJ
Métode de dstrouoór :

Pufcäcaöcn en Web ” Fcmatear antes óe coear

El proceso de instalación consiste en: Qwscipdóf.:


a J f í r b j un paquete er varios d»»jetes.

I J
1. Empaquetar la aplicación. Ayuda i Cancela- | < Açÿerer j rí<giighte > j { | Obelar j <Antero- iOjjjrte>|
Para e llo haga c lic en el botón Em paquetar. Si no ha creado el ejecutable
( * .E X E ) para la a plicación se visu a liza el siguiente mensaje:
A l finalizar, V isual Basic le pedirá que inserte los discos de usará
Asistente de empaquetado y d is tr ib u c ió n com o instaladores.
f) \ Para poder continuar, el Asistente requiere el archivo ejecutable 'Horarios.EXE' A s is te n te d e e m p a q u e ta d o y d is trib u c ió n E l
para este proyecto. Haga clic en Examinar para buscar el archivo o en Compilar
para compilar el proyecto.
1 J In s e rte e l d is c o 1 d e 2 p a ra in ic ia r la c re a c ió n d e d isq u e te s.
! Compilar | Cancelar

A c e p ta r jj C a n c e la r j
H aga c lic k Compilar y siga las instrucciones del Asistente.

338 Grupo E d itorial M egabyte^ G r u p o E d it o r ia l Megabyte 339


<>
v É ta m VISUAL BASIC como debe ser. CAPÍTULO VIII: Manejo de Archivos ^ ¡¡¡¡¡¡1
CONTROLACTIVEMOVIE
CREACION DE ARCHIVOS DE AYUDA
L x iste n básicam ente dos tip os de a rchivos de ayuda. Los a rchivos sim ples,
que sólo muestran el texto de ayuda en una sola ventana y los archivos con
Permite ejecutar archivos de m ultim edia, com o por ejem plo los archivo * .A V I
ventanas vinculadas que consisten en llam ar a una ventana desde otra ventana.
que son archivos que tienen videos grabados. U n eje m p lo de a rch ivo * .A V I
es el que usted v isu a liza cuando copia un a rchivo u tiliz a n d o W in do w s: i w. Si«» _" __ __ W Miciosoít Woid - TUTO R rtf
...I ... '..... I':}'"“:
O P C IO N E S O K I. M I . N l’ P R IN C IP A !.
......... - i ^ àrchiv»} cckión ¥er Asertar Eproiaío He/r«nfeTtas tabla Ventana 1 - Iffl X|

: &y 4 ? ® 4 * ffl E ®
I l'UODl'CTOS
* 12 * H X g ÜË s 31 * 1=

M ‘ > v iM tf:r.rú
m * n i 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


O P C IO N E S DEL M E N I PR IN C IPA L
Mi ItlH ÍK S
3 4 >” • 5 »• tpcifn«.# »<;•= Mir¡ r...v ,r.ív m , j i ¿ n «t-i V
, I ¡.i :.a «i i.: i.u,- j .s . 21 (■r..2u'-t•: PR9PVÇT9S
MOVIMIENTOS

m
I l 11 ITARIOS BEBBm
m i m UTILIIASIoa
p|3 al «I ____________________ I lT
G I Sfc. 1 1(5 fi :.9 on ir. 6 C d 12
Sus p rincipales propiedades son:
AUTOREW IND Para el primer caso sólo necesita crear un documento en Word con el texto que
In dica si después de te rm ina r el vídeo retrocede al in ic io . clesea mostrar en la ayuda y guardarlo con un formato RTF (Archivo/Guardar Come >)
AUTOSTART y luego compilar este documento con el programa M icrosoft H elp WorkSItop que
In dica si se visua liza autom áticam ente el vídeo cuando le asignamos el es un utilitario del Visual Basic que debe instalar en su computadora.
nom bre del archivo. En segundo caso, debe rea liza r lo siguiente:
FILENAM E Las opciones que va a e x p lic a r y que van a lla m a r a las otras ventanas de
A cepta la ruta y el nom bre del a rch ivo de vídeo que deseamos visualizar. ayuda se deben de separar del resto del texto de ayuda p o r S a lto d e P á g in a
FULLSCREENM O DE M a n u a l (Pulsando C O N T R O L + E N T E R ). Cada tema a e x p lic a r tam bién
In d ica si el a rch ivo debe ocupar toda la pantalla al ejecutarse. debe de estar en una página diferente.
PLAYCOUNT
In d ica la cantidad de veces que se debe visu a liz a r el a rchivo. OPCIONES DEL MENU PRINCIPAL

APLICACIÓN DE EJEMPLO: PRODUCTOS


MOVIMIENTOS
La siguiente a plicación perm ite seleccionar un vídeo y visua liza rlo s. Para REPORTES
UTILITARIOS
e llo d ib uje en un fo rm u la rio en blanco; un co n tro l A c tiv e M o v ie , un botón de
PRODUCTOS
comandos y con control C om m onD ialog. En el botón Seleccionar un archivo, Esta opción permit« nininitrar toda la infamación de lo; productos que fe
ccttnercialmn en la empresa.
escriba lo siguiente: Permite por ejemplo, ingresar productos nuevos, linar proiictos por laboratorio,
cambiar precios, etc.

% VISUALIZAR VIDEOS
MOVIMIENTOS
Private Sub Commandl_Click() Esta opciói permite regiarar las carçras que se realisan por cada producto,registrar
sus veitas, devoluciones, controlar y visualuar el stock inventariado y valoreado, etc.
C om m onD ialogl.Filter = “Videos
(*.Avi)|*.avi|Todos (*.*)|*.*” REPORTES
Provee de la opciones que brindan iifonmcion útil y oportuna al usuario como por
CommonDialog 1.ShowOpen ejemplo D producto más vendido, el producto menos venduto, el total de ventas
diarias, semanales,mensuales, etc.
Acti veM oviel .filename=CommonDialog 1.
Hü SELECCIONAR UN ARCHIVO Filename UTILITARIO
Brinda al usuario las herramientas mas H itadas como por ejempb : Calculadora,
End Sub Configuraciones (Panel de Ccntrol), maitenimiento de usuarios, es decir, eliminarlos,
cambiar su clave, etc.

340 G r u p o E d it o r ia l Megabyte< G r u p o E d it o r ia l Megabyte mi


VISUAL BASIC como debe ser. . . CAPITULO VIII: Manejo de Archivos %
Para crear el vín cu lo entre la o pción elegida y el texto de ayuda a visualizar, V e rifiq u e que tenga instalado en su com putadora el u tilita rio W o rk Shop del
p rim e ro debe separarlas p o r ca m b io de página m anual (C O N T R O L + V isu al Basic. Cuando usted activa este program a se v is u a liza la siguiente
E N T E R ), com o se muestra en la fig u ra anterior, luego a cada tema de ayuda ventana in ic ia l. De la o p ció n F ile de esta ventana , e lija N ew y luego H elp
debe insertar una nota al pie de página con un carácter y un nom bre de Project y pulse el botón O K . V isualizará una ventana de d iá log o donde debe
enlace para que pueda vincularse con las opciones de la p rim era página. e s c rib ir el nom bre de su a rch ivo de ayuda a crear. Después de in d ic a r el
Por ejem plo: nom bre del a rch ivo a crear, se visua liza una nueva ventana:
I ? ,• M ic r o to f! H e lp W o rk s h o p P if il E3 I <5, M ic r o s o ft H e lp W o ik s h o p - ( h o la h p i)
ENLAZAR LA OPCIÓN PRODUCTOS CON EL TEMA PRODUCTOS Tilo Y « w J e * Tycrfs tJd p j % g i ¿Je Y¡cv* V/ítkJow Tost Tyorfs Help

^1 1 l_ J « ix J 'çg |q |> i _ J a r m
1.
U b ic a r el cursor inm ediatam ente después del títu lo del tema (segunda Help Fio: jhola hip

página) y e le g ir In se rta r/N o ta a l P ie. Se m uestra una ventana donde IO P T IO N S 1


LCIÜ-0x80<s 0x0 0x0 Esporto! ÍM*x¡c.sno)
FiCPORT «Y#«
debe e sc rib ir el sím bolo #. Luego Aceptar. En la ventana que visua liza
escriba el nom bre que va a tener tema para que se pueda v in c u la r con
la opción (Ira . página) y luego haga c lic en cualquier parte del documento
para cerrar la ventana de N ota al Pie.
En el e je m p lo el nom bre es P R O D U C T O S (Ud. puede poner el nombre que desea)
S ave and ConipJe I
Ñ o la s al pie y ñ ola s al lin a l
Ready CAP NUM
Insertar
<• {¡iptaafpie Final de página
Por e jem plo, en la siguiente ventana se ha a dicionado un docum ento *.R T F
Nota al final Final del documento
llam ado T U T O R .R T F en un a rch ivo de ayuda llam ado
Numeración
á.utoriumeración 1, 2 , 3, .
•producto) tam bién T U T O R . H L P De esa ventana haga c lic k en el botón 5 a ve a n d
Marca personal: |* C o m p ile para grabar y c o m p ila r el a rch ivo de ayuda. Si no ha com etido
nin gú n e rror se vis u a liz a una pantalla s im ila r a la s ig u ie n te :------

Pag. 2 Sec. 1 2/5 A2Scn Ih Pág. 2 5«, 1 Z|5 A 25cm l T * TU TO R .hpi


£*e fcá» y w ^¿Klaw J«:' T¡yo*»
Help File: |TU T0 R .h lp *i a «i y iti
Haga el m ism o p ro ce d im ie n to para el resto de temas de ayuda. CreaU»0 me b n ip Ute i u H W .M p . ~
Processing C:\JJVrUTOH.rtl
2. Inm ediatam ente después de cada o p ció n de la p rim era página asígnele LCID«0x280a 0x0 0x0 ; Español (Perú)
R E P O R T -Y e s Hr.unh/iiiij keywords...
Addjni) bitmaps...
el m ism o nom bre asignado a cada tem a de N ota al Pie de Página (paso Topics
.lump«
anterior), luego asígneles el form ato de doble subrayado, y sólo al nombre Keywords

asignado a cada opción, asígneles el form ato oculto. Created C:\JJ\tUTOH.hlp. l . O l ì bylcs
Compile time: 0 minute«. 0 seconds
0 note a. II wairriflgii

Ayuda de Windows ■ ■ ■ H B T Í dTxI


Îÿ ê tW ÿn jiwft« twmata «its YeQiana t - Ui,*!
Archivo Edición Marcador Opciones Ayuda
üaP H Ä ay- ©,<*'«>- & a s :®
-rg n * . -• h X s W S * SÉ JE Contenido] , j | Imprimir | S ave and Compile I

• •••■: ~ 1-7 7 : O P C IO N E S D E L M E N U P R IN C IP A L
De esta manera se ha creado un a rch ivo de ayuda el cual se puede llam ar
PRODUCTOS
OPCIONES DEL M E N T PRINC IPAL
MOVIMIENTOS
d e sd e c u a lq u ie r p a rte de n u e s tra a p lic a c ió n u s a n d o e l a r c h iv o
REPORTES W IN H E L P .E X E . Por eje m p lo, la siguiente instru cció n ejecuta el a rchivo de
REPQRXfiSRErOKTfS UTILITARIOS ayuda llam ado T U T O R .H L P que se encuentra en C:\JJ y archivo W IN H E L P
I II I IIARK>SUTI Ll.TABIQS
______________ ] se encuentra en C :\W IN D O W S .
f .g 1
S h e ll " C :\W IIW D O W S \W IN H E L P C :\J J \T U T O R " , 1
N O TA : NOTA: Después de ejecutar el archivo de ayuda, cambie el formato de Doble
• El nombre de cada opción usted lo elige, pero sólo utilice letras y sin espacios blanco. Subrayado por Subrayado Simple a las opciones, luego vuelva a compilar y ejecutar
• Después de estos pasos, grabe el documento con formato RTF y compílelo. el archivo de ayuda para observar el nuevo comportamiento de este archivo.

342 G r u p o E d it o r ia l Megabyte" G r u p o E d it o r ia l Megabyte 343


CAPITULO IX
v iV iiD a ta
:¡ Ventana Ayyda
Abrir baso de dato:,..

1 C:\AfdNvos de pfogramaNDev5tudioWBHAGENDA.mdb
2 C VArchivos de prograrnaSDevStudioWBMI rutto
3 CAAichivos de programaVDevStudioWB\Btblio mdb Nuevo

FERNANDEZ'
FERREYROS Modificar
GRANADOS
INOÑAN
LIMO
LINARES _ZJ
.
s
Situación
<• Regular
r 1/2 Beca
filó
Pensión
2j
Eliminar
C Beca Fecha de Inscripción
C Otro 116/08/1999 -i-j
Grabar
Otros
V Traslado

Observaciones Cancelar
A m ejorado notablem ente en los
últim os tie s meses de estudio.

Salir

MANEJO
DE
BASE DE DATOS
I Ina BASE DE DATOS es un c o n ju n to de in fo rm a c ió n ú til organizada de
iiik i fo rm a específica referente a un tema o p ropósito concreto. Por ejem plo:
l.i in fo rm a c ió n que se m aneja en u n In s titu to , en una farm acia, etc. La
11111il inación almacenada en una base de datos se organizada princip alm en te
m ediante tablas.

TABLA
I la unidad básica de alm acenam iento de una base de datos y perm ite
tener la inform a ción organizada. E je m p lo:
I a base de datos In s titu to se puede o rg an izar en las tablas:
A lu m n os, Pagos, Notas, Profesores, Cursos, etc.
t Ina tabla almacena los datos en registros (fila s ) y campos (colum nas). Los
■ impos son los datos que deseamos alm acenar en una tabla. E je m p lo de
una Tabla: ALUMNOS.

N2 NOMBRE CICLO TURNO


01 Cdll idles :: ,: M
'2 Karina Rioia v __ _____ T
03 Liliana Alarcón V M
04 Jorqe Ríos IV N
05 Tito Ramírez II T

REGISTRO DE DATOS
11ii registro contiene in fo rm a c ió n que pertenece a cada entrada de la base
<lo datos. E je m p lo de un R egistro

1 03 | Liliana Alarcón 1 V 1 M ~

CAMPO DE DATOS
l iii cam po es una unidad de alm acenam iento para guardar un elem ento de
«latos sim ple en un registro. E je m p lo:

NOMBRE____________
Carlos Morales
Karina Rio-ja___
Liliana Alarcón
Jorge Ríos_____
Tito Ramírez

ESTRUCURA DE UNA TABLA


I i estructura de una tabla consiste en los campos que contiene, su tipo y
l<ilic itu d de cada uno de ellos.
I I Tipo de Campo indica qué tip o de inform a ción se va a almacenar en cada
■ impo, por ejemplo: textos, números, fechas, etc. La longitud se utilizan para
indicar cuántos caracteres se pueden ingresar com o m áxim o en cada campo.
IN ti 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 r u p o E d it o r ia l Megabyte 347
v i s u a L BASIC como debe ser.. . CAPITULO IX: Manejo de Base de Datos %
M U Y IM PO R TA N TE CREAR BASE DE DATOS USANDO VISUAL BASIC
£ n un cen tro d e estu d io s n o rm a lm en te se indican las tablas estándares De la opción A d d -In s (C om plem entos) de la Barra de M enú, e lija Visual
o b á sic a s q u e d e b e n ir en una b a se de d a to s p o rq u e la b a se d e d a to s Data M anager (A d m in is tra d o r V isu a l de D atos). Observará la siguiente
c a s i sie m p re va ría n d e u na in stitu ció n a otra. pantalla:

Si U d., es estudiante es m u y im p orta nte que se organice solo o con sus Aiehivo i Ventana Ayuda

com pañeros de estudios para v is ita r a empresas o entrevistar a diferentes S p i B j [ifjg lllJ -I ~

profesionales para saber exactamente la in fo rm a c ió n que m anejan y así


diseñar correctam ente las bases de datos y tablas.

Por ejem plo:

Para saber la in fo rm a ció n que maneja un colegio se debe hacer una entrevista
al d irector.

Para saber la in fo rm a c ió n que m aneja una d is trib u id o ra u o tra empresa se


debe hacer una entrevista a su a dm in istra d o r o persona responsable.

Para saber los campos que se deben in c lu ir en una tabla pacientes es m e jo r


hacer una entrevistas a una enferm era o m édico.
Para saber los cam pos que se deben in c lu ir en una tabla m edicam entos es
De la opción F IL E (A rc h iv o ) de la pantalla anterior e lija N E W (Nueva),
m e jo r hacer una entrevista a un Q u ím ic o Farm acéutico, etc.
luego M IC R O S O F T A C C E S S y al fin a l V E R S IO N 7.0 B M D .
En las entrevistas sólo se debe in ve stig a r los campos porque el tip o de cada
V e n ta n a Ayyda
cam po y su lo n g itu d lo debe hacer U d., de acuerdo a su experiencia y a los
tip os de campos que conoce. ► I M 'c ío s o N A ce «® « * I M D B V e rs ió n ¿¡-O...
M D B V e is ió rt 2 0... |
E o x P ío ►*
P a ra d o x ►
im p a c io d e trab ajo , .
f- rrQíes . QDBC

“ E L EX ITO D E L SISTEMA QUE DESARROLLES DEPENDE C o m p a c ta r M D B .


A r c h iv o s d * te x to

D E L DISEÑO CORRECTO D E LA BASE D E DATOS ” F kíparar H D D ..

IC .S A r c h iv o s d & p io g ra m a S D e v S tu d io W B SAG E N D A. h id b
j j C. Sài c h iv o s d e proç» amaSD é v S tú dióS V B MI. m d b
3 C A A ic h iv o s d e p to g ia m ^ S D e v S tu d í o S V B ih h o m db

Jjalir
C R E A C IÓ N D E U N A B A S E D E D A TO S

V is u a l Basic puede m anejar base de datos de diferentes fo rm a tos com o


F o xp ro , E xce l, etc. Si desea crear base de datos del m ism o fo rm a to de
V is u a l Basic lo puede hacer usando el m ism o V isu al Basic o el Access U s to U s u a rio : ad m ln

porque tienen el m ism o fo rm a to ( * .M D B ) :


Le pedirá el nom bre de la base de datos que desea crear. Escriba el nombre
de la base de datos a crear y luego haga c lic k en G U A R D A R .

ápH pl> 348 G r u p o E d it o r ia l Megabyte f i l i l i l i l i l í * G r u p o E d it o r ia l Megabyte 349


Ä H
% VISUAL BASIC como debe ser.. .

Después de ingresar el nom bre de la base de datos que desea crear se


visua liza la pantalla siguiente, (en el e je m p lo la Base de datos de llam a
A genda).

A rc h iv o U tilid ad V e n ta n a Ayyda

<3*1 1 1
MU
Borrar J ________g u a rd a r________I

Por cada cam po d e fin id o haga c lic k en el botó n O k (A ce pta r) y al fin a li­
zar liaga c lic k en el botón Cióse (C errar) para cerrar la ventana. Puede
c o n fig u ra r a cada cam po para que V is u a l Basic p erm ita o no aceptar
jü campos con lo n g itu d cero, es d e c ir que se ingresen valores o no en el
_______ campo al a dicion ar registros.

*» * "i* \ M U Y IM P O R T A N T E
D espués de h a c er c lic k en el botón C ióse d eb e tam bién de h a c e r click
' n el botón B U IL D T H E T A B L E (G e n e ra r la Tabla) p a ra que la tabla
t/uede c o n stru id a .
U suario: admin

I Ina vez construida la tabla, haga c lic k con el b otón derecho en el nom bre
ilc la labia construida y e lija la o p c ió n O P E N (A b rir ) para ingresar o dar
En la ventana Properties, haga c lic k con el botón derecho y e lija la opción
m .m tenim iento a los registros. La pan talla que vis u a liz a depende de los bo
N e w Table (nueva tabla), se vis u a liz a la p antalla:
iones de la barra Estándar (D ebajo del M en ú ) que tenga activados.
Esliuctura de la tabla
fjo m b re d e la ta b la :
li ¡ " i , ñ¡j ' r ’;V - I I I er. Botón abre la tabla com o R ecordset tip o Tabla.
y s ta d e cam pos: Nom bre: I I 2do. Botón abre la tabla com o R ecordset tip o Dynaset.
Tipo: r . I I 3er. Botón abre la tabla com o R ecordset tip o Snapshot.
Tam año: r
O rden: r OH, 11' IX) RECORDSET DE TIPO HOJADE REPUESTADINAMICA
1 P erm itir lo n g itu d cero I ii objeto Recordset de tip o hoja de respuestas din ám ica es una variedad
Posición:
I N ecesario 11> i ib jeto Recordset que puede u tiliza rse para m an ip u la r datos de una o más
T e x to d e valid a ció n : 1 i ililas subyacentes. E l objeto consiste en un co njun to d in ám ico de registros
Regla d e va lid a ció n : 1 iiiic puede contener campos 7de una o más tablas o consultas de una base
A g re g a r cam po | Eljminar cam po 1 Valor p re d e te rm in a d o : I di' datos y que puede ser actualizable.
< m i l lO R E C O R D S E T D E T IP O D E R E S P U E S TA IN S T A N T A N E A
L ista d e índices:
I ii i ibjeto Recordset de tip o instantánea es un co njun to estático de registros
•|in* puede u tiliz a r para e xam inar datos de una o más tablas subyacentes.
r
Cam pos: |
I ii objeto Recordset de tip o instantánea puede contener campos de una o
A g re g a r índice
m i. labias de una base de datos, pero no puede actualizarse.
C e rra r < M tJ K T O R E C O R D S E T T IP O T A B L A
l ii objeto Recordset de tip o tabla es una representación en el có digo de una
i ilila base que puede u tiliza rse para agregar, m o d ific a r o e lim in a r registros
Escriba el nom bre de la tabla (Table Ñ am e) que desea crear dentro de la
<l< una labia. En la m em oria sólo se carga el registro actual en cada momento.
base de datos y para empezar a ingresar los campos haga c lic k en A d d
I’.u.i determ inar el orden de los registros del objeto Recordset se u tiliz a un
F ield (A g re g a r C am po), se visua liza la p an talla siguiente: im lii c predefinido.

350 G r u p o E d it o r ia l Megabyte ,|l¡§¡í>f|| Grupo Editorial Megabyte 351


yam Él> VISUAL BASIC como debe ser. fîîlïï CAPÍTULO IX: Manejo de Base de Datos
Por e je m p lo al a ctiva r (haciendo I m Tabla AMIGOS _ |0|x | I ILTRAR (FILTER)
C lic k ) el 1er. botón (Recordset tipo Agregar | Editar | Eliminar | Buscar J Filtrar Cerrar
Permite filtr a r (seleccionar) registros de la tabla.
Tabla) y el 5to., botón se muestra índice: | “ 3 CERRAR (CLOSE)
la siguiente pantalla. Nombre del campo: Valor (F4=Zoom)
Permite cerrar la ventana.
NOMBRE: |
DIRECCION: D ynasetiA M IG O S rrñ n n
A l activar el 2do. bo­
DISTRITO: ! Agregar Actualizar Eliminar
ló n (R e c o rd s e t tip o Campo I Renovar [[.C e rra r
TELEFONO: Nombre del campo: Valor:
D y n a s e t) y el 4 to .,
EDAD: 1 NOMBRE: |
k 1 < |CBOF)/'l ' > 1 >i
botón se m uestra la
siguiente pantalla: DIRECCION: |

AGREGAR (ADD) DISTRITO: |


Perm ite ingresar registros a la tabla. Debe hacer c lic k en esta o pción por TELEFONO: |
cada reg istro que desea adicionar. EDAD: I
A l ingresar un registro se visualizan dos opciones U P D A T E , que perm ite
grabar el reg istro y C A N C E L , que p erm ite cancelar la adición del nuevo
registro. í i< N lm TTïïl
EDITAR (EDIT)
Perm ite m o d ific a r los datos de un registro. i'-l botón A g reg ar p erm ite ingresar un nuevo reg istro y el botón A ctua liza r,
ELIM INAR (DELETE) graba el nuevo registro. Cada vez que hace c lic k en el botón A gregar, éste
P e rm ite e lim in a r el re g is tro actual. Se v is u a liz a el m ensaje: D E L E T E se convierte en C ancelar
C U R R E N T R E C O R D ?. Responda S I o N O .
BUSCAR (SEEK) A l activar el 2do. botón (Recordset tip o D ynaset) y el 6 to „ botón se m ues­
Perm ite buscar un determ inado registro tra la siguiente pantalla:
KñS Parám etros do S e e k
m ediante un cam po p o r el cual la tabla Operador :
HÜ! DynaseLAMIGO S

debe estar indexada. Se visua liza la pan­ <ï- [..] r~ >- r- <~ > r- < Actualizar Ordenar filtrar Ceirai
NOMBRE I DIRECCION [DISTRITO
talla: *¿alor :
r _
ITELEFONO EDAD

*
Aceptar i Cancelar ;
1

Para ind e xa r una tabla, haga c lic k con el botó n derecho en el nom bre de la L o s b o to n e s
tabla y e lija la o pción D esing (D iseñar). De esta manera U d puede m o d ifi­ perm iten G ra­
car la estructura de la tabla e indexarla. bar, O rd e n a r,
Para indexar haga c lic k en el b otón ADD INDEX (A g re g a r In dice ), se Seleccionar re­
| H H i Haga clic con el botón secundario del mouse para ver las propiedades del control Dat.H E
visualiza la pantalla siguiente, escriba el nom bre del indexado y seleccione el gistros y cerrar
cam po o campos que desea usar en el indexado. la ventana.

IC» Primai io
BARRA DE DESPLAZAMIENTO
O-arhpoS India-sido»' $7 Ú n ic o

r*' I o r im i a i n u lo s h R |i/i VW i
r.. iT ït T í h n i
lis ta barra p e rm ite d esp la za rn o s p o r los re g is tro s a d ic io n a d o s para
visualizarlos o editarlos. Tam bién in d ic a el registro actual y la cantidad de
registros que tenemos.

G r u p o E d it o r ia l Megabyte
VISUAL BASIC como debe ser. > CAPITULO IX: Manejo de Base de Datos m i
CREARBASE DE DATOS USANDO MICROSOFTACCESS Luego se visua liza la siguiente pantalla:

Haga c lic k en el botón IN IC IO del W in d o w s y luego en Programas, luego


Archivo nueva base de datos
busque y haga c lic k el a rch ivo M ic ro s o ft Access que norm alm ente se en­
cuentra en la carpeta M ic ro s o ft O ffic e . Guardar en: | _J Mis documentos

Vjadrrun.rridb yCREDIT0S.mdb Crear


£ 4 Microsoft Access yalumnos.mdb DB5ISTEDU.mdb
yBASEBIBLIO.nidb ^edwin.mdb Cancelar

A l ingresar al Access se visua liza la siguiente ventana: yBDALUMNOS.mdb INFORME.mdb


ybdentdmdb ywjPP.mdb
Microsoft A ccess 06CH.IBROS.mdb yproductos.mdb
Q BIBU0TECA.mdb yTAREA.mdb
C rear u na nue va base de d a to s usando ^ ¡control de créditos y cobranzas educativas.mdb Ç Ì ventas.mdb

Base de d a to s e n blanco

Nombre de archivo: ▼]
A siste n te p a ra b ases de d a to s
Guardar como tpo: |Bases de datos de Microsoft Access (*.mdb) j* ]

¿ b rir una base d e d a to s ex iste n te !

En esta pantalla seleccione la carpeta donde desea crear la nueva base de


Más a rc h iv o s ...
datos (op cio n al). L a carpeta predeterm inada es M I S D O C U M E N T O S y
C :\A R C H IV ~ l\D E V 5T U ~ l\V B \5Y S T E M \C o m pra y Venta escriba el nom bre de la nueva base de datos luego haga c lic k en el botón
CREDITOS
C A R C H IV -1\DEVSTU~ 1\VB\GOHAN crear. Se visua liza rá la siguiente ventana: (en el eje m p lo la base de datos se
llam a A G E N D A ).
A ce p ta r Cancelar ÓAGENDA : Base de datos

ES TA V E N T A N A T IE N E 3 O P C IO N E S :
1. B A S E D E D A T O S E N B L A N C O .
P E R M IT E C R E A R U N A N U E V A B A S E D E D A T O S .
2 . A S IS T E N T E P A R A B A S E D E D A T O S .
P E R M IT E C R E A R U N A N U E V A B A S E D E D A T O S U S A N D O U N
A S IS T E N T E ( A Y U D A )
3 . A B R IR B A S E D E D A T O S E X IS T E N T E .
P E R M IT E A B R IR O V I S U A L IZ A R U N A B A S E D E D A T O S Y A
CREADA.

Entonces haga c lic k en el p rim e r b o tó n de o pción para crear una nueva base
de datos y luego haga c lic k en el b otón aceptar.
Esta pantalla tiene 6 hojas o fichas. Haga c lic k en la hoja T A B L A S y luego
NO TA: en el botón N U E V O para crear cada tabla de la base de datos.
si se e n cu en tra en el m en ú p r in c ip a l d e l A c c e ss h a g a click en la o p ­
ció n a rch ivo y lu e g o en la o p ció n n u e v a b a se de datos.

354 Grupo Editorial Megabvte G r u p o E d it o r ia l Megabyte 355


VISUAL BASIC como debe ser. CAPÍTULO IX: Manejo de Base de Datos
Cuando term ine de e scrib ir toda la estructura de la tabla haga un c lic k en hi
Se visua liza la siguiente ventana.
fig u ra del disco o pulse C T R L + G para grabar la estructura.
Nueva tabla Una vez ingresado el nom bre de la tabla se v is u a liza la siguiente ventana:

Vista Diseño
Asistente para tablas
Importar tabla M icro so ft A ccess
[Vincular tabla CE3
Crear una nueva tabla en vista
Hoja de datos.
No hay ninguna cla ve principa l definida.

A unque no es necesaria una clave principal, es recom endable que


exista. Una tabla debe tener una clave principal para que pueda
Aceptar Cancelar definir una relación entre esta tabla y otras tablas de la base de datos.
¿Desea crear una clave principal?

D e esta ventana e lija V IS T A D E D IS E Ñ O y haga c lic k en e l b o tó n


Sí No Cancelar
A C E P T A R para em pezar a e s c rib ir la estructura de la tabla.

Tabla! : Tabla
Tablai : Tabla i- ~ lx
tos j Descripción |j
Nombre del campo I Tipo de datos
Nombre del campo I Tipo de datos 1Descripción]E

Si U d., desea haga c lic k en el botón S I para que la tabla tenga un campo
clave. Estos campos se emplean más adelante.
U na vez que grabó la tabla cierre la ventana para regresar a la ventana
in ic ia l donde debe hacer c lic k en el botón A B R IR para ingresar los registros
o en el botón D IS E Ñ O para m o d ific a r la estructura de la tabla.
jd
Propiedades del campo
Propiedades del campo
MUY BIEN
General J Búsqueda |
General j Búsqueda |
Tamaño del campo U na vez in g re sa d o lo s registros, g rá b e lo s y cierre el A ccess. D e esta
Formato
Máscara de entrada m a n era la base de da to s ya está lista p a ra m a n eja rla con Visual Basic.
Título
Valor predeterminado
Regla de validación
U na vez creada la ba se de datos usando Visual B a sic o M icrosoft A ccess
Texto de validación c o n s u s r e s p e c tiv a s ta b la s Ud. p u e d e m a n e ja r la in fo r m a c ió n en
Requerido No
c u a lq u ie r fo r m u la r io .
Permitir longitud cero No
Indexado No
C uando necesite c a m b ia r la estructura de la tabla se recom ienda utilizar
el M ic r o s o ft A c c e s s (o p c ió n D is e ñ o ), p o r q u e p e r m ite h a c e r e sta s
En la colum na N O M B R E D E L C A M P O escriba el nom bre de cada campo m o d ific a c io n e s un a m a n e ra m á s fá c il. A n te s d e e llo d e b e c e r r a r la
a p lic a c ió n d o n d e este u tiliza n d o d ic h a tabla.
que desea crear dentro de la tabla.
En la colum na T IP O D E D A T O S ind iqu e el tipo, tamaño y otras característica
Las tablas creadas en Visual B asic y M icro so ft A ccess con com patibles,
de cada campo.
E n la co lum na D E S C R I P C I O N puede e s c rib ir en fo rm a opcional un texto p o r lo tanto si la creó en A ccess la p u e d e lla m a r desd e Visual B asic y
que p erm ita dar una e xp lica ció n acerca de cada campo. v ic e v e r sa .

f l l f l j f t ^ G r u p o E d it o r ia l Megabyte 357
ílÉllÉifl» VISUAL BASIC como debe s er... CAPÍTULO IX: Manejo de Base de Datos
E X C L U S IV E
CONTROL DATA: Perm ite in d ic a r si la base de datos puede trabajar en un sistema m ultiusu a rio
(Red). E l va lo r False in d ica que el sistema es de tip o m u ltiu s u a rio , es decir
los registros pueden ser accedidos p o r varios usuarios al m ism o tie m p o y el
E l control Data perm ite manejar los registros de una o más tablas en un fo rm u ­ v a lo r T rue in d ic a que es de tip o personal.
lario. Ud. puede acceder a los registros para actualizarlos, im p rim irlo s, etc. KEAD O N LY
E l c o n tro l Data nos ayuda a crear de una fo rm a m uy sencilla aplicaciones
Permite indicar si la base de datos es de sólo lectura. Si es de sólo lectura las
para poder acceder y a dm in istrar bases de datos sin e s c rib ir casi ninguna
m odificaciones que se le haga a un registro no son reconocidas o grabadas.
in stru cció n . Cuando se m anejan bases de datos se u tiliz a siem pre el objeto
KECORDSOURCE
R ecordset.
Perm ite in d ic a r el n om bre de la tabla que se desea manejar.
V IS IB L E
OBJETO RECORDSET
U n objeto Recordset representa registros de una tabla. Están form ados por Para in d ic a r si el c o n tro l se debe visualizar.
registros (fila s ) y campos (colum nas).
APLICACIÓN DESARROLLADA N° 48
E xiste n tres tip o s de o b je to s R eco rd set: Siguiendo los pasos m encionados al in ic io de este capítulo, crear una base
M a rca d o r no d e fin id o .O b je to Recordset de tip o hoja de repuesta D iná m ica de datos llam ada A G E N D A que tenga una tabla llam ada A M IG O S y a di­
O b je to R ecordset de tip o de respuesta Instantánea cione algunos registros.
O b je to Recordset tip o Tabla I .a tabla debe tener la siguiente estructura:

P R IN C IP A L E S P R O P IE D A D E S D E L C O N T R O L D A T A : CAMPO T IP O T/
N om bre Texto 25
ÑAME D irección Texto 20
Perm ite asignarle un nom bre. Por defecto el nom bre es D a ta l, Data2, Data3 D istrito Texto 20
etc. Según el núm ero de controles que se d ib u je n en el fo rm u la rio . Teléfono Texto 10
B O F A C T IO N Fecnac F echa/H ora
P erm ite in d ic a r la acción que se debe rea liza r cuando se encuentre al in ic io Sexo Texto 1
de la tabla. L a acción puede ser: Peso Sencillo
0 M O V E F IR S T : se ubica en el p rim e r registro.
1 BOF : se ubica antes del p rim e r registro.
I I lo rm u la rio debe fu n c io n a r de la siguiente manera:
C A P T IO N
Para in d ic a r el texto a visu a liza r en el c o n tro l Data. ■ Su A C C E S O A U N A B A S E D E D A T O S

CONNECT
Nombre ¡TITO R A M IR E Z
Para in d ic a r el tip o de base de datos que se desea manejar. Por defecto es
Dirección
A rrF s s ¡EL DO RADO 456
Distrito |j.L.O . —
DATABASENAM E
T eléfono
Para in d ic a r el nom bre de la base de datos a manejar. (236975
Fecha de Nac.
EN ABLED 107/1V I 970

Para in d ic a r si el co n tro l Data debe estar a ctivo o no. Sexo |m

E O F A C T IO N Peso |S7
P erm ite in d ic a r la acción que se debe rea liza r cuando se encuentre al fin a l
W ) D a ta i ►1 1 SALIR 1
de la tabla. L a acción puede ser:
0 M O VE LAST : se ubica después del ú ltim o registro.
1 EOF : se ubica en el ú ltim o registro. I .os botones del control Data permiten ir al registro Primero, Anterior, Siguiente
2 AD D NEW : adiciona un nuevo registro. y Ú ltim o.

G r u p o E d it o r ia l Megabyte 359
VISUAL BASIC como debe ser.. . CAPÍTULO IX: Manejo de Base de Datos
DESARROLLO NOI A:
El fo rm u la rio debe tener 07 Etiquetas, 07 Cajas de Texto, un c o n tro l Data y < nando crea una base de datos en V isu a l Basic, ésta se graba en form a
un botón de Comandos. I»'(‘determ ina la carpeta:
C:\Archivos de Programa\DevStudio\VB
Si* Form i U n ix ] » uando crea una base de datos en Access, ésta se graba en fo rm a prede-
i. i m ina la carpeta: C:\Mis Documentos. Si no recuerda en qué carpeta se
L a b e ll |T e *t1
i abó la base de datos, búsquela haciendo c lic k en: Botón Inicio, Buscar ;
Label2 ¡Text2
1/ chivos o carpetas.
L abel3 |T e xt3

LabeW |T e xt4 PROPIEDAD RECORDSOURCE, donde se selecciona el nom bre de la


Label5 |T e xt5
labia que contiene los registros. En nuestro ejem plo la tabla se llam a Am igos.
LabelG |Tex(G RecordSource Jd
Label7 | Tex(7
I I nom bre de la tabla debe s a lir en fo rm a autom ática cuando haga c lic k en
la Hecha hacia debajo de esta propiedad.
| H | ^ | Pa>a1 ► | ►! | C om m andl |

MUY IMPORTANTE
lro . A l c o n tro l D ata se le debe asignar 02 propiedades: Si no se muestra el nom bre de la tabla o tablas, s ig n ific a que no grabó la
labia dentro de la base de datos o no a asignado p rim e ro la propiedad
PROPIEDAD DATABASENAME, donde se selecciona el nom bre de
I )A IA B A S E N A M E . En este ú ltim o caso se muestra el siguiente mensaje
la base de datos con la que desea trabajar. En la aplicación a desarrollar la
de error:
base de datos se lla m a AGENDA. Microsoft Visual Basic

P ara llevar a c a b o e sta o p e ra ció n , d eb e rellenar las p ro piedades D atab ase N a rn e y


A O C o n n e ct del co n tro l D ata.

Haga c lic k en los tres puntos que se m uestran en esta propiedad para a c ti­ A c e p ta r A yud a
va r la ventana y seleccionar la base de datos.
L a ventana que se visua liza es la siguiente:
2do. A cada caja de texto se le debe asignar 02 propiedades:
B u s c a re n : | _> l V b ~ T ] fin | gj< -| j i 3 : f f | f | DATASOURCE, donde se selecciona el nom bre del c o n tro l Data que se
— J Clisvr ;_ J Repostry _ _ | vbonline está usando. En fo rm a predeterm inada es D A T A 1 .
— I G raphics
— I H elp
___ I samples
— I Setup
__J W in a p i
_J W izards
DATAFIELD, donde se selecciona el cam po que desea v is u a liz a r en
— I N u e v a ca rp e ta _ J setupkit * ^ 1 AG EN D A cada caja de texto.
1O dbc | T em piate Biblio
— I report £ □ T sql N w ind
CONTROL DATASOURCE DATAFIELD
T e x tl D a ta i N om bre
Nom bre de archivo: | | Abrir
Text2 D a ta i D irección
A rchivos de tipo: fBases de datos (“ m db) ]▼] Cancelar j Text3 D a ta i D istrito
A yuda j Text4 D a ta i Teléfono
Text5 D a ta i Fecnac
Es recom endable seleccionar el nom bre de la base de datos, porque sí Ud. Textó D a ta i Sexo
lo escribe debe in d ic a r tam bién con m ucho cuidado la ruta exacta donde Text7 D a ta i Peso
está ubicada.
I 11 botón S a lir debe tener la in s tru cció n E N D .

G ru po E d it o r ia l Megabyte 361
é ü ü ^ VISUAL BASIC como debe s e r ... , '■v a i K CAPÍTULO IX: Manejo de Base de Datos % m
U n io n P R IM E R O : Botón Ú LTIM O :
A P L IC A C IO N D E SA R R O L L A D A N° 49
I'riv a le S u b C o m m a n d 4 _ C lic k () Private Sub Command3_Click()
D esa rro lla r la a plicación a nterior usando botones de comandos. I )ata I . R eco rd set. M o v e F irst Data 1.Recordset.Mo veLast
( o m m a n d l. E n a b le d = True Command I.Enabled = False
Reg N» 1003 ( om m and3. E n a b le d = True Command3. Enabled = False
N o m b re | L IL IA N A A L A R C O N
( <nnmand2. E n a b le d = F alse Command2. Enabled = True
C o m m a n d 4 .E n a b le d = F alse
D ir e c c ió n jM A R IA IZ A G A
Command4. Enabled = True
D is tr ito JcH I C L A V O NR = /
l.a b elS = F orm at$(N R , ”0000") NR = Datal. Recordset. RecordCount
T e lé fo n o |2 2 7 1 91

F echa de N ac. J 20/ I 0 /1 9 7 0 I nd Sub Label8 = Format$(NR, “0000")


S exo Jp End Sub
P eso f5 3 ¡

Ir a l R e g i s t r o : Instrucciones del botón SIGUIENTE:


S ig u ie n te f ¿ in te r io r | U ltim o | J g r im e r o | £ a lir
P riva te Su b C o m m a n d 1 _ C lic k ()
D a ta l .R eco rd set. M o v e N e x t
1.- DIBUJAR LOS CONTROLES. I f D ata 1. R ecordset. E O F Then
D ib u je los controles com o se m uestran en la aplicación. M sg B o x “U ltim o re g istro ”, 16, “L o s ie n to ”
C o m m a n d l.E n a b le d = F alse
2.- ASIGNAR LAS PROPIEDADES. C om m and^. E n a b le d = False
D a ta l.R e c o rd se t. M o veP revio u s
Las cajas de te xto y el c o n tro l Data deben tener las m ism as propiedades de
la a plicación anterior.
Else
C o m m a n d l .E n a b le d = True
Lab el7 debe tener en su propiedad C ap tion : Reg. N°. C o m m a n d s.E n a b le d = True
LabelS debe tener en su propiedad C ap tion : 0001. C om m and2. E n a b le d — True
E l c o n tro l data debe tener en su propiedad v is ib le el v a lo r False para que no C o m m a n d 4 .E n a b led = True
se visualice. N R = Val(Label8) + 1
L abel8 = F orm at$(N R , “0 0 0 0 ”)
NOTA: End I f
C u a n d o e l u su a rio v isu a liza lo s reg istro s en las c a ja s d e te xto p u e d e l.n d S u b
ta m b ié n m o d ific a r lo s lo s d a to s , p a r a e v ita rlo , a s ig n e a la s c a ja s de
texto e l v a lo r T R U E en su p r o p ie d a d L O C K E D . Instrucciones del botón ANTERIOR:
P riva te S u b C o m m a n d 2 _ C lic k ()
3.- PROGRAM ACIÓN DE LOS CONTROLES. D a ta l. R e c o rd se t. M o v e P re v io u s
Se u tiliza n los siguientes métodos: I f D a ta l.R e c o r d s e t.B O F Then
M O V E F IR S T : M uestra el p rim e r registros. M sg B o x “P rim e r re g istro ”, 16, “L o s ie n to ”
MOVENEXT : M uestra el siguiente registro. C o m m a n d l.E n a b le d - F alse
M O VELAST : M uestra el ú ltim o registro. C om m and4. E n a b le d = F alse
M O V E P R E V IO U S : M uestra el reg istro anterior. D ata 1. R ecordset. M o v eN e xt
Y las siguientes propiedades: E lse
C o m m a n d l .E n a b led = True
EO F : In d ica si estamos al fin a l de la tabla.
C om m and3. E n a b le d = True
BOF : In d ica si estamos al in ic io de la tabla.
N R = Val(Label8) - 1
R E C O R D C O U N T : Cuenta la cantidad de registros.
L a b el8 = F o rm a t$ (N R , “0 0 0 0 ”)
L a sintaxis de cada uno es:
End If
C ontrol_D ata.R ecordset.M étodo E nd Sub
E jem plo, para ir al ú ltim o registro de la tabla que está ligada al control D A T A 1
se escribe: D a ta l.R e c o r d s e t.M o v e la s t El botón S A L I R d eb e te n e r la in stru cció n E N D .

362 - G r u p o E d it o r ia l M egabyte^ G r u p o E d it o r ia l Megabyte 363


é 3 ñ k > VISUAL BASIC como debe ser... CAPITULO IX: Manejo de Base de Datos
A PL IC A C IÓ N D E SA R R O L L A D A N° 50
CONTROL DBLIST
- ta lx i

Doto* Personales :
E l c o n tro l D b lis t perm ite m ostrar el contenido de un cam po de los registros N o m b ro | M A N U E L C A R B A JA L
de una tabla. En la lista de componentes, este co n tro l se llam a: D ire c c ió n |S A L A V E R R Y 9 87
D is J r ito
M ic ro s o ft Data B ound L is t C on trol. T e lé f o n o
|C H I C L A V O
12 0 9 8 7 5
Fecha de N ac 11 8 / 0 6 / 1 9 6 0

PRINCIPALES PROPIEDADES DEL CONTROL DBLIST: Sexo ÍM


Poso Í70
| M i •« | P - a ta l
LISTFIELD
Perm ite in d ica r el cam po cuyo contenido se debe v isu a liza r en el control.
P rim ero se debe in d ic a r en la propiedad R ow Source el nom bre del co n tro l ASIGNAR LAS PROPIEDADES.
D ata que está lig a d o la tabla donde se encuentra el campo. I a caja de texto N ° 1 (donde se ingresa el nom bre a consultar) NO debe
MATCHENTRY Icner ninguna propiedad. Las cajas de texto desde la N°2 hasta la N °8 y el
Selecciona la fo rm a de acceder a los elementos la lista. co n tro l Data deben tener las mismas propiedades de la a plicación anterior.
0. D B L B A S IC M A T C H IN G : I •'.! control D b lis t 1 debe tener en su propiedad R O W S O U R C E el v a lo r D a ta l,
Selecciona a un elem ento p o r el p rim e r carácter que se d ig iten . i*n su propiedad L IS T F IE L D debe seleccionar el cam po N om bre y en la
1. D B L E X T E N D E D M A T C H IN G : propiedad M A T C H E N T R Y el va lo r N°1 -D B L E X T E N D E D M A T H IN G para
Selecciona a un elem ento p o r los p rim eros caracteres que se digiten. poder seleccionar un reg istro d ig ita n d o sus prim eros caracteres.
ROW SOURCE
NOTA
Perm ite in d ica r el nom bre del c o n tro l data que está liga do a la tabla con la
que queremos trabajar con el co n tro l D b lis t. Esta propiedad se debe asignar Para que los nombres se visualicen ordenados cree un índice para el campo nombre.
antes de L IS T F IE L D .
MÉTODOS UTILIZADOS:
CONSULTA DE REGISTROS FINDFIRST:
Husca el p rim e r reg istro de la tabla que cum pla la co nd ició n. Su sintaxis es:
E xisten dos form as básicas de co nsu ltar registros de una tabla. < o n tr o l D ata. R e co rd se t. F in d fir s t C o n d ició n .
1. Ingresando el campo clave del registro que desea consultar. Por ejemplo Se recom ienda que la co n d ic ió n se alm acena en una variable.
el código, nombre o cualquier dato que puede identificar a un solo registro Por e jem plo se tiene una tabla con el cam po N O M C L I y se desea buscar el
dentro de la tabla. u-gistro cuyo nom bre es: J U L IO D E L G A D O .
2. Seleccionando el campo del registro a consultar desde un control D B lis t I as instrucciones seráp:
o desde un co n tro l D B com bo. C = " N O M C L I = ‘J U L IO D E L G A D O ’ "
D a ta l.R ecordset.F in d firs t C
M U Y IM PO R TA N TE Si el nom bre se encuentra p o r e je m p lo en T e x tl, las instrucciones serán:
Cuando en la estructura de una tabla, Ud., ha cre ado un
C = " N O M C L I = ‘ " + T e x tl +
cam po cuyo nombre está com puesto con espacios en D a ta l .R ecordset.F indfirst C
blanco o caracteres especiale s com o por ejem plo el
guión(-), el signo número (s), etc., entonces, cada vez que
; se refiera a ellos dentro de un program a, los debe colocar NOTA:
dentro de corchetes ([ ]). Por ejem plo: t os apostrofes sólo se utilizan para buscar campos de tipo Texto y entre ellas y las
[F E C H A DE INGRESO] i lunillas NO debe dejar espacios en blanco.
[A P E LLID O -P A T E R N O ]
[e RECIBO]
Si el registro es encontrado, sus datos son mostrados automáticamente en las cajas
¡le texto o etiquetas que se les a asignado la propiedad Datasource y Datafield.

G r u p o E d it o r ia l Megabyte 365
|fllllll> VISUAL BASIC como debe se r... CAPÍTULO IX: M anejo de Base de Datos
NO M ATCH : MANTENIMIENTO DE REGISTROS
Se u tiliz a para preguntar si un reg istro fue encontrado. D evuelve el va lo r
Falso si el registro fue encontrado y Verdadero en caso contrario. I I m antenim iento de registros consiste en re a liz a r program as para: A d ic io ­
S intaxis para preguntar si el registro fue encontrado: nar, M o d ific a r y E lim in a r registros.
I f N o t C o n tro l D ata. R e c o rd se t.N o m a tc h then Métodos U tilizados:
S intaxis para preguntar si el regist. no fue encontrado: A D D N E W : Perm ite a d icio n a r un re g istro a una tabla.
I f C o n tro l D a ta .R e c o rd se t.N o m a tc h then I I ) IT : Perm ite m o d ific a r los datos de un re g istro de una tabla.
Ejemplo: M L L E T E : Perm ite e lim in a r el re g istro actual de una tabla.
D im R A s String < A N C E L U P D A T E : Perm ite cancelar las m o d ifica cio n e s realizadas a un
R = “N O M C L I = ‘ “ + T e x tl + ic g is tro o la ejecución de A D D N E W m ientras el reg istro no este grabado.
D a ta 1.R eco rd set.F in d F irst R
I f D a ta l.R eco rd set.N o M a tch Then I a sintaxis de estos m étodos es:
M sg B o x "E L N O M B R E N O E X IS T E " ,1 6 ,”Lo s ie n to "
E n d if Control_Data.Recordset.Nombre_Método
P R O G R A M A C IÓ N D E L O S C O N T R O L E S
A PL IC A C IÓ N D E S A R R O L L A D A N° 51
In s tru c c io n e s d e l b o tó n O K .
P riv a te S u b C o m m a n d 1 _ C lic k () MANTENIMIENTO DE RESGISTROS MC
D im R A s String
D a to s P e rs o n a le s :
I f Trim ( T e x tl) = Then
MsgBox “DEBEINGRESARELNO M BREA CONSULTAR”,48, "LOSIENTO" A m ig o s Nombre IDANIEL ALARCON
T e x tl = CARINA RIOJA j Dirección |WIRACHORA315
CARLOS M ORALE
T extl. S e t F o cu s íDANIEL ALARCO Distrito ILA VICTORIA
E lse IM A N U EL C A R B A JJ T eléfono I232689 .......
R = “N O M B R E = *“ + T extl + Fecha de Nac. 115/10/1966
D a ta l .R eco rd set. F in d F irst R Sexo
I f D a ta l .R e c o rd se t.N o M a tc h T h en
Peso [S8 Cancelar
M sg B o x “E L N O M B R E IN G R E S A D O N O E X IS T E " ,16, "Ingrese el
nom bre exacto a co n su lta r ”
O p c io n e s d e M a n te n im ie n to
E lse
Adicionar Modificar Cerrar
T e x tl = “ ”
T e x tl. S e tF o c u s
End If M M Datai ► H
End If
E nd Sub
l 'ste p ro g ra m a p e r m ite d a r m a n te n im ie n to a lo s re g is tro s de una
Instrucciones del D b lis tl para que al e le g ir un registro se visualicen todos lab ia, co m o p o r e je m p lo , c o n s u lta rlo s , m o d ific a r sus datos, e lim in a rlo s
sus datos. y a d ic io n a r n u e v o s re g is tro s .
P riv a te S u b D B L is tl _ C lic k ()
D im R A s S tring M U Y IM PO R TA N TE
R = “N O M B R E = + D B L is tl.Text +
D a ta I . R ecordset. F in d F irst R
i slos son los program as básicos para m anejar registros, por lo tanto es m uy
E nd Sub im portante que U d., los p ractique varias veces con diferentes tablas.
E l botón S A L IR debe tener la in stru cció n E N D .

m G ru p o E d ito r ia l Megabyte
VISUAL BASIC como debe ser. . . CAPÍTULO IX: Manejo de Base de Datos ^
Escribir las instrucciones de los controles.
1. Dibujar los controles. C rear dos procedim ientos (A c tiv a r y D esactivar) y e s c rib ir las siguien-
¡a§„ Fo rn ii I□ I x | tes instrucciones:
............................................ F ra m e l SubACTIVAR() Sub DESACTIVARO
L a b e l2 |T e n t1 F ram el.Enabled = True F ra m el. E nabled = False
!*". Labo13 [Tr-TT Frame2. Enabled = False Frame2. E nabled = True
'
isll
- L a b e l4 |T e x t3 D BListl. Enabled = False D B L istl .E nabled = True
L a b e l5 |T e x t4 End Sub End Sub
L a b e lG jT e x tS

L a b e l7 ffe x Í6 ’
C om m andl Botón ADICIONAR
: : : : : : : : : : : : L a b e ls jText7 C om m and2
Private Sub Command3_Click() Botón GRABAR
ACTIVAR P rivate Sub C o m m a n d l _ C lic k()
F r a m e 2 ....................... ........................ Data 1.Recordset. AddNew D ESAC TIVAR
C om m and3 I C om m and4 | C om m and5 | C om m and6 j Textl.SetFocus D a ta l.R e c o rd se t. U pdate
End Sub R em A ctualiza el D B listl
: : : : : : : : 1n | ^ ]Da>ai ► 1m| : D B L istl.L istF ie ld - ’’nom bre ”
Botón MODIFICAR E n d Sub
Private Sub Command4_Click()
ACTIVAR Botón CANCELAR
NOTA:
D atal .Recordset.Edit P rivate Su b C om m a n d 2 _ C lick()
D ib u je p rim e ro los F ra m e y en c im a los b o to n es de com andos.
Textl.SetFocus D E SA C T IV A R
End Sub
2. Asignar las propiedades. D a ta l. R e c o rd se t.C a n c e lU p d a te
E n d Sub
CONTROL DATA Instrucciones del botón ELIMINAR
CONTROL DATABASENAM E Private Sub Command5_Click()
RECORDSOURCE Dim R As Byte
Datal Agenda Amigos R=MsgBox(“Estásegurodeeláninaresteregistro”,36, “CUIDADO”)
IfR = 6 Then
CAJAS D E TE X T O D atal. Recordset. Delete
CONTROL DATASOURCE DATAFIELD D atal.Refresh
Textl Datal Nombre End I f
Text2 Datal Dirección End Sub
Text3 Datal D istrito
Telefono
CONTROL DBLIST1 Instrucciones del Form_Load
Text4 Datal
Private Sub D BListl_Click() Prívate Sub Form_Load()
Text5 Datal Fecnac
Dim C A? String Framel.Enabled - False
Text6 Datal Sexo
C= "NOMBRE= “‘+DBListl+ Datal. Visible - False
Text7 Datal Peso Datal.Recordset.FindFirst C End Sub
End Sub
D B L IS T
CONTROL ROWSOURCE LISTFIELD Instrucciones del botón SALIR
D blistl Datal Nombre Prívate Sub Command6_Click()
I f M sgBox(“Está seguro de Sari ir ”,36, ’’CERRAR”) = 6 Then End
A los botones de comandos y fram es, asígneles su propiedad C aption, com o End Sub
se muestra en la a plicación a desarrollar.

I |¡ |¡ ^ 368 G ru po E d it o r ia l M e g a b y t e <^ ^ ^
G r u p o E d it o r ia l Megabyte 369
M. % VISUAL BASIC como debe ser.. . CAPÍTULO IX: Manejo de Base de Datos
I n la siguiente ventana debe seleccionar en Origen de D atos el nombre de
A S IS T E N T E D E L V I S U A L B A S IC P A R A B A S E D E D A T O S
la tabla y en Campos Disponibles puede seleccionar los campos que desea
visualizar. También puede seleccionar una columna (Campo) por el cual quiere
Visual Basic tiene un asistente que permite desarrollar en forma automática un for­ ordenar los registros. Cada uno de los botones de esta ventana muestra un
mulario con los programas básicos para manejar y dar mantenimiento a las tablas y mensaje indicando su función con sólo llevar el puntero del M ouse hasta él.
registros de una base de datos. I.n la siguiente ventana, Visual Basic le pide seleccionar los botones que
Para ello, de la opción Complementos de la Barra de M e nú elija Asistente para ilesea tener en el formulario.
Formulario de Datos.
pe
NOTA: ,
Si no tiene la opción Asistente para Formularios de Datos, ingrese a la opcion
Administrador de Complementos y active VB Data Form Wizard.

Cuando elige la opción Asistente para Formularios de Datos, se puede visualizar £>r*jen de registros:

una ventana de introducción y cuando hace Click en Siguiente se muestra la Campesjesjcdcnaoos: ;


’ GsrírcéKcaponóles
ventana donde se elige el tipo de Base de Datos. El tipo predeterminado en V. Basic ■p BotanAgregar
FBo to n E b ró »
es Access. _íJ ; 17 ÉotónEenovar
•F Bótóntetuslíjai

nanaas ■15 BotóteCerrar

Orden* cok*iwaD«: j* ]

Ayuda I CnccSy j : <&trfe. ;| f | j g ü g l 3 l :


J ÍCÍÍ^?T3] lermna- |

dBMAó f IV
:¡;
d 'iE
¡JBfíSE 5 0
Iin la última ventana, le pide el nombre del formulario. E n forma predetermina
Fo>Pro?■<<
le asigna el nombre F R M seguido del nombre de la tabla. Para ver su
ejecución, puede hacer que este formulario se ejecute primero (Proyecto/
Propiedades del Proyecto).
El formulario que se crea en forma automática depende el tipo que eligió.
<if'fr págmjyte > | Por ejemplo, si ha elegido Un único R egistro, se visualiza:
Después de hacer click en el botón Siguiente de la ventana anterior, Visual Basic le ■¡.AMIGOS
M 3\
pide el nombre de la Base de Datos con la que desea trabajar y en la siguiente NOMBRE:

ventana le pide la forma de visualizar los registros. La primera y segunda forma se DIRECCIÓ N:'

utilizan para una sola tabla y la tercera forma para dos tablas. DISTRITO :

TELEFONO:

FÈCNÀC:

SEXO:

PESO:

A gregar j Eliminar Renovar Actualizar Cerrar

lIT fti TTmI

M U Y IM P O R T A N T E
Ud., puede mirar las instrucciones de cada uno de los botones de comandos
del formulario creado.

|||||||> 370 G ru po E d it o r ia l Megabyte ¡lililí»* Grupo Editorial Megabyte 37, « £ »


éS B k > VISUAL BASIC como debe ser.. . |> CAPÍTULO IX: Manejo de Base de Datos
DESARROLLO:
CONTROL DBCOMBO: D ib u je todos los controles de la aplicación de consulta a nterior y asígneles
las propiedades respectivas. Sólo debe cam biar el co n tro l D B lis t p o r el con­
trol D B com bo.
Es un co n tro l s im ila r al D B lis t, es d e cir p erm ite m ostrar el contenido de un A l c o n tro l D bcom bo asígnele las propiedades R ow S ource Y L is tfie ld com o
campo, pero además puede m ostrar una caja de texto. En la lis ta de com p o ­ se h izo para el D B lis t. Adem ás debe asignar sus propiedades T ext y Style.
nentes, este c o n tro l tam bién se llam a: M ic ro s o ft Data B ound L is t C on trol. l il contenido de la propiedad T ext b ó rre lo para que quede en blanco y en su
Tiene las mismas propiedades del co n tro l D B lis t, pero además se le puede propiedad Style, asígnele el v a lo r 2.
asignar la propiedad S T Y L E . Debe program ar en los eventos Change y C lic k del D B C om b o:
L a propiedad Style, in d ica la fo rm a cóm o debe trabajar el D B co m b o. Los
valores que se le puede asignar son: Instrucciones del evento Change
P rív a te S u b D B C o m b o l_ C h a n g e ()
Style fc) - dbcD roD downC om boH D im C A s String
0 - dbcDroodownCombo D im L A s In teg er
1 - dbcSimpleCombo L = L e n (D B C o m b o l)
2 - dbcDropdownList C = "L E F T (N O M B R E ," + Str(L) + + D BCom bol +
D a ta l.R e c o rd se t.F in d F irst C
0 : E l D B co m b o se m uestra con una caja de texto y una lista desplegable,
I f D a ta l.R e c o r d s e t.N o M a tc h T hen
pudiendo seleccionar a un re g istro en cualquiera de ellas.
F ra m e l. Visible = F alse
1 : M uestra una caja de texto y una lis ta que no se despliega, pudiendo E lse
seleccionar a un reg istro en cu alqu iera de ellas. F ram e 1 .V isible = True
2 : Sólo m uestra y perm ite seleccionar cu alqu ier registro de la lista des­ E nd I f
plegable. lu id S u b

A P L IC A C IÓ N D E S A R R O L L A D A N° 52 Instrucciones del evento Click


P rívate Su b D B C o m b o l_ C lic k (A r e a A s In te g e r)
D esa rro lla r el program a de consulta anterior, usando un D B co m b o, de tal D B C o m b o l jC h a n g e
manera que a m edida que se va escribie nd o el nom bre de una persona, se E nd Sub
visua lice n sus datos en las cajas de texto.
APLICACIÓN PROPUESTA
m. FORMAS DE CONSULTAR REGISTROS TñTSl M o d ifiq u e la a plicación a nte rio r de tal manera que perm ita co nsu ltar un
N o m b re a C o n s u lta r registro p o r el nom bre o teléfono.

I H á'l ii; FiYi <1=»1'1 ¡ i ¡143EDSIíBMMMMBZ[bISI


S E L E C C IO N E E L D A T O D E L R E G IS T R O
D a lo s P e r s o n a le s
N o m b re T e lé f o n o
H a g a c lic k e n e l N o m b re
N o m b re |D A N IE L A L A R C O N | ' 3 122 71 31 3
o d íg ite la s in ic ia le s
D ir e c c ió n IW IR A C O C H A 3 1 5
D a lo s P e rs o n a le s
DA D is tr ito | L A V IC T O R I A
N o m b re | L IL IA N A A L A R C O N
D A N IE L A L A R C O N - I
L IL IA N A A L A R C O r T e lé f o n o |232689 D ir e c c ió n |M A R IA IZ A G A
M A N U E L C A R B A J^—
F e cha de N ac. | 1 5 /1 0 /1 9 6 6 D is tr ito jC H I C L A V O
T IT O R A M I R E Z _ZJ
S exo M T e lé fo n o |2 2 7 1 9 1

Fecha de N ac f2 0 T T 0 T l9 7 0
P eso 68 S exo |p

P eso [53

I H| < |Datai ► l'nj


I l< | 4 | D a ta l ► | M i

372 G r u po E d it o r ia l M e g a b y te ^ |¡ |§ * G r u po E d it o r ia l Megabyte 373


l i l i l í , VISUAL BASIC como debe ser.. . CAPITULO IX: Manejo de Base de Datos ^
C O N T R O L D B G R ID : A PL IC A C IÓ N D E SA R R O L L A D A N° 53
C on la tabla A m ig o s desarrolle la siguiente a plicación que perm ite lista r
ü todos los registros:
E l co n tro l D B g rid perm ite lista r los registros de una tabla en un fo rm u la rio . jjn lí
A l lis ta r los registros U d. puede actualizarlos, y adicionar nuevos registros.
En la lista de com ponentes, este c o n tro l se llam a: M ic ro s o ft Data B ound HOMBRE [d i r e c c i o h
RELACION DE AMIGOS
[d i s t r i t o It e l e f o n c I feciiac [s e x c r
G rid C ontrol. {Ta RIN A
CARLOS
RIOJA ¡PRINCIPAL 3 4 S LAMB A Y B Q U B 227191
LA H A D RIE jLOS INCAS N" 102 0 LA V I C T O R I A :20 2 0 2 0
20/10 / 1 9 7 0
20/10 / 1 9 7 0
F
H
CARLOS MORALES ;A R E Q U I P A N* 364 CHICLAYÛ 2738S8 18/07 / 1 9 6 9 H
D ANIEL I N FANTE :AV. LOS LAURES 234 iFERREÑAFE ^203347 1 6/12/1970 H »
PRINCIPALES PROPIEDADES DEL CONTROL DBGRID: j______________________ _______ _______ ,_____ _ t a
iHNIOa'al TTTlI Sala
ÑA M E
Perm ite asignarle un nom bre. Por defecto el nom bre es D b g rid l, D bgrid2, Para diseñar esta aplicación debe d ib uja r en un fo rm u la rio un control D B grid,
D b g rid 3 etc. Según el núm ero de controles que se d ib u je n en el fo rm u la rio . un control Data y un botón de comandos.
ALLOWADDNEW 1ro. A l control Data se le debe asignar 02 propiedades:
Perm ite in d ic a r que si al lle g a r al ú ltim o reg istro se puede a dicion ar nuevos DATABASENAME, donde se selecciona el nombre cíela base de datos ( "Agenda").
registros. RECORDSOURCE, donde seselecciona de la tabla que contiene los registros ( "Amigos").
ALLOWARROWS 2do. El control D B g rid debe tener en su propiedad DataSource el nombre del
P erm ite usar las teclas de m o v im ie n to del cursor para m overse p o r los control Data (D a ta l) y en su propiedad C aption el texto: R E L A C IÓ N D E
A M IG O S .
registros.
El botón SALIR debe tener la instrucción END.
ALLOW DELETE
P erm ite in d ic a r si se puede e lim in a r registros. RECUPERAR LOS CAMPOS
ALLOW UPDATE Una vez que asignó las propiedades al control Data y al D B g rid , haga C lic k con
Perm ite in d ic a r se pueden m o d ific a r los registros. el botón derecho en el D B g rid y seleccione R E C U P E R A R C A M P O S .
CAPTION ASIGNAR UN ANCHO ADECUADO A CADA CAMPO.
Perm ite e scrib ir el títu lo para el c o n tro l Una vez que recuperó los campos en el D bgrid, haga C lic k con el botón derecho
CO LUM NH EADERS en éste y elija E D IC IÓ N , luego, lleve el puntero a la línea que divid e cada
Para in d ic a r si desea visu a liza r los encabezados de cada campo. campo y asígnele el ancho que desea.
DATASOURCE QUITAR UN CAMPO DEL DBGRID
Para in d ica r el nom bre del c o n tro l D ata que contiene la tabla donde se Siga los pasos anteriores hasta elegir E D IC IÓ N , luego haga c lic k en el título del
campo a quitar, botón cjerecho y e lija D E L E T E .
encuentran los registros que se desea visualizar.
MODIFICAR EL TITULO (ENCABEZADO)A LOS CAMPOS.
ENABLED Para ello seleccione la propiedad PERSONALIDADO del D B g rid y active la
Para in d ic a r si el c o n tro l debe estar activado. hoja C O L U M N A S . Seleccione co lu m n a p o r co lu m n a (cam pos) y en la
HEADFO NT propiedad C A P T IO N asígnele el título que desea. Además puede asignarle un
Para seleccionar el tip o , tamaño y e s tilo de letra para el encabezado de cada form ato a cada campo.
cam po. En la hoja D IS E Ñ O puede activar la propiedad L O C K E D de las columnas que
HEADLINES desea para que no se pueda m o d ifica r su contenido, además puede alinear el
P erm ite in d ic a r el núm ero de líneas que desea tener com o encabezado de contenido del campo.
cada campo. ADICIONAR REGISTROS.
Para adicionar registros en el D B G R ID asigne a su propiedad A L L O W A D D N E W
ROW DIVIDERSTYLE
el valor TRUE. La propiedad A L L O W U P D A T E que permite modificar o no los
Perm ite in d ica r el e stilo de la línea que d iv id e cada registro
datos debe tener también el valor verdadero.
VISIBLE EVITAR QUE SE MODIFIQUE LOS DATOS EN EL DBGRID.
Para in d ic a r si el co n tro l se debe visua liza r. Para ello asigne a su propiedad A L L O W U P D A T E el valor FALSE.

374 G ru po E d it o r ia l M eg a b y te« * G r u po E d it o r ia l Megabyte 375


iS ÌÉ > VISUAL BASIC como debe ser.. . '< 5 CAPÍTULO IX: Manejo de Base de Datos ^ IIÉ IP
SELECCIONAR SÓLO ALGUNOS REGISTROS.
IN S T R U C C IO N E S S Q L Con la instrucción WHERE del SELECT, se pueden seleccionar los registros con los
cuales deseamos trabajar o visualizar.
SQL significa Structured Query Language, es decir, Lenguaje Estructurado de Su sintaxis es:
Consulta. Es un lenguaje orientado a Base de Datos que permite administrar y SE L E C T * F R O M N om bre_deJa_Tabla W H ERE Condición
Ejemplo:
manipular sus componentes (tablas, registros, etc.) de una manera fácil y rápida.
Seleccionar los que viven en el distrito La Victoria:
SF1ECT* FROMAMK¡OSWHEREDISTRITO=”LA VICTORIA”
INSTRUCCIÓN SELECT Seleccionar las mujeres que pesan más de 60 kilos:
Selecciona los registros con los que deseamos trabajar o ver en un momento
SELECT*FROMAMIGOSWHERESEXO-”F ’ANDPESO>60
determinado. También los ordenarlos, une tablas, etc.
Esta instrucción se debe asignar a la propiedad R EC O R D SO U R C E del control B E T W E E N : Se puede utilizar junto con W HERE para seleccionar registros que
D ATA cuando la utilizamos en un formulario. tienen un campo cuyo valor en encuentra entre dos valores dados W H ERE
N O M BJC AM PO B E T W E E N VALOR1 A N D VALOR2
LASINTAXISPARASELECaONARTODOS LOS REGISTROS ES: Ejemplo: Seleccionar las personas que pesan entre 60 y 73 Kilos.
SELECT*FROMAMIGOSWHEREPESOBETWEEN60AND73
S E L E C T * F R O M N O M B R E _D E_LA _TAB LA
El asterisco (*) indica que se deben seleccionar todos los campos. IN : Se puede utilizar junto con W HERE para seleccionar registros que tienen un
Si desea seleccionar sólo algunos campos debe escribirlos separados por una coma campo cuyo valor es uno de los indicados.
(,). Ejemplo: WHERENOmjMIPOIN(VAWRl,VAWR2,VAWR3r VAWRii)
La siguiente instrucción selecciona todos los campos y todos los registros de la Ejemplo: Seleccionar las personas nacieron en el mes de Febrero, Abril, Agosto o
tabla amigos: SE L E C T * F R O M A M IG O S Diciembre.
La siguiente instrucción selecciona sólo el Nombre y Teléfono de todos los regis­ SELECT*FR0MAMIG0SWHEREM0N1H(FECNAC)1N(24,8,12)
tros: S E L E C T N O M BRE, TELEFO N O F R O M A M IG O S
Para que funcione en un formulario, primero debe de darle las propiedades corres­ ORDENAR LOS REGISTROS.
pondientes al control Data y al Dbgrid, luego en un botón de comandos se debe Con la instrucción ORDER B Y del SELECT, se pueden ordenar los registros de una
tabla. Su sintaxis es:
escribir por ejemplo:
SELECT * FROM Nombre_deJa_Tabia ORDER BY Nombre_del_Campo
Datal.RecordSource = "Select nombre,telefono from amigos"
D a ta l .Refresh Se puede utilizar el número del campo en lugar del nombre.
Si se quiere ordenar por varios campos, se deben separar por una coma sin importar
CAMPOS CALCU LAD O S el tipo de cada campo.
Son campos que no se encuentran en una tabla, pero que se pueden obtener con los Si se desea ordenar en forma descendente escriba la palabra DESC, después del
campo que tiene la tabla. Por ejemplo, en la tabla Amigos, el campo EDAD se puede nombre del campo. La palabra ASC, ordena en forma ascendente, pero es opcional
considerar como campo calculado, porque se puede obtener con la fecha de naci­ utilizarla. Ejemplos:
miento. Para ordenar los registros por el distrito:
La sintaxis para obtener un campo calculado es: SELECT*FROMAMlGOSORDERBYDlSTRnD
Expresión A s Nombre Para ordenar por el campo sexo en forma descendente y por el nombre en forma
Donde E xpresión , es la operación que se necesita realizar para obtener el campo ascendente:
calculado y Nombre, es el nombre que le desea asignar al campo calculado. Ejemplo, SELECT* FROMAM1GOS ORDERBYSEXO DESC,NOMBRE
la siguiente instrucción muestra el nombre y la edad de todos los registros:
SELECCIONAR REGISTROS Y ORDENARLOS.
Datal .RecordSource = "Select nombre, year(now)-year(fecnac) as edad from amigos" Utilizando las instrucciones W HERE y ORDER B Y dentro de una instrucciones
Datal.Refresh SELECT, podemos seleccionar y ordenar registros.
M U Y IMPORTANTE Su sintaxis es:
Cuando desee visualizar sólo algunos campos o los campos calculados en el DBgrid, SELECr*FROMNoné_TablaWHEREConckiónORDERBYNoinb Caii¡X)
Ejemplo:
no debe haber recuperado los campos. (Botón Derecho, Recuperar Campos). Si ha
para seleccionar los que tiene sexo masculino y ordenarlos por su nombre:
recuperado los campos, haga click con el botón derecho del Mouse en cualquier
SELECT* FROM AMIGOS WHERESEXO=' M ’
ORDER B YNOMBRH
parte del DBgrid y elija B o rra r Campos.

G ru po E d it o r ia l Megabyte 377
s , '% VISUAL BASIC como debe se r... CAPÍTULO IX: Manejo de Base de Datos
TOP
Es una palabra que se puede e s c rib ir después de S E L E C T que perm ite ¿ D O N D E P R A C T IC A R O U T IL IZ A R LAS IN S T R U C C IO N E S SQL?
m ostrar los N prim eros registros ordenados.
Ias instrucciones S Q L vistasanteriormente sepueden utilizaro practicarlasen un formulario
con el control D A T A o en la ventana de administración visual de datos (VISDATA).
Ejemplos:
L a siguiente in stru cció n muestra las 3 prim eras personas más delgadas (de 1. EN UN F O R M U LA R IO CON E L C O N TR O L DATA.
m enor peso). Cuando quiera practicar o utilizar las instrucciones S Q L en un formulario, debe
asignar toda la instrucción S Q L a la propiedad R E C O R D S O U R C E del control D A T A
y luego actualizarlo (Refresh).
SE LE C T TOP 3 * F R O M A M IG O S O R D E R B Y P E SO
I’
or ejemplo, para visualizar todas las personas que viven en el distrito La Victoria y
ordenadas por su nombre, se escribe:
Si se desea las tres prim eras personas más gordas, sólo debe realizar la I )cital.ReconEoutce-”Select *fivmcunigoswheivdisnito = ‘La Victoria’orderbynombre”
ordenación en fo rm a descendente. Datal.Refresh

SE LE C T TOP 3 * F R O M A M IG O S O R D E R B Y P E S O D E S C A P L IC A C IÓ N D E SA R R O L A D A N° 54
I.a siguiente aplicación permite seleccionar registros, ordenarlos y seleccionar cam­
NOTA: pos a visualizar utilizando instrucciones S Q L dentro de un formulario con el control
Las siguientes personas que tiene el mismo peso de la tercera también se visualizan. DATA.
Después del valor puede u tiliza r la palabra PERCENT para m ostrar un porcentaje i» . I N S T R U C C I O N E S SQL E N F O R M U L A R IO S

determinado de registros. N OM BR E
C AR LO S M O R ALE S
D IR EC C IO N
A R E Q U IP A 365
D IS T R IT O
C H I C LAVO
TELEFO N O I
20 20 20
pesg T T
1 8 /0 7 /1 9 8 9 ;M 60;
D A N IE L Ä LA R C Ö N W IR A C O C M A 3 1 B L A VIC TO R IA 23P689 Ï5 /1 Q /1 % 6 ‘ m 80 i
L ILIA N A ALA R C O N M A R IA IZ AG A C H I C LAVO 227131 2 0 /1 2 /1 9 9 0 : F 50:
L a siguiente in stru cció n muestra el 10% de las personas más delgadas (de M A N U E L C AR BA JAL SA I A V I H R Y a t ) / C H IC LAY O 209870 Ï 8 / 0 6 / 1 3 6 0 !M ÍJSi
T l f lb R A M IR E Z L L D O R A D O 46 6
m en or peso). J .L 0 . 23G976 i 0 7 /1 Ï / I 3 / Ù 1

, S E L E C C IO N A R .

La V icto ria ) M en ores | H om bres | M m etes | O ctu b re j P e s o e n tre 5 0 y 73 ¡ S erie T elét 22 | :


S E L E C T T O P 1 0 P E R C E N T * F R O M A M IG O S O R D E R B Y P E SO
V IS U A L IZ A R S O L U :
N om bre y A ñ o d e N a cim iento j N om bre . F e ch a de N acim ie nto y E d ad
D IS T IN C T
O R D E N A R PO R:
Se puede u tiliz a r después de S E L E C T y perm ite que no se visualicen registros
N om bn- | F fr c li* | P o so Pete j Sexo y P » so j
que están duplicados en uno o más cam pos determ inados.
V IS U A L IZ A R IO D O S |

L a siguiente instrucción muestra la relación de distritos sin duplicación, donde ü iL ii Ü üjT


v iv e n las personas. Si dos o más personas viv e n en un m ism o d is trito , el
nom bre de d ich o d is trito sólo se v is u a liz a una vez. DESARROLLO:
Dibuje los controles como se muestra en la aplicación a desarrollar y asígnele las
S E L E C T D IS T IN C T D IS T R IT O F R O M A M IG O S propiedades correspondientes al control DBgrid y al Data.
Las instrucciones de cada botón de comandos en el orden que están dibujados son:
D I S T IN C T R O W Prívate Sub Com m andl_Click()
Se puede u tiliz a r después de S E L E C T y perm ite que no se visualicen registros Datal.RecordSouice- “SELECT*FROMAMIGOSWHEREDISIRITO= ’LA VICTORIA”'
que están duplicados en todos sus cam pos. Se u tiliz a cuando se trabaja con Datal.Refresh
dos o más tablas. End Sub
Prívate Sub Command2_Click()
NOTA Datal.RecordSowte = “SELECT*FROMAMIGOSWHEREYEAR(NOW)- YEAR(FECNAC)<17"
Existen otras instrucciones SQ L, las cuales se explican más adelante. D atal .Refresh
End Sub

p 378 G ru po E d it o r ia l Megabyte^ Ü » G ru po E d it o r ia l Megabyte 379


VISUAL BASIC como debe ser. CAPITULO IX: Manejo de Base de Datos
PtwateSióConmmd3_Clkk() EN L A V E N T A N A D E A D M IN IS T R A C IO N V IS U A L D E D A T O S
DataLRecordSource= "SELECT*FROMAMGOSWHERESEXO=’M’” (V IS D A T A ) .
DataLRefresh
EndSub
C u a n d o e lig e la o p c ió n C o m p le m e n to s , A d m i n i s t r a d o r V is u a l d e
Prh>ateSubComnand4_QicH) D a to s y abre una ta b la , se v is u a liz a ta m b ié n u na v e n ta n a de in s ­
DataLRecordSource = "SELECT*FROMAMIGOSWHERESEXO=’F ’'
Datal.Refresh tru c c io n e s S Q L .
E/idSub
PrivateSubCommand5_Click() v g V is D a ta :C :\A » c h ¡v o s d e p ro g ra m a \D e v S tu d io \V B \A G E N D A .m d
A f c h iv o U tilidad V e ntan a A yu da
Datal.RecordSowce= "SELECT*FROM.AMIGOSWHEREMONIH(FECNAC)=10"
DataLRefresh a l f i l B al B l l eáHl -
EidSub
($} [fff* P roperties
Prh’ateSub Convtiand6_Qick() •+ E 3 AMIGOS

DataLRecordSource = '‘SELECT*FROMAMIGOSWHEREPESOBETWEEN50AND 73’’ “ 3


DataLRefresh
EtdSub
PrivateSubConvnand7_Qick()
Datal.RecoidSowve= “SELECT*FROMAMLGOSWHERETELEFONOUKE‘22*”’
DataLRefresh
Listo U suario: admin
EndSub
PrivateSubConvmÆjOlickO En esta ventana puede e s c rib ir las instrucciones S Q L (a p a rtir de S E LE C T ).
DataLRecordSource- ”SELECrNOMBRE,YE\R(FECNAC)AS[AÑODENACIMIENTOIFROMAMIGOS”
DataLRefresh Para ver los resultados haga c lic k en el b otón E J E C U T A R . D e esta mane­
EndSub ra se crean consultas (Q ue ry), las cuales las puede grabar haciendo c lic k
PrivateSiè Comnand9jOltk() en el botón G U A R D A R y u tiliz a rla en cu a lq u ie r fo rm u la rio asignándole su
Datal.RecordSowce= "SELECTNOMBRE,FECNAC,YEAR(NOW)-YEAR(FECNAC)ASEDADFROMAMIGOS” nom bre a la propiedad R E C O R D S O U R C E del c o n tro l D A T A com o lo hace
Datai.Refresh con c u alqu ier tabla.
EidSub
PrivateSub ConviiandlO_Click() Ejem plo, en la fig u ra siguiente se ha creado una consulta que consiste en la
Datal.RecordSowve- “SELECT* FROMAMIGOSORDERBYNOMBRE” ordenación de los registros p o r el Peso y ha sido grabada con el nom bre
DataLRefresh IN F O R M E .
BidSiè
V isD ata:C :\A rch ivos de pio giam aV D evS ludio\V B \A G E N D A .m db I.P.|X |
PmateSiè Command!l_Gick() Archivo Utilidad Ventana Ayuda
DataLRecordSource - “SELECT* FROMAMIGOSORDERBYFECNAC" O F Ü & I S H O ffil &\ i ■i
DataLRefresh _ li l i x ¡
S3 .•=JJ3J.2Sl
EndSub •* fft?' Properties Ejecutar j go rrar | |; guardar
it; m a m ig o s
PrivateSub Commandl2_Click() :+! @ INFORME
SELECT * FROM AMIGOS ORDER 8Y PESO j

DataLRecordSource- “SELECT* FROMAMIGOSORDERBYPESODESC”


DataLRefresh
EìdSiò
_J
PriwtteSié Convnandl3_Click()
DataLRecordSource= “SELECT* FROMAMIGOSORDERBYSEXO,PESO” Listo Usuario; adirar,
DataLRefresh
EjidSub
Pruebe que esta consulta creada se puede u tiliz a r com o c u alqu ier tabla
PrivateSubConmiandl4_CUck()
haciendo un program a de listado. Para e llo , d ib u je en un fo rm u la rio un con­
DataLRecordSoiuve=‘‘SELECT* FROMAMIGOS
DataLRefresh trol D b g rid y un co ntrol Data y asígneles las propiedades correspondientes.
FjxlSub

||||¡ ||¡ ^ 380 G ru po E d it o r ia l Megabyte Grupo Editorial Megabyte 381


VISUAL BASIC como debe s e r.. . >r f i K - CAPÍTULO IX: Manejo de Base de Datos
m zú
D entro de la o pción U T I L I D A D , esta ventana tiene las opciones:
LISTADOS ORDENADOS YPOR CONDICION (FILTRADOS)
1. G enerador de C onsultas: Que consisten en un asistente para crear las
consultas con instrucciones SQ L. Consiste en crear program as que perm itan lis ta r los registros en fo rm a orde­
nada y por una condición; es decir, mostrar sólo un grupo de registros, aquellos
[E l
que tienen una determinada característica, por ejem plo: M ostrar sólo los que
131 F r
Ê g r e g a r a l c r it e r i o j Q . p o r c r it e r i o L is ta d© p o s ib le s v a lo r e s viven en Lambayeque, los que nacieron en un año determinado, etc.
T a b la s : C a m p o s a m o s tr a r : A g ru p a d o p o r :
r
O r d e n a d o p o r' • Ase f~ " Pese
| J A P L IC A C IÓ N D E SA R R O L L A D A N° 55
E s t a b le c e r c o m b in a c io n e s d e la t a b l a |
1
P r im e r o s N v a lo r e s : " P o r c e n t a j e s u p e r io r
La siguiente a plicación perm ite que el usuario escriba una c o n d ic ió n y al
hacer c lic k en el botón O K , se deben v is u a liz a r los registros que cum plen
dicha co nd ició n, además se deben ordenar de acuerdo al botón de com an­
G u a rd a r j B o rra r
dos donde se haga C lic k .

2 D iseñador de F orm ularios: Que consiste en un asistente para crear fo r ­


C O N D IC IO N •••> ' |f OK 1 TO DO S 1 S A L IR |
m ularios que adm inistren las tablas y registros.
RELACION DE AMIGOS
HOMBRE IDIRECCION DISTRITO TELEFONO FECNAC -
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
► CARLOS LA MADRID LOS INCAS N* 1020 LA VICTORIA 202020 20/10/1970
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 ) : CARLOS MORALES AREQUIPA N* 364 CHICLAYO 273858 18/07/1969
DANIEL INFANTE !AV. LOS LAURES 234 CHICLAYO 203347 16/12/1970
R e c o rd S o u rc e : I----------------------------------------------------------------3
| DORIS PERALES Av. BALTA 345 CHICLAYO 232224 01/05/1970
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 la l is t a o e s e n b a u n a i m t r u c c i o n JORGE RIOS LA LIBERTAD 123 CHICLAYO 237143 18/09/1976
JUAN JOSE WIRACOCHA 335 LA VICTORIA 205048 01/05/1968
C a m p o s d i s p o n ib le s : C a m p o s i n c l u id o s : LILIANA CAMPOS MARIA IZAGA 564 CHICLAYO 237890 10/10/1972
LUIS BALAREZO ITACNA 765 LAMBAYEQUE 287678 05/03/1958 T
«1 1 _. ......_l T
O R D E N A D O POR:
N o m b re | D ire c c ió n | D istrito | T e lé fo n o | F e c h a d e N ac. |
D istrito y N o m b re j

G e n e r a r e l fo rm u la rio

IJd. debe ingresar las condiciones en fo rm a correcta. Por ejem plo, para
3. S ustitución G lo ba l: Que perm ite reem plazar el contenido de un campo mostrar:
por un nuevo contenido. Los que viv e n en C h ic la y o : D IST R IT O = "C H IC LA YO "
Los que su serie de teléfono es 20: T E L E F O N O L IK E "20*"
Eüü S u s t it u c ió n g lo b a l Los que nacieron en 1970: YE A R (F E C N A C ) - 1970
M " 1111■1 1 — — D IR E C C IO N
I .os que su nombre em pieza con la letra C: N O M B R E L IK E "C*"
■ D IS T R IT O
FECNAC Los que vive n en la V ic to ria y nacieron en el mes de A b ril: D IS T R IT O =
NOM BRE
PESO "IA V IC TO R IA " A N D M O N T H (F E C N A C ) = 4
SEXO
TELEFO N O M ostrar los que tienen sexo m asculino: SE X O = "M"
R e em plazar con:
NOTA:
Tara indicar los campos a visualizar en el listado y para asignarle un ancho
determinado a cada campo, debe hacer click con el botón derecho en el control
C ancelar / 'ibgrid, mientras lo está diseñando y elegir la opción editar.

382 G ru po E d it o r ia l Megabyte- Í P G r u po E d it o r ia l Megabyte 383


| S ¡ 1 ¡ | ^ VISUAL BASIC como debe se r.. . CAPÍTULO IX: Manejo de Base de Datos
INSTRUCCIONES DE LOS CONTROLES: Instrucciones de botón DISTRITO.
P riv a te S u b C o m m a n d 6 _ C lic k ()
M UY IMPORTANTE I f T rim (T extl) - "" Then
R e sp e te lo s e sp a c io s en b la n c o q u e se d e ja n en lo s ejem p lo s. Datal. RecordSource= ’’SELECT * FROM AMIGOS ORDER BY DISTRITO ”
E n tre la s c o m illa s y la p a la b r a O R D E R y en tre la p a la b r a W H E R E E lse
y la s c o m illa s d e b e d e ja r s ie m p r e u n e s p a c io en b la n co .
Datal.ReconlSoiwe - ' SELECT*FROMAMIGOS WHERE‘' + Textl + ' ‘ ORDERBYDISTRI10 ' ’
E nd I f
‘ ’ S E L E C T * F R O M A M IG O S W H E R E ” D a ta l .R efresh
Instrucciones del botón OK. E nd Sub
Private Sub Commandl_Click()
On Error GoTo MIRA Instrucciones de botón TELEFONO.
Datal.ReconlSource-“SELECT*FROMAMlGOSWHERE “+Textl P riv a te Su b C o m m a n d ? _ C lic k ()
D a ta l.Refresh I f T rim (T extl) = Then
If D a ta l.Recordset.RecordCount = 0 Then Datal.RecordSource- "SELECT * FROM AMIGOS ORDER BY TELEFONO ”
MsgBox “No existen registros con la condición ingresada ”,16, “Lo siento ” E lse
End If
Datal.ReconISowve= "SELECT*FROMAMIGOSWHERE “+Textl+ “ORDERBYTELEFONO”
Exit Sub
End I f
MIRA:
MsgBox “LACONDICIONINGRESADAESINCORRECIA”,64, “VERIFIQUE" D a ta l.R e fr e s h
Textl .SetFocus E nd Sub
End Sub
Instrucciones de botón TODOS. Instrucciones de botón FECHA DE NACIMIENTO.
P riv a te S u b C o m m a n d 2 _ C lic k () P rív a te Su b C o m m a n d 8 _ C lic k ()
T e x tl = I fT r ím ( T e x tl) = Then
D a ta l.R e c o r d S o u r c e - “S E L E C T * F R O M A M IG O S ” Datal.RecordSource = “SELECT * FROM AMIGOS ORDER BY FECNAC”
D a ta l.R e fr e s h E lse
E n d Sub Datal.RecordSource^ “SELECT*FROMAMIGOSWHERE“+Textl + “ORDERBYFECNAC”
Instrucciones de botón NOM BRE. End I f
P r iv a te S u b C o m m a n d 4 _ C lic k () D a ta l.R efresh
I f T rim (T e x tl) = Then E n d Su b
Datal.RecordSource = “SELECT* FROM AMIGOS ORDER BY NOMBRE"
E lse Instrucciones de botón DISTRITO Y NOMBRE.
Datal.RecordSource^ "SELECT*FROMAM1GOSWHERE “+Textl+ "ORDERBYNOMBRE" P rív a te S u b C o m m a n d 9 _ C lic k ()
End If IfT r im (T e x tl) = Then
D a ta ! .R e fre sh
Datal.ReconlSowre-“SELECT*FROMAMIGOSORDERBYDISTRITO,NOMBRE"
E n d Sub E lse
Instrucciones de botón DIRECCION. D a ta l .R e c o rd S o u rc e - " S E L E C T * F R O M A M IG O S W H E R E
P r iv a te S u b C o m m a n d 5 _ C lic k () “+ T extl + ” O R D E R B Y D IS T R IT O ,N O M B R E ”
I fT r im ( T e x tl) = T hen „ „ End I f
Datal.RecordSource = “SELECT * FROM AMIGOS ORDER BY DIRECCION
D a ta l.R efresh
E lse E nd Sub
Datal RecoidSource= "SELECT*FROMAMIGOS WHERE “+Textl+” ORDERBYDIRECCION"
End If
D a ta l .R efresh
E n d Sub

384 G ru po E d it o r ia l Megabyte“ G ru po E d it o r ia l Megabyte 385


o

H> VISUAL BASIC como debe ser.. CAPÍTULO IX: Manejo de Base de Datos
A c tiv a r la c a s illa de M ic r o s o ft D A O 3.51 O b je c t L ib ra r y que se
V A R IA B L E S T IP O R E C O R D S E T encuentra en la o pción Proyecto/Referencias:

P o d em o s crea r y u tiliza r en n u estro s p ro g ra m a s variables tipo R ecordSet ( R e f e r e n c i a s d is p o n i b le s :


J
con la fin a lid a d de e sc rib irlo s co n m a y o r fa c ilid a d . M ic r o s o f t
M ic r o s o f t
A g e n t S e r v e r 2 .0
A g e n t S e r v e r E x t e n s i o n s 2 .0 —
M ic 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
U na v a ria b le tip o R e c o r d s e t es u n o b je to q ue re p resen ta a to d o s los ; M ic 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 ic r o s o f t D A O 2 .5 / 3 .5 1 C o m p a tib ility L ib r a r —
registros de la tab la q u e se tiene activa d a . M ic r o s o f t DAO 3 .6 O b j e c t L ib r a r y
H a sta h o ra cada vez q u e n o s q u erem o s referir a la tabla dentro de un M ic r o s o f t
M ic r o s o f t
D a ta
D a ta
A d a p t e r L ib r a r y
B i n d in g C o l le c tio n A yyda

p ro g r a m a se h a u tiliz a d o la in s tr u c c ió n Datal.Recordset, p e r o e sta M ic r o s o f t


M ic r o s o f t
D a ta
D a ta
E n v i r o n m e n t 1.0
E n v i r o n m e n t E x te n s ib ili ty O t
M ic r o s o f t D a ta E n v i r o n m e n t I n s t a n c e 1 .0
in stru cció n la p o d e m o s a sig n a r a una va ria ble R ecordset y sólo tra b a ­ M ic r o s o f t D a ta F o r m a t t i n g O b j e c t L ib r a r y ,
M ic r o s o f t D a ta ,0
R e D o r t D e ^ io n e r v 6 .C
j a r co n esta va ria b le.
Por ejem plo, suponiendo que hemos d e fin id o la variable R de tip o Recordset M ic r o s o ft D A O 3 .5 1 O b je c t L ib ra ry

a la cual le hemos asignado Datal.Recordset, entonces si queremos ir al U b ic a c ió n :


I d io m a :
C :\A R C H I V O S D E P R O G R A M A \A R C H IV O S C O M U N E S \M IC R O S t
E s tá n d a r
siguiente registros sólo bastará con e sc rib ir R.MoveNext. En lug ar de es­
c r ib ir Datal.Recordset.FindFirst C, sólo se escribiría R.FindFirst C.
Para referirnos a un solo cam po se puede u tiliz a r F IE L D S que representa a
todos los campos de una tabla. Se puede u tiliz a r de las siguientes maneras: Si no se activa esta c a s illa , se v is u a liza el siguiente mensaje de e rror al
ejecutar la aplicación:
R.Fields(“Nombre”)R.Fields![nombre] R.Fields(Número)
Microsoft Visual Basic
D onde Nombre, es el nom bre del cam po al cual se desea re fe rir y N úm ero Error de com pilación:
es la posición del cam po en la estructura de la tabla (el p rim e r cam po tiene
N o se ha definido el tipo definido por el usuario
el núm ero cero).
A yuda
Para u tiliz a r la va ria b le tip o R ecordset, debe c u m p lir tres (3) aspectos
im portantes.
1. D eclarar la variable en la ventana de declaración del fo rm u la rio o m ódulo.
Cada cam po se considera com o un objeto F IE L D que contiene propiedades
ü Proyeclol - Form! (Código) HHE2I com o por ejem plo:
|(General) |(Declaraciones) jrJ
PROPIEDAD VALUE
Dim R As Recordset
D evuelve el contenido del campo, Por ejem plo, para m ostrar el núm ero
te lefó nico del registro a ctivo de la tabla A m igo s en L a b e ll se puede escribir:
g SjjJ
L a b e ll = R .F ields! [te le fo n o ]. Valué
Label 1 = R .F ie ld s(“ te lefo no ” ). Valué
2. A sig n a r D a ta l .Recordset a la va riab le en el evento F orm A ctívate usando L a b e ll = R .F ields(3). Valué
la instru cció n SET.
N OTA:
M P io yecto 1 - F o fm l (Código) l - IO|x|
La colección FIELDS y la propiedad V A L UE , Visual Basic las asume en forma
"3
predeterminada, esto quiere decir que es opcional escribirlas. Por ejemplo, las
P r iv a t e Sub F o r m _ A c t iv a t e () ~T¡
S e t R = D a t a l.R e c o r d s e t _j
instrucciones anteriores también se pueden escribir de la siguiente manera:
End Sub Label 1 = R ![telefono]
fc jä iij
Label 1 = R(“ telefono” )
Label 1 = R(3)

386 G ru po E d it o r ia l M e g a b y te ^ G ru po E d it o r ia l Megabyte 387


dVÆA
, % VISUAL BASIC corno debe ser.. CAPÍTULO IX: Manejo de Base de Datos
PROPIEDAD TYPE PASO N° 01: Dibujar los Controles.
D evuelve un núm ero que representa el tipo de campo com o se ha d e fin id o
en la estructura de la tabla.
Los valores devueltos son:
OR TIPO DE C A M P O
1 Boolean (Ló gico S i/N o)
2 Byte
3 Integer (Entero)
4 Long (Entero Largo)
5 Currency (M onetario)
6 Single (Sencillo)
7 Double (doble)
8 Date (Fecha)
10 Text (Texto)
PASO N° 02: Asignar las propiedades.
11 Binario
12 Memo ETIQUETA CAPTION
PROPIEDAD ÑAME Labell Campo
D evuelve el nom bre del campo exactamente com o esta en la estructura de Label2. Operador
la tabla. „ Label3 Valor
PROPIEDAD COUNT DEL OBJETO FIELDS Label4 En Blanco
D evuelve el núm ero de campos que tiene la tabla.
TEXTO TEX T
Textl En Blanco
A P L IC A C IÓ N DESARROLLADA N° 56
COM ANDO C A P T IO N ENABLED
M o d ific a r el program a anterior de tal manera que el usuario pueda fo rm a r la Command 1 Ok False
c o n d ició n que desea que cumplan los registros para poder visualizarse. Command2 Todos True
Para desarrollar éste programa s e deben m ostrar en un L is tB o x los nom ­ Command3 & S alir True
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 í : CO NTRO LDATA
CONTRO L D ATABASEN AM E RECORDSOURCE V IS IB LE
l° l * l D atai Agenda Amigos False

C O N T R O L D B G R ID

P O N P T if lN : S E X O .. — M --------------------------— ----------------------------------------------------------
[ñ iR T R IT O
CONTRO L DATASOURCE
NOM BRE 1D I R E C C I O N
L U IS B A L A R E Z O P U M A C A H U A 122
CHI C LA V O 273858 18/07/69 M 60
Dbgri 1 Datai
CAR LO S M O RALES A R E Q U IP A 256
CHI C L A V O 237143 1 8/09/76 M 70
-------- J O R G E R I O S L A L I B E R T A D 123
W Í R Á C O C H A 3 35 205048 5/01/68 M 65
JO SE C A S TA Ñ E D A
-------- T I T n R A M I R F 7 1f i n n R A n n 4 F¡r .1 i n ? ^ R S 7 «S
205897
7 /1 1 / 7 fl
18/06/60
M
M
F¡7
66
PASO N° 03: Escribir las instrucciones de los controles.
M A N U E L C A R B A JA L S A L A V E R R Y 345
Primero debe activar la casilla de M icrosoft D AO 3.51 Object Library luego definir
la variable R de tipo Recordset.
R E G I S T R O S MOSTRADOS > S A L IR I J® Proyectol - Formi (Código) EJapa
I (General) TJ f(D eclaraciones)
NOTA:
En la p r o p ie d a d CAPTION d e l DBgridsedebe m o s tra r la c o n d ic ió n q u e e l u s u a rio a Dim R As Recordset

f o r m a d o y en u n a e tiq u e ta se d e b e mostrar la c a n tid a d d e re g is tro s m o s tra d o s .


a ï a i

G r u po E d it o r ia l Megabyte 389
|¡1 ¡¡É » VISUAL BASIC como debe ser.. . CAPÍTULO IX: Manejo de Base de Datos
Instrucciones del Evento Forni Actívate. Instrucciones del Botón OK.
Estas instrucciones m uestran en L is t l los nom bres de los campos y en L is t2 listas instrucciones perm ite vis u a liz a r los registros que cum plen la c o n d i­
los operadores lógicos, además asigna a la variable R el D atal.R eco rdse t. ción que el usuario a form ado.

D im N, X A s In teg er I’riva te S u b C o m m a n d l_ C lic k ()


S e t R = D a ta l.R e c o r d s e t D im T IP O A i Byte
N = R .F ield s.C o u n t D im C A s String
R em M u estra los n o m b re de los cam pos en L is tl On E rro r GoTo M IRA
F o r X = 1 To N TIP O - R (L istl.L istIn d e x).T yp e
L is tl .A d d lte m (R (X ).N a m e) S elect C ase TIPO
N e x tX C ase 1
R em M u estra lo s o p era d o res ló g ico s en L is tl C = L is tl + S p a c e (l) + L is tl + S p a c e (l) + T extl
L ist2 .A d d ltem “= ” C ase 2 To 7
L ist2 .A d d Item “> ” C = L is tl + Space( 1) + L is tl + S p ace( 1) + T extl
L is tl.A d d lte m “< “ C ase 8
L is tl.A d d lte m C = L istl+ S p a c e ( 1 )+ L istl+ S p a c e ( 1)+ ”C V D A T E ( ‘ “+ T extl + “ ' ) ”
L is tl.A d d lte m “< = ” C ase 10
L istl.A d d lte m “< > ” C - L is tl+ S p a c e ( l) + L is tl + S p a c e (l) + + T extl +
L is tl.A d d lte m “L ike ” E n d S elect
T extl = D B G r id l. C aption = “ C O N D IC IÓ N : “ + C
E nd Sub Datal.RecordSource = "SELECT* FROM AMIGOS WHERE" + Space(I )+C
D a ta l.R e fr e s h
Instrucciones de la Cajas de Texto. N R = D a ta l .R e c o rd se t.R e co rd C o u n t
Estas instrucciones perm iten a ctiva r el botón O K cuando el usuario ingresa I f N R = 0 Then
el valor que fo rm a la co nd ició n. Se debe program ar en el Evento Change. MsgBox “NO HAY REGISTROS CON LA CONDICIÓN”, 16, “VERIFIQUE"
E lse
P r ív a te S u b T e x tl_ C h a n g e () L a b el4 = “R E G IS T R O S M O S T R A D O S — > ” + Str(N R )
I f T rim (T e x tl) = Then End I f
C o m m a n d l .E n a b le d = F a lse E xit Sub
E lse M IR A :
C o m m a n d l .E n a b le d = True M sg B o x “N o fo r m ó la co ndición c o rre c ta m e n te ”, 64, “V E R IF IQ U E ”
End I f E n d Su b
E nd Sub
E l b o tón S a lir d eb e ten e r la in stru cc ió n E N D .
Instrucciones del Botón TODOS.
Estas instrucciones visualizan todos los registros.

P rív a te S u b C o m m a n d l _ C lic k () NOTA


D a ta l.R e c o rd S o u rc e = “S E L E C T * F R O M A M IG O S " Para que la condición se forme correctamente tenga cuidado al escribir los espacios
D a ta l .R efresh en blanco y los apostrofes ( ‘) que se utilizan en el botón de OK (Commandl).
T extl - En algunos casos se utiliza la función Space(l) para asegurar que se escriba im
espacio en blanco y la función Cdate, similar a CvDate para convertir un dato
E nd Sub tipo texto a fecha.

390 G ru po E d it o r ia l Megabyte ^ G ru po E d it o r i\ i. Megabyte 391


VISUAL BASIC como debe ser. CAPITULO IX: Manejo de Base de Datos
A P L IC A C IÓ N D E SA R R O L L A D A N°57 D IB U J A R L O S C O N T R O L E S
IgE
La siguiente aplicación permite ingresar datos utilizando diversos controles de en­ TI ZL
trada como Option Buttom, Check, etc. fle x il
Además se muestra el ejemplo de cómo utilizar una variable tipo Recordset para Label2 ¡Text2

programar de una manera más fácil y rápida. Frame2


Labels jCombol
_d
' f“* Q ption2 ;
Label4 ¡Combo2
; í"~ OplionS

M A N I I N IM II Frame3 LabeIS
f~~ Option4 I (î ext3
; d» i a m « » ; r - o p tio n s i
Apellidos jfx Label6
: <" Option6
1T exl4
N o m b res f u u JO : <" Option?

■<*' M ar'iaria C icto jl “ El Frame4


C ' Varde
.P5T •m I C heck1 ; | t ex(5

(><)
I «cha .«te lr.»tstipoi<í«i
.(Î G /Ü 8/1 a a y -g-j m j H | 4 I D a ta i
I roslado
U b40IVOCIOI'«5 Cancelo»
NOTA
En la segunda ventana sólo debe dibujar un Dbgridl.
► I» il
ASIGNAR LAS PROPIEDADES
Base de Datos: Instituto. Tabla: Alumnos. El control Datal, Dblistl y Dbgrid (página N°2), deben tener las propiedades que
Apellidos Text 25 los ligan con la base de datos.
Nombres Text 25
Tumo Text 1 C O N T R O LD A T A
Ciclo Integer CONTROL DATABASENAM E RECORDSOURCE
Aula Text 3 Datal Agenda Amigos
Situación Text 1 C O N T R O L D B LIS T
Pensión Single CONTROL ROW SOURCE L IS T F IE L D
Traslado Boolean (Si/No) Dblistl Datal Apellidos
Trabaja Boolean (Si/No) CONTROL DBGRID
Fecha Date/Time CONTRO L DATASOURCE
Observaciones Memo Dbgril Datal

DESARROLLO: El resto de controles deben tener las propiedades como se muestra en la aplicación
En la ventana de declaraciones del formulario, declare la variable R E G de tipo a desarrollar.
Recordset y en Form Actívate asigne Datal.Recordset a la variable REG. Esto El Combol debe tener en su propiedad LIST las palabras desde Primero hasta
permite reemplazar durante todo el programa Datal.Recordset por REG. Puede Décimo. El Combo2 debe tener en su propiedad LIST los números desde 101 hasta
utilizar cualquier otra variable y si desea utilizarla en varios formularios de una 108. El control U p D o w n 1 debe tener:
aplicación, debe declarar la variable en un módulo.
Propiedad Valor
ngm Buddy Control Text4
Increment 1
Max 160
1 Min 1
Value 50
Wrap True

392 G ru po E d it o r ia l Megabyte ¡y g |¡r Grupo Editorial Megabyte 393


iS S l^ VISUAL BASIC como debe ser.. . CAPÍTULO IX: Manejo de Base de Dalos
INSTRUCCIONES DE LOS CONTROLES Instrucciones del Botón Eliminar
Crear los procedimientos: Activar, Desactivar y Pregunta. Private Sub Command3_Click()
Dim RESP As Byte
Sub Activar() Sub Desactivar() KESP=MsgBax(“ESlASEGURODEELIMINARESrEREGISrRO”}36,"CUIDADO”)
Frame 1. Enabled = False Frame 1.Enabled = True I f RESP = 6 Then
D B Listl .Enabled — True DBListl.Enabled = False REG. Delete
Command ¡.Enabled = True Commandl. Enabled — False REGM oveFirst
Com m and!.Enabled = True Command2. Enabled = False Form_Activate
Commands.Enabled = True D BListl.ListField = “APELLID O S ”
Command4.Enabled = False Commands .Enabled = False
Command4. Enabled = True End I f
Command5. Enabled = False Pregunta
End Sub Command5.Enabled = True
End Sub End Sub
Sub Pregunta() Instrucciones del Botón Grabar
Rem Pregunta si no hay registros Private Sub Command4_Click()
I f REG.RecordCount = 0 Then REG(O) = Textl ‘APELLIDOS
D B Listl.E nabled — False REG( 1) = Text2 ‘NOM BRES
Command2. Enabled = False Rem TURNO
Command3. Enabled = False IfO p tio n l Then REG(2) - “M ”
End I f I f Opt ion2 Then REG(2) = “T"
E nd Sub I f Option3 Then REG(2) = “N ”
REG(3) - Combo 1.Listlndex + 1 ‘CICLO
Instrucciones del Form Activate REG(4) = Combo2. Text ‘AULA
Private Sub Form_Activate() Rem SITUACION
Set REG = D atal.Recordset lfO ption4 Then REG(5) = "R " ‘REGULAR
Textl = I f OptionS Then REG(5) = “M ” ‘1/2 BECHA
Text2 = “ ” I f Optionó Then REG(S) = “B " ‘BECA
Text3 = “160" I f Option7 Then REG(S) = “O " ‘OTRO
Text4 - Date REG(6) = Val(Text3) ‘PENSION
Text5 = I f Check 1 Then REG(7) = True Else REG(7) = False
Combo 1.Listlndex = 0 IfC heck2 Then REG(8) = True Else REG(8) = False
Combo2.ListIndex = 0 REG(9) = CVDate(Text4) ‘FECHA D E INGRESO
Option 1. Value = True Rem SI NOMBRE OBSERVACIONES SE GRABA UN ESPACIO E N BLANCO
Option4. Value - True I f Text5 = Then
Check 1.Value = False REG(IO) = “ “
Check2. Value = False Else
U pDownl. Visible - False REG(IO) = TextS
Frame 1.Enabled = False End I f
Command4. Enabled = False REG Update
Com m ands.Enabled = False D BListl .ListField = “APELLIDOS"
Pregunta Activar
End Sub End Sub
Instrucciones del Botón Nuevo Instrucciones del Botón Modificar Instrucciones del Botón Cancelar
Private Sub Com m and!_Click() Private Sub Command!_Click() Private Sub Command5_Click()
REG AddNew REG Edit REG CancelUpdate
Form_Activate Desactivar D atal.Refresh ‘Primer Registro
Desactivar Textl.SetFocus D BListl jC lick
Textl.SetFocus End Sub Activar
E nd Sub End Sub
394 G r u po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 395
¿ 9 3 ^ VISUAL BASIC como debe s e r.. CAPÍTULO IX: Manejo de Base de Datos j
Instrucciones del Control Dblistl
Private Sub DBListl_Click() MODIFICAR VARIOS REGISTROS A LA VEZ
Dim C As String Se puede hacer un program a para m o d ific a r o a d icio n a r varios registros al
C = “APELLIDOS = + DBListl + m ism o tie m p o usando el c o n tro l D B g rid y los m étodos de transacciones:
D a ta l.Recordset.FindFirst C BeginTrans, C om m itT rans y R ollbackT rans.
Textl = REG(O) ‘APELLIDOS BEGINTRANS
Text2 = REG( 1) ‘NOMBRES C om ienza una nueva transacción.
Rem TURNO CO M M ITTR ANS
IfREG(2) = “M ” Then Optionl = True
F in a liz a la transacción actual y guarda los cam bios.
IfREG(2) = “T" Then Option2 = True
IfREG(2) = “N ” Then Option3 = True RO LLBA CK TRA NS
Combol.Listlndex = REG(3) -1 ‘CICLO F in a liz a la transacción actual e ignora las m od ifica cio n e s realizadas. Res­
Combo2.Text = REG(4) AULA taura las bases de datos al estado en que estaban cuando com enzó la tran­
Rem SITUACION sacción actual.
IfREG(5) = “R ” Then Option4 = True ‘REGULAR
IfREG(5) = “M ” Then Option5 = True ‘1/2 BECA A P L IC A C IO N D E S A R R O L L A D A N° 58
IfREG(5) = “B " Then Optionó - True ‘BECA
s¡. MODIFICACION DE REGISTROS
IfREG(5) = “O" Then Option7 = True ‘OTRO
Text3 = REG(6) ‘PENSION NOMBRE D IR E C C IO N D IS T R IT O T E LE F O N O FECNAC
lfREG (7) Then Checkl = 1 Else Checkl ~ 0 C A R LO S M O R A LE S A R E Q U IP A 36 5 CH IC LA Y O 202020 1 8 /0 7 /1 9 6 9
D A N IE L A LA R C O N W IR A C O C H A 3 15 L A V IC T O R IA 232G 89 1 5 /1 0 /1 9 6 6
IfREG(8) Then Check2 = 1 Else Check2 = 0 L IL IA N A A L A R C O N M A R IA IZ A G A C H IC LAY O 227191 2 0 /1 2 /1 9 9 0
Text4 = REG(9) ‘FECHA DE INGRESO M A N U E L C A R B A JA L S A L A V E R R Y 9 87 C H IC LAY O 209875 1 8 /0 6 /1 9 6 0
M A R IA C A S T A Ñ E D A W IR A C O C H A 3 2 5 L A V IC T O R IA 205048 2 3 /1 2 /1 9 9 8
TextS = REG(IO) T IT O R A M IR E Z E L D O R A D O 45G J.L.O . 236975 0 7 /1 1 /1 9 7 0
End Sub 1 ....... ►

i Ë m pezaf tas M o d ific a c io n e s ~ ij G rabar to d a s las


s M o d ific a c io n e s i Ig no rar to da s las M o d ific a c io n e s
Instrucciones de los Option Button (Muestran la Pension)
Private Sub Option4_Click() Prívate Sub Optionó_Click()
►M
Text3 = 160 Text3 = 0
UpDownl. Visible = False UpDownl.Visible = False 1 D ib u je los controles y asígneles sus propiedades respectivas.
End Sub End Sub
2 E scriba las siguientes instrucciones:
Prívate Sub Option5_Click() Prívate Sub Option7_Click()
Text3 = 80 Text3 = 50 Instrucciones del Form^Load Instrucciones Botón Em pezar
UpDownl.Visible = False UpDownl.Visible = True Prívate Sub Form_Load() Private Sub Commandl_Click()
End Sub End Sub Command! .Enabled = True BeginTrans
Command2.Enabled = False DBG ridl .AllowUpdate = True
Command3. Enabled = False DBG ridl .AllowAddNew = True
Instrucciones del Control UpDown2 (Fechla de Inscripción) DBGridl .AllowUpdate = False Commandl .Enabled = False
Prívate Sub UpDown2_DownClick() Prívate Sub UpDown2_UpClick() DBG ridl .AllowAddNew = False Command2. Enabled = True
Text4 = CVDate(Text4) - 1 \ Text4 = CVDate(Text4) + 1 Datal.Refresh Command3. Enabled = True
End Sub End Sub End Sub End Sub

Instrucciones Botón Grabar Instrucciones Botón Ignorar


Instrucciones del Botón Salir Private Sub Command2_Click() Private Sub Command3_Click()
Prívate Sub Commandó_Click() CommitTrans Rollback
I f MsgBox( “ESTA SEGURO DE SALIR ” , 36, “CUIDADO ") = 6 Then End Form_Load FormJLoad
End Sub End Sub End Sub

G ru po E d it o r ia l Megabyte 397
 VISUAL BASIC como debe se r.. . ■'"¿■-.y CAPITULO IX: Manejo de Base de Datos ^Ü H
C u a n d o se elige la opción elim in a i; se muestra una ventana de advertencia:
MANEJO DE FOTOS
%EMPLEADOS

NO M B R E S In fo rm a c ió n d e lo s E m p lea d os
U sando V isu al Basic usted puede grabar fotos en sus tablas. Para e llo , debe TE FOTO
d e fin ir el cam po tip o B in a rio si la tabla la crea con V isu al Basic o de tip o ALARCON GARCIA LILIANA NOMBRE [TERRONES PALACIOS LOURDES
CASTAÑEDA PACHECrg ri i j i .t
O b jeto O L E si la crea con Access. MEDINA CHISCUL CE!
Para m ostrar la fo to grabada en un reg istro puede u tiliz a r el c o n tro l Im age. PORRO INFANTES OS
RAMIREZ VASQUEZ T JJ
ESTA SEGURO DE ELIMINAR A ESTE EMPLEADO
Este co n tro l tiene las propiedades D ataSource y D ataF ield ig u a l que las TERRONES PALACIOS ™
cajas de texto para poder conectarse con el cam po que tiene la fo to . Las O p cio n e s D is p o n ib le s

fotos a u tiliz a r deben estar escaneadas y almacenas en una carpeta deter­ ADICIONAR I MODIFIc w i i n
GRABAR
m inada. En esta a p lica ció n la base de datos se lla m a P erso n a l y la tabla CANCELAR
Seleccionar su Foto

E m p le a d o s cuya estructura tiene cuatro campos es: — Siojffto 1

N o m b re Text 3 0 D irecció n Text 2 5 T elefono Text 10 F o to B in a rio


C uando hace c lic k en el botón S e le c c io n a r su F o to debe buscar la carpeta
donde grabó las fo to s escaneadas. En el e je m p lo, las fotos han sido graba­
A P L IC A C IÓ N D E SA R R O L L A D A N° 59 das co m o *.B M P :
L a siguiente a plicación perm ite consultar, adicionar, m o d ific a r y e lim in a r
registros in clu ye n d o la fo to de cada uno de ellos.
B u sca r en. f EM PLEADO S
Jgaj e » | HST m l
^ C A S T A Ñ E D A P A C H E C O J U A N .b m p
-|Pl*l j S j C H I R I N O S P A S T O R O S C A R .b m p
^ M O R A L E S JU L IA N CARL
^ ■ P A C H E C O R O Q U E M IR E
jg f C O R O N A D O V E N T U R A H E C T O R .b m p
Info rm a ció n de los Empleados l^ r PO R R O CHULLI M ARCO
FOTO JP f F E R N A N D E Z G U E R R E R O A N A X IM A N D R O .b m p
45% L I Z A A R A U J O C A R L O S .b m p P O R TA LE S G R A N A D O S
NOMBRE |ALARC0N GARCIA LILIANA d S R A M I R E Z S U A R E Z LILI/
IALARCON GARCIA LILIANA fe * « - V - gg f M E D I N A C H I S C U L C E S A R .b m p
CASTAÑEDA PACHECO JUAN R A M IR E Z V A S Q U E Z T IT
MEDINA CHISCUL CESAR
PORRO CHILLI MARCO DIRECCION |SANJ0SE 6786 W — W .. JLl_________________________________1
-îJ
RAMIREZ VASQUEZ TITO .N o m b r e d e a r c h i v o :
TERRONES PALACIOS LOURDES d A r c h i v o s d e tip o :
A b r ir
¡ F o t o s D i s p o n ib l e s
O pciones D isponibles TELEFONO |a 21 24 "3
ADICIONAR I MODIFICAR I ELIMINAR tiÊ L Â k I A b r ir c o m o 3 ÓI0 le c t u r a

DESARROLLO DE LAAPLICACIÓN
C uando se elige la o p ció n A d ic io n a r o M o d ific a r se m uestran otros botones P A S O N ° 0 1 : D IB U J A R L O S C O N T R O L E S .
para poder c u m p lir con dicha o pción:
Labell Frame2

Lab eC ÍtS J T L abel5


Info rm a ció n de los Em pleados
PO
NOMBRE P ° ÍIRRO INFANTES OSCAR Label3 ( f ex(2
[ALARCON GARCIA LILIANA
CASTAÑEDA PACHECO JUAN
MEDINA CHISCUL CESAR
PORRO INFANTES OSCAR
LabeM (r^T
DIRECCION 456
RAMIREZ VASQUEZ TITO Ram el
TERRONES PALACIOS LOURDES
Com m and! ! Command2 1 Com m and31 Command4 I
O pciones D isponibles TELEFONO 666968 Com mand5
CommandG
.ADICIONAR I MODIFICAR I ELIk

| n | •<|Pa(a1 T jÑ I Command?
.S in fo te ___ J

G r u po E d it o r ia l Megabyte 399
|111¡¡1|> VISUAL BASIC como debe ser... CAPÍTULO IX: Manejo de Base de Datos ^Í¡É11I^
PASO N ° 02: A S IG N A R L A S P R O P IE D A D E S A L O S C O N T R O L E S . In s tru c c io n e s d e l b o tó n E lim in a r
Al control Datal asígnele las propiedades Da taBaseName y RecordSource, P rív a te S u b C o m m a n d 3 _ C lic k ()
al D b c o m b o l las propiedades RowSource, Listfield y en su propiedad Style IfMsgBox( "ESTA SEGURO DE ELIMINARA ESTE EMPLEADO",36, "CUIDADO ")=6 Then
asígnele el valor 1 y estire el control para visualizar varios registros. A las R E G D e le te
cajas de texto y al control Image 1 asígneles en su propiedad DataSource y D a ta l.R e fre sh
DataField los campos correspondientes. A los botones de comandos, asíg­ E nd I f
neles en su propiedad Caption el texto c o m o se muestra en la aplicación a E nd Sub
desarrollar. In s tru c c io n e s d el b o tó n G r a b a r
P rív a te S u b C o m m a n d 4 _ C lic k ()
P A S O N ° 03: E S C R IB IR L A S IN S T R U C C IO N E S . REG. U pdate
D B C o m b o l .L istF ie ld = "N O M B R E "
D e f in ir las v a ria b le s a n iv e l de fo r m u la r io . D E SA C T IV A R
O p tio n E x p lic it E nd Sub
D im R E G A s R eco rd set
In s tru c c io n e s d e l b o tó n C a n c e la r
Instrucciones de los procedimientos a crear P rív a te S u b C o m m a n d 5 _ C lic k ()
REG. C a n ce l U pdate
Sub DESACTIVARO Sub ACTIVARQ D E S A C T IV A R
F ra m e 1.E n a b le d = F alse F ra m e 1.E n a b le d = True E nd Sub
C o m m a n d 4 .V isib le = F alse C om m and4. Visible = True In s tru c c io n e s d e l b o tó n S e le c c io n a r su F o to
C o m m a n d s.V isib le = F alse C om m and5. Visible = True P rív a te S u b C o m m a n d ó _ C lic k () ____________ ___________
C o m m a n d ó .Visible = F alse C o m m a n d ô .Visible = True R em C a rá cter N ° A L T + 124 ▼ ▼ ▼
C om m a n d 7 .V isib le = F a lse C om m and7. Visible = True C o m m o n D ia lo g l .F i l t e r - "F otos D isp o n ib le s\* .b m p \T o d a s (*. * j| * . * "
Im a g e 1.Stretch = True C o m m o n D ia lo g l. S h o w O p e n
Im a g e 1.Stretch = True
Im a g e 1 .B o rd erS tyle = 1 Im a g e l.P ic tu r e = L o a d P ic tu re ( C o m m o n D ia lo g l.file n a m e )
End Sub End Sub
E nd Sub
Instrucciones del Evento Form_Activate In s tru c c io n e s d e l b o tó n S in F o to
P r iv a te S u b F o rm _ A c tiv a te () P rív a te S u b C o m m a n d 7 _ C lic k ()
D E S A C T IV A R Im a g e 1 .P ictu re = L o a d P ic tu re("")
D a ta l.V is ib le = F a lse E nd Sub
S e t R E G = D a ta l.R e c o r d s e t In s tru c c io n e s d e l c o n tr o l D B c o m b o l - E v e n to C h a n g e
E n d Sub P rív a te S u b D B C o m b o l_ C h a n g e ()
D im C A s String
In s tru c c io n e s d e l b o tó n A d ic io n a r C = "N O M B R E L1KE + D BC om bol +
P r iv a te S u b C o m m a n d 1 _ C lic k () R E G F in d F irst C
A C T IV A R I f R E G N o M a tc h Then
R E G A ddN ew F ra m e l .V isible = F alse
T e x tl .S e t F o cu s E lse
E nd Sub F ram e 1 .V isible = True
End If
In s tru c c io n e s d e l b o tó n M o d if ic a r E nd Sub
P r iv a te S u b C o m m a n d 2 _ C lic k ()
A C T IV A R In s tru c c io n e s d e l c o n tr o l D B c o m b o l - E v e n to C lic k
REG. E d it P rív a te Su b D B C o m b o l_ C lic k (A r e a A s In te g e r)
T e x tl. S e t F o cu s D B C om bolJC hange
E nd Sub E nd Sub

400 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 401


VISUAL BASIC como debe ser.. . CAPITULO IX: Manejo de Base de Datos
„ U S O D E V A R IA S T A B L A S

MANEJO DE VARIAS TABLAS R E G IS T R A R

VE N D E D O R E S DATOS D EL VEN D ED O R
JÖÖ4
CODIG O
Para m anejar dos o más tablas de una base de datos se puede u tiliz a r un
ÜO R G E CASTRO
NO M BR E
c o n tro l Data para cada una de ellas o u n ir las tablas y u tiliz a rla s con un solo
|20 1 66 5
c o n tro l Data. Esto depende del tip o de a p lica ció n que se desea desarrollar. TELÉFO NO

IN F O R M A C IÓ N D E L A V E N T A R E A L I Z A D A
La siguiente a plica ció n muestra un e je m p lo de m anejar dos tablas con un CODIGO 1004 (y
solo c o n tro l D ata para cada una de ellas y tam bién un solo c o n tro l D ata para FE C H A DE V E N T A 11 4 /0 2 /0 2 G R ABAR

las dos. D IS T R IT O DE V E N T A
í "" X
M O N TO I.. CANCELAR

Se tiene una Base de Datos lla m a T IE N D A que contiene dos tablas: V E N ­


D E D O R E S y V E N T A S con la siguiente estructura: I H|< IV EN D E D O R E S ► | » i) I h I < [V E N T A S ► | H | | l< H ¡ IN FO R M E ► | H ] SAUF!

VENDEDORES VENTAS
C o d ig o T ext 3 Codigo T ext 3
En las dos primeras páginas cada tabla se m aneja con su respectivo control
N om bre T ext 30 FechaVenta Date
Data, pero en la tercera se encuentran unidas y se u tiliz a un solo control Data.
T elefono T ext 10 M on to C urren cy
En esta a plicación se u tiliz a n 3 controles Data, e l D a ta i m aneja la in fo rm a ­
D is trito V e n ta T ext 20
ción de la tabla V E N D E D O R E S , el D ata2 la in fo rm a c ió n de la tabla V E N ­
T A S y el c o n tro l D ata3 m aneja la in fo rm a c ió n de las dos tablas que se
FechaVenta es la fe ch a en la cu a l cada ve n d e d o r re a liz a la venta y encuentran unidas a través de una in s tru c c ió n S Q L en una consulta (Q uery)
DistritoVenta es el nom bre del d is trito donde se rea liza la venta.
llam ada IN F O R M E .
L a a plica ció n debe p e rm itir v is u a liz a r las ventas realizadas p o r cada vende­ U S O D E V A R IA S T A B L A S rT n ra
dor, reg istra r las ventas y listarlas en fo rm a general, p o r d is trito o p o r fecha. VENTAS f R E G IS T R A R f L IS T A D O
Para una m a yo r com odidad, se debe rea liza r en un sólo fo rm u la rio usando el POR : _____________________________
c o n tro l SsTab, com o se m uestra a co ntin ua ció n : (* D IS T R IT O In g re s e el D istrito | V E r | TO DO S |
r FEC H A
U S O D E V A R IA S T A B L A S :TaP
C O D IG O NOMBRE T E LE F O N O FEC H Al M O N T O l D IS T R IT O
v e n t a s ! T R E G IS T R A R
X ► 001 J U L IO D A V IL A 232426 0 3 /0 1 /0 0 ! 50 ETEN
001 J U L IO D A V IL A 232426 1 0 / 0 2 /0 0 5 0 J.L.O .
DATOS DEL VENDEDO R
VENDEDORES 001 J U L IO D A V IL A 232426 2 2 /0 2 /0 0 ! 600 TUM AN
JU CODIGO
por 0 02 T E R E S A U B IL L U S 362166 2 5 /1 2 / 9 9 2 5 0 L A V IC T O R IA
0 02 T E R E S A U B IL L U S 362166 0 6 / 0 1 /0 0 ! 1 0 0 J .L O.
J U LIO D A V I LA
T E R E S A U B ILLU S 0 02 T E R E S A U B IL L U S 362166 0 2 /0 2 /0 0 ! 1 0 0 PO M A LC A
NOMBRE
NOEM I M O NTAÑO 0 02 T E R E S A U B IL L U S 362166 0 5 /0 2 / 0 0 5 0 PO M A LC A
JO R G E C A S TR O 1232426 0 02 T E R E S A U B IL L U S 362166 2 2 /1 0 / 9 9 1 00 PCI M A LC A
TE LÉ FO N O
0 04 JO R G E C A S T R O 201665 1 5 /0 2 /0 0 2 0 0 LA V IC T O R IA
VER SUS V E N TA S
<| --------------- — > r

V E N T A S R E A L IZ A D A S
FE C H AI M O N T O lD IS T R IT O
001 0 3 /0 1 /0 0 5 0 ET E N
001 1 0 /0 2 /0 0 50 J.L.O [T<|< ¡V E N D E D O R E S ► TÜTl | l < | < ¡V E N T A S » |m | Il<[ 4 IIN F O R M E ► | h] S A LIR |
001 2 2 /0 2 /0 0 6 00 TU M AN

Antes de comenzar a desarrollar la aplicación debe crear la base de datos y las


[ 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] SA LIR dos tablas, luego crear una consulta donde se unan las dos tablas anteriores.

402 G ru po E d it o r ia l Megabyte" G ru po E d it o r ia l Megabyte 403


.......... _ ................................ o
éS R k > VISUAL BASIC como debe ser.. . < CAPITULO IX: Manejo de Base de Datos
UNIENDO TABLAS DE UNA BASE DE DATOS V E N T A N A PARA E S C R IB IR L A S IN S T R U C C IO N E S SQ L
iw V is D a ta :C :\A ic h iv o s de p ro g ra m a \D e v S tu d io \V B \T IE N D A .m d b
Para u n ir dos o más tablas se u tiliz a la instru cció n S Q L lla m a S E L E C T Archivo Utilidad Ventana Ayuda
e xplicada en la página N ° 343. Su sintaxis para u n ir tablas es:
iL a jw m _ Ld
JDJXJ me
SELECT * FROM Nomb_Tablal INNER JO IN Nomb_Tabla2 ON Condición »H In s tru c c ió n SQL
SI f Ü 1 Properties

E l asterisco ( * ) ind ica que al unirse las tablas deben pasarse todos los cam ­
.+: 1 0 V E N D E D O R E S
é 1 0 V E N TA S
~ I
pos de ambas tablas.

Si Usted, desea in d ic a r sólo algunos campos debe e scrib irlo s en lug ar del
asterisco separados p o r una coma.

Por ejem plo: -J


L is to U s u a r io : a d m * n ^
Para u n ir la tabla Vendedores con la tabla Ventas con todos sus campos se
debe e scrib ir lo siguiente: En esta ventana debe e s c rib ir las instrucciones para u n ir las dos tablas.
C u a n d o la in s tr u c c ió n no a lc a n z a en la v e n ta n a , e l c u rs o r s a lta
Select * From Vendedores InnerJoin Ventas On Vendedores.Codigo=Ventas.Codigo
autom áticam ente a la siguiente línea (no pulse ña tecla E N T E R ).
Para u n ir la tabla Vendedores con la tabla Ventas pero sólo los campos
C o d ig o , N o m b re Fecha y M o n to , se debe e sc rib ir en una sola línea lo si­
guiente:

Select Vendedores.Codigo, Nombre, Fechaventa, Monto From Vendedores Inner Join


Ventas On Vendedores.Codigo=Ventas.Codigo

Estas instrucciones se deben e s c rib ir en la ventana de Instrucciones S Q L


que se visu a liza al crear las tablas para que al grabarla se obtenga una
consulta, donde estén unidas las dos anteriores la cual se puede u tiliz a r casi E l b o tó n E je c u ta r (Exécuté), perm ite ejecutar las instrucciones SQ L. Debe
com o cu a lq u ie r otra tabla, pero donde no puede adicionar, m o d ific a r, etc., u tiliz a r este botón para p ro ba r la in s tru c c ió n escrita.
porque es de sólo lectura. El botón B o r r a r (C lear), borra la instrucción S Q L de la ventana para e scribir
una nueva.
NOTA: El botón G u a r d a r (Save), pide el nom bre de la C onsulta a crear donde se
1. C u a n d o e s p e c ifiq u e lo s n o m b re s a v is u a liz a r , debe e s c r ib ir lo s alm acenará el contenido de las dos tablas unidas.
correctam ente, co m o se encuentran en la estructura. Por e je m p lo, si Cuando un c lic k en el botón Guardar se muestra el siguiente mensaje, pidiendo
escribe N om bres en lu g a r de N om bre , se m uestra el mensaje: el nom bre de la consulta a crear:

VisData
E s c rib a u n v a lo r p a ra e l p a rá m e tro : | A c e p ta r

C a n c e la r Escriba el nombre del QueryDef: A ceptar

Cancelar

2. A l u n ir las tablas puede aplicar todo lo explicado en el tema de instrucciones


S Q L (página N ° 343) com o por e jem plo Where, O rder By, etc.

404 G r u po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 405


^ VISUAL BASIC como debe ser.. . <
CAPITULO IX: Manejo de Base de Datos
f H ? IM1 Ih ^rsrn
Después de asignar el nombre y hacer click en A c e p ta r , V isu a l Basic
le pregunta si es una consulta de p a s o a tra vés de. Haga c lic k en N o.
Luego, se m uestra el nom bre de la consulta creada ju n to a las dos tablas. En F i a rn e 4
<*“■ O p tio n l C om m ands j C om m andC
el eje m p lo la consulta se lla m a In fo rm e .

EF
EBS5¡mBH3ZEI
A rc h iv o U tilid a d V e n ta n a A^

a l i gol » I b
Si
g il In s t r u c c ió n S Q L
g ; E S * P r o p e r t ie s
í+ M i VENDEDORES E je c u ta r
lf. (p VENTAS
S E L E C T * F R O M V E N D E D O R E S IN N E R J O IN V E N T A S O N
ÉJ É P IN F O R M E _____
V E N D E D O R E S , c o d ig o — V E N T A S . C O D IG O Ih I * | p»ta1 ► I » ll | l< | 4 l o a l» 2 ► 1M i | w l « Í 0 a la 3 ► | H l C o rn M n d? |
-------------------- —--------------.--- ------- —---—...................... .... ........................... |
PASO N° 02: AS IG N AR LAS PROPIEDADES A LOS CONTRO LES

:
CONTROL DATA
L is to U s u a r io : a d m in C O N TRO L DATABASENAM E RECORDSOURCE C AP TIO N
Datai Tienda Vendedores Vendedores
D E S A R R O L L O D E L A A P L IC A C IÓ N N° 60 Data2 Tienda Ventas Ventas
PASO N° 01: DIBUJAR LOS CONTROLES Data3 Tienda Informe Infome
DECO M BO
!T»i. o¡ CONTROL ROWSOURCE L IS T F IE L D S TY LE
Lot.olí
DBcombol D atai Nombre 1
DBcombo2 Datai Nombre 1
(DBConiol L a b e l2

Label J ETIQ U E TAS


LaboM Labol/ CONTROL DATASOURCE DATAFIELD
Commandl
Label5 Datai Codigo
B= Labeló Datai Nombre
Label7 Datai Telefono
Label 12 Datai Codigo
Label 13 Datai Nombre
Im I < l oXTi ►Ih I I m'I « I d <»»<..? V 1►!] í M i « i r»v.^-)►1» il Command? Label 14 Datai Telefono

El resto de Etiquetas y Comandos sólo la propiedad Caption como se muestra en


jr la aplicación
L«b«l8 CAJAS D E T E X T O
Jr . ........ CONTROL DATASOURCE DATAEIELD
I O I.«bel1 3
Textl Data2 Codigo
L aboli I Loboli 4
Cornmand2
Text2 Data2 Fechaventa
fr'^rr Text3 Data2 Distritoventa
Label I6 Commands Text4 Data2 Monto
|t ««»i*
7
L aboll 0
Text5 En Blanco En Blanco
D B G R ID
CONTROL DATASOURCE
Ijñ L jl],. jtE a liiliJ '™ ü jtfl U iL s J " * ^ ' .*J £ D ^ ” 1-’
DBgridl Data3

406 G r u po E d it o r ia l Megabyte 407


G ru po E d it o r ia l Megabyte-^
d S S f e VISUAL BASIC como debe se r... CAPÍTULO IX: Manejo de Base de Datos
PASON"(«¡ESCRIBIR LAS INSTRUCCIONES PARALOS CONTROLES.
Instrucciones del botón REGISTRAR SU VENTA
Instr.. del evento FORM ACTIVATE Instrucciones del botón SALIR P rívate Sub C om m and2_C lick()
Prívate Sub Form_Activate() Prívate Sub Command7_Chck() F ram e3. Visible = True
Frame3. Visible = False End D B C om bo2. E nabled = F alse
End Sub End Sub
C o m m a n d l.E n a b led = F alse
PA G IN A N° 01 - VE N T A S D ata2.R ecordset.A ddN ew
T e x tl = Label 12 : Texl2 = D ate
Instrucciones del botón VER SUS VENTAS Text3. SetF ocus
Prívate Sub Commandl_Click() E n d Sub
D BG ridl .Visible = True Instrucciones del botón GRABAR Instrucciones del botón CANCELAR
DatcHRecoidSource= "SELECT*FROMVENIASWHERECODIGO ‘"&Label5& P r í v a t e S u b C o m m a n d 3 _ C lic k ( ) Private Sub Command4_Click()
Data2.Refresh Data2.Recordset. CancelUpdate
D a ta l.R e c o r d s e t. U p d a te
If Data2.Recordset.RecordCount = 0 Then
F ra m e 3 .V isib le = F a lse Frame3. Visible = False
MsgBox "El vendedor no ha realizado ninguna venta",64, "Lo siento"
E n d lf D B C o m b o 2 . E n a b le d = T rue DBCombo2.Enabled = True
DBCombol .SetFocus C o m m a n d 2 .E n a b le d - T rue Command2. Enabled = True
End Sub D a ta 3 .R e fre sh End Sub
Instrucciones del Control DBcombol (eventos Changey Click) D a t a l .R e fr e s h
Prívate Sub DBCombol_Change() D a ta l. R e fre sh
Dim DATOS As String E nd Sub
DATOS = "NOMBRELIKE & DBCombol &
Datal.Recordset.FindFirst DATOS P A G IN A N° 03 - L IST A D O
D BG ridl. Visible = False Instrucciones del botón VER
If D a ta l .Recordset.NoMatch Then P rivate Sub C om m and5_C lick()
Frame 1.Visible = False I f O ption 1 Then
Else Data3.RecordSource= "SELECT*FROMINFORMEWHEREDISTRITOVENTA= ‘"&Text5&
Framel.Visible = True
Else
E n d lf
End Sub I f IsD ate(Text5) Then
Data3.RecordSource= "SELECT * FROM INFORME WHERE FECHAVENTA=CDATE( Text5 &'")"
Prívate Sub D BCom bol_Click(Area As Integer) Else
DB Combo lJChange M sg B o x "NO HA IN G R E SA D O U N F E C H A C O RREC TA", 16, "V E R IF IQ U E "
End Sub E n d lf
E n d lf
PA G IN A N° 02 - R E G IS T R A R D ata3. R efresh
DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS”
Instrucciones del Control Dbcombo2 (eventos Change y Click)
I f D a ta3.R ecordset.R ecordC ount = 0 Then
Prívate Sub DBCombo2_Change()
Dim DATOS As String MsgBox "NO HAY REGISTROS QUE CUMPLEN LA CONDICIÓN",64, "LO SIENTO"
DATOS = "NOMBRE LIKE & DBCombo2 & E nd I f
Data 1. Recordset. FindFirst DA TOS E n d Sub
If Datal.Recordset.NoM atch Then Instrucciones del botón TODOS
Frame2. Visible = False : Command2.EnabIed = False P rivate Sub C om m andó_C lic k ()
Else D ata3.R ecordSource = "S E L E C T * F R O M IN F O R M E "
Frame2. Visible = True : Command2.Enabled = True D ata3. R efresh
E n d lf DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS"
End Sub
E n d Sub
Instrucciones del control OPTION1 Instrucciones del control OPTION2
Prívate Sub DBCombo2_Click(Area As Integer) Prívate Sub Option2_Click()
DBCombo2_Change Prívate Sub O ptionl_Click()
Labell9="Ingrese el Distrito" Labell9 - "Ingrese la Fecha"
End Sub
End Sub End Sub

408 G ru po E d it o r ia l 40 9
G ru po E d it o r ia l Megabyte
VISUAL BASIC como debe se r.. . CAPÍTULO IX: Manejo de Base de Datos

ERRORES MAS COMUNES


PREGUNTAS DE REPASO N° 09
Microsoft Visual Basic

Error '3131' en tiempo de ejecución : Ha escrito en forma incorrecta 1. E x p liq u e los com ponentes de una base de datos.
Error de sintaxis en la cláusula FROM. la instrucción Select. Por ejem­ 2. ¿Qué es la estructura de una tabla?
plo, no dejó espacio después
3. ¿Qué propiedades com o m ín im o se le deben asignar a una caja de textos
de la palabra WHERE.
o etiquetas para m ostrar el contenido de un campo?
4. E x p liq u e las p rincip ale s propiedades del c o n tro l Data.
lerminar Depurar Ayuda 5. ¿Cuál es la d iferen cia entre los controles D B lis t y D B com bo?
6. ¿Cuáles son los m étodos que perm ite n m anejar registros?
I Microsoft Visual Basic No ha ingresado información 7. ¿Qué es un cam po calculado?. E x p liq u e cóm o se pueden obtener
Error '3315' en tiempo de ejecución :
en el campo indicado antes de 8. E x p liq u e todo lo referente a la in s tru c c ió n S Q L Select.
grabar. 9. ¿Cuál es la ventaja de u tiliz a r variables tip o Recordset?
El campo 'ALUMNOS.OBSERVACIONES' no puede ser una cadena de
longitud cero. Por cada campo creado se pue­
10. E x p liq u e las propiedades del o bjeto F ield.
de indicar que puede quedar
vacío o no, a c tiva n d o o 11. E x p liq u e los m étodos BeginTrans, C om m itT ra ns y R ollbackT rans
desactivando la siguiente ca­ 12. E x p liq u e cóm o se puede alm acenar una fo to g ra fía en un campo.
’ • ..i-- i í K’ "■
silla del campo: 13. E x p liq u e la in s tru cció n In ne r Join.
-jf,L -, j Terminar Depurar =J Ayuda
P Permitir longitud cero 14. ¿Qué requisitos deben c u m p lir las tablas para que se unan?
15. ¿Cuáles son los errores más com unes cuando trabaja con base de datos
Microsoft Visual Basic
y cuales son las posibles causas.
Error '3426' en tiempo de ejecución : Le asignó al D B list las propie­ 16. ¿ C u á l es la d if e r e n c ia e n tre las p ro p ie d a d e s A llo w U p d a te y
Esta acción fue cancelada por el objeto asociado. dades DataSource y Datafield. A llo w A d d n e w del c o n tro l D B g rid ?
En un programa de consulta el 17. ¿Cuáles son las propiedades básicas que se le deben asignar al control
control D B list debe tener sólo
D ata?
las propiedades Rowsource y
Listfield. 18. ¿Cuál es la d ife re n c ia entre D B c o m b o y el C om bo?
Terminar i Depurar j] Ayuda 19. ¿C óm o se e vita que el conte nid o de los campos que se m uestran en las
cajas de texto se puedan m od ifica r.
Microsoft Visual Basic 20. ¿Cuál es la d ife re n cia entre los controles D B lis t y L ist?
Error '3020' en tiempo de ejecución : No se puede grabar o cancelar
Es muy importante que usted, se form u le nuevas aplicaciones
Update o CancelUpdate sin AddNew o Edit. un nuevo registro o las m odifi­
o intercambie aplicaciones propuestas entre sus compañeros
caciones realizadas sin antes
de estudio y desarrollarlas con la fin a lid a d de enriquecer
usar Addnew (botón adicionar)
sus conocim ientos
o Edit (botón modificar).

Depurar Ayuda

410 G r u po E d it o r ia l Megabyte'5 G ru po E d it o r ia l Megabyte 411


CAPITULO X

—Doten doi Pioducto---------


Nombre {a r r o z ”
V a le r d e C o m p ra

uuikjjd
F a c h a eJb V a n c r n i a n l d

I.Q.V. r 10.000
R r# o b d* C o m p ra m :m s
U t lid n d S / T TTSuC
F ttc iü de Vento (PÚbJicol f

PROGRAMACION
DAO
CAPÍTULO X: Programación DAO
En este ca pítulo se desarrollan entre otras, las siguientes a p lic a d -«es:

%. MANTENIMIENTO DE REGISTROS OSANDO << D.A.O. >>

Datos del Producto


Nombre |ARROZ
Valor de Compra jlOO
Utilidad % j-jo grabar
A
ACEITE -1 Fecha de Vencimiento j 30-09-2001 Cancelar
ALGODON
ARROZ
I.G.V.
Precio de Compra
Utilidad S/. &
Precio de Venta (Público)
Opciones Disponibles
d ?
Adicionar I Modificar I

. P R O G R A M A S D E L IS T A D O V E S T A D IS T IC A 35E 1
L IS T A D O S ■rfclCMEIMtta
TO TAL PO R VENDEDOR
T O T A L P O R D IS T R IT O
\LIZADAS
T O T A L P O R V E N D E D O R V D IS T R IT O
N V E N D E D O R E S CON M AS V E N T A S I k im im I I I
D IS T R IT O C O N M A Y O R V E N T A SEGUN EL M O NTO
M O N T O T O T A L V E N D ID O S E G U N L A C A N T ID A D
C A N T ID A D T O T A L DE V E N T A S J5ÖÖ 50
002 06-01 -2 0 0 0 100
005 06-01 -2 0 0 0 600
004 1 5 -0 2 -2 0 0 0 200
001 1 0 - 0 2 -2 0 0 0
L i_l
C A N T ID A D D E R E G IS T R O S M O S T R A D O S

C A N I ib Ä b

REG R ESAR I

G ru po E d it o r ia l Megabyte 415 4 ¡ g $
O
m à > VISUAL BASIC como debe ser...
CAPITULO X: Programación DAO
P R O G R A M A C IÓ N D A O
MÉTODOS PARA MANEJAR LAS BASE DE DATOS
L a program ación D A O (O bjetos de A cceso a D atos) perm ite m anejar la
in fo rm a c ió n de una base de datos sin el co n tro l D A T A . En este tip o de OPENDATABASE
p rogram ación la in fo rm a c ió n se m aneja a través de determ inados objetos A b re una base de datos. Su sintaxis es:
que tiene V isu al Basic.
SetVariable_BD=Opendatabase(“ Nomb_Base_Datos” ,Exclusivo,Modo,Origen)
L os objetos de acceso a datos más u tiliza d o s son:
Variable_BD
D BENGINE Es el nom bre de la v a riab le (O b je to ) que va a representar a la Base de
E l objeto D B E n g in e representa al m o to r de bases de datos M ic ro s o ft Jet. D atos en la aplicación . Se debe declarar tip o D A T A B A S E a n iv e l de fo r­
Es el o bjeto de n iv e l más alto y contiene y co n tro la todos los demás de la m u la rio (en la ventana de declaración del fo rm u la rio ) si sólo se va a u tiliz a r
je ra rq u ía de objetos de acceso a datos. en un fo rm u la rio , o a n iv e l de m ó d u lo (en la ventana de declaración del
WORKSPACE m ó d u lo ) si se va a u tiliz a r en varios fo rm u la rio s de una a plicación .
U n objeto W orkspace representa una sesión de un usuario. L a sesión de un N om b_B ase_D atos
usuario em pieza cuando éste se conecta a la base de datos y te rm ina cuando Es el nom bre de la base de datos que desea abrir. S i esta en una carpeta
c ierra la base de datos. d iferen te a la actual, debe espe cifica r tam bién la ruta.
DATABASE E xclusivo
Representa a la Base de Datos que se encuentra activa. Es un v a lo r ló g ic o (True o False). E l v a lo r True in d ic a que la base de datos
RECO RDSET se abre en fo rm a e x c lu s iv a (para un sólo usuario). E l v a lo r False in d ic a que
Representa todos los registros de una tabla o los que resultan de una consulta la base de datos se abre en fo rm a com p artida (para va rios usuarios).
con la in stru cció n S E LE C T . M odo
FIELD Es un v a lo r ló g ic o (True o False). E l v a lo r T rue in d ic a que la base de datos
Representa un cam po de una tabla. se abre en m odo sólo de lectura, es decir, no se puede m o d ific a r. E l va lo r
FIELDS False in d ic a que la base de datos se abre en m odo de lectura y escritura, es
Es una co le cción de objetos F IE L D y representa a todos los campos de una d e c ir se puede m odificar.
tabla. L a fo rm a de re fe rirn o s a un solo cam po está e xp lica d o en la página Origen
N ° 353 (Variables tip o Recordset). Se u tiliz a para in d ic a r los argum entos de cone xió n al m om ento de a b rir una
base de datos. E l argum ento orige n se expresa en dos partes: el tip o de la
NOTA base de datos, seguido de un punto y com a (;) y los parám etros opcionales.
C uando inicia una aplicación, Visual B a sic crea en fo r m a p re d eterm in a ­ E l tip o de la base de datos, com o p or ejem plo "O D B C ;" o "F o xP ro 2 .5" debe
da los o bjetos D B E N G IN E Y W O R K SP A C E (D B E ngine. W orkspaces(0)). indicarse en p rim e r lugar. Los argumentos opcionales van a continuación sin
E stos objetos se deben utilizar cuando n ecesite m a n ip u la r bases de datos un orden específico y separados p o r caracteres p unto y coma.
que tengan activada la seguridad o crear un alcance distinto de transacción.

Todos los objetos Database abiertos en un o bjeto W orkspace com parten un NOTA:
m ism o alcance de transacción com ún. Es decir, cuando se usa el m étodo S ó lo e l n o m bre d e la b a se de d a to s es obligatorio, el resto d e p a rá m e tro s
B eginT rans en una base de datos, se a p lica a todas las demás bases de e s o p c io n a l.
datos abiertas en el o bjeto W orkspace. D e l m ism o m odo, el uso del m étodo S i n o e sp e c ific a e l v a lo r p a r a lo s p a r á m e tr o s E x c lu s iv o y M o d o , su
C o m m itT ra n s contra una base de datos se a p lica al resto de las bases de va lo r p re d e te rm in a d o es FALSE.
datos abiertas en el o b je to W orkspace.

416 G ru po E d it o r ia l M e g a b y te
417
G ru po E d it o r ia l M e g a b y t e
ü f r VISUAL BASIC como debe ser.. . CAPÍTULO X: Programación BAO 41111
OPENRECORDSET DbF orwardOnly
A b re una tabla de una base de datos activada previam ente. Su sintaxis es: E l o b je to Recordset es una snapshot de desplazam iento hacia adelante.
O bserve que los objetos Recordset creados con esta o p c ió n no pueden
Set Variable_RS = Variable_DB.OpenRecordset(“ Nomb_Tabla” ,Tipo,Restricciones) d uplicarse y que sólo adm iten el m étodo M o v e N e x t para desplazarse por
los registros.
Variable_RS DbSQLPassThrough
Es la variable que va a representar a los registros de la tabla en la aplicación. Se e vita el procesador de consultas del m o to r de base de datos M ic ro s o ft
Se debe declarar tip o R E C O R D S E T en el m ism o n ive l que declaró la variable Jet. L a consulta especificada en el argum ento orige n de O penRecordset
de tip o D A T A B A S E . se traslada a un se rvid o r de O D B C para su procesam iento.
Variable_DB D bSeeC hanges
Es la variab le tip o DataBase que u tiliz ó para a b rir la base de datos. Genera un e rror en tie m p o de e jecución si o tro usuario m o d ific a los datos
Nomb_Tabla que se están editando.
Es el nom bre de la tabla que desea abrir. Tam bién puede e s c rib ir el nom bre
de una consulta que creó y grabó en la ventana de instrucciones S Q L, ade­ CLOSE
más puede e s c rib ir tam bién directam ente una in s tru cció n S Q L. C ie rra los objetos de acceso a datos, co m o p o r e je m p lo la base de datos y
Tipo tablas. Su sintaxis es :
Es o pcion al y se puede u tiliz a r sólo cuando abre una tabla, para in d ic a el tip o Variable.Close
de R ecordset con el que desea a brirla. Estos tipos pueden ser: D onde Variable es el nom bre del objeto que desea cerrar.
D bO penT able D bO penD ynaset D bO penS napshot
R estriccion es NOTA
Es o p cio n a l y consiste en una constante que asigna una re s tric c ió n para el L a s c o n sta n te s d b C o n s is te n t y d b ln c o n s is te n t son m u tu a m e n te
m anejo de la tabla que esta abriendo. excluyentes. Puede u tiliz a r una o la otra, pero no ambas en la m ism a
instancia de O penRecordset.
Estas constantes son: U tilic e el ind icad or dbSeeChanges cuando desee interceptar los cambios
realizados p o r o tro usuario u o tro program a de su sistema m ientras esté
DbDenyW rite: editando o e lim in a n d o el m ism o registro.
L o s demás usuarios no pueden m o d ific a r n i agregar registros. Todos los eventos u tiliz a d o s con el c o n tro l D A T A , co m o p o r e jm plo ,
DbDenyRead: FindF irst, M ove N e xt, etc., tam bién se pueden u tiliz a r en la program ación
L o s demás usuarios no pueden ve r los registros (sólo objetos R ecordset de DAO.
tip o tabla).
dbReadOnly
S ólo puede ve r los registros y los demás usuarios pueden m o d ific a rlo s .
DbAppendOnly
S ólo puede agregar registros nuevos(sólo objetos Recordset de tip o hojas de
respuestas din ám ica).
d b lnconsistent
Se p erm ite n actualizaciones inconsistentes (sólo objetos Recordset de tip o
hoja de respuestas d inám ica).
D bC onsistent
S ólo se perm ite n actualizaciones consistentes (sólo objetos Recordset de
tip o hoja de respuestas dinám ica).

G ru po E d it o r ia l Megabyte 419
Í Ü Ü b > VISUAL BASIC como debe ser. . . < 3§ ¡CAPITULO X: Programación DAO

ANTES DE PROGRAMAR CON PAO A P L IC A C IÓ N D E SA R R O L L A D A N° 61


L a siguiente aplicación perm ite dar m a n ten im ie nto a los registros de una
Para m anejar la in fo rm a c ió n de una base de datos usando D A O , debe rea­
tabla llam ada P R O D U C T O S que pertenece a una base de datos llam ada
liz a r los siguientes pasos:
V E N T A S . L a estructura de la tabla es:
1. D eclarar las variables tip o DataBase y tip o RecordSet en la ventana de
CAMPO T IP O TAM AÑO
declaración del fo rm u la rio o del m ódulo.
N o m b r e d e l P ro d u c to Text 25
P or eje m p lo, las siguientes instrucciones declaran la variab le D B tip o
DataBase y la variab le RS tip o RecordSet para que se u tilic e n en un V a lo r de C o m p ra S in g le ( S e n c illo )
solo fo rm u la rio porque de declaran en la ventana de declaraciones del P o rc e n ta je de U tilid a d S in g le ( S e n c illo )
F ech a de V e n c im ie n to D a te /T im e (F e c h a /H o ra )
form ulario.
Por cada registro que se v is u a liz a se debe m ostrar el IG V que se obtiene
fP P ro y e c lo l - F o rm i (C ó d ig o_________
) I3 H E ! del V a lo r de C om pra (1 8 % ), el P re cio de C o m p ra ( IG V más V a lo r de
| (G e n e r a l) -r | j ( D e c la ra c io n e s ) | C om pra), la U tilid a d en soles y el Precio de Venta (P recio de C om pra más
D a ta b a s e
la U tilid a d ).
D ir a DB A s M A N T E N IM IE N T O D E R E G IS T R O S U S A N D O << D A O. >>
D im RS A s R e c o rd se t ■TT D a lo s d e l P r o d u c t o

h r njJJ ± r N o m b re Ja r r o z
V a lo r d e C o m p ra {Too
U tilid a d % j 10 g ra b a r |
2. A b r ir la Base de Datos y la tabla o tablas en el evento F o rm _ A c tiv a te 1*
[ a c e it e H e c h a d e V e n c im ie n to 13 0 -0 9 -2 0 0 1 C a n c e la r |
del fo rm u la rio . ALG O D O N
(A R R O Z Jül
Por ejem plo, las siguientes instrucciones abren la base de datos llam ada
V E N T A S que se encuentra en C :\M IS D O C U M E N T O S y la tabla llam ada P r e c io d e C o m p ra

U tilid a d S / . r tty •»«a


P R O D U C T O S de tipo Dynaset. Si la base de datos se encuentra en la
P r e c io d e V e n t a ( P ú b lic o ) f 129.81X1
carpeta predeterm ina del V isual Basic, no es necesario in d ica r su ruta.
Opciones I
A d ic io n a r

jForm .............. ............d j Activate “3


P riv a te Sub Form A c tiv a te () zl P A S O N ° 01: D IB U J A R L O S C O N T R O L E S
Set DB = OpenDatabase ("C:\M IS DOCUMENTOS\ VENTAS" )
Set RS = DB.OpenRecordset("PRODUCTOS", dtoOpenPynaset) En esta a plicación ya no se u tiliz a el c o n tro l Data, entonces no se u tiliz a
End Sub .... . -Ú tam poco el c o n tro l D bco m b o , n i D b lis t. L os nom bres de los productos se
m uestran en un c o n tro l C om bo para que se puedan co nsu ltar y a las cajas
a <I 1 . è de texto ya no se les asigna las propiedades D atasource n i D ataF ield.
3. Verificar que se encuentre activada la casilla de M icrosoft D A O 3.5 Object EB2EÜQI
Lib ra iy (o similar) en la opción Proyecto/Referencias (Ver página N ° 354). F re m e i
L a b e ll JfTexH
Si no se encuentra activada esta ca silla se m ostrará el siguiente mensaje L a b e l2 j T e x t2
al ejecutar la a plicación : L a b e l3 ]T e x t3
jC o m b o l I
LabeM JT e x t4
11 iiii i i i — — n
L a b e l5 L a b e l9
E rro r d e c o m p ila c ió n :
L a b e l6 L a b e ll O
F ra m e 3
L a b e l7 L a b e ll 1
N o s e h a d e fin id o e l tip o d e fin id o p o r e l u s u a rio C om m and6 I Com m and7 j
L a b e l8 L a b e ll 2

F ra m e 2
í A c e p ta r ]| Ayuda | C om m and3 j C om m and4 j C om m and5 j
C om m and! O

420 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 421


é S ñ ík ' VISUAL BASIC como debe ser... CAPÍTULO X: Programación DAO
PASO N° 02: ASIGNAR LAS PROPIEDADESALOS CONTROLES. Sub CALCULARO
Para desarrollar esta aplicación , debe asignar la propiedad C ap tion a las Label9=Format(Val(Text2) *18/100, "###,##0.000")
etiquetas, botones de comandos y Fram e com o se m uestra en la a plicación lflsNioneric(Text2)TheiiLabell0=Fom\at{CDec{label9)+CDec(Text2), "###,##0.000")
a desarrollar y además: ¡fIsNianeric(Text3)Then Labelll=Fonnat(CDec(LabeU0)*CDec(Text3yi00, “###,##0.000")
Las etiquetas N ° 9, 10, 11 y 12 deben tener en su propiedad B o rde rS tyle el Labell2=Fomiat(CDec(LabeU0)+CDec(labelll), “###,##0.000")
v a lo r 1 - F ix e d S in g le . End Sub
Los botones de com andos N ° 6 , 7, 8 y 9, deben tener en su propiedad S tyle
el v a lo r 1 - G ra p h ic a l y en su propiedad P icture el g rá fic o ind icad o o
NOTA : L a fu n c ió n Cdec, c o n v ie rte un v a lo r a D e c im a l.

cu a lq u ie r o tro que usted desee. Instrucciones del evento Form_Load


E l co n tro l C o m b o l debe tener en su propiedad S tyle e l v a lo r 1 -S im p le Prívate Sub Form_Activate()
C o m b o para co nsu ltar a los registros escribiendo las in ic ia le s de su nom bre Set DB = OpenDatabase( “C:\MIS DOCUMENTOSWENTAS ”)
y para visu a liz a r los nom bres de los productos ordenados alfabéticam ente, Set RS = DB.OpenRecordset( “PRODUCTOS”, dbOpenDynaset)
debe tener en su propiedad Sort el v a lo r T ru e. ACTUALIZAR,COMBO
Frame l.Enabled = Falsea
PASON"03:ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES. MUESTRA
D e fin ir las variables tip o Database y Recordset y otras variables que se End Sub
u tiliz a n en la a plica ció n en la ventana de d eclaración d el fo rm u la rio .
Instrucciones del Botón Grabar Instruc. del Botón Adicionar
H Proyectol - Form! (Código) 1-lnH Prívate Sub Command¡_Click() Prívate Sub Command3_Click()
On Error GoTo INFORMA RS.AddNew
[(General) ▼ (Declaraciones) ▼ RS(0) = Textl DESACTIVAR
RS(1) = CDec(Text2) XNOMBRE = Textl
Dim DB As Database * RS(2) = CDec(Text3) XVALOR = Text2
Dim RS As Recordset — RS(3) = CDate(Text4) XUTILIDAD = Text3
Dim XNOHBRE, XVALOR, XUTILIDAD, XFECHA As String v| RS. Update XFECHA = Text4
Jinn

H| A CTUALIZARJCOMBO DESACTIVAR
1

5 ACTIVAR Textl =
Exit Sub Text2 - 0
Crear los siguientes procedim ientos: ¡NFORMA: Text3 = 0
MsgBox “No Se Pueden G rabar”, 64, Text4 = Date
Sub DESACTIVAR() Sub ACTUALIZAR JJOMBOQ “Verifique” Textl.SetFocus
Combo 1.Enabled = False Combo l.C lear End Sub End Sub
Frame ¡.Enabled - True RS.MoveFirst
Frame2.Enabled = False Do While Not RS.EOF Instruc. del Botón Cancelar Instruc. del Botón Modificar
Frame 3. Enabled = False Combol.Addltem (RS(0)) Prívate Sub Command2_Click() Prívate Sub Command4_Click()
End Sub RS.MoveNext Textl = XNOMBRE RS.Edit
Loop Text2 = XVALOR DESACTIVAR
Sub ACTIVAR() RS.MoveFirst Text3 = XUTILIDAD XNOMBRE = Textl
Combo 1.Enabled = True End Sub Text4 = XFECHA XVALOR = Text2
Frame ¡.Enabled - False ACTIVAR XUTILIDAD = Text3
Frame2. Enabled = True SubMUESTRA() End Sub XFECHA = Text4
Frame 3. Enabled = True Textl = RS(0) Textl.SetFocus
End Sub Text2 = RS( 1) End Sub
Text3 = RS(2) Instrucciones del Botón Eliminar
Text4 = RS(3) Prívate Sub CommandS_Click()
CALCULAR IfMsgBox("ESTASEGURODEELIMINARESTEPRODUCTO", 36, "CUIDADO")- 6 Tlien
End Sub RS.Delete
El procedimiento ActualizarjCombo, borra el contenido del Combol y muestra CommandSjClick
E n d lf
nuevamente todos los nombres de los productos. El procedimiento Muestra, visualiza ACTUALIZARJCOMBO
los datos del registro actual en las cajas de texto y llama al procedimiento Calcular. End Su

422 Grupo Editorial Megabyte-^ G ru po E d it o r ia l Megabyte 423


VISUAL BASIC como debe se r... CAPÍTULO X: Programación DAO * € ¡¡¡¡1
Instruc. del Botón Siguiente Instruc. del Botón Anterior
Prívate Sub Command6_Click() Prívate Sub Command7_Click() C O N T R O L M SF L E X G R ID
RS.M oveNext RS.MovePrevious
IfR S.E O F Then IfRS.B O F Then
M sgB ox”Ultimo registro”, 64, “C uidado’ MsgBox “Primer registro ” , 64,
RS.MovePrevious “Cuidado" E l M s F le x g rid es un c o n tro l que perm ite m ostrar in fo rm a c ió n de una o mas
Else RS.MoveNext tablas en fo rm a de listad o s im ila r al c o n tro l D B g rid . Se d iferen cian porque
M UESTRA Else el M s fle x g rid perm ite trabajar usando el c o n tro l Data y con la program ación
E n d lf MUESTRA
D A O , en cam bio el D B g rid sólo trabaja con el c o n tro l Data. Si va a u tiliz a r
End Sub E n d lf
End Sub el M s fle x g rid con un c o n tro l Data, só lo le debe a signar la p ropiedad
Instruc. del Botón Primero DataSource. O tra d ife re n cia entre estos es que el M s fle x g rid no perm ite
Prívate Sub Command8_Click() Instrucciones del Botón Ultimo m o d ific a r los registros que muestra (sólo de lectura), pero perm ite ordenar
RS.M oveFirst Prívate Sub Command9_Click() y rea liza r cálculos con los datos. En la ventana de com ponentes este control
MUESTRA RS.MoveLast se llam a M ic ro s o ft F le x G rid C on trol.
End Sub MUESTRA
End Sub Sus p rincipales propiedades son:
ALLOW BIGSELECTION
Instrucciones del Control Combol (Evento Change)
In dica si al hacer un c lic k en el encabezado de la fila o colum na se selecciona
Prívate Sub Com bol_Change()
Dim C A í String todo su contenido.
C = “[NOM BRE DEL PRODUCTO] LIKE “‘ + Combol + ALLOW USERRESIZING
RS.FindFirst C In dica si el usuario puede m o d ific a r el tam año de las fila s y /o colum nas. Los
MUESTRA valores que se le puede asignar son:
End Sub 0 N o p erm ite m o d ific a r
1 Perm ite m o d ific a r el tam año sólo de las colum nas.
Instrucciones del Control Combol (Evento Click)
Prívate Sub Combo 1_Click() 2 Perm ite m o d ific a r el tam año sólo de las fila s .
C om bol jC hange 3 Perm ite m o d ific a r el tam año de fila s y colum nas.
End Sub BA C K C O LO R
A sig n a el c o lo r de fo n d o para todas las celdas no fijas.
Instrucciones del evento Change de Text2 y text3. BA C K C O LO R BK G
Estas instrucciones llaman al procedimiento Calcular para que al ingresar o modificar A s ig n a el c o lo r para el fo nd o del co n tro l.
el Valor de Compra y la U tilidad se muestren inmediatamente los resultado. BA CK CO LO RFIX ED
A sig na el c o lo r de fo n d o para las fila s y colum nas fija s
Prívate Sub Text2_Change()
CALCULAR BA CK CO LO RSEL
End Sub A sig n a el c o lo r de fo n d o para las celdas seleccionadas.
COL
Prívate Sub Text3_Change() Selecciona la co lu m n a de una celda. Esto se rea liza dentro de un program a.
CALCULAR CO LALIG NM ENT
End Sub Establece cóm o se deben alinear los datos en una colum na. Los valores que
Instrucciones del Botón Salir puede tom ar son:
Prívate Sub CommandlO_Click() 0 izqu ierda 1 A lin e a c ió n derecha 2 C entrado
RS. Cióse Por ejem plo, la siguiente instru cció n m uestra en el centro los datos de la
DB. Cióse c o lum na N ° 2 .
End M SFlexGridl .ColAlignment(2) = 3
End Sub

424 G r u po E d it o r ia l Megabyte < G ru po E d it o r ia l Megabyte 425


VISUAL BASIC como debe ser. . . CAPÍTULO X: Programación DAO *111111^
C O L W ID T H M ER G EC ELLS
A sig na un ancho a una colum na. Por ejem plo la siguiente in stru cció n asigna Perm ite que las celdas con el m ism o conte nid o se puedan agrupar. Para e llo
un ancho de 500 tw ip s a la co lum na núm ero 1. debe de ordenar las fila s o colum nas. Esta p ropiedad se u tih z a ju n to con las
MSFlexGridl. ColWidtli(1) = 2000 propiedades M a rg e C o l y M ergeR ow .
C O LS Los valores que puede tener son:
In d ic a la cantidad de colum nas que debe tener el control. T E X x l l ^ Y L E ^1'3re ^ Restrin2e ^ ^ as 3 Restringe las columnas 4 Restringe ambas
DATASOURCE
Se u tiliz a cuando trabajam os con un co n tro l Data y perm ite in d ic a r la tabla Establece el e s tilo de las letras de las celdas no fijas.
MERGECOL
cuyo contenido querem os m ostrar en este co ntrol.
P e rm ite in d ic a r qué c o lu m n a se debe agrupar. P o r e je m p lo , para in d ic a r
F IX E D C O L S
que se agrupen los re g is tro s p o r la 2do. C o lu m n a (c a m p o ) se escribe
ín d ica la cantidad de colum nas fija s que debe tener este c o n tro l. E l va lo r M s fle x g rid 1 .C o l(2 ) = T ru e
que se ind iqu e debe ser m enor que la cantidad de colum nas. MERGEROW
F IX E D R O W S Perm ite in d ic a r qué fila se debe agrupar.
In d ica la cantidad de fila s fija s que debe tener este co n tro l. E l v a lo r que se R O W H E IG H T
in d iq u e debe ser m enor que la cantidad de fila s. Establee la a ltura de una fila . Por e je m p lo la siguiente in s tru cció n asigna
FO RECO LO R una altura de 500 tw ip s a la fila núm ero 1
A s ig n a el c o lo r de las letras de todas las celdas no fijas. M S F le x G r id l .R o w H e ig h t( l) = 5 0 0
F O R E C O L O R F IX E D SC R O LLBAR S
A s ig n a el c o lo r de las letras para las fila s y colum nas fija s Permite asignar una barra de desplazamitno que se visualizará cuando los datos no
alcancen en el tamaño asignado al control. Los valores que se le pueden asignar son:
FO RECO LO RSEL
0 N in g u n a 1 H o riz o n ta l 2 V e rtica l 3 A m bas
A s ig n a el c o lo r de las letras de las celdas seleccionadas. SORT
F O R M A T S T R IN G Indica la form a de ordenar los datos mostrados en el control. Para indicar la
A s ig n a un fo rm a to para las fila s y colum nas fija s . En este fo rm a to se puede colum na por la cual se deben ordenar, debe u tiliz a r la propiedad C ol. Los valo­
in d ic a r el tam año de las celdas, su a lineación y el texto que deben visualizar. res que puede tom ar son:
E l fo rm a to de cada co lu m n a se debe separar p o r el carácter A L T + 124 (|). 0 Ninguna
A l in ic io de cada fo rm a to puede e s c rib ir los caracteres de a lineación < 0 G enérica ascendente
(Izq u ie rd a ), A (C e ntro ) o > (D erecha). T am bién puede e s c rib ir un punto y 1 G enérica descendente
com a el cual in d ic a que el texto fo rm a to será para las fila s , en éstos casos 3 N um érica ascendente. C on vierte las cadenas a núm eros
4 N um é rica descendente
ya no se usan los caracteres de alineación.
5 Cadena ascendente. N o d istingue m ayúsculas y m inúsculas
Ejemplo:
6 Cadena descendente. N o distin gu e m ayúsculas y m inúsculas
Las siguientes instrucciones asignan un fo rm a to para las colum nas. Los
7 Cadena ascendente. D isting ue m ayúsculas y m inúsculas
nom bres se visua liza rán alineados por la izquierda, el te léfo no en el centro y 8 Cadena descendente. D isting ue m ayúsculas y m inúsculas
el sueldo a la derecha. Los espacios que se dejan en blando in d ica n el ancho Por ejem plo, las siguientes instrucciones ordenan los datos p o r la segunda
para cada colum na. co lu m n a en fo rm a ascendente.
F = "< NOM BRES |A TELEFONO \> SU ELD O " M s F le x g r id l .C o l = 2
M S F le x G r id l. F o n n a tS tñ n g = F M s F le x e r id l.S o r t = I
G R ID C O L O R TEXT
A s ig n a un c o lo r para las lineas no fija s del co n tro l. Por e jem plo, la siguiente Perm ite obtener el co nte nid o de la celda activa o asignarle un valor. Por
in s tru cció n asigna el c o lo r azul a las lineas no fija s del M s fle x g r id l. ejem plo, las siguientes instrucciones asignan el texto “ In fo rm a c ió n ” a la
celda de la co lu m n a 2 y fila 1.
M S F le x G r id l .G r id C o lo r = R G B (0 , 0, 25 5 )
M S F le x G r id l .C o l = 2
G R ID C O L O R F IX E D M S F le x G r id l .R o w = 1
A s ig n a un c o lo r para las líneas fija s del co n tro l. M S F le x G r id l .T ext = " In fo rm a c ió n "

G ru po E d it o r ia l Megabyte 427 W »
|> VISUAL BASIC como debe ser.. . CAPÍTULO X: Programación DAO
TEXTMATRIX A P L IC A C IÓ N D E SA R R O L L A D A N° 62
Perm ite obtener el contenido de una celda indicada p o r el num ero de fila y C on la m ism a base de datos y tabla anterior, desarrollar el siguiente programa:
colum na. Por ejem plo, la siguiente instrucción muestra en Label 1 el conteni­
do de la celda de la fila 2 y co lum na 1.
L a b e l 1 = M S F le x G r id l .T extM a trix(2 , 1) AÑO DE VENCIMIENTO PORCENTAJE DE DESCUENTO 2

TEXTSTYLEFIXED
Establece el e stilo de las letras de las celdas fijas. 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
L os valores que se les puede asignar a las propiedades anteriores son: 0 2 CAFE 15.00 65.00 * 10-10-2000 2.70 17.70 11.51 29.21
texto norm al, 1 R e lie v e , 2 In c ru sta d o ,3 R elieve con so m b rea d o y 4 __ 3 FRIJOLES
4 LECHE
25 00
8.00
1 0 .0 0 *
2.00 X
31-12-2005
16-09-1999
4.50
1.44
29.50
9.44
2.95
0.19
32.45
9.63
In c ru s ta d o c o n so m b re a d o . 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
W ORDW RAP __ 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
Acepta un valor True o False que indica si el texto de una celda se puede truncar
PARA ORDENAR. HAGA CLICK EN LA COLUMNA QUE DESEA
entre dos palabras o si una palabra se extenderá pasado el borde de la celda.
MÉTODOS DEL CONTROL MSFLEXGRIP
AD DITEM Este programa muestra todos los campos de la tabla productos y los siguientes
Perm ite a d icio n a r fila s al c o n tro l M s F le x g rid . campos calculados: IG V (18% del V alor de C om pra), Precio de C om pra (IG V
Su sintaxis es: M s F le x g r id .A d d ite m (“T e x to ", P o sició n ) + V a lor de Com pra), U tilid a d en Soles (Precio de Com pra por el Porcentaje de
T exto es el te xto de desea alm acenar en la fila que adiciona. En fo rm a U tilid a d entre 100) y el Precio de Venta (Precio de Com pra + U tilid a d en
predeterm inada, este te xto se coloca en la p rim e ra co lu m n a (Izqu ierda ). Si soles). También ordenar los registros por el campo donde se haga c lic k , además
deseamos a d icio n a r te xto a diferentes colum nas al m ism o tiem po, se debe debe mostrar sólo los productos que se vencen en un año ingresado o los que
u tiliz a r el carácter de salto de colum na: V B T A B . tienen un determ inado porcentaje de utilidad.
P o sic ió n es un v a lo r o p cio n a l que in d ic a dónde se va a a d ic io n a r la nueva Esta aplicación está desarrollada en una nueva aplicación. Si usted, desea de­
fila . N i no lo in d ica , la nueva fila se ubica al fin a l del co ntrol. sarrollarla en la m ism a aplicación anterior (Form 2), entonces debe de declarar
CLEAR las variables D B y RS en un m ódulo con la palabra P U B L IC y el evento Form
B o rra la in fo rm a c ió n m ostrada en el co n tro l, pero no el num ero de fila s y Actívate del fo rm u la rio vo lve r a abrir la base de datos y la tabla.
colum nas que contiene. Por e je m p lo: M s F le x g rid .C le a r. A q u í se u tiliz a el m étodo F in d N e x t que p erm ite buscar el siguiente registro
M OVE que cum pla una condición. Es algo sim ilar a F indfirst, FindLast y FindPrevious
M u e ve el co n tro l a una nueva p o sició n en la pantalla. que buscan el p rim e ro , u ltim o y a n te rio r reg istro que cu m ple una co nd ició n
Su sintaxis es: respectivam ente. T am bién se da ejem plos de cóm o m a n ip u la r un objeto
M s F le x g rid .M o v e C olum na, F ila , A n cho , A lto Recordset.
C olum na: es un v a lo r que in d ic a la p o sició n h o riz o n ta l donde deseamos
u b ica r el co ntrol. PASO NH LD IBUJA R LOS CONTROLES.
F ila : es un v a lo r que in d ica la p osición v e rtic a l donde deseamos u bicar el
Jíex*1 Commendi | La b e C |Text2 Command2 |
control.
A n c h o , es un v a lo r o p cio n a l que in d ic a el nuevo ancho del objeto.
A lto , es un v a lo r o p cio n a l que in d ica el nuevo alto del objeto.
R EM O V EITEM
B o rra toda una fila del co ntrol. ■Km
Su S intaxis es:
M s F le xg rid .R e m o ve lte m V alor Label3

D onde v a lo r in d ica qué núm ero de fila desea borra. Command4

428 G ru po E d it o r ia l Megabvte 429


G ru po E d it o r ia l Megabyte
^ É i i l É l * VISUAL BASIC como debe ser. . . <E5§ CAPÍTULO X: Programación DAO i
PASO N° 2:ASIGNAR LAS PROPIEDADES A LOS CONTROLES Instrucciones del Primer botón O K
Asígneles la propiedad C a p tio n a las etiquetas y botones de com andos y Private Sub C om m and l_ C lic k ( )
F o rm u la rio , com o se m uestra en la aplicación a desarrollar. I f Is N u m e ric (T e x tl) Then
PASO N°3:ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES Set RS = DB.OpenRecordset(“ SELECT * F R O M PRODUCTOS W H E R E
Primero declare las variables en la ventana de declaración del formulario. Si va a Y E A R ([F E C H A D E V E N C IM IE N T O ]) = “ + T e x tl)
utilizar varios formularios, declárelas en la ventana de declaración del Módulo. I f R S .R ecordC ount > 0 Then
Public DB As Database M S F le x G rid 1.V is ib le = True
Public RS A i Recordset LLEN AR
Dim IGV, PCOMPRA, USOLES, PVENTAAs Single Else
Dim E As String M S F le x G rid l. V is ib le = False
C rear el p ro ced im ien to L L E N A R . Este p ro ced im ien to m uestra los registros End I f
de la tabla productos en el c o n tro l M S F L E X G R ID 1 . End I f
Sub LLENARO End Sub
M S F le x G rid l .C lear
Instrucciones del Segundo botón O K
M S F le x G rid 1.C ois = 1
P riv a te S u b C o m m a n d 2 _ C lic k ()
M S F le x G rid l.R o w s = 1
I f IsN u m e ric (T e x t2 ) Then
R em E scriba la siguiente in stru cció n en una sola línea.
M S F le x G r id l .C le a r
M S F le x G rid 1.Form atString= “ N°J Productob V. Compra | Utilidad% | Vencimientol
M S F le x G r id l .C o ls = 1
I.G.V. I P.Compra I Utilidad S/. I P. Venta”
R S .M o v e F irs t M S F le x G r id l .R o w s - 1
E = vbTab ‘ A sig n a el carácter salto de co lum na a la variab le E R em E scrib a la sig u ie n te instrucción en una so la línea.
D o W h ile N o t R S .E O F M S F le x G rid l.F o m ia tS trin g - “N°\Producto |> V.Compra\Utilidad% \ Vencimiento\
IG V = R S (1) * 1 8 / 1 0 0 I.GV. | P.Compra \ UtilidadS/. \ P. Venta"
P C O M P R A = R S (1) + IG V R S .M o v e F irst
U S O L E S = P C O M P R A * R S (2) / 100 E — vbTab ‘A sig n a el ca rá c ter salto de c o lu m n a a la va ria b le E
P V E N T A = P C O M PR A + USOLES D o W hile N o t R S .E O F
IG V = F o rm a t(IG V , “ # ## ,## 0 .00 ” ) R S .F in d N e x t “[P O R C E N T A JE D E U T IL ID A D ] = “ + Text2
P C O M P R A = F o rm a t(P C O M P R A , “ ###,##0.00” ) I f N o t R S .N o M a tc h T h e n
U S O L E S = F o rm a t(U S O L E S , “ ### ,## 0 .00 ” ) IG V = R S (1 ) * 1 8 / 1 0 0
P V E N T A = F o rm a t(P V E N T A , “ ### ,## 0 .00 ” ) P C O M P R A = R S (1 ) + IG V
R em E scriba la siguiente in stru cció n en una sola línea. U S O L E S = P C O M P R A * R S(2) / 100
MSFIexGridl.AddItem (MSFIexGridl.Rows & E & RS(0) & E & P V E N T A = P C O M P R A + U SO LES
Format(RS(l), “ ###,##0.00” ) & E & Format(RS(2), “ ###,##0.00” ) & “ %” & IG V = F orm at(lG V , “# # # ,# # 0 .0 0 ")
E & RS(3) & E & IGV & E & PCompra & E & Usóles & E & Pventa) P C O M P R A = F orm at(P C O M P R A , “# # # ,# # 0 .0 0 ”)
R S .M o v e N e x t U S O L E S = F o n n a t( U SO LES, “# # # ,# # 0 .0 0 ”)
Loop P V E N TA = F orm atfP V E N T A , “# # # ,# # 0 .0 0 ”)
R S .M o v e F irs t R em E scrib a la sig u ien te instrucción en una sola línea.
End Sub MSFlexGridl.Addltem (M SFIexGridl.Rows& E& R S(0)& E &
Fommt(RS(l), “###,##0.00”) & E& Fonnat(RS(2), “###,##0.00”)& “%"&
Instrucciones del evento Form Actívate E & RS(3) & E & IGV& E & PCompra & E & Usóles & E& Pventa)
P r ív a te S u b F o rm _ A c tiv a te () End l f
S e t D B = O p e n D a ta b a s e (“C :\M IS D O C U M E N T O S W E N T A S ”) R S .M o v eN e xt
S e t R S = D B .O p e n R e c o r d s e tf “P R O D U C T O S ”, d b O p e n D y n a s e t) Loop
R e m M u e stra n lo s d a to s en el M sF le x g rid R S .M o v e F irst
LLENAR
End l f
E nd Sub
E nd Sub

430 G r u p o E d it o r ia l M e g a b y t e '^ j § ||f || G ru po E d it o r ia l Megabyte 431 ¿ w m


^Éü^ÉÉ» VISUAL BASIC como debe se r.. . CAPITULO X: Programación DAO m
Instrucciones del botón TODOS
P rív a te S u b C o m m a n d 3 _ C lic k ()
OTRAS INSTRUCCIONES SQL
T extl =
M S F le x G r id l .V isible = True L a instru cció n S E L E C T tam bién puede u tiliz a rs e con las palabras G roup
S e t R S = D B. O pen R eco rd set( “S E L E C T * F R O M P R O D U C T O S ”) B y y H aving.
LLENAR
E nd Sub GROUP BY
Perm ite agrupar los registros p o r uno a más campos de la tabla o consulta.
Instrucciones del control M sFlexG ridl Se puede u tiliz a r con las funciones:
Estas instrucciones ordenan los registros por el campo donde el usuario hace AVG O btiene la m edia a ritm é tica de los valores de un cam po.
C lick. Cuando se elige el campo tipo fecha se u tiliza una instrucción SQL. SUM O btiene la suma de los valores de un campo.
P r ív a te S u b M S F le x G r id l j C l ic k ( ) COUNT C uenta un co n ju n to de registros.
I f M S F le x G r id l. C ol = 4 Then M AX D evu elve el va lo r m á xim o de un c o n ju n to de registros.
S a ¡^M O [xM u rd ^‘‘SEUrr*mOMPIUXJCWS(MmBY[FECHADEVENCMENRjr) M IM D evuelve el v a lo r m ín im o de un c o n ju n to de registros.
LLENAR STDEV Devuelve n estimaciones de la desviación estándar de una muestra.
E ls e STDEVP D evu elve n estim aciones de la desviación estándar de una po­
M S F le x G r íd l .S o r t = 1 blación.
End If VAR D evu elve n estim aciones de la varianza de una muestra.
E nd Sub VARP D evu elve n estim aciones de la varianza de una pob la ción .

HAVING
Instrucciones del botón SALIR Perm ite seleccionar los registros agrupados que desea v is u a liz a r porque
P rív a te S u b C o m m a n d 4 _ C lic k () en estos casos no se puede u tiliz a r la palabra W here.
RS. C ióse
D B. C ióse Teniendo en cuenta la base de datos llamada TIENDA y sus tablas Vendedores y
E nd Ventas cuyas estructuras se indicaron en el capítulo anterior, se muestran los
E n d Sub siguientes ejemplos:
Contenido de la tabla Ventas
CODIGO FECHAVENTA MONTO IDISTRITOVENTA
001 03-01-2000 50 í TEN
CREA TUS PROPIAS B A SE DE DATOS Y 001 10-02-2000 50 J.L.O.
Contenido de la 001 22-02-2000 600 TUMAN
ESCRIBE LOS PROGRAM AS PARA tabla Vendedores 002 22-10-1999 100 POMALCA

MANEJAR S U INFORMACIÓN CODIGO NOMBRE ¡TELEFONOI


002
002
25-12-1999
06-01-2000
250 LA VICTORIA
100 J.L.O.
005 DANTE MILLAN ^666364
002 02-02-2000 100 POMALCA
004 JORGE CASTRO 201665
E N C O M P U T A C IÓ N , E L M EJOR 001 JULIO DAVILA 232426
002
004
05-02-2000
22-10-1999
50 POMALCA
200 LA VICTORIA
003 NOEMI MONTANO Í242126
PR O F E SO R ES: 002 TERESA UBILLUS 362166
004
004
22-10-1999
22-10-1999
100 J.L.O.
20J.L.O .
004 15-02-2000 200 LA VICTORIA

« LA PRÁCTICA » 004
005
005
22-10-1999
06-01-2000
01-02-2000
60 MONSEFU
600 REQUE
200 MONSEFU
005 22-10-1999 250 REQUE
005 04-01-2000 150 POMALCA

432 G ru po E d it o r ia l Megabyte " G ru po E d it o r ia l Megabyte 433


VISUAL BASIC como debe ser.. . CAPÍTULO X: Programación DAO
L a siguiente instru cció n une de las dos tablas: 3. M o s tra r el núm ero del mes, la cantidad de ventas y el to ta l en soles
vendidos en cada mes, pero sólo del año 2000 .
Select * From Vendedores Inner Join Ventas On Vendedores.Codigo= Ventas.Codigo
SEI^iCTMONIH(FECHAVENTA)ASMES,aDUNT(MONTH(FECmVENrrA))ASCANTIDAD,
VENDED0RES.C0DIG0 1NOMBRE 1TELEFONO |VENTAS.C0DIG0| FECHAVEN TA MONTOlDISTRITOVENTA | S U M (MONTO) AS TOTAL FROM INFORME GROUPBYMONTH(FECHAVENTA),
001 JULIO DAVILA 232426 001 03-01-2000 50ETEN
YEAR(FECHAVENTA)HAVINGYEAR(FECHAVENTA)=2(XX)
001 JULIO DAVILA 232426 001 10-02-2000 50 J.L.O.
001 JULIO DAVILA 232426 001 22-02-2000 600 TUMAN Resultado
002 TERESA U6ILLUS 362166 002 05-02-2000 50 POMALCA MES CANTIDAD 1 TOTALI
002 TERESA UBILLUS 362166 002 06-01-2000 100 J.L.O. 1 4 900
002 TERESA UBILLUS 362166 002 25-12-1999 250 LA VICTORIA 2 6 1200;
002 TERESA UBILLUS 362166 002 02-02-2000 100 POMALCA
002 TERESA UBILLUS 362166 002 22-10-1999 100 POMALCA 4. Mostrar el nombre y total vendido de los 2 vendedores que más han vendido.
004 JORGE CASTRO 201665 004 22-10-1999 100 J.L.O. SEUEOTOPNOMBRESUM(MONTO)AS[TOIALVENDIDO] FROM INFORME
004 JORGE CASTRO 201665 004 22-10-1999 20 J.L.O.
G R O U P B Y N OM B RE ORDERBY SUM(MONTO)DE¡SC
004 JORGE CASTRO 201665 004 15-02-2000 200 LA VICTORIA
004 JORGE CASTRO 201665 004 22-10-1999 60 MONSEFU Resultado
004 JORGE CASTRO 201665 004 22-10-1999 200 LA VICTORIA NOMBRE TOTAL VENDIDO 1
005 DANTE MILLAN 666364 005 22-10-1999 250 REQUE
DANTE MILLAN 1200
005 DANTE MILLAN 666364 005 06-01-2000 600 REQUE
005 DANTE MILLAN 666364 005 04-01-2000 150 POMALCA JULIO DAVILA 700
005 DANTE MILLAN 666364 005 01-02-2000 200 MONSEFU 5. M o s tra r el totar ve nd id o p o r cada vendedor en cada d is trito inclu yen do
la cantidad de ventas realizadas y el p rom edio de venta obtenido.
Desarrolle los siguientes ejercicios sabiendo que la consulta anterior SELECTNOMBREDISrRITOVENIA3UM(MONTO)AS [TUIALVIÍNDIDO],
se llama INFORME. COUNT(MONTO)ASCANT[DAD,FORMAr(AVG(MONTO),"###,##0.00")
ASPROMEDIOFROMINFORMEGROUPBYNOMBREJDISTRITOVENTA
1. M o s tra r el nom bre de cada vendedor, la cantidad de ventas realizadas y
Resultado
el to ta l vend id o ordenados alfabéticam ente. NOMBRE IDISTRITOVENTA TO TA LV E N D ID O l CANTIDAD 1PROMEDIO
► DAN TE MILLAN MONSEFU 200] 1 200.00
SFli3Crl’N(3MBRfiCDUNT(NOMBRE)ASCANTTDAD,SUMfMON'ID)AS'IürALJ DAN TE MILLAN POMALCA Í5 0 ¡ 1 150.00
2 425.00
FROMINFORMEGROUPBYNOMBREORDERBY SUM(MONTO)
DAN TE MILLAN REQUE 850
JO RGE C A S TR O J .L .O . 120 2 60.00
JO RGE C A 5 TR O L A VICTO R IA 400 2 200.00
JO RGE CA S TR O MONSEFU 60 1 60.00
Resultado JU LIO DAVILA E TEN 50 ; 1 50.00
JU LIO DAVILA J .L .O . 50 1 50.00

NOMBRE 1 CANTIDAD TOTALI JU L IO DAVILA TUMAN 600 1 600.00


TERESA UBILLUS J .L .O . 100 1 100.00
JORGE CA5TRO „5 580 TERESA UBILLUS LA VICTO R IA 250 1 250.00

TERESA UBILLU5 5 600; TERESA UBILLUS POMALCA 250 3 83.33

JULIO DAVILA 3 700 6. M o s tra r el nom bre del vendedor, año de las ventas, to ta l v e n d id o
DANTE MILLAN 4 1200 observación, c o m is ió n en porcentaje y co m is ió n en soles. Se debe
v isu a liza r el total vend id o p o r cada vendedor sólo del año 2000 , una
2. M o s tra r el nom bre de cada vendedor, la cantidad de ventas realizadas y observación que indique cum plió o no la venta m ínim a (650 soles), además
el total vendido, ordenados alfabéticam ente, pero sólo los que vendieron debe, m ostrar la co m is ió n en porcentaje y e soles que le corresponde.
más de 650 soles. SelectNombre,Year(Fechaventa)AsAño,Sum(Monlo)AsTotal,lifiTotal <650,"NoCumplioLaVenia
SELECTNOMBRECOUNT(NOMBRE)ASCANTIDAD,SUM(MONTO)ASTOTALFROM Minima'V’SiCumplióLaVentaMinima")AsObservación, Iif(Total<650,"0%"Jit(Total>=650AndTota!
<800,"5%","10^ "))As[ComLsion %!Jif(TotaI>=652AndTotal<800,Total*5/100,Total *l(V100)As
INFORME G R OU PBYNOMBRE HAVINGSUM(MONTO)>650ORDERBYSUM(MONTO)
[ComisionEnSoles] FromInfoimeGroupByNombre,YeaitFechaventa)HavingYear(Fechaventa)=2000
Resultado
Resultado NOMBRE 1 AÑOl TOTALl OBSERVACION 1COMISION X 1 COMISION EN SOLES
DANTE MILLAN 2000 950 SI CUMPLIO LA VENTA MINIMA 10% 95
NOMBRE CANTIDAD 1 TOTAL!
JORGE CASTRO 2000 200 NO CUMPLIO LA VENTA MINIMA 0% 20
JU LIO DAVILA 3 700
JULIO DAVILA 2000 700 SI CUMPLIO LA VENTA MINIMA 5% 35
DANTE MILLAN 4 1200 TERESA UBILLUS 2000 250 NO CUMPLIO LA VENTA MINIMA 0% 25

434 G ru po E d it o r ia l Megabyte § |§ |^ G r u po E d it o r ia l Megabyte 435


é S S N fr VISUAL BASIC como debe ser. v - C A P Í T U L O X: Programación DAO
A P L IC A C IÓ N D E SA R R O L L A D A N° 63 l ’ASO N° 2: ESC RIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
C o n la m i s m a base de Definir las variables DataBase y Recordset en la ventana de declaración del
datos y tabla anterior, <*, PROGRAMAS DE USTADO Y ESTADISTICA formulario.
desarrollar un i 1E3«»HE1 E S T A D IS TIC A Dim DB A í Database
VEN D E D O R E S
programa de listado y VEN TA S
Dim RS A s Recordset
>E LAS VENTAS REALIZADAS
estadística para los VE N D E D O R E S Y V E N T A S
Instrucciones deI evento Form Actívate
C O M ISIONES
vendedores y sus 1 002
1FE CHAVEN T A
25-12-1999
| M O N TO |- |
250 _ J
Prívate Sub Form_Activate()
ventas realizadas. Los 2 005 04-01 -2000 150 Set DB=OpenDctabase( “C!sARCHIVOSDEPROGRAMA\DEVSTUDIO\VIMENDA”)
programas se deben 3 001 03-01-2000 50 End Sub
4 002 06-01 -2000 100
llamar mediante un 5 00c 06-01 -2000 600 Instrucciones del procedimiento LL E N A R
6 004 15-02-2000 200
m e n ú de opciones: 7 001 10-02-2000 Sub LLENAR()
L lU
Rem Este procedimiento llena el MsFlexgridl con los registros de la tabla activa
Dim FORMATO, DATOS As String
CANTIDADDEREGISTROS MOSTRADOS Dim NCAMPOS, X A s Byte
NCAMPOS = RS. Fields. Count
fe PROGRAMAS DE USTADO Y ESTADISTICA RS.MoveFirst
LISTADO S ESTADISTICA
MS FlexGridl.Rows = 1
TOTAL POR VENDEDOR
TOTAL POR DISTRITO
MSFlexGridl .Cois = 1
\LIZADAS Rem ASIGNA EL ENCABEZADO AL CONTROL MSFLEXGRID
TOTAL POR VENDEDOR Y DISTRITO
N VENDEDORES CON MAS VENTAS I IU f l M T D I .I FORMATO = “ /W ° ”
— I DISTRITO CON MAYOR VENTA i n o SEGUN EL MONTO For X = 1 To NCAMPOS
MONTO TOTAL VENDIDO SEGUN LA CANTIDAD
FORMATO = FORMATO & Space(15) & vbTab & RS(X - lj.Nam e
CANTIDAD TOTAL DE VENTAS bc»o 50
4 002 06-01-2000: 100
N extX
5 005 06-01-2000 600 MSFlexGridl .FormatString = FORMATO
6 004 15-02-2000 200 Do While Not RS.EOF
7

L lU
001 10-02-2000
y DATOS = MSFlexGrid l.Rows
For X = 1 To NCAMPOS
DATOS = DATOS & vbTab & RS(X - 1)
CANTIDADDEREGISTROSMOSTRADOS
N extX
MSFlexGridl.Addltem (DATOS)
P A S O N ° 1: D IB U J A R L O S C O N T R O L E S . RS.MoveNext
Loop
RS.MoveFirst
Label3 = RS.RecordCount
End Sub
Instrucciones de la opción Vendedores.
Prívate Sub VENDEDORES_Click()
Labell = ‘LISTADO DE VENDEDORES"
Set RS = DB. OpenRecordset( “ VENDEDORES ”)
LLENAR
End Sub
Instrucciones de la opción Ventas.
Prívate Sub VENTAS Clickf)
Labell = “RELACIÓN DE LAS VENTAS REALIZADAS”
Set RS = DB. OpenRecordsetf “ VENTAS ”)
Sólo debe dibujar tres etiquetas y un MsFlexGrid. Sólo asigne propiedades a LLENAR
las etiquetas y diseñe un m e n ú c o m o se indica en la aplicación a desarrollar. End Sub

436 G ru po E d it o r ia l Megabyte G r u po E d it o r ia l Megabyte 437 m m


VISUAL BASIC como debe ser.. . * • 5 CAPÍTULO X: Programación DAO ^ ¡¡¡¡1
In s tr u c c io n e s d e la o p ció n V endedores y Ventas. In stru c c io n e s de la o p ció n N ven d ed o res c o n m á s ventas.
Prívate Sub VENDEDORES_VENTAS_Click() Prívate Sub VENDEDORES_MAS_VENTAS_Click()
Labe 11 = "LISTADO DE VENDEDORES Y SUS VENTAS" Dim R As Integer
Set RS = DB. OpenRecordset( "SELECT * FROM VENDEDORES INNER JOIN ¡Mbell = "LISTADO DE LOS VENDEDORES CON MAYOR VENTA"
VENTAS ON VENDEDORES.CODIGO = VENTAS.CODIGO ’’)
R - InputBox("Valor para N ", "Cantidad de Vendedores con mayor venta", 2)
LLENAR lf V a l( R ) > 0 T h e n
End Sub
Set RS = DB.OpenRecordset(“SELECT TOP “ & R & “ NOMBRE,
In s tr u c c io n e s de la o p ció n C o m isio n es. COUNT(NOMBRE) AS CANTIDAD,SUM(MONTO)AS [TOTAL VENDIDO]
E s ta o p c ió n m u e s tra a ca d a v e n d e d o r c o n su to ta l v e n d id o y la c o m is ió n q u e le FROM INFORME GROUP BY NOMBRE ORDER BYSUM(MONTO) DESC’’)
c o rre s p o n d e s ó lo de la s ve n ta s re a liz a d a s en e l a ñ o 2 0 0 0 . S i e l v e n d e d o r lle g a o n o LLENAR
a l m o n to de la v e n ta m ín im a (SI. 6 5 0 .0 0 ) se d e b e m o s tra r un m e n sa je in d ic á n d o lo .
E n d lf
E x is te n 2 c o m is io n e s : 5% p a ra q u ie n e s v e n d ie ro n e n tre 6 5 0 y 8 0 0 so le s y 1 0 % p a ra
End Sub
q u ie n e s h a n lle g a d o o s u p e ra d o a l m o n to de 8 0 0 soles.
Prívate Sub COMISIONES_Click()
La be 11 = “LISTADO DE VENDEDORES CON SUS COMISIONES" In stru c c io n e s d e la o p c ió n D istrito co n m a y o r Venta s e g ú n e l m o n to .
SetRS=DB.OpenRecordset(“SelectNombrv,Year(Fechaventa)AsAño, SuniMonto)As Prívate Sub SEGUNMONTO_Click()
Total, lifiTotal <650, ’No CumplióLa VentaMinima’, ’Si CumplióLa VentaMínima’)As Labell = “DISTRITO(S) CON MAYOR VENTA SEGÚN EL MONTO VENDIDO ’’
Observación, IifiTotal<650, ’0% ’,Iij(Total >=650AndTotal< 800, '5%’, ’10%’))As SetRS = DB. OpenRecordset( “SELECTTOP1 DISTRITOVENTA, SUM(MONTO)AS
[Comision %],IifiTotal<650,0JifiTotal>=652AndTotal < 800,Total *5/100,Total *10/100)) [TOTAL VENDIDO] FROM INFORME GROUP BY DISTRITOVENTA ORDER BY
As [ComisionEnSoles] FromInformeGroupByNonére, Year(Fechaventa) Having SUM(MONTO) DESC”)
Year(Fechaventa) = 2000") LLENAR
LLENAR End Sub
End Sub
In s tr u c c io n e s d e la o p ció n Total p o r Vendedor. In stru c c io n e s d e la o p c ió n D istrito c o n m a y o r Venta se g ú n la cantidad.
Prívate Sub TOTAL_VENDEDOR_Click() Prívate Sub SEGUNCANTIDAD_Click()
Label 1 = “TOTAL VENDIDO POR CADA VENDEDOR” Labell = “DISTRITO(S) CON MAYOR VENTA SEGÚN LA CANTIDAD VENDIDA ”
SetRS= DB.OpaiReco>zlset('‘SELECTNOMBRE,COUNVDISTRÍIOVENTAJAS' Set RS = DB.OpenRecordset(“SELECT TOP 1 DISTRITOVENTA, COUNT
CANTIDAD,SUM(MONTO)AST(JIALFROM1NFORMEGROUPBYNOMBRE”)
(DISTRITOVENTA) AS CANTIDAD FROM INFORME GROUP BY DISTRITOVEN1A
LLENA
ORDER BYCOUNT(DISTRITOVENTA) DESC”)
End Sub
LLENAR
In s tr u c c io n e s de la o p ció n Total p o r D istrito. End Sub
Prívate Sub TOTAL_DISTRITO_Click()
Labell = “TOTAL VENDIDO POR DISTRITO” In stru c c io n e s d e la o p c ió n M o n to to ta l ven dido
SetRS-DBOpaiRecoidset( ' SELFCW1SIKIIO\rENIACOUNI¡DISIWIOVENIA) Prívate Sub MONTOTOTAL_Click()
ASCANTIDAD, SUM(MONTO)ASTOIALFROMINFORMEGROUPBYD1STRTTOVENIA’ ’)
SetRS = DB.OpenRecordset( “SELECT SUM(MONTO) FROM INFORME”)
LLENAR
End Sub MsgBox “LA SUMA TOTAL E S : S/. ’’ & RS(0), 64, “MONTO TOTAL VENDIDO ”
End Sub
In s tr u c c io n e s d e la o p ció n Total p o r V endedor y D istrito.
Prívate Sub VENDEDOR_DISTRITO_Click() In stru c c io n e s d e la o p ció n C a n tid a d to ta l d e ventas
LABEL1 = “ TOTAL VENDIDO POR CADA DE VENDEDOR Y DISTRITO ’’ Prívate Sub CANTlDADTOTAL_Click()
SETRS=DB.OPENRECORDSEIJ“SELECTNOMBREDISTRrrOVENTASUM(MONrO)ASTOTAL
Set RS = DB. OpenRecordsetf “SELECT COUNTf MONTO) FROM INFORME ”)
FROMINFORMEGROUPBYNOMBREDISIRirOVENTA ’’)
LLENAR Msgbox “Se Han Realizado “ & Rs(0) & “ Ventas En Total”,64 “Cantidad De Ventas’’
Erul Sub End Sub

^üjjj^ G ru p o E d it o r ia l M egabyte 439 ^ i¡ ¡ ||¡ ¡ ||


VISUAL BASIC como debe se r.. . CAPITULO X: Programación DAO
Para desarrollar esta aplicación adicione un nuevo form ulario a la aplicación y
C O N T R O L M SC H A R T dibujar en él un botón de comandos y control SSTAB con sólo dos página con un
control Mschart cada una.

Este c o n tro l perm ite m ostrar in fo rm a c ió n a través de gráficos. Sus p rin c ip a ­


les propiedades son:
CHARTTYPE
In d ica el tip o de g rá fico para representar la info rm a ció n .
CO LU M N
A c tiv a una co lum na del gráfico.
CO LU M NCO UN T
In d ica la cantidad de colum nas que debe tener el g ráfico.
CO LU M NLA BEL
A sig n a un títu lo para una colum na. Se m uestra en la leyenda. INSTRUCCIONES D EL BOTON VER GRAFICO D E L FO R M U LA R IO Nü1.
DATA Prívate Sub Commandl_C lick()
Dim X A s Integer
A lm ace na el va lo r que se desea representar en fo rm a gráfica.
With Form2
FOOTNOTETEXT I f L a b e l s "TOTAL VENDIDO POR CADA VENDEDOR" O rLabell= "TOTAL
A sig n a un texto para el pie de página del g rá fico. VENDIDO POR DISTRITO ” Then
RA ND O M FILL .Show
In d ic a si los valores a representar se llenan al azar. !M SChart l.RowCount = RS.RecordCount
ROW !MSChart l.ColumnCount = 1
A c tiv a una fila d el g rá fico . !MSChart2.RowCount - RS.RecordCount
!MSChart2.ColumnCount = 1
ROW COUNT I f Label I = “TOTAL VENDIDO POR CADA VENDEDOR ” Then
In d ica la cantidad de fila s que debe tener el g rá fico. !MSChart 1. TitleText = “CANTIDAD DE VENTAS POR VENDEDOR ”
ROW LABEL !MSChart2. TitleText = “ TOTAL DE VENTAS POR VENDEDOR ”
In d ica un títu lo para cada fila del g rá fico. End I f
SHOW LEGEND I f Label 1 = “TOTAL VENDIDO POR DISTRITO ” Then
A ce pta un v a lo r ló g ic o que in d ic a v is u a liz a r o no la leyenda. !MSChartI. TitleText = “CANTIDAD DE VENTAS POR DISTRITO ”
!MSChart2. TitleText = “TOTAL DE VENTAS POR DISTRITO ”
TITLETEXT End I f
A s ig n a el títu lo p rin c ip a l para el g rá fico. RS.MoveFirst
For X = 1 To Form2!MSChart 1.RowCount
A P L IC A C IÓ N D E SA R R O L L A D A N° 64 !MSChart I. Row = X
M o d ific a r la a p lic a c ió n a n te rio r de ta l m anera que tenga un b otón de !MSChart 1.Column = 1
com andos para que cuando se muestre la cantidad vendida p o r Vendedor po ¡MSChart I.Data = RS(1)
!MSChart l.RowLabel = RS(O)
p o r D is trito se tenga la opción de m ira r la in fo rm a c ió n a través de un gráfico.
!MSChart2. Row = X
L IS T A D O S E S T A D IS T IC A
!MSChart2. Column = 1
!MSChart2. Data = RS(2)
h rO T A L V E Ñ D IÒ Ó P O R C A D A V E N D E D O R
!MSChart2.RowLabel = RS(O)
N O M B R E _____________I C A N T I D A D RS.MoveNext
D A N T E M IL L A N | 4 1200
JO R G E C A S TR Ó 5 580 N ex tX
J U L IO D A V IL A 3 700
T E R E S A U B I L L U S ___________________ 5 600
E ls e
MsgBox “ELGRÁFICONOESrÁDISPONIBLEFARAESTAINFORMACIÓN”,64, “DISCULPE’
End I f
CA N TID AD DE R E G IS T R O S M O S T R A D O S
End With
V E R G Á F IC O I
End Sub

440 G ru po E d it o r ia l Megabyte' G r u po E d it o r ia l Megabyte 441


a s J » VISUAL BASIC como debe ser. . CAPITULO X: Programación DAO
Ejemplo de resultados de la aplicación anterior. PREGUNTAS DE REPASO N° 10
ii. P R O G R A M A S D E L I S T A D O Y E S T A D I S T I C A
L IS T A D O S E S T A D IS T IC A
I. ¿Cuál es la d iferen cia entre la p rogram ación con D A O y con el co n tro l
(T O T A L V E N D ID O P O R C A D A V E N D E D O R DATA.
N9 NOM BRE 1C A N T ID A D TO TAL 2 . ¿Cuál es la característica de cada, tip o de Recordset?
1 D A N T E M IL L A N ! 4 1 200
2 JO R G E CAS TR O 5 580
3. E xp liq u e las principales propiedades del co ntrol M s F le x G rid .
3 JU L IO D A V IL A 3 700 4. ¿Cuáles son los pasos a seguir para program ar con D A O ?
4 T E R E S A U B IL L U S 5 600
5. ¿Qué caracteres se pueden usar y qué fu n c ió n cum plen cuando asignas
la propiedad F orm atS trin g a un co n tro l M s F le x G rid ?
C A N T ID A D D E R E G IS T R O S M O S T R A D O S
6. E x p liq u e las p rincip ale s propiedades del c o n tro l M sC hart.
V E R G Á F IC O I
7. ¿Qué mensaje de e rror se visua liza cuando ejecutas tu a p lica ció n sin
S A L IR
a ctiva r la ca silla D A O ?

OB ¿Cuál es la d iferen cia entre O rder B y y G roup B y?


J H lS l
{C A N T ID A D i I MONTOS
9. ¿Cuál es la d ife re n cia entre D B g rid y M s F le x G rid ?
10. E xp liq u e e indique un ejem plo con cada fu n ció n que podemos u tiliz a r en
C A N T ID A D D E VENTAS P O R V ENDEDOR
la in stru cció n S Q L Select?
I I . ¿Con cuántos tipos de g ráficos se puede representar la in fo rm a c ió n con
4
el co n tro l M sC hart.
3 - - jf

2 -

1 -

i í g l i i l
D A N T E M ILLAN JORGE CASTRO
iPUl JU LIO DAVILA TERESA UBILLUS
- 2

- 1
12. E xp liq u e los m étodos del control M s F le x G rid .
13. ¿Qué s ig n ific a D A O ?
14. E x p liq u e los m étodos para m anejar una base de datos con D A O .
15. E xp liq u e el co ntrol M s F le x G rid
16. ¿En qué partes de la aplicación se pueden d e fin ir las variables Database
y Recordset.
17. E xp liq u e la propiedad Sort del co n tro l M s F le x G rid .
18. ¿Cuál es la d iferen cia entre W here y H aving?
19. E x p liq u e las form as de a b rir una tabla usando D A O .
20. ¿Cóm o se pueden u n ir tres tablas?

O J
- O í 'í
o
I R EGR ESAR ! No olvides que para pasar al siguiente capítulo, debes obtener
un 20 en esta autoevaluación.

W 442 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 443


CAPITULO XI
éJ Fie E di [nsert Foimat Dalabase Repoit Window Hdp - |ff| x|

D e £|@ B jâ f S
Design Preview Today 0G:34 | CloseI T O l of i [ F i T T ir ^
--------------------- l;,

------ --
Choose an Expeil: Dr:
r

f<TTÏÏ7
' —À 3 1

IIHUli
r r t
.ZZJEL r s i E
!; !
Standard Listino Cross-Tab Mail Label Another Report

Cancel
Reccté: 9
Help

Summary Graph TopN Drill Down C ustom )»

CREACIÓN
DE
REPORTES
mam h m
CAPÍTULO XI: Creación de Reportes € m
Visual Basic permite diseñar reportes de una manera fácil y rápida. A con­
tinuación se explica el programa Cristal Report que es el generador de
reportes predeterminado de la versión 5.0 de VB. Si usted tiene la versión
6.0 utilice el DATAREPORT que se explica a partir de la página N° 461.

C R E A R R E P O R T E S C O N C R IS T A L R E P O R T

Para crear reportes debe seguir los siguientes pasos:


1. De la opción Complementos (Add-Ins) de la barra de menú elija Diseñador
de Informes (Report Designer), observará la pantalla siguiente:

-"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

2 . De la pantalla anterior elija la opción 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 botón 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.
^ I

C h o o se an E xpert: Or:

S ta n d a rd L istin g Cross-T ah M a il L a b e l A n o th e r R e p o rt

C a n ce l
=7^
2—
3— H e lp

S um m ary G ra ph T op N Drill D o w n
C u stom >>>

G ru po E d it o r ia l Megabyte 447
p m
o
w Æ M ' VISUAL BASIC como debe ser... CAPÍTULO XI: Creación de Reportes

Una vez seleccionado el tipo de reporte que desea diseñar, debe elegir el
tipo de base de datos a utilizar. Haga click en Archivo (DATA FILE). Una vez seleccionada la base de datos haciendo doble click en su nombre o
con el botón Agregar (Add), haga click en el botón Terminar (Done) para
*1 salir de la ventana.
S tep 1: T ables 12: Fields 13: Sort j 4: Total j 5: S elect 16: Style |

Step: Choose d ata to report on. Y o u can choose multiple tables and add indexes.
La siguiente ventana que se visualiza depende del tipo de reporte elegido.

El siguiente paso consiste en indicar los campos que desea mostrar en el


reporte, para ello haga click en el botón N e x t» o en 2. Fields. Visualizará la
pantalla siguiente:
AD D->
Permite adicionar al reporte el campo seleccionado.
A L L -»
Permite adicionar al reporte todos los campos.
cR E M O V E
Luego, debe seleccionar el nombre de la base de datos que contiene la tabla Permite quitar del reporte el campo seleccionado.
o tablas que se van a usar en el reporte. «A LL
Permite quitar del reporte todos los campos.
File Name: Directories: B R O W SE DATA
Add
C: W c h iv o s de progra..AVB Permite mostrar los datos del campo seleccionado.
D one
AG ENDA, mdb □ _Jc:\ FO RM U LA
biblio.mdb f j A rchivos de progra
h.rndb
D evS tudio ‘— Permite adicionar una formula al reporte; es decir un campo calculado. Por
¡j.mdb
nwind.mdb _ j vb SQL Table... ejemplo si se tiene una tabla llamada amigos con el campo fecha de nacimiento
pasajes.mdb Clisvr (fecnac) y Ud. desea mostrar también la edad sin tener este campo en la
J _ ! Help Red.
tabla, entonces la formula será:
List Files of Type: Drives:

User Default 1 c: gogo

448 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 449


VISUAL BASIC como debe ser.. . CAPÍTULO XI: Creación de Reportes < € ¡¡1 1

year( today )-year( amigos.fecnac ) ÎIÜ IIIS ^ M i a i l 1 H I T . i n i x|


mJ File Edit Insert Format D atabase R eport W in d o w Help _ [fll x|

2Sl
D e? y m. s f s o |,£J) #4 £3 M Ü S i H ] ] f i #
S te p 1: T a b le s 2: F ie ld s J3: S o rt j 4: T o ta l | 5: S e le c t j 6: S ty le j
Design Preview Today 06:34 | Close | | ¡ ] 1 of 1 f ] |||
S te p : S e le c t fields to in c lu d e in rep o rt. Y o u c a n re o rd e r th e m a n d c h a n g e h e a d in g s .
---------------------------- —

D a ta b a s e Fields: R e p o r t Fields: | #| ; |
R e p o r t Fields: A

D a ta b a s e Fields:
A d d -> !
- - A M I G O S ...... A ll - »
1 1
D IR E C C IO N
D IS T R IT O <- R em o ve
J F l F F ÍlN f l
« • A ll

B ro w s e D a ta ... iF o rm u Ía ...i|

1 J1JICUL
Jn n r \ m i iuî:
Records: 9 100%

<< B a c k j Next >> j Cancel j


O R D EN AC IO N DE LOS REGISTROS PARA LOS REPORTES

N O TA : Después de seleccionar los campos que desea mostrar en el reporte, Ud.


P rim ero e l Visua B a sic le p e d ir á el n om b re d e la fo rm u la que d esea puede indicar el campo por el cual deben salir ordenados los registros, para
c rea r (F orm ula Ñ am e).
ello haga click en el botón N E X T » o en 3.SORT, visualizará la pantalla
siguiente.
L as fu n cio n es y lo s cam pos u tiliza d o s en las fo rm u la s se pu eden e sc ri­ A D D->
b ir o seleccion ar. Elige el campo por el cual se desea ordenar los registros en el reporte.
Today p e rm ite o b te n e r la fe c h a a c tu a l en lo s reportes.
< -R E M, O V E
/-v i Step 1: Tables 12: Fields 3: Sort 14: Total 15: Select | 6: Style I
x|
C O L U M N H E A D IN G Quita el campo seleccio- 1 1 1 1 1
Step: Choose fields to sort and group by, such as Country and then State.
nado para la ordenación. You can also define custom groups, such as Western Region.
Permite indicar el encabezado de cada campo que por defecto es el nombre
Report Fields: Group Fields a n
del campo. ORDER Report Fields:
Add •>
Se visualiza después de am inns niRFrnnt'j
<-Remove
F E L IC IT A C IO N E S elegir un campo y permi­
te indicar la forma de or­
denar: Ascendente, Des­
A l e je c u ta r lo s p a s o s m en cio n a d o s a n terio rm en te Ucl. ya está en co n ­ cendente, En la form a
d icio n e s ele v isu a liza r su reporte, p o rq u e lo s sig u ien tes p a s o s son o p ­ Origina o por grupos.
cion ales, p a r a ello h aga click en e l botón P R E V IE W REPORT, o b se r­ Browse Data... [ Group/Total Tip... |
va rá la p a n ta lla siguiente, d o n d e la s o p c io n es d e l m enú y los boton es
<< Sack j Next>> | Cancel j | Preview Report | Preview S ampi* j
d e la B arra E stá n d a r perm iten tam bién d ise ñ a r y m ejo ra r ¡os reportes.

G ru po E d it o r ia l Mega b y 1 c 451
^ |§ y § |> VISUAL BASIC como debe ser... CAPÍTULO XI: Creación de Reportes ^
TOTALIZAR O CONTAR GRUPOS DE REGISTROS A D D ->
Permite indicar el campo por el cual va a seleccionar a los registros que
Después de indicar el campo o campos para la ordenación, Ud. puede indi­ desea visualizar en el reporte.
car que los campos sean sumados, contados, promediados u obtener el va­ Luego debe formar la condición que deben cumplir los registros para que se
lor máximo o mínimo muestren en el reporte. La condición se forma con los operadores y con los
ü J
valores que Ud. puede elegir.
S tep 1: Tables 12: Fields 13: Sort 4: Total |5: Select 16: Style |
registros. Estos gru­
pos de registros de­ Step: Choose fields to subtotal, count etc. E a ch tab is a group (or subtotal break). SEL EC C IO N A R EL E ST IL O DEL R E PO R T E
penden del campo A M IG O S .N O M B R E | Q ..... Ud. puede mejor el aspecto del reporte, para ello haga click en la opción
por el cual los regis­ Subtotals printed on any cha n ge of A M IG O S .N O M B R E 6.STYLE, observará las siguiente pantalla. Elija el estilo de reporte que
tro están ordenados. n , r n
Report Fields:
T otal Fields: mejor le parezca. Por cada estilo de reporte se muestra un ejemplo de cómo
Report Fields: _ J
se visualiza.
Haga click en el bo­ A M IG O S .D IR E C C IO N — A d d ->. I

tón N E X T » o en A M IG O S .D IS T R IT O
A M IG O S .T E L E F O N O . I
S te p 1: Ta b le s | 2: Fields j 3: Sort 14: T o ta l | 5: Sele ct 6: Style |

4 . T O T A L , Step: G iv e a report title a n d cho o s e a style, s u ch as fonts, tables, a n d pictures.

visualizará la panta­
lla siguiente: Browse Data... I r zl Title: I

Style:
✓ A d d Grand Totals . . _ A d d picture,
L e a d in g Break s u c h as
« B a ck J Next » j Cancel
I I preview Report | Preview Sample | Trailing Break co m pa n y logo:
Ta b le
D ro p Ta b le
E x e cu tiv e , Le a d in g Break
ADD GRAND TOTAL E x e cu tiv e , Trailing Break
S ha din g
Indica si al final del reporte se debe visualizar el total general. R e d / B lu e Border
M a ro o n / Te a l Box
P re vie w Tip...

_Ll =

SEL EC C IO N A R O FILTR A R R E G IST R O S A V ISU A LIZA R


_
J__
I Pre vie w Report | P re vie w Sam ple j

Ud. puede seleccionar NO TA:


los registros que desea ,*J
Slf*p I ?at>les \ ¿ helrts |3 Soit |4 Total 0 Select |b S'yle J
Una vez creado el reporte debe grabarlo para que de ésta manera lo
visualizar en los repor­ pueda utilizar o activar desde cualquier form ulario utilizando el con­
tes. Para ello haga Step Choose fields »o selec» (or filter) records in report Important for <jp*»*>d
trol CRYSTAL REPORT.
c lic k en la opción Report Field«.

5.SELECT, visualizará AMIiiOS I'lRfc LI IUN 3

m
AMIGOS DISTRITO — Add ■> I
la pantalla siguiente:
CRYSTAL REPORT
[ü 3 ¡euuaUo vI |l -T.j
CHICLAYO
LA VICTORIA
Es un control que se utiliza para activar desde un formulario cualquier re­
LAMBAVEQUC_______________________________________ porte diseñado. Lo puede dibujar en cualquier parte del formulario porque
no se visualiza cuando se ejecuta la aplicación. En la lista de componentes
Drowse Data . | Speed Tip .- |
se encuentra con el nombre: Crystal Report Control.
« fciack I fW >> I Cancel | | Preview Beport | Preview Sample j Sus principales propiedades son:

G ru po E d it o r ia l Megabyte 453
J VISUAL BASIC como debe ser... CAPÍTULO XI: Creación de Reportes
CU STO M (Personalizado) Su desea indicar el archivo de reporte a imprimir dentro de un programa,
Tiene las opciones que permiten personalizar el reporte. entonces su nombre debe estar entre comillas e incluir la ruta del archivo.
Páginas de propiedades
La opción File (A un Archivo) graba en un archivo el reporte para su uso
Base de datos | Selección | Informe enlazado a datos Base de datos | Selección ] Informe enlazado a datos posterior. La opción A MAPI envía el reporte a otra persona en un mensaje
General j Ventana de impresión | Impresor a | Imprimir a un archivo General Ventana de impresión ] impresora ] Imprimi» a un archivo

RepoitFHeNafne: |j | Wl: p ---- !®W fSÓ---- de correo electrónico el formato especificado por la propiedad PrintFileType.
[¿estination lo p rrsr— H ^iar- rK“' REPORTSOU RCE
,-------------------- ——------- — : (• S¡rabie FixedQouble
(* A una ventana A una impresora C A un archivo

r A la MAPI
Title jEJEMPLO DE REPORTE
P CfintroIBox P (dinButton
.
p

MasBulton
Para indicar la fuente de los registros para el reporte.
O-CRPTREPORT: Muestra en el reporte todos los especificados al diseñar
el reporte.
3-CRPTDATACONTROL:Los registros que muestra dependen de los que
Aceptar ~] I Aceptar ~ | contiene el control Data. Se utiliza junto con la propiedad Datasource y
Páginas de piopiedadet El normalmente cuando se filtran registros con la instrucción SELECT.
General 1 Ventana de impresión | Impresora ¡ Imprimir a un archivo Base de datos | Selección ¡ Informe enlazado a datos I A C T IO N
[ Base de datos ji Selección 1 Informe enlazado a datos General | Ventana de impresión | Impresora )• • uñ t
Activar el reporte asignándole el valor 1. Por Ejemplo, para activar el reporte
yserName: J~" Piintrtejiame: ■J
Cgnneci I PrintFteTupe. I Registro ~3 que está ligado al control CrystalReportl se escribe: CrystalReportl.Action = I
S E L E C T IO N FO R M U L A
Permite escribir una condición 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 sólo los que
Cancelar I
viven en Chiclayo, entonces debemos asignar a esta propiedad la siguiente
condición: {DISTRITO} = "C H IC L A Y O "
D A TA SO U RCE
Su uso en reportes es opcional y permite indicar el nombre del control data Cundo hemos realizado un reporte con dos o más tablas, cada campo debe
que está ligado a la tabla de la cual se desea obtener el reporte. estar acompañado del nombre de la tabla a la que pertenece. Por ejemplo:
Si tenemos un reporte con la base de datos Tienda (tablas Vendedores y
R E P O R T F IL E N A M E Ventas) y queremos mostrar todas las ventas cuyo monto esta entre 50 y
Permite indicar el nombre del reporte que desea imprimir, además usted 100, esta propiedad debe tener: {V E N T A S.M O N T O } >=50 AND
tam bién puede seleccionar el destino del reporte que por defecto es {VENTA S.M ON TO} <=100
WINDOWS (A una Ventana).
Con la opción A la V entana, el reporte se mostrará en la pantalla como una PRINTFILETYPE
presentación preliminar. Si ya tiene una impresora conectada y lista para Especifica el tipo de archivo va a imprimir cuando utiliza como destino del reporte un
imprimir puede elegir la opción Printer (A un Impresora). Archivo (File).
Los principales valores que puede tener son:
General J 0 Registro: Es la propiedad predeterminada y muestra la información columnas, no
fìeportFileNarne: | ] utiliza comas ni separadores. Muestra todos los registros con una anchura fija de
: destination
C A una ventana A una impresora A un archivo
campo.
<• A la MAPI
Haga click aqui para 1 Separado por tabuladores: Presenta los datos en forma tabular. Encierra los datos
buscar el archivo de de campos alfanuméricos entre comillas y separa los campos con tabuladores.
Reporte. 2 Texto: Guarda los datos en formato de texto ASCII con todos los valores separados
por espacios. Este estilo se parece mucho a una página impresa.
Acepta» ~| Cancela»' j Aplicar | Ayuda

G ru po E d it o r ia l Megabyte 455 < |§ § |¡¡||


é S S k > VISUAL BASIC como debe ser... ^ £ 5 CAPÍTULO XI: Creación de Reportes
3 DIF: Guarda los datos en formato DIF (formato de intercambio de datos). Este A C T IV A R E L R E P O R TE
formato se usa a menudo para transferir datos entre diferentes programas de hoja
de cálculo. Para activar un reporte desde una aplicación, primero debe de dibujar
4 CSV:Valores separados por comas. Encierra los datos de campos alfanuméricos en dicha aplicación el control Crystal Report que en la ventana de
entre comillas y separa los campos con comas. componentes se llama: C rystal R eport C on trol y asignarle en su
7 RPT de Crystal Reports: Se utiliza el formato estándar RPT de Crystal Reports, la propiedad R ep o rtF ileN a m e el nombre del archivo de reporte
mayoría de las veces para mandar el informe a otro usuario mediante correo
electrónico. previamente creado y que usted desea imprimir. Este control tiene un
10 XLS de Excel 4.0: Exportael informe como una hojade cálculode Microsoft Excel 4.0. sólo tamaño y al ejecutar la aplicación no se visualiza en el formulario.
13 WKS de Lotus 123: Exporta el informe como una hoj a de cálculo de formato WKS El resto de controles dependen de la aplicación que desea crear.
de Lotus 123.
14 WB1de Quattro Pro 5.0: Exporta el informe como un archivo de formato WB1de
IT E L E F O N O "
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, T5T>n
CODIGO NOMBRE TELEFONO
Especifica el nombre del archivo donde va a guardar el reporte cuando ha seleccionado 005
010
DANTE MILLAN
GREGORIO DARIO
666364
265485 ------
el destino a un archivo. Acepta también una ruta para el archivo. 007
004
JORGE ARMANDO
JORGE CASTRO
162548
201665
WIMX)WSiATE 009 JUAN ANIBAL 696963
001 JULIO DAVI LA 232426
Se utiliza cuando el destino del reporte es Windows (A la ventana - Presentación 006
008
ILUZ ANGELICA
MARIA JULIA
205056
366987
Preliminar) para indicarci tamaño de dicha ventana: 003 NOEMl MONTAÑO 242126 ^

0=Normal «1 n : ....................................... . . .................................... . ► |—

La ventana Vista previa no aparece ni minimizada ni maximizada. Aparece con un ¿3?


IM P R IM IR

tamaño y posición definidos anteriormente por su aplicación o por Windows.


1= Minimizada Si desea que al hacer un click en el botón IMPRIMIR, se active el reporte,
La ventana Vista previa aparece minimizada como un icono junto a la esquina entonces debe escribir en el botón las siguiente instrucción:
inferior izquierda de la pantalla. Se puede restaurar para presentar la ventana en CrystalReportl.Action = 1
estado normal.
2 - Maximizada
n E JE M P LO D E R E P O R T E Jn[EJ
La ventana Vista previa está maximizada si cuando está abierta ocupa toda la LISTA D O O E f*LEA D O S zJ
pantalla. COt>l¿ O f CT1 Efll
úú I JULIO D A V L *
WINDOWSUTLE ÛÛÎ
ÚÚ¿
TER ES.-VfjBXl-CjS
MOÍ«TA fTO

Indica el título que debe tener el reporte cuando se muestre en una ventana. ÙÜJ
úúS
úüü
JÖCÖ-E CASTRO
DAKTE tATLL-4ÍV
IHj'ZAfAJELKA

WINDOWCONTROLS ÛÛ?
úúS
JOprJEARMANDO
MARV. JC/LV4

Especifica si los controles de impresión van a aparecer o no en la ventana de Impresión ú Iú OftEOCCOCWRKi

cuando se muestre el informe en una ventana.

y g g jl' G rü po E d it o r ia l Megabyte 457


CAPITULO XII o
u


<& B
<!
O
O

z -

A: - í » - **-s. . ' ü
r CAPITULO XII: Programación ADO

PROGRAMACION ADO

La mayoría de los nuevos controles de la versión 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 modificación
que haga a estas bases de datos se visualizarán cuando las abra en su
programa original de creación.

Los nuevos controles se llaman Objetos de Datos ActiveX (ADO) que


tienen además la ventaja de realizar conexiones Locales o conexiones
Remotas muy fácilmente.

La C onexión L ocal se realiza cuando la aplicación (program a) que


desarrollas y la base de datos que maneja se encuentran en la misma
computadora.

La Conexión Rem ota se realiza cuando la aplicación 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 conexión, la cual
se puede realizar con:

ODBC:
Significa Conexión 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.

A R C H IV O DE VÍN CU LO DE DATOS - O L E DB:


Perm ite alm acenar en un archivo con la extensión (*.UDL) toda la
información de conexión a una base de datos. En estos archivos podemos
crear vínculos de datos para cualquier proveedor de O L E DB. O L E 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 ru po E d it o r ia l Megabyte 461
o
WÆ&m VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO
3. La elección del controlador depende del tipo de base de datos a la cual
CONFIGURAR LA CONEXIÓN DESDE EL WINDOWS le desea crear el origen de datos. Por ejemplo. Si a creado la base de
ODBC datos en Microsoft Access o en el mismo Visual Basic debe elegir
1. Ingrese al Panel de Control (Inicio, Configuración, Panel de Control) y Microsoft Access Driver (*.MDB). Si a creado la base de datos en
haga doble click en el icono Fuente de Datos ODBC. Se visualiza la Visual FoxPro debe elegir Microsoft Visual Foxpro (*.DBF). Si a creado
ventana de Administración de Orígenes de Datos ODBC con todos los la base de datos en Power Builder debe elegir Microsoft SQ1 Any Were,
orígenes de datos ya creados. si la base de datos esta en SQL Server elija el control SQL Server, etc.
I' I
y«TI II 9 Ewvarfo.* Ayu<ij Mi' .~3B

f_________ áL cí •'
La siguiente ventana que se visualiza, depende del tipo de base de datos
#4 ^ 1 elegido. Por ejemplo, al elegir Microsoft Access Driver (*.MDB) y hacer
ÄK- * a r 's sä *
click en el botón Finalizar. Se visualiza la ventana de instalación de ODBC
& tO sa
M J para Microsoft Access.
'■3P Instalación de ODBC para Microsoft Access L ili
W ’ ' «ä "i tí?
,£ L Nombre d<?l ¡¡rigen do dalos ¡

Dcíciipcióti
__i M. PC Ba.odcdotu,
Base de dalos; Ayuda I
Se puede crear tres tipos de orígenes de datos: Seleccionar. I üeai... Compactai
Avanzado.. |
O rígenes de Datos de U suarios (DSN de Usuarios)
; Bas« dç datos del sistema
Los cuales se pueden ver y utilizar sólo en el equipo donde los crea y por el
usuario que los crea. Nr>giirv=i

O rígenes de Datos de Sistem a (DSN de Sistema) C g g î c cfcs dato::

Los cuales se pueden ver y utilizar por todos los usuarios de la computadora OpcionesI
donde se crea.
O rígenes de D atos de A rchivo (DSN de Archivo)
Los cuales permiten conectarse a un proveedor de usuarios y por lo tanto se Escriba el nombre que le desea asignar a su origen de datos que esta creando
pueden utilizar por todos los usuarios que tengan instalado el mismo contro­ y opcionalmente una descripción. Este nombre que usted escriba, se utilizará
lador. Estos orígenes de datos no necesitan estar dedicados a un usuario ni en los programas que desarrolle en Visual Basic para referirse a la base de
ser locales en un equipo. datos. Luego haga click en el botón Seleccionar para buscar la base de
2. Seleccione el tipo de origen de datos que desea crear y haga clic en datos para la cual esta creando el origen de datos.
botón Agregar. Se visualiza la ventana para seleccionar el controlador
del origen de datos. S eleccionar b ase d e datos EJ
Nom bre de base de datos Directorios: Aceptar
r.rn d b c :\
Cancelar |
n
r~l Archivos de progra A yuda
Q C O N T A B IL ID A D .
Ü3D B 2 P Sólo lectura
Q HH
I“ Exclusivo
Q IB M V J ava _^J

L J j
J Enum erar archivos de tipo: Unidades:
NOTA: Para empezar a trabajar con los orígenes de datos se recomienda seleccionar 1Bases de datos A ccess ^ | IÖ c: C E T D I T ] R ed...
el origen de datos de Usuario.

462 G ru po E d it o r ia l M e g a b y te ^ 3 G r u po E d it o r ia l Megabyte 463 <1 m


é S t ik ' VISUAL BASIC como debe ser. . . CAPITULO XII: Programación ADO
Una vez que encuentra la base de datos, haga click en su nombre y luego en ARCHIVO DE VÍNCULO DE DATOS
el botón Aceptar. Regresará a la ventana de Instalación donde debe hacer
click también en el botón Aceptar para regresar a la ventada de administración Para crear un archivo de vínculo de datos haga click con el botón derecho
de orígenes de datos donde visualizará el nombre de su nuevo origen de del mouse en cualquier parte libre del Escritorio o dentro de una carpeta en
datos que ha creado. el Explorador de Windows. Visual Basic busca en forma predeterminada
o I Conmuto de condKÍorM»t 1 •
los archivos de vínculo de datos en la carpeta:
Otfgçhés de dalo^ do u iu a iio
ÜSN de ratania ) DSN do <
C:\Archivos de Programa\Archivos Comunes\SYSTEM\ole db\Data Link
MS A c c e ;: Onlab.
I Cmiliolddui
rivci I rr»dfc»J
Por lo tanto se recomienda hacer click con el botón derecho del Mouse
Syba-^o
Svbat*
SyLvj»
SQL Ai iywl icio 0.0
SQL Arn'whei» 5 0
*501 Anvwt.<;re 5 O
dentro de esta carpeta.
Sybase
Svbnso
SQL Anywl ieie S.O
SQL Anvwhere 5.0 Se visualiza un menú donde debe elegir la opción Nuevo y luego la opción
ItA c ie s í Olive» r.rndb)
yl:- SQ1. Ariywt'«
Microsoft Data Link. _J Capeta
^ Acceso directo

Un OI i r jr - n dr> dnlm Hn Honorio ODBC alm«i*7'en.s* ¡nfoimación ncmoa Hr>


cúniu corloctatío til piovoodoi do díalos indicado. Un Oiijjoo do dato* do
usuario sOlo so puede ver y utilizar en el eduipo »otual. " í ] Archivo de sonido

1 ) Documento de texto
Aceptar ] Cancelar {
Documento de Microsoft Word

Imagen de mapa de bits


De esta manera la base de queda lista para poder utilizarla desde Visual Hoja de cálculo de Microsoft Excel
Basic. t í ] Presentación de Microsoft PowerPoint

Microsoft Data Link


Le recomiendo que practique nuevamente la creación de los orígenes de
datos ODBC. Verá que cada vez es mucho más fácil. Si desea borrar uno Se creará en form a autom ática el archivo: N u e v o M ic ro so ft Data
que a creado, haga un clic en su nombre y luego en el botón Quitar.
Link.U D L. Usted puede asignarle otro nombre si lo desea, pero respetando
MUY IMPORTANTE. la extensión UDL. Este nom bre que usted asigne se utilizará en los
No es necesario que usted cree el origen de datos cada vez que necesita manejar la programas que desarrolle en Visual Basic para referirse a la base de datos.
base de datos. Estos orígenes de datos sólo se crean una vez y quedan grabados en Luego haga click con el botón derecho de Mouse en el nombre de este
su computadora. archivo y elija Propiedades para visualizar la ventana de configuración de la
conexion. mm
P r o p ie d a d ® * d e T i e n d a .U u L
Para visualizar los controladores que tiene instalados en su computadora, G e n e r a l | P ro v e e rlo » J í. < >I Avoraci.. I t odo-, j
seleccione la hoja Controladores: I iend*.UDl
rw i
DSN do usuai io I DSN do siítoina SN do arcl iivo
Tipo: Microsoft Data Link
Controládoioi.......jj SeQuiri nenio ] Conjunto ) Acerca de
I Ibir.-icióii C.-\WINDOWS\MíinÚ IrHr.ir.
Los contiuladoio- QDtlC instalado s on au si*loiVia so TcJinaPío: 166 bytes (166 bytes), 32,768 bytev utado:.-
1 Version I Orgafiigaci^ri
ola.loi ODBC de Mu io w. 3-/'.
*oíi. Aece.v* Piève» I indi ,‘i 3711. OO Nombre MS DOS: TIENDA UDL
soft dB aso D.¡voi ( dL.fl D3711.08 oíoft Corpoicilit l ie->.:l.. J u i-v e s 1 d e .li ii .i.». Ic- /IJ IIII 1;* 31 •. I A M
'¡»oil dBosoVFP Diivei f dbf) D8428.00 oùof I Cor poi<atic
isoft Excol Diivoi (K.xlsj 13711.ÜÜ o-iofl Coi por at ic Modificado: Jueves I d©Junio do 2000 12:31:54 AM
Iftoft FoxPro V I P Driver I* dtalj 3.Ô42S. 00
«oft ODBC lor O riolo 371 I OO
sol» P.arado« Driver (" db i 3/1 I 08
soft Text Driver I iXI 1 c i 3/1 1 08
io ff V iiu a l f oxPio Driver )8 4 2 8 . 0 0 I $ o k > lot. tur * I O cu lto
í* 7 M o d ilic jd u r
LJn controlador ODBC permit.© a lo." programan habilitado; de OD 13L.
obrpner inlorrnaciôri de lo?. o rigenet d«=- d ^ lo î ODBC Rara infialar
c.oritioiadnr e s ruiuvos utilice el proclama de ins!afoorih *lel conti oladoi

I A .-~ e r'» a i I I Aceptar | Cancelar j

464 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 465


w J îi
mk.< '% VISUAL BASIC como debe ser. CAPÍTULO XII: Programación ADO
En la hoja Proveedor se debe seleccionar un proveedor para el tipo de base C O N TR O LA D O :
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 M icrosoft
J e t 3.51 ó 4.0 O L E DB Provider. Si tiene creado un ODBC, utilice la
opción M icrosoft O L E DB P rovider for ODBC D rivers. Este control es muy similar al control data y permite conectarnos a una gran
variedad de tipos de base de datos a través de los Archivos de Vínculo 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.

A dodd ►M

Para desarrollar una aplicación que maneje una base de datos usando este
control sólo es necesario inicialmente asignarle valores en su propiedad
C O N N EC TIO N STR IN G donde se indica el nombre del origen de datos y
Una vez que ha seleccionado el proveedor, active la hoja conexión cuya en su propiedad R EC O R D SO U R C E, donde se indica el origen de los
pantalla depende del tipo de Proveedor elegido. Por ejemplo la siguiente registros que normalmente es el nombre de una tabla o un texto que consiste
pantalla se visualiza cuando se ha elegido Microsoft Jet OLE DB Provider. en una instrucción SQL.
.0«rw»¿l j Prov«orlot CotwxtóM ) Av«r>7.ado 1 T okíos 1
Para visualizar en el cuadro de herramientas el control ADO y sus controles
compatibles, cree un nuevo proyecto en el modo “ C ontroles de VB
,1infoim.-.oú'inf
Edición E m p resarial” .

N u e vo p ro y e c to
IB
^3 Aceptar
<sv SI St
Asistente para Administrador Proyecto de Aplicación US
aplicaciones... de asistent... datos Ayuda

I A .'
•SI SI Sb§ St
Addin DII de Exe de Aplicación
En esta ventana haga click en el botón Buscar (...) para seleccionar la base docume... docume... DHTML

de datos que desea utilizar en el archivo de vínculo y luego haga click en el O

botón Probar Conexión. Se debe visualizar el mensaje: Controles de


VB Edición...
M ic ro s o ft D a ta L in k

L a p ru e b a d e c o n e x ió n fu e s a tisfa cto ria .

I( A c e p ta r ]|
Otra forma de tenerlos en el cuadro de herramientas es, abriendo la ventana
de componentes (Control+T) y activando la casilla respectiva. La casilla
Esto indica que el archivo se ha creado correctamente y esta listo para del control ADO es: M icrosoft AD O data control 6.0 (OLEDB).
utilizarlo en Visual Basic y poder manipular la base de datos indicada.

G ru po E d it o r ia l Megabyte 467
ém m VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO < € ¡¡¡¡1
2. SI NO HA CREAD O E L O R IG E N DE DATOS.
USO DE LA PROPIEDAD CONNECTIONSTRING Para crear un origen de datos usando Visual Basic, haga click en el botón
con tres puntos que tiene la propiedad ConnectionString (... |). Se visualiza
1. SI YA C R EÓ EL O R IG E N DE DATOS.
la ventana anterior donde debe indicar el tipo de conexión a crear.
1.1 A R C H IV O DE V ÍNCULO S 2.1 C R EA R UN A R CH IV O DE VÍNCULO S
Si ya creaste una conexión usando un archivo de vínculos, en la Para crear un archivo de vínculos, seleccione Usar Archivo de
propiedad ConnectionString debes escribir: F IL E NAM E=Ruta y Vínculo de Datos y haga clic en el botón Examinar. Se visualiza la
nombre del Archivo.UDL siguiente ventana:
Por ejemplo: Si has creado un archivo de vínculos llamado VENTAS
en la unidad C:\SISTEM A, debes escribir: F IL E NAM E=C:\ I...h ~ 3 üJ M nJ Iri OJ
SIST E M A W E N T A S. UDL
ConnectionString I FILE N A M E =C : \S IS TE M A \VENT AS J

1.2 OD BC
Si ya creaste una conexión a tu base de datos usando ODBC, en la
tJombro de oíchivo f 1 Abrir 1
lipa de archivo*: ¡Archivo" de Micro*oft Data Link (' "udij"
' ■ Cóncola! [
propiedad ConnectionString debes escribir: D SN=Nom bre del
Origen de datos P«la cteai un aichivo <1«vinculo de iWos tunvu tiaga clic con H botón
«ecuridaiio del mouse en cualquier paire de Ia lis*« de Archivo» y, despu£v.
seleccione Microsolt Data Lmk en el menú Nuevo
Por ejemplo: Si has creado un origen de datos ODBC llamado Paia modificai «I aichivo de vínculo de datos, hag$ doble clic «ri ©I archivó.
AGENDA, debes escribir: DSN=AGENDA
ConnectionString ID S N =AG E N D A J En esta ventana haga clic con el botón derecho del Mouse, elija la opción
Nuevo y luego la opción Microsoft Data Link y siga los mismos pasos
MUY IMPORTANTE:
No debe haber espacios ni antes ni después del signo igual (=) y si utiliza archivo indicados en la creación de un archivo de vínculos desde el Windows.
de vínculo, debe indicar también la extensión del archivo (.UDL). Una vez creado el archivo, selecciónelo y haga click en el botón Abrir y
luego en el botón Aceptar.
Otra forma de indicar el origen de datos es haciendo Click en el botón con 2.2 C R E A R UN ODBC
tres puntos que tiene la propiedad ConnectionString ( ... |), se visualiza la Para crear un origen de datos ODBC, seleccione Usar Nombre de
siguiente ventana: Origen de Datos ODBC y haga click en el botón Nuevo. Se visualiza
[GwiM'á :J la ventana:
Oi¿gen de conexión
ni i min ii n i b í — — — — i
Usar archivo de vínculo a datos ____
Sster..ckMvw un tipo d e origen d e da to s
f* ¡Q iijjen d e d a lo s d e arch iv o (equ ipo ind ep en díen le}
t~ ' Usai nombre de origen de datos ORBC
I — — Origen d e d a to * d a u su a rio (<» a p lic a « ilo a a s te equipe-)
f" P jífl« n d e d a to s d e siyiem á (s e «p lic a tú lo a e v t* equipo)
Usar cadena de conexión ______________
Al «eleccionaf O ligan d e dato» d a « c h iv o c re a u n exigen de d.stoi
b a sa d o e n u n archivo q u e so com parto co n todos tos usuario? que
liei te n a c c e s o a la b a s e «Je d a to s .
Otros attifeutos: |

en esta ventana indique si ha creado un archivo de vínculo o un ODBC. j Siguiente >j Lancolar J
Si a creado un archivo de vínculo, haga clic en el botón Examinar para
buscar la carpeta y el nombre del archivo. En esta ventana seleccione el tipo de origen de datos a crear, y siga los
Si ha creado un ODBC, haga click en la flecha hacia a bajo del Combo para mismos pasos indicado en la creación de ODBC desde el Windows.
seleccionar el ODBC.
468 G ru po E d it o r ia l M egabyte^ ^
|Í ¡ ||i |^ G ru po E d it o r ia l Megabyte 469 « »
(¡É l
% VISUAL BASIC como debe se r... CAPITULO XII: Programación ADO
USO DE LA PROPIEDAD RECORDSOURCE
ERRORES MÁS COMUNES
La propiedad RecordSource se debe utilizar después de ConnectionString y
se utiliza para indicar el origen de los registros. Cuando se ingresa a esta 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
propiedad, se visualiza la siguiente pantalla:
.1 continuación con la finalidad de poder corregirlos en forma fácil y rápida.

GE ES3
( O r ig e n d ë r e g i s t r o s j|

O rig e n d e re g is tro s [Microsofl][Ádministrador de controladores ODBC] El nombre del origen de datos no se encontró y
T ip o d e c o m a n d o no se especificó ningún controlador predeterminado
| 8 - adC m dU nknow n _

T ábla o nombre de procedim iento alm acenado


Aceptar

Texto del coniando (SQL) 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
A yuda incorrecta la cadena de conexión. Por ejemplo, dejó espacio antes o de
después del signo igual (=).
En esta ventana, primero se indica el tipo de comando, es decir, cómo se
obtendrán los registros.
Tipo de com ando

zJ
N o se p u e d e e n co n tra r XA.
|S - adCrndUnknown
c a p ta r j|
8 - adC m diJnknow n .................................
1 • adCmdT ext
2 • adCmdT able lil mensaje anterior se visualiza cuando el nombre del archivo de vínculo
4 - adCrndStoredProc
indicado en la propiedad ConnectionString no existe.
Los tipos de comandos más usados son:
[Microsoft][Controlador ODBC Micro soit Access] Instrucción SQL no válida; se esperaba 'DELETE',
* 1 -ad C m d T ex t, 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

Para que los registros se obtengan desde una instrucción SQL. Aceptar
* 2-adC m dT able
Para que los registros se obtengan de una tabla.
l i l mensaje anterior se visualiza cuando en tipo de comando se eligió la

La opción 4-adC m dS toredProc se usa cuando se tiene un procedimiento opción 1-adCmdText y no se escribió correctamente la instrucción SQL.
almacenado en el servidor y 8-adC m dU nknow n cuando el tipo de comando
es desconocido. [ADODC]: no se ha especificado ningún RecordSource. [AD0]:No se configuró un comando para el
objeto comando

NOTA
Una vez que asignó el origen de los registros; su base de datos, tablas y registros
están listos para utilizarlos en cualquier aplicación usando los controles
compatibles del control ADO, como por ejemplo: DataGrid, DataCombo, DataList, lil mensaje anterior se visualiza cuando no ha indicado el origen de los
TextBox, Label, etc. registros, es decir, no se llenó la propiedad RecordSource.
KM
Æ 470 G r u po E d it o r ia l Megabyte ^¡| G ru po E d it o r ia l Megabyte 471
I M S
J VISUAL BASIC como debe ser.. . CAPÍTULO XII: Programación ADO ^ ¡¡¡¡¡l
OTRAS PROPIEDADES DEL CONTROLADO C U R S O R L O C A T IO N
Indica desde dónde se van a utilizar los cursores. Se puede elegir desde el
El control ADO tiene muchas propiedades similares al control Data. Las cliente (computadora de trabajo) o desde el servidor.
nuevas propiedades de este control son: COM M ANDTYPE
Indica el tipo de comando para acceder a los registros. Se pueden seleccionar
PE R SO N A L IZ A D O las mismas opciones que se utilizan en la propiedad RecordSource.
Esta propiedad permite también asignar todos los valores necesarios para LO CKTYPE
que se realice la conexión a una base de datos. Se puede activar también Permite establecer el tipo de bloqueo que deben tener los registros al
haciendo un click con el botón derecho del Mouse sobre el control ADO y momento de acceder a ellos para modificarlos.
eligiendo la opción Propiedades de ADODC. La pantalla que visualiza es • AdLockReadOnly:(Sólo de lectura). Es el predeterminado y se caracteriza
la siguiente: i-jj.im r u E sa KZ1 porque no se pueden modificar los registros.
A u te n tic a c ió n | O rig e n d e r e g is t r o s | C olor ] F u e n te |
• AdLockPessimistic: (Pesimista). Se caracteriza porque el programa hace
Origen de conexión

f~~ Usar archivo de vinculo a datos


lo necesario para lograr la m odificación correcta de los registros,
generalmente bloqueando registros en el origen de datos durante el proceso
Usar nombre de origen de datos 0£>BC de modificación.
1 • AdLockOptimistic: (Optimista). Se caracteriza porque el bloque se realiza
Usar cadena de conexión
sólo cuando se graba un registro con el método Update.
Otros atributos: j • AdLockBatchOptimistic: (Por lotes). Se caracteriza porque el bloque se
rea liz a sólo cuando se graban varios reg istro s con el m étodo
| A c e p ta r | C a n c e la r |
UpdateBatch.
La forma de realizar una conexión en esta ventana se realiza de la misma
forma como se explicó en las propiedades ConnectionString y RecordSource. U SE R N A M E
Indica el valor que representa a un usuario de un objeto recordset de Ado.
C U R SO R TY PE Cuando se proporcionan valores para UserName y la propiedad Password,
Indica el tipo de cursor que se usa en un objeto recordset. Un cursor, es un el control los utiliza para crear una cadena de conexión.
conjunto de registros que se obtienen como resultado de una consulta a una MODE
base de datos. Los tipos de cursores disponibles son: Indica los permisos disponibles que se tienen cuando se realiza una conexión.
• A doO penForw areO nly: Es el tipo de cursor predeterminado y es igual C O M M A N D T IM E O U T
que el cursor estático, se diferencia porque sólo permite desplazarse Se utiliza para indicar el tiempo que se debe esperar como máximo para un
hacia delante de los registros. comando de acceso a base de datos. Si transcurre dicho tiempo, se produce
un error. Las demoras pueden ser en el tráfico de la red.
• AdoOpenKeyset: (Conjunto de claves). Es igual que un cursos dinámico,
C O N N E C T IO N T IM E O U T
se diferencia porque no se pueden ver los registros que agregan otros
Indica el tiempo de espera para que se realice la conexión. El valor
usuarios.
predeterminado es 15 segundo. Si transcurre el tiempo indicado, se produce
• A d o O p e n D y n a m ic : (D in ám ico ). Se c a ra c te riz a porque las
un error.
incorporaciones, cambios y eliminaciones que hacen otros usuarios M A X R EC O R D S
permanecen visibles y se admiten todo tipo de movimiento entre registros. Indica el número máximo de registros que se pueden obtener al abrir la
• A doO penStatic: (Cursor Estático). Consiste en una copia estática de conexión. El valor predeterminado es cero (0) que indica un número sin
un conjunto de registros que se puede usar sólo para buscar datos o límite de registros.
crear reportes. Los cambios que hacen otros usuarios no son visibles.

472 G ru po E d it o r ia l M e g a b y t e “^ G r u po E d it o r ia l Megabyte 473 < €1®


VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO
CONTROLES COMPATIBLES CON ADO A PLIC A C IO N D ESA R RO LLA D A N° 65
La siguiente aplicación es un ejemplo del manejo de una base de datos,
Los controles compatibles con el control Data: DbList, DbCombo y DbGrid tablas y registros usando la programación ADO.
no son compatibles con el control ADO, esto quiere decir que no se pueden
utilizar para mostrar la información de la base de datos que el control ADO
1 i i . M e n u P r in c ip a l
HHHHSBHHHSLioiiü
A rtíc u lo s
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. También 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:
M ic ro s o ft V is u a l B a s ic

N o s e ha e n c o n tra d o n in g ú n origen d e dato s com patible p a ra e ste control. A g re g u e un


O control D a ta in trín s ec o o u n co ntro l R e m o te D a te al formulario.

V is u a l B a s ic . C o m o d e b e s 11! ! lí
(” A c e p ta r jj Ayuda

Esta aplicación permite administrar una tabla llamada Artículos que se


Para trabajar con estos controles, cree un nuevo proyecto en el modo de “Controles encuentra en una base de datos llamada Tienda y esta grada en la unidad
de VB Edición Empresarial” o abra la ventana de componentes (Control + T) y I M enu P rincipal


active la casilla del control que desea utilizar. Artículos
Listado Qrl+L
Mantenimiento Ctrl+M
C O N TR O L D ATAG R ID Consulta Ctrl+C

Salir Qrl+S

Este control es muy similar control DbGrid y permite mostrar varios registros
a la vez, para ello, sólo le debe asignar su propiedad DataSource donde se
indica el nombre del control ADO.
Si no se encuentra en el cuadro de herram ientas, abra la ventana de
componentes y active la casilla de:
M icrosoft DataGrid Control 6.0 (OLEDB). 1 9 /0 6 /0 0 10:18 a.m. Visual Basic. Como debe s e r. TFT! ¡I

CONTROLES D A TA LIS T y D A TAC O M B O 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
Son similares a los control DbList y DbCombo y permiten mostrar el contenido libro y un acceso a la calculadora.
de un campo de varios registros. Para ello, debe asignarles como mínimo la La estructura de la tabla Artículos es:
propiedad RowSource, donde se indica el nombre del control ADO y la
propiedad ListField, donde se indica el nombre del campo cuyo contenido se Codigo Texto 5
desea visualizar. Nombre Texto 30
Si no se encuentran en el cuadro de herramientas, abra la ventana de Presentación Texto 20
componentes y active la casilla de: ValorCompra Currency
M icrosoft DataLists Control 6.0 (OLEDB). Vencimiento Data/Time

474 G ru po E d it o r ia l Megabyte« G ru po E d it o r ia l Megabyte 475 ^


l i l i l í * VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
D ESAR R O LLO DE L A A P L IC A C IÓ N N° 65 FORMULARIO N g 0 2
Cree un nuevo proyecto en el modo Controles de VB Edición Em presa­ En el formulario N° 02 sólo dibuje un control DataGrid, una etiqueta, un
rial para tener en el cuadro de herramientas los controles ADO. En este botón de comandos y un control ADO.
proyecto debe estar compuesto por cuatro (4) formularios y un módulo don­
de se deben definir las variables que se usan en más de un formulario: . L is ia d o d e A r t íc u lo s mn
mam
j(General) | | (Declaraciones) 1

Public XCODIGO, XHOMBRE, XPRE3ENTACION As String


Puto1ic XVALOR As Currency 1
Puto1ic XFECHA As Date ^|
■ «J l

FORMULARIO N s 01
En el form ulario N° 01 debe diseñar el menú, la barra de herramientas y la
barra de estado, como se muestra en la página anterior. La creación de Labell

menú se explica en la Página N° 264, las barra de herramientas en la página |nl -I jA d o d c l | r 1- |

N°268 (ToolBar) y las barras de estado en la página N°181 (StatusBar). En


las barras puede utilizar cualquier gráfico de su computadora. En la página En la propiedad ConnectionString del control ADO escriba el nombre del
N° 168 se explica cómo buscar gráficos.
origen de datos creado para la base de datos TIENDA o cree uno nuevo y
Instrucciones del F orm u lario N° 01 en su propiedad RecordSource seleccione la tabla Articulos.
Rem Opción Consulta Rem Opción Listado
Prívate Sub Consulta_Click() Prívate Sub Listado_Click() Al control DataGrid asigne en su propiedad DataSource el nombre del control
Form4.Show 1 ‘Consulta Form2.Show 1 ‘Listado ADO, también puede asignarle otras propiedades como si se tratará del
End Sub End Sub control DbGrid.
Rem Opción M antenimiento
Prívate Sub M antenimiento_Click() IN STR U C C IO N ES D E L FO R M U L A R IO N° 02
Form3.Show 1 ‘M antenimiento
End Sub Instrucciones del botón C e rra r
Rem Instrucciones del control StatusBar Prívate Sub C om m andl_C lick()
Prívate Sub StatusBar1_PanelClick(By Val Panel As MSComctlLib.Panel) Hide
I f Panel.Index = 4 Then Shell “c:\windows\calc.exe", 1 End Sub
End Sub
Rem Instrucciones del control ToolBar Instrucciones del F orm _A ctivate
Prívate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLib.Button) Estas instrucciones permiten que al ingresar a este formulario el control
I f Button.Index — 1Then Form2.Show 1 'Listado ADO se actualice y visualice las modificaciones realizadas a los registros
I f Button. Index = 2Then Form3.Show 1 ‘Mantenimiento en otros formularios.
I f Button.Index = 3Then Form4.Show 1 ‘Consulta También se muestra en la etiqueta N° 01 la cantidad de artículos mostrados.
I f Button.Index = 4 Then End ‘Salir
End Sub
Prívate Sub Form_Activate()
NOTA: A d o d cl .Refresh
El valor 1 (uno) después de la palabra Show indica el formulario sólo debe cerrarse Labell = “N°de Artículo mostrados: “& Adodcl.Recordset.RecordCount
haciendo click en el botón respectivo. End Sub

476 G r u po E d it o r ia l M e g a b y te ^ ^ ^ G ru po E d it o r ia l Megabyte 477


VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
F O R M U L A R IO N 2 03 Al ejecutar el formulario debe tener el siguiente aspecto.

■non El Articulo 1) atoi dnl l'inducl


En este formulario dibuje un control ADO, 2 DataCombo, 3 frame, 7 Label, N ornt'.r» OSdijjo

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 Vokji -J« Con h

componentes cuyo nombre es: Microsoft Calendar Control y para dibujarlo


haga click primero en cualquier parte libre del formulario. J I
I no nn i ~J
in l «I lnnno4
Iononr.
n
—'
s üiRiHmibles
,. . . .
Ambulo
A'-<uali*<w k>a doto« dol Aitícuio
l

rrrr.— L¿»b«l4

Labél'.»
l.abnK.

!...at>ial7 C A R A C T E R ÍS T IC A D E L F O R M U L A R IO .
~EÌ 12000 jtJ -
Commandl 1 Cornrr>arid2 | 1. Este formulario permite dar mantenimiento a los registros, esto quiere
I U JloComtó decir que se puede agregar nuevos artículos, actualizar sus datos o eliminar
Conimand3
cualquiera de ellos.
Cómmand4

Commands
2. Se puede consultar un artículo por su nombre o su código.
Commands I
3. Cuando no existen registros el botón Eliminar y Actualizar se desactivan.
03ZP
4. El control Calendar 1 se visualiza cuando se desea ingresar o modificar
la fecha de vencimiento.
PR O PIED A D E S DE LO S C O N TR O LE S
Control ConnectionString RecordSource IMPORTANTE
Adodcl Nombre del Origen de Datos Artículos Cuando se manejan base de datos con ADO, no se necesita usar el método EDIT para
modificar registros porque un registros cambia automáticamente al modo de edición
Control RowSource ListField Style cuando se empieza a modificar.
DataCombo 1 Adodc1 Nombre 1-dbcSimpleCombo La programación con ADO ya no utiliza el método FINDFIRST. El nuevo método es FIND.
DataCombo2 Adodcl Codigo 1-dbcSimpleCombo
M ÉTO D O FIN D
Control DataSource ListField Este método permite buscar registros cuando se trabaja con ADO. Su sintaxis
Textl Adodcl Codigo es la siguiente.
Text2 Adodc 1 Nombre
Text3 Adodcl Presentación Control_Ado.Recordset.Find Condición, Valor1, Valor2, Valor3
Text4 Adodc1 ValorCompra Valor 1: Indica el número de registros que se debe saltar antes que se inicie
Text5 Adodc1 Vencimiento la búsqueda. Si se omite no salta ningún registro.
Valor2: Indica la dirección de la búsqueda que puede ser hacia delante
Control Enabled (adS earchF orw ard) o hacia atrás (adSearchB ackw ard). Si se omite, la
Frame 1 True busqueda se realiza hacia delante.
Frame2 False
Frame3 True Valor3: Indica la posición inicial de la búsqueda. Escriba el número 1 (uno)
para empezar desde el primer registo.
Control Visible ShowTitle Ejem plo: La siguiente instrucción busca el artículo llamado Panadol.
Calendari False False A d o d c l.R e c o rd se t.F in d N om bre = ” P anadoI” ,„ l

A los otros controles asígneles las propiedades como se indica en el NOTA: Si el registro no se encuentra se activa el final (EOF) o inicio (BOF) de la
formulario. tabla dependiendo de la dirección de la búsqueda.

478 G r u po E d it o r ia l Megabyte< G ru po E d it o r ia l Megabyte 479


J1 ¡1 IÉ I> VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO A

INSTRUCCIONES DEL FORMULARIO N"03 Instrucciones del Botón Nuevo Instrucciones del Botón Grabar
Definición de variables en General Declaraciones Private Sub Command3_Click() Private Sub Command I _Click()
Dim r As String Frame ¡.Enabled = False Frame 1.Enabled = True
Dim NUEVO As Boolean Frame2. Enabled = True Frame 2. Enabled = False
Frame3. Enabled = False Frame 3. Enabled = True
Instrucciones del Form_Activate Adodcl.Recordset. AddNew Adodcl.Recordset. Update
Prívate Sub Form_Activate() ‘Indica Nuevo Artículo Command4. Enabled - True
‘Actualiza el control Adocdl NUEVO = True Commands.Enabled = True
A d o d cl.Refresh Textl .SetFocus Framel.Enabled = True
‘Si no hay registros, desactiva los botones Actualizar End Sub End Sub
‘y Eliminar y no permite seleccionar registros.
If A dodcl. Recordset.RecordCount = 0 Then
Command4. Enabled - False
Commands.Enabled = False Instrucciones del Botón Cancelar
Framel. Enabled = False Private Sub Command2_Click()
Else Frame ¡.Enabled = True
Command4. Enabled = True Frame2. Enabled = False
Commands .Enabled = True Frame3.Enabled = True
Framel.Enabled = True If NUEVO Then
End If Adodcl.Recordset. CancelUpdate
End Sub Else
‘Se devuelven los datos originales
Instrucciones del DataCombol Textl = XCODIGO
Private Sub DataCombol_Change() Text2 = XNOMBRE
If DataCombol = Then Exit Sub
r = “Nombre Like + D ataCombol +
Text3 = XPRESENTACION
Adodcl.Recordset.Find r ,, , 1 Text4 = XVALOR
If A dodcl .Recordset.EOF Then TextS = XFECHA
MsgBox “No existeelArticulo “+ DataCombol + ”,16,"Puedeadiciomrlo" End If
A d o d cl. Recordset. Move First ‘Después de cancelar se ubica en el Artículo
End If ‘que estaba en pantalla.
End Sub A dodcl .Recordset. AbsolutePosition=Adodcl .Recordset.Bookmark
End Sub
Private Sub DataCombol_Click(Area As' Integer)
D ataCom bol jC hange Instrucciones del Botón Actualizar
End Sub Prívate Sub Command4_Click()
Instrucciones del DataCombo2 NUEVO = False
Private Sub DataCombo2_Change() Fram el.Enabled = False
I f DataCombo2 - “ ” Then Exit Sub Frame2. Enabled = True
r - “Codigo Like + DataCom bol + Frame 3. Enabled = False
A dodcl .Recordset.Find r, , , 1 ‘Se almacenan los valores originales en variables
If Adodcl.Recordset.EOF Then XCODIGO = Textl
MsgBox “NoexisteelArticuloconelcódigo “+ DataCombo2 + ”, 16, “Puedeadiciomrlo XNOMBRE = Text2
A dodcl. Recordset. MoveFirst XPRESENTACION = Text3
End If XVALOR = Val(Text4)
End Sub If IsDate(TextS) Then XFECHA = CDate(TextS)
Private Sub DataCombo2_Click(Area As Integer) Textl.SetFocus
DataCombo2 JChange End Sub
End Sub

480 G r u po E d it o r ia l Megabyte § |||^ G ru po E d it o r ia l Megabyte 481


é S B k > VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
Instrucciones del Botón Eliminar FORMULARIO N s 04
Private Sub Com mands_Click()
Dim Mensaje As String En este formulario dibuje un control ADO, 2 DataCombo, 2 frame, 21
I f Adodcl. Recordset.RecordCount - 0 Then Label, 2 CommandButton y un control Calendar.
MsgBox “No hay productos", 16, “No se puede eliminar" H - lc i| x |

Else Label! jtToxlì..


Mensaje = “Está seguro de eliminar el artículo ” + Chr(13) + Textl + + Text2 fil ÁtaCombol n~-
L-aboM
I f MsgBox(Mensaje, 36, “CUIDADO”) = 6 Then LobolS
Adodcl. Recordset. Delete
A dodcl.Recordset. MovePrevious
I f Adodcl.Recordset.BOF Then L oboli 7 Comm»Kl2 I
Adodc 1. Recordset. Move Next L aboli O
L oboli1
L Aboil a
Lobelia
End I f Jun J l* uut LoboCO

‘Pregunta si quedan registros L abel13

- WI- K ‘
i rr*
£... ■ L Abeti 4
1 2 . XA
I f Adodcl.Recordset.RecordCount = 0 Then "
.■
3 ZL Z1Ï.

‘Si no hay registros desactiva los botones Actualizar y Eliminar y la consulta


Command4.Enabled = False
Commands.Enabled = False PROPIEDADES DE LOS CONTROLES
Frame I. Enabled = False
End I f Control ConnectionString RecordSource
End I f Adodcl Nombre del Origen de Datos Artículos
End I f
End Sub Control RowSource ListField Style
Instrucciones del Botón Salir DataCombo 1 Adodcl Nombre 1-dbcSimpleCombo
Private Sub Command6_Click() DataCombo2 Adodc 1 Codigo 1-dbcSimpleCombo
Hide
End Sub Control DataSource ListField
Textl Adodcl Codigo
Instrucciones de Text5 Text2 Adodc1 Nombre
Visualiza el calendario cuando se ubica el cursor en Text5. Text3 Adodc1 Presentación
Private Sub Text5_GotFocus() Text4 Adodcl ValorCompra
Calendar ¡.Visible = True Text5 Adodcl Vencimiento
End Sub
Oculta el formulario si se pulsa ESC Control Enabled
Private Sub Text5_KeyPress( Key Ascii As Integer) Frame 1 True
I f Key Ascii = 27 Then Frame2 False
Calendar 1.Visible = False
End I f Control Visible ShowTitle
End Sub Calendarl False False
Instrucciones del Control calendarl A las etiquetas desde la N° 15 hasta la N° 21, asígneles en su propiedad
Cuando se selecciona una fecha se oculta el Calendario. BorderStyle el valor 1-Fixed Single y en su propiedad Alignment el valor 1-
Private Sub C alendarl_C lick() Right Justify.
Text5 = Calendarl .Value A los otros controles asígneles las propiedades como se indica en el
Calendarl .Visible = False formulario.
End Sub
á p lp l> 482 G ru po E d it o r ia l Megabyte <1 1 1 1 1 1 ■G ru po E d it o r ia l Megabyte 483 w M
vj^ívM ' VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO
A l e je c u ta r e l f o r m u la rio d e b e te n e r el s ig u ie n te a s p e c to : (nstrucc. del botón Actualizar Instrucc. del botón Grabar
Private Sub Command3_Click() Private Sub Command 1_Clíck()
Command1.Visible = True Frame ¡.Enabled = True
Doto» dol P i oduc
Joooo.^ Command2. Visible = True Frame2. Enabled = False
Command3. Enabled = False Command 1.Visible - False
Presentación Command4. Enabled = False Command2. Visible = False
Val« de Compra Frame¡.Enabled = False Command^ .Enabled = True
l(5V (183K) Frame2.Enabled = True Command4. Enabled = True
Preoio d o Compra
XCOD1GO = Textl A dodcl.Recordset. Update
Utihd*d (29X1
X,NOMBRE = Text2 calcular
IOOOOJ
00004
P»*cio uleVenta
XPRESENTACION = Text3 End Sub
OOÚC
PS Deacumito (105;)
XVALOR = Val(Text4)
tcha do Vencimiento
If Not Texl5 = “ ” Then
[.<!■< l AdcKioi I'VJmI ;j|Ó3/07/03
XFECHA = CDate(Text5)
End If
Actualizar lo* Dalot Textl.SetFocus
End Sub
CARACTERÍSTICA DEL FORMULARIO. Instrucciones del botón Cancelar
1. Este formulario permite visualizar los datos de cualquier artículo in­ Private Sub Command2_Click()
cluyendo campos calculados: Framel.Enabled = True
IGV: 18% del Valor de Compra. Frame2.Enabled = False
Precio de Compra: Valor de Compra + IGV Commandl .Visible = False
Utilidad: 25% del Precio de Compra Command2. Visible = False
Command3. Enabled = True
Precio de Venta: Precio de Compra + Utilidad Command4. Enabled = True
Descuento: 10% del Precio de Venta ‘Se devuelven los datos originales
Precio al Publico: Precio de Venta - Descuento Textl = XCODIGO
Número de días para el artículo este vencido. Text2 = A’NOMBRE
2 Si faltan menos de 30 días para que el artículo venza, se deben visualizar Text3 = XPRESENTACION
en color rojo y si ya está vencido, debe visualizar la palabra “Venci­ Text4 = XVALOR
do” también con letras rojas. Text5 = XFECHA
3 Este formulario permite buscar al un artículo por su código o nombre Adodcl. Recordset.AbsolutePosition =A dodcl. Recordset. Bookmark
y tiene la posibilidad de actualizarlo. calcular
End Sub
INSTRUCCIONES DEL FORM ULARIO N° 03 Instrucciones del DataCombol
Private Sub DataCombol_Change()
Instrucciones del Form_Activate If DataCombol = Then Exit Sub
Prívate Sub Form_Activate() r = “Nombre Like + DataCombol +
A dodcl. Refresh Adodcl .Recordset.Find r,,, 1
I f Adodcl.Recordset.RecordCount = 0 Then IfAdodcl.Recordset. EOF Then
MsgBox "No existe el Articulo ‘ + DataCombol + 16. “Puede adicionarlo"
Command3.Enabled - False
Fram el .Enabled - False Adodcl .Recordset. MoveFirst
El se End If
calcular
CommandJ. Enabled = True End Sub
Fram el .Enabled — True Private Sub DataCombol_Click(Area As Integer)
End I f DataCombol jChange
End Sub
G r u p o E d it o r ia l Megabyte 485
lllll» VISUAL BASIC como debe ser. . . CAPITULO XII: Programación ADO %
Instrucciones del DataCombo2 A P L IC A C IÓ N D E S A R R O LLA D A N° 66
Private Sub DataCombo2_Change()
i*. Menú Principal
If DataCombo2 = “ ” Then Exit Sub
Art í culos Configuración
r = “Codigo Like + DataCombo2 +
• Sistema
A dodcl. Recordset. Find r, , , 1 Presentaciones
If Adodc 1.Recordset.EOF Then
MsgBox“NoexisteelArtíci(locoiielcódigo “+DataCombo2+ ”... ’’,16, ’’Puedeadicionado"
A dodcl. Recordset. MoveFirst
End If
calcular
End Sub

Private Sub DataCombo2_Click(Area As Integer)


DataCombo2_Change Esta aplicación es simi­
End Sub lar a la anterior. Funcio- .
, . i | 21/06/00 15:58 Visual Basic, Como debe ser... ¡ü ü l
na con dos tablas mas:
Instrucciones del procedimiento Calcular Configuración y Presentaciones.
Sub calcular()
Dim f A s String La tabla Configuración contiene sólo un registro donde se encuentran los
Dim dias As Long datos que la aplicación necesita para un buen funcionamiento y para un mante­
/ = Formatf“###.####,##0.00”, “(###,####,##0.00)") nimiento más rápido y fácil. Los datos que contiene son los siguientes:
valor = Val(Text4) ULTIM O CODIGO
igv = valor * 1 8 /1 0 0 Que indica cuál es el ultimo código generado y permite asignar en forma
pcompra = valor + igv automática el código que le corresponde a cada nuevo producto. La aplica
utilidad - pcompra * 25 /1 0 0 ción anterior permite que se ingrese manualmente el codigo para cada nue­
pventa = pcompra + utilidad vo artículo lo que puede ocasionar que se ingresen código repetidos.
descuento —pventa * 1 0 /1 0 0 IGV
ppublico = pventa - descuento
Label 15 = Formatf igv, f) En este campo se indica cuál es el porcentaje que la aplicación debe utilizar
Labelló = Formatfpcompra, f) para calcular el IGV. La ventaja que tiene este campo es que si algún día se
Label 17 = Fo rmatfutilidad,f) cambia el porcentaje de IGV, sólo se tendría que escribir el nuevo valor en
L abell8 - Formatfpventa, f) la tabla y la aplicación trabajará con este nuevo valor sin necesidad de
Label 19 = Formatf descuento,f) modificar el programa.
Label20 = Format(ppublico, f) U T ILID A D
If IsDate(Text5) Then En este campo se indica con qué porcentaje de utilidad debe trabajar la
dias = CDate(Text5) - Date aplicación.
lfd ia s < = 0 Then L a b e l2 1 -"Vencido” Else Label21 -CDate(Text5)- Date DESCUENTO
if dias< ~ 30 Then
Label21.ForeColor = QBColor( 12) En este campo se indica con qué porcentaje de descuento debe trabajar la
Else aplicación. ________________________________
Label21.ForeColor = QBColor(O) Ddlui Aclu n l m
End If En este formulario se confi­ Ultimo CMigo
Else NOTA gura los datos del sistema.
Label21 = Im puesto Genei al a la s Venias 3í

End If Las in stru ccion es de text5. C alendad Utilidad A c tu a l A.


End Sub y d el Botón Cerrar so n iguales al D o s t 'ionto Actual A’

formulario anterior.
Instrucciones de Text4 Aceptar los Cambios I iQnorar los Cambios

Private Sub Text4_Change()


calcular <ctjta£iz;ar ios GOatos

End Sub

486 G ru po E d it o r ia l Megabyte G r u po E d it o r ia l Megabyte 487


§ÉÉt¿ék>- VISUAL BASIC como debe ser. CAPÍTULO XII: Programación ADO < € ¡¡¡1 ^

La tabla Presentaciones es muy importante porque contiene todas las DESARROLLO DE LA APLICACIÓN N° 66
presentaciones que se pueden asignar a los artículos. Esto permite que el Agregue a la aplicación anterior el formulario N° 5 (Configuración), el formulario N°6
usuario ya no las escriba sino que las pueda seleccionar en forma rápida. (Clave para actualizar la tabla Configuración) y el formulario N° 7 (Presentaciones).
En este formulario se pueden agregar o quitar presentaciones.
FORMULARIO N s 01
•fi¡v Presentaciones TöT^l
En el formulario N° 1 (Menú Principal) agregue la opción Configuración con dos
P o te
T ubo
subopciones: Sistema y Presentaciones. También debe dibujar en el centro de este
B o ls a formulario un control Calendar y en su propiedad Visible asígnele el valor False,
T a b le t a s
A m p o ll a s
sólo se debe visualizar cuando se haga click en la fecha.
P a s tilla s

Instrucciones del Menú Principal


In g r e s a r N u e v a s P r e s e n t a c io n e s
Son similares a la aplicación anterior
P r e s e n t a c ió n f- Prívate Sub Consulta_Click()
Form4.Show 1
End Sub

Prívate Sub Listado_Click()


Form2.Show 1
ESTRUCTURA DE LAS TABLAS End Sub

Prívate Sub Mantenimiento_Click()


Configuración Presentaciones Form3.Show 1
UltimoCodigo Long Presentación Texto 20 End Sub
Igv Single
Utilidad Single Prívate Sub Presentaciones_Click()
Form7.Show 1
Descuento Single End Sub
MUY IMPORTANTE Prívate Sub Sistema_Click()
En la tabla Configuración adicione un sólo registro con los valores que desea que Form5.Show 1
la aplicación trabaje. End Sub
En la tabla presentaciones adicione todas las presentaciones que desea estén dis­
ponibles para asignar a los artículos. Prívate Sub StatusBarl_PanelClíck(ByVal Panel As MSComctlLíb.Panel)
If Panel.Index = 1 Then Calendar 1.Visible - True
OTRAS CARACTERISTICAS DE ESTA APLICACIÓN If Panel. Index = 4 Then Shell “c:\windows\calc.exe”, I
End Sub
• Se pone a disposición del usuario un calendario, el cual se activa cuando hace click Prívate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLíb.Button)
en la fecha de la Barra de Estado. If Button. Index = 1 Then Form2.Show 1
• El programa de listado muestra también los campos calculado usando los valores If Button. Index = 2 Then Form3.Show 1
de la tabla Configuración. If Button.lndex = 3 Then Form4.Show 1
• Se debe ingresar una clave para modificar los datos de la tabla configuración. If Button. Index = 4 Then End
• El ingrese de nuevos artículos es consecutivo, es decir, cuando se graba un artículo End Sub
la computadora queda lista para ingresar uno nuevo, generándose automáticamente
su codigo. Cuando se pulsa ESC en el calendario, este se oculta
• Cuando ubica el cursor en el DataCombo3 se muestra las presentaciones Prívate Sub Calendar 1_KeyPress(KeyAscii As Integer)
automáticamente. If KeyAscii - 2 7 Then Calendar ¡.Visible = False
• Cuando ubica el cursor en el DTPickcr I se muestra el calendario automáticamente. End Sub

488 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 489


^ l l l í l l l * VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO ^ Í¡ÍÉ ÍP
FORMULARIO N s 02 FORMULARIO N g 03
En el formulario N° 02, agregue un control ADO (Adodc2) y conéctelo a la tabla El diseño del formulario N° 03 (Mantenimiento), es similar al de la aplica­
Configuración para que los datos calculados se obtengan de los valores que contie­
ne esta tabla. ción anterior. Sólo debe cambiar en la presentación el control Text3 por el
También agregue un control Frame con 6 etiquetas. Para que en Label3 se muestre el control DataCombo3 para que el usuario pueda seleccionar la presentación
Igv de la tabla Configuración, en Label5 la Utilidad y en label7 el Descuento. del artículo 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 botón Cancelar cámbiele su propiedad Caption
IGV p tNMad Dwcuerto pôÇ por Salir. Los botones Grabar y Salir se visualizan cuando se agregan nue­
vos artículos. Debe dibujar dos botones más: Aceptar Cambios (Command7)
------------- ^ ..................., ........ - - 3 Tpi
y Cancelar Cambios (Command8) los cuales se visualizarán cuando actua­
Acaricida Crema >: P0 gr i Pole
► Acancida Loción x E.0 mi fiasco
5 00 o í a
10.00 0 20
510
1020
1.29
2.55Í
6.33
12 75
064:
1 23
5.7« 30/ 06/02
11 4907/ 01/03
i 73P.
i 327
~
lice los datos de un artículo. Esta parte del formulario N° 03 debe quedar de
perniili X 20 Compnmido? i Caía 1æ i 574
P i .a Cola'. 20 mi i Fiasco
13W 026
23.00 0 4G
13-26!
23.4G
3 32
5.87
i$.5a
2133 2V Í
14.9219/ 01/02
26 3$ 16/ 10/02 i 844 la siguiente manera:
Paiwdol Aritigwal x M.i tafo i Cat* 4 i ».i 0.08 4 00 1 02 510 0.51! 4.58 30/ 12/01 :*/.u ,
< ............................... i .....: .................. •r
N* d« A ll (culo « axb ad o i: 78
| t eKtl
[h|<|m~h ¡>|»i|u|jiJ».i.t-' [>JmJ I I C ó d ig o

|T e xt2
N o m b re
Instrucciones del Formulario N° 02
Prívate Sub Forrn_Activate() P re s e n ta c ió n
1 D a ta C o m b o 3 d
Dim texto, f A s String
f = Formatf“###,####,##0.00”, “(###,####,##0.00)'') V a lo r d e C o m p ra
jT e xt3 G rabar
Adodc2.Refresh
‘Cambia el tipo de Comando para poder utilizar instrucciones SQL F e c h a d e V e n c im ie n to 1 2 0 /0 6 /0 0 S alir
d
Adodcl.Command.Type = adCmdText
‘Almacena en las etiquetas los valores de configuración A c e p ta r C am bios C a n c e la r C am bios
Label3 - Adodc2.Recordset!lGV& “% ”
Labe 15 = Adodc2.Recordset!UTILIDAD & “% ”
Label7 = Adodc2.Recordset!DESCUENTO & “%" A los cuatro botones asígneles en su propiedad Visible el valor False porque
‘Almacenaenvariables los valoresde la tablaconfiguraciónpara realizarloscálculos. sólo se deben visualizar cuando se agreguen nuevos artículo o se actualicen
I = Adodc2.Recordset!IGV /1 0 0
U = Adodc2. Recordset! UTILIDAD /1 0 0
sus datos.
D = Adodc2. Recordset!DESCUENTO /1 0 0
‘InstrucciónSQLparaloscamposcalculados. Escribatodoenunasolalútea C O N TR O L D TP IC K E R
Adodcl.RecoidSowee= “selectCodigo,no>ribnj,pmerttacion,va¡orcompra,valoivompra* “&I& “asIGV
vaIorconipm+igvas[PreeioCompra],[PrecioCompra]*“&U& “asUtilidad,[PrecioCompraJ+Utilkbd □
as [Precio Venta], [Precio Venta] * “ &d&“ as Descuento, [Precio Venta] -Descuentoas [PiecioPublico],
Vencimiento, vencimiento-#’’&Dale &' ‘#as Diasfromartículos " Este control permite también ingresar una fecha de manera personalizada.
A dodcl .Refresh Para visualizarlo en el cuadro de herramientas debe crear un proyecto en el
‘Asignaunformatoy alineacióna laderechapara las columnasquecontienenúmeros modo C ontroles de VB E dición E m presarial o en la ventana de Compo­
For X = 2 To 8 nentes activar la casilla: M icrosoft Windows Common Controls-2 6.0.
DataGridl.Columns(X).NumberFormat = f Cuando lo dibuja en el formulario toma la forma de un Combo y muestra la
DataGrid1.Colurnns(X).Alignment = dbgRight
Next X fecha. Si desea ingresar la hora, asígnele en su propiedad Format el valor 2-
DataGrid1.Caption = “Listado de artículos al “ & Now dtp Time.
L abell = “N° de Artículo mostrados: “ & Adodcl.Recordset.RecordCount
End Sub 120/06/00 "»] j 02:35:41 p.m. -p

Í ||¡ ||¡ ^ 490 G ru po E d it o r ia l Megabvte G ru po E d it o r ia l Megabyte 491


|® |> VISUAL BASIC como debe ser. . . CAPÍTULO XII: Programación ADO ^ ¡¡¡IP
Cuando ejecute la aplicación debe hacer un click en la flecha para m irar el Instrucciones del Botón Actualizar
calendario y si desea cam biar el mes, haga click sobre el nom bre del mes Private Sub Command4_Click()
y para cam biar el año, haga click en el año. Framel.Enabled = False
Frame2.Enabled = True
J u n io 2 0 0 0
Frame 3.Enabled = False
-± J
Command7. Visible = True
Command8. Visible = True
28 23 30 31 1 2 3
4 5 6 7 8 9 10 'Se almacenan los valores originales en variables
11 12 13 14 15 16 17 XCODIGO = Textl
18 19 20 21 22 24 XNOMBRE = Textl
25 26 27 28 29 30 1 XPRESENTACION = DataCombo3
2 3 4 5 8 7 8
D H o y 23/06/00
XVALOR = Val(Text3)
XFECHA = DTPickerl
Text2. SetFocus
La fecha que selecciona se muestra en el control y se almacena en su propiedad Valué. End Sub
En este form ulario d e m anten im ien to tam bién d eb e d e agregar d o s con troles A D O . E l control
Instrucciones del Botón Grabar
A d o d c2 lo d eb e con ectar a la tabla P resen tacion es y e l A d o d c3 a la tabla C on figu ración . Private Sub Commandl _Click()
‘Graba el nuevo Artículo
A l control D a ta C o m b o3 le d eb e asignar las propiedades: A dodcl.Recordset. Update
RowSource ListField DataSource D ataList ‘Actualiza el campo "UltimoCodigo" de la tabla Configuración
Adodc3. Recordset!ultimocodigo = NuevoCodigo
A dodc2 P resentación A dodcl P resentación Adodc3.Recordset. Update
L as p ropiedades D ataS ource y D ataL ist p erm iten qu e cu an d o se se le c c io n a una presentación,
‘Prepara un nuevo registro
Adodcl.Recordset.AddNew
esta se grabe en la tabla A rtículos.
NuevoCodigo = Adodc3. Recordset!ultimocodigo + 1
AI con trol D T P ic k e r l le d eb e asign ar las propiedades: Textl = Format(NuevoCodigo, “00000”)
DataSource D ataList Text2. SetFocus
End Sub
A dodcl V encim iento
E sto perm ite q u e cu an d o se s e le c c io n e una fech a, se grabe en la tabla A rtícu lo. Instrucciones del Botón Salir
A l control T e x tl a síg n e le en su propiedad L ock e l valor True para q u e no s e perm ita ingresar Private Sub Commcind2_Click()
o m od ifica r el c ó d ig o , ya qu e se au togenera m ed ian te la tabla C on figu ración . Frame 1.Enabled = True
Frame2. Enabled = False
Frame3. Enabled = True
IN ST R U C C IO N E S D E L F O R M U L A R IO N° 03 Commandl. Visible - False
La programación de este formulario sólo varía en los siguiente controles: Command2. Visible = False
Instrucciones del Botón Ingresar Nuevo A rtícu lo A dodcl. Recordset. Cancel Update
If Adodcl. Recordset. RecordCount = 0 Then
Prívate Sub Command.3_Click() Command4. Enabled = False
Framel.Enabled = False Command5. Enabled = False
Frame2.Enabled = True
Frame3.Enabled = False Frame 1.Enabled = False
Command1.Visible = True Else
Command2. Visible = True Command4. Enabled = True
Adodcl .Recordset.AddNew Commands. Enabled = True
NuevoCodigo = Adodc3.Recordset!ultimocodigo + 1 Framel.Enabled = True
Textl = Format(NuevoCodigo, “00000”) End If
Text2.SetFocus End Sub
End Sub

492 G ru po E d it o r ia l Megabvte ip ! ^ G ru po E d it o r ia l Megabyte 493


VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO 41111
Instrucciones del Botón Aceptar Cambios FORMULARIO N 2 0 5
Private Sub Command7_Click()
Frame!.Enabled - True Este formulario permite actualizar los datos del sistema. Su diseño es muy sencillo,
Frame2. Enabled = False sólo debe dibujar 4 etiquetas, 4 Cajas, 4 botones de comandos, un control Frame y
Frame3. Enabled = True un control ADO. Al control ADO conéctelo con la tabla Configuración y a las cajas
Command7. Visible - False de texto con el campo respectivo. Asigne el valor False a la propiedad ControlBox
Command8. Visible - False del formulario y a propiedad Enabled del control Frame 1 para que no se pueda
Adodcl.Recordset.Absolut ePosition- Adodcl.Recordset.Bookmark modificar los datos hasta que se ingresa correctamente la clave. El aspecto final del
End Sub formulario debe ser:
Instrucciones del Botón Cancelar Cambios
Private Sub Command8_Click{) O a lo * A c tu a le s

‘Si cancela, se devuelven los datos originales Ultimo Código

Textl = XCODIGO Impuesto General e les Ventas JTe xt 2


Text2 = XNOMBRE
DataCombo3 = XPRESENTACION Utilidad Actual 7¡¿ |Text 3
Text3 = XVALOR D escuento Actual

DTPickerl = XFECHA A ceptar los Cambios j Ignorar los Cambios j


Frame ¡.Enabled = True
Frame2.Enabled = False
Frame 3. Enabled = True I 1-^ I ^ I A d o d c l
Command7. Visible —False
Command8. Visible = False
End Sub Instrucciones del Form Actívate
Instrucciones del Control DataCombo3 Prívate Sub Form_Activate()
Private Sub DataCombo3_GotFocus() A dodcl .Refresh
“Cucav¡oseubicaelcursorenDataConibo3se muestranlaspresentaciones End Sub
SendKeys "¡F4}" Instrucciones del Botón Actualizar los Datos.
End Sub Prívate Sub Command3_Click()
Instrucciones del Control DTPicker ‘Llama al formulario N°6 para ingresar primero la clave
Private Sub DTPickerl_CloseUp() Formó.Show ¡
‘Despues de seleccionar la fecha seenfoca el botón Grabar End Sub
Command¡. SetFocus Instrucciones del Botón Aceptar Cambios
End Sub Prívate Sub Command¡_Click()
Private Sub DTPickerl_GotFocus() A dodcl .Recordset. Update
‘Cuando se ubica el cursor en DTPickerl se muestra el calendario Frame ¡.Enabled = False
SendKeys “IF4¡’’ End Sub
End Sub Instrucciones del Botón Ignorar Cambios
Instrucciones del Control Text3 Prívate Sub Command2_Click()
‘Sólo permite el ingreso de números A dodcl. Recordset. CancelUpdate
Private Sub Text3_KeyPress(KeyAscii A s Integer) A dodcl .Recordset. MoveFirst
lf(Chr(KeyAscii)< “0”OrChr(KeyÁscii)> “9")AndKeyAscii O 8Then KeyAscii=0 Frame ¡.Enabled = False
End Sub End Sub
Instrucciones del Botón Cerrar
NOTA Prívate Sub Command4_Click()
Las instrucciones de los otros controles son igu ales a los d e la ap licación anterior. Hide
Las instrucciones del F o rm u la rio N" 04 (C onsulta) se desarrolla de la m ism a forma que el End Sub
Formulario N°03, só lo debe de mostrar los cam pos calculados y permitir actualizar de los artículos.

494 G ru po E d it o r ia l Megabyte-1 G ru po E d it o r ia l Megabyte 495


l i l i l í VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO n
Como se indica en las instrucciones del botón Actualizar los Datos, cuando El control Command 1 permite borrar una presentación, tiene en su propiedad Style
el usuario haga click en este botón se visualiza el formulario N° 06 para el valor 1-Graphical, en su propiedad Picture un gráfico y en su propiedad Enabled
ingresar la clave. Su diseño consiste en un control Picture con el gráfico que el valor False porque sólo se active cuando se seleccione una presentación.
usted desee, una etiqueta, una caja de texto y un botón de comando. Al Para adicionar una nueva presentación escríbala en la caja de texto y pulse ENTER
formulario asígnele en su propiedad BorderStyle el valor 0-None. para que se grabe.
Instrucciones del Form Actívate
Private Sub Form_Actívate()
C lave de A c c e s o
'Si no hay nunguna presentación se desactívate DataList 1
If A dodcl.Recordset.RecordCount = 0 Then
DataList ¡.Enabled - False
E n d lf
Ok
End Sub
Instrucciones del Control DataListl
Instrucciones del Botón OK (Formulario N°6) Busca la presentación seleccionada y activa el Commandl.
‘En este ejemplo la clave es VISUAL. Private Sub DataList l_Click()
Prívate Sub Com m andl_Click() r = “Presentación = “ ‘ + DataList 1.Text +
Adodcl. Recordset. Find r ,, , 1
I f UCase(Textl) = “ VISUAL” Then
Commandl .Enabled = True
Form5!Framel.Enabled = True End Sub
Else
Form5!Framel .Enabled = False Instrucciones del botón Borrar Presentación (Gráfico)
End I f Private Sub Commandl_CIick()
A dodcl.Recordset.Delete
Textl = DataListl .ListField = “presentación ”
Hide Commandl.Enabled = False
E nd Sub If A dodcl .Recordset.RecordCount = 0 Then
D ataListl .Enabled = False
FORMULARIO N g 07 E n d lf
End Sub
Este formulario permite ingresar o eliminar presentaciones para asignar a Instrucciones del Control Textl
los productos. Su diseño consiste en un control DataList, un Frame, una Permiten grabar la presentación al presionar ENTER
etiqueta, dos botones de comandos y un control ADO. Al control ADO Prívate Sub Textl_KeyPress(KeyAscii As Integer)
conéctelo con la tabla Presentaciones y el control DataList 1 debe tener en IfKeyAscii - 13 Then
su propiedad RowSource el nombre del control ADO y en su propiedad If Textl <> Then
ListField el cambo Presentación. DataListl .Enabled - True
A dodcl.Recordset. AddNew
-j.gi .sj Adodcl .Recordsetípresentacion = Textl.Text
DataListl
A dodcl .Recordset. Update
Textl =
End If
Ingresar Nuevas Presentaciones
E n d lf
Presentación j Textl End Sub
Instrucciones del botón Salir
Private Sub Commandl_Click()
::::::::: \ <| Adodd 1►1►
»| : : : : : : : : : Hide
End Sub

496 G r u po E d it o r ia l Megabyte < G ru po E d it o r ia l Megabyte 497


fM ¡¡§
f r VISUAL BASIC como debe ser. CAPÍTULO XII: Programación ADO
El DataReport inicialmente esta compuesto por 5 secciones que se utilizan
EL DATAREPORT para diseñar el Reporte.
Sección N° 01 - DETALLE
Es la sección principal porque aquí se indican los datos que se desea mostrar
El Visual Basic 6.0 tiene un nuevo control para crear reportes. Este control en el reporte. Estos datos normalmente se obtienen de una o mas tablas
se llama DataReport. usando el control RptTextBox.
Para trabajar con el DataReport debe de adicionarlo Sección N° 02 - ENCABEZADO DE PAGINA
EraY0Cto a su 4proyecto, para ello, haga click en la opción Es la sección que contiene el texto que se imprimirá al inicio de cada página
¡ 3 Agregar formulario
Agregar formulario m di
_ ", . * , 7 . .
Proyecto de la barra de menú y luego en Agregar del reporte. La información que se muestra en esta sección es: Encabezado
Agregar módulo D c ltc l R c p O ft.
de cada campo, N° de página, etc.
Agregar módulo de dase
Sección N° 03 - PIE DE PÁGINA
J f Agregar control de usuario
Es la sección que contiene el texto que se imprimirá al final de cada página
i a Agregar página de propiedades del reporte. Aquí también se puede mostrar el número de cada página, la
í¡i§ fecha y hora de impresión, etc.
Agregar DHTML Page Sección N° 04 - ENCABEZADO DE INFORME
Agregar Data R eport _________ Es la sección que contiene el texto que se imprimirá sólo al inicio del Reporte.
Agregar WebClass
Aquí puede mostrar el nombre de la empresa y comentarios sobre el reporte.
Agregar Data Environment
Sección N° 05 - PIE DE INFORME
Agregar archivo,.. C trl+ D
Es la sección que contiene el texto que se imprimirá sólo al final del Reporte.
Quitar F o rm i Aquí puede mostrar por ejemplo algún resumen del reporte.
^ R e fe re n c ia s ...

Com ponentes... C trl+ T MUY IMPORTANTE


Al momento de crear el reporte no es obligatorio que utilice todas las secciones.
Propiedades de Proyecto 1 ...

CONFIGURAR LA VENTANA DE DISEÑO DEL REPORTE


Si no visualiza la opción Agregar DataReport, activa la ventana
de Componentes y en la hoja Diseñadores active la casilla del General Cuando agrega un DataReport a su proyecto puede asignarle el tamaño
DataReport DataReport que usted desee y configurar su N o -« tí - . Cl/H-H
ventana de diseño. Para ello haga 5 Oti’f V
Se visualiza la ventana para crear el reporte y en el cuadro de click con el botón derecho en
herramientas se agrega una nueva sección con los controles cualquier parte de la ventana. Se ►
in s e rta r c o n tro l
que puede insertar en el reporte. % mostrará un menú contextual con
las siguientes opciones: 1-.fw tifi# ti'^'tíbcfr'ído r. ‘:fí - =_.e j ziupi
Insertar e n c a b e z a d o o pie d e g rupo
*✓ M ostrar e n c a b e z a d o o pie d e inform e
Si activa la ventana de Proyecto se visualiza el DataReport el cual al momento M ostrar e n c a b e z a d o o pie de p á g in a
de grabarse tiene la extensión *.DSR. V M ostrar c u a d ríc u la
✓ M ostrar reglas
Proyecto - Proyectol Fl >✓ Forzar a la c u a d ríc u la

□ a
NOTA O b te n e r e stru ctura
Si regresa al formulario y no visualiza los B orrar e stru ctura

' Proyecto 1 (Proyecto 1) controles en el cuadrode Herramientas, haga


clicen lafichaGeneral. Por ejemplo, si desactiva la opción Forzar a la cuadrícula, los controles
Ü Formi (Formi) se dibujarán con el tamaño que usted desee. También puede oculta o
visualizar secciones e insertar controles.
498 G ru po E d it o r ia l Megabyte-1 G ru po E d it o r ia l Megabyte 499
^ É IIIéI^ VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO ^ ¡¡¡¡¡^
CONTROLES DEL DATAREPORT También puede insertar o escribir códigos predefinidos dentro del reporte
usando el control RptLabel:
Los controles para crear reportes son muy similares a los controles que se %p : Muestra el número de página actual.
dibujan en un formulario incluyendo sus propiedades. %P : Muestra el número de páginas que tiene el reporte.
%d : Muestra la fecha actual con formato corto.
%D : Muestra la fecha actual con formato largo.
RptLabel: Permite insertar mensajes en el Reporte.
%t : Muestra la hora actual con formato corto.
%T : Muestra la hora actual con formato largo.
RptTextBox: Permite indicar los campos a mostrar en el reporte. %i : Muestra el título del informe.

Rptlmage: Permite insertar imágenes en el reporte. PROPIEDADES BÁSICAS PARA CREAR UN REPORTE

RptLine: Permite insertar líneas en el 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
RptShape: Permite insertar figuras geométricas en el Reporte. que contiene, sólo necesita asignarle a través una instrucción en su propiedad
DataSource del DataReport el nombre del control ADO y en cada control
RptFunction: Permite insertar funciones en el reporte. RptTextBox que se use en la Sección de Detalle escribir (no seleccionar)
en su propiedad DataField el nombre de cada campo cuyo contenido se
Cuando dibuja en el reporte el control RptFunction en forma predetermina­ desea mostrar en el reporte.
da se muestra la función SUM que permite sumar campos numéricos den­ Para cam biar los m árgenes del D ataReport utilice sus propiedades:
tro del reporte. Si desea usar otra función active su propiedad FunctionType RightMargin(Derecho) LeftMargin (Izquierdo), BottomMargin (Inferior) y
donde podrá seleccionar además las siguiente funciones: TopMargin (Superior).
1-RptFuncAve.- Para obtener el Praomedio. Para indicar el tamaño inicial de la ventana del DataReport use su propiedad
2-RptFuncMin.- Para Obtener el valor Mínimo. WindowState.
3-RptFuncMax.- Para obtener el valor Máximo.
4-RptFuncRCnt.-Para obtener la cantidad de registros.
5-RptFuncVCnt.-Para obtener la cantidad de registros en blanco MÉTODOS DEL DATAREPORT
6-RptFuncSDEV.-Para obtener la desviación estándar.
7-RptFuncSERR.-Para obtener el error estándar. SHOW
Muestra sólo en pantalla el reporte (Vista Previa), pero contiene dos botones
NOTA Etiqueta en la esquina superior derecha que permiten enviar a la impresora el reporte
Los controles se puede insertar en el DataReport desde el C uadro d e texto o exportarlo como tipo HTML para enviarlo a través de Internet o de tipo
cuadro de Herramientas o haciendo click derecho en la Im age
texto para leerlo desde otro programa.
ventana de diseño y eligiendo la opción Insertar Control. L ín e a
PRINTREPORT
Forma
Los controles que estén disponibles depende de la sec­ Permite enviar el reporte directamente a la impresora.
ción donde hizo click derecho.
Núm ero actual d e página
REFRESH
Núm ero total de páginas
Permite actualizar el reporte.
F ech a actual (formato corto) EXPORTREPORT
F ech a actual (formato largo) Permite exportar el reporte como HTTML o texto.
H o ra actual (formato corto) HIDE
H o ra actual (formato largo)
Permite ocultar el reporte,
T ítulo del informe

500 G ru po E d it o r ia l Megabyte< l i l i l í G rupo E d ito ria l Megabyte 501


# m VISUAL BASIC como debe ser. J f l j j j H H H A CAPÍTULO XII: Programación ADO
APLICACIÓN DESARROLLADA N° 67 O TRA S C A R A C TER ÍSTIC A DE LA A P L IC A C IÓ N :

A la aplicación anterior agregue un nuevo formulario. Este formulario muestra Los nombre de los campos se llenan automáticamente en el Combo.
en un Datagrid los artículos, pudiéndolos seleccionar mediante una condi­ Cuando se selecciona el campo Vencimiento y ubica el cursor en
ción que Ud, forme. Esta condición puede ser múltiple, es decir, el usuario Textl para ingresar el valor, se visualiza el calendario.
puede hacer uso del operador AND (Y) o del operador OR (O) las veces Si elige el ValorCompra no se permite el ingreso de letras.
que desee y al hacer click en el botón IM P R IM IR todos los artículos que Al hacer click en el botón Aceptar, la condición que el usuario forma se
se encuentran en el DataGrid se muestran también en el reporte. almacena en una caja de texto para que se pueda editarla si lo desea.
Al hacer doble click en un campo los artículos se ordenan por dicho
•ü. R e p o r te d e A r tíc u lo s - Iniisi campo.
I presentación
Al mostrar los registros se muestra la cantidad total de artículos, la can­
tidad de artículos mostrados y el porcentaje que representa del total.
El contenido de algunas etiquetas del formulario se pasan al reporte
Condición
(DataReport).
p r e s e n t a c i ó n = *F
Si no se forma una condición correcta se visualiza el respectivo mensaje.
Mostrar con la Condición Mostrar Todos

codioo ~1 valorçpmp.ra vencimiento


► 00006 AB-Broncol 300 IM Frasco 9.5 15/06/00
01/05/02
D E SA R R O L LO DE LA A P L IC A C IÓ N
00007 AB -Broncol 600 1M Frasco 12
00002 Acaricida Loción x 60 mi. Frasco 10 07/01/03
29/06/00
00009 Fenistü Gotas Frasco 20 mi Frasco 13
1. D ib u jar los controles EneoLJoM
00010 Finistil Jarabe Frasco 100 mi Frasco
Frasco
io.
23
28/06/00
16/10/02
00004 Pilka Gotas 20 mi

D e u n to ta l d e 2 8 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 (2 1 .4 3 % )

IM P R IM IR I Cem» |

•jjt DataReportl I3 B 3 I
, ~E
Zoom U o o x

MWB«B?aÉu

REPORTE DE ARTÍC U LO S A L 28/06/00


Condición : p re s e n ta c ió n = 'F ra s c o ' P á g in a N° 1 d e 1

P re s e n ta c ió n V a lo r d e C o m p r a F e c h a d e V e n c im ie n to
C ó d ig o A r t íc u l o

00006 A B -B ro n co l 3 0 0 IM Frasco 9 .5 0 1 5 jC 6 jOO

00007 A B -B ro n co l 6 0 0 IM F ra sco 1 2 .0 0 01J05J02

0 7 /0 1 /0 3
2. Asignar las propiedades.
00002 A c a ric id a L o ció n x 6 0 mi F ra sco 1 0 .0 0

00009 Fenistil G o ta s F r a s c o 2 0 F ra sco 1 3 .0 0 2 9 /0 6 /0 0 • Al control Adocd 1 conéctelo con la tabla artículos y al DataGrid 1 selec­
00010 Finistil J a r a b e F r a s c o 1 0 0 F ra sco 1 0 .0 0 28 .0 6 /0 0

16 /1 0 /0 2
cione el Adodcl en su propiedad DataSource.
00004 Pilka G o ta s 2 0 mi F ra sco 2 3 .0 0
• Al los controles Adodcl y Calendar 1 asígneles en su propiedad Visible
D e u n t o t a l d e 2 8 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 (2 1 .4 3 % )
el valor False.
• Al resto de controles asígneles sus propiedades como se indica en la
P á g in a s: Hj<fP ±lHj aplicación a desarrollar.

502 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 503


VISU AL BASIC como debe ser. CAPÍTULO XII: Programación ADO
DISEÑO DEL DATAREPORT INSTRUCCIONES D E L F O R M U L A R IO
Instrucción del Forma Activate
Agregue a la aplicación un DataReport e inserte los controles y sus Prívate Sub Form_Activate()
propiedades para que tenga el siguiente aspecto: ‘Llena el Combol con los nombre de los campos de la tabla Artículos
C om bol.Clear
í|É D a ta R e p o rt! F o rX = 0 To A dodcl.Recordset.Fields.Count - 1
0- I • 1 • I • 2 • I • 3 ■ I . 4 i | • 5 > | > 6 < I i 7 • I • 8 • -1 * 9 * 1 ■10 ■ I ■11 ■ I ■12 ■ I ■13 ■ I ■14 ■ I ■15 ■ I ■16 ■ I .1
Combol.Addltem Adodcl.Recordset(X).Name
■ f Encabezado de inform e (Sección4)
N extX
Encabezado de página (Sección2) Combol.Listlndex - -1 ‘Deja en blanco el Com bol
'LlenaelCombo2conlosoperadoreslógicos. Dejeespacioantesydespuésdel Operador
R E P O R T E D E A R T IC U L O S A L % d Combo2.Clear
Combo2.Addltem “ = “ : Combo2.Addltem “ < “
.Condición : &¡qUetal Página N- %p de %P
Combol.Addltem “ > “ : Combo2.Addltem “ < = “
Combo2.Addltem “ > = “ : Combol.Addltem “ < > “
Código Presentación Valor de Compra Fecha de Vencimiento Combo2. Addltem “ like “ : Textl - : Text2 =
4 Detalle (Sección 1) ÉPÉÉÉ5ÉS _ A dodcl. Refresh
Vencimiento
Codigo ! Nombre Presentación VálorCompra TR = Adodcl. Recordset. RecordCount
4- Pie de página (5ección3) Label2=”Deu>itotalde “&TR& “artículos, semuestran “&TR& “que representad100.00%"
End Sub
4 Pie de informe (Sección5) --------
Instrucción del Botón Aceptar
E tiq u é ta lo í
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
En la sección de encabezado de Página dibuje 9 etiquetas para los títulos del If Combo2. Listlndex = 6 Then
reporte. Por ejemplo, la Etiqueta 1 tiene en su propiedad Caption: REPORTE condicion - Combol + Combo2 + + Textl +
DE ARTÍCULOS AL %d para que se muestre también la fecha. La etiqueta4 Else
tiene en su propiedad Caption: Página N° %p de %P, para que se muestre el condicion - Combol + Combo2 + “ + Textl +
número de la página actual y la cantidad total de páginas. End lf
La Etiqueta3 debe estar vacía para m ostrar allí el contenido de Text2 End If
‘Pregunta si el campo seleccionado es tipo Date
(Condición) del formulario.
lf Adodcl. Recordsetf Combol. ListIndex).Type = 7 Then
La Etiquétalo también debe estar vacía para mostrar allí el contenido del condicion = Combol + Combo2 + “CDATE(“' + Textl +
Label2 del formulario. End l f
En la sección de Detalle dibuje 5 cajas de texto y escriba (no seleccione) el ‘Pregunta si el campo seleccionado es tipo Currency (ValorCompra)
nombre exacto de cada campo de la tabla cuyo contenido se desea mostrar l f A dodcl .Recordset( Combo! .Listlndex). Type = 6 Then
en el reporte. ‘Pregunta si el valor ingresado es un número
Al control Text4 asígnele en su propiedad Alignment el valor 1-RptJustifyRight IflsNumeric(Textl) Then
condicion = Combo1 + Combo2 + Textl
porque los valores numéricos se deben alinear por la derecha. Además debe Else
asignarle en su propiedad DataFormat el Formato Currency con 2 decimales MsgBox ‘‘Debe ingresarsólonúmeros’ 16, “Haseleccionadoelcampo: “&
y en Símbolo el valor None. Adodcl.Recordsetf Combo 1. Listlndex). Name
Textl = “ ” : Textl.SetFocus
NOTA End If
Si desea mostrar campos calculados en el reporte, utilice el nombre que le asigna End If
en la instrucción SQL después de la palabra AS. Text2 - Text2 + condicion
End Sub

^ |||||¡ ^ 504 G rupo E ditorial Megahvte <l l § á l i | s á lll* G rupo E ditorial Megabyte 505 mm
^ÉÍÍÉÉÉÍ’- VISUAL BASIC como debe ser. CAPÍTULO XII: Programación ADO
Instrucción del Botón Y Instrucción del Control DataGrid
Prívate Sub Command2_Click() Prívate Sub DataGridl_DblClick()
Text2 = Text2 + "AND " ‘Espacio antes y después ‘Permite que al hacer Click en un campo se ordene p o r dicho campo
End Sub Adodc 1.CommandType = adCmdText
IfText2 = “ ” Then
Instrucción del Botón O Adodc ¡.RecordSource = “select *from artículos orderby “ & Adodcl .Recordset
(DataGrid ¡.Col ).Name
Prívate Sub Command3_Click()
Else
Text2 = Text2 + " OR " 'Espacio antes y después Adodc ¡.RecordSource = “select *from artículos where “ & Text2 & “ orderby “ &
End Sub Adodc 1. Recordsetf DataG ríd l. Col). Ñame
E n d lf
Instrucción del Botón Borrar A dodc 1. Refresh
Prívate Sub Command6_Click() End Sub
Text2 -
End Sub Instrucción del Control Textl
Prívate Sub Text¡ jGotFocus()
Instrucción del Botón Mostrar con la Condición ‘Pregunta si no se ha seleccionado el operador lógico
Prívate Sub Command4_Click() IfCombo2 = Then
On Error GoTo Mensaje MsgBox “Indique el operador para la condición”, ¡6, “E rror”
TR = Adodcl.Recordset.RecordCount Text¡.Locked = True
‘Indica que se va a utilizar una instrucción SQL Exit Sub
Adodc 1.CommandType = adCmdText Else
Adodc I .RecordSource - “select * from artículos where “ + Text2 Textl. Locked = False
Adodc l.Refresh E n d lf
Pregiaitasielcanposeleccionadocontiaieunafecluipara mostrarel Calendario
RM —Adodcl.Recordset.RecordCount
P = R M * 100/T R If ¡sDate(Adodc¡.RecordsetfCombo¡.Listlndex)) Then
Calendar ¡ .Visible = True
Label2- “Dewitotalde" &TR& “artículos, semuestran “&RM& “querepresentan el End ¡f
( “ & Round(P, 2)& “%)" End Sub
Exit Sub
Mensaje: Instrucción del Botón Im prim ir
MsgBox “No ha indica una condición correcta", 16, “P orfavor verifique” Prívate Sub Command7_Click()
End Sub ‘Asigna la propiedad DataSource del DataGrid a la propiedad DataSource de!
‘DataReport para mostrar en el reporte lo que se muestra en el DataGrid
Instrucción del Botón Mostrar Todos Set DataReport¡.DataSource = DataGrid].DataSource
Prívate Sub CommandS._Click() DataReport 1.Sections{2). Controlsf 3). Caption = Text2
‘Indica que se va a utilizar una instrucción SQL DataReport l.Sectionsf 5).Controlsf l).Caption = Label2
A dodcl .CommandType = adCmdText ‘Muestra el Reporte
Adodc 1.RecordSource = “select * from artículos" DataReport 1.Show
A do de I.Refresh End Sub
TR = A dodcl .Recordset.RecordCount
NOTA
Label2- ”Dewitotalde “&TR& “artículos, semuestran “&TR& “que representa el100.00%
Para referirse a un control d el D ataR eport d esd e un form ulario se usa la c o le c c ió n S ectio n s
End Sub
para indicar la se cció n d on d e se encuentra el control y la c o le c c ió n C on trols para referirse
esp ecífica m en te al control. La se ccio n es se enumeran de arriba hacia abajo. El en cab ezad o del
Instrucción del Control Calendarl Reporte e s la prim era se cció n .
Prívate Sub Calendarl_Click() L os con tro les de cad a se cció n se enum eran d e acuerdo al orden en el que se dibujan (en cada
Textl - Calendarl. Valué se cció n lo s co n tro les se enum eran a partir de 1). En el reporte de ejem p lo se asum e que la
Calendarl .Visible = False Ltiqueta3 del la se cció n E n ca b eza d o d e P ágin a (S e c . N ° 2 ) f u e el tercer control que se dibujó.
End Sub Puede usar tam bién el nom bre d e cada control.

506 G ru po E d it o r ia l M e g a b y t e < |j ¡ |¡ | G r u po E d it o r ia l Megabyte 507


íZáttú VISUAL BASIC como debe se r.. . CAPÍTULO XII: Programación ADO ^ ¡¡S
BOTONES DEL DATA ENVIRONMENT
DATA ENVIRONMENT
Agrega una nueva conexión
El Data Environment (Entorno de Datos) es otra de las nuevas formas que
2k
a Agrega un nuevo Comando.
tiene Visual Basic para conectarse a una base de datos y permitir administrarla
mediante objetos ActiveX. Inserta Procedimientos Almacenados
Si desea conectarse a una base de datos mediante el Data Environment, M.
debe de agregarlo a su aplicación, para ello seleccione la opción Proyecto M Agrega un Comando Secundario.
de la Barra de Menú y luego Agregar Data Environm ent. Si no la visualiza
X Elimina un Objeto de Data Environment
ingrese a la opción Más Diseñadores A ctiveX o activa la ventana de
Componentes y en la hoja Diseñadores active la casilla Data Environment.
Cuando agrega el Data Environment se visualiza la siguiente ventana:
m Actualiza el Data Environment

jki Muestra la Ventana de Diseño de instrucciones SQL


t |; P ro y ec to l - D ataE n viro n m en tl (D ataE n vironm ent) H L llE ä Muestra la Ventana de Propiedades
JÜ.
> ,ld o | 1 1 1 1J M M flä k m Muestra las Instrucciones
?Hy] D a ta E n v iro n m e n tl
ill Muestra la Ventana de Configuración
Connection!

Ibi Organiza por conexiones

jk Organiza por Objetos

La conexión se realiza mediante el objeto Connection el cual representa la


[1 ] o b je to s conexión 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­
Cuando se agrega el Data Environment se mostrará también en la ventana ción que realizan consultas a una base de datos para obtener los registros
del explorador de proyecto: que deseamos los cuales se almacenan en un objeto Recordset.
Los Procedimiento Almacenados son un conjunto de instrucciones SQL
\%j¿ P ro y e c to - P ro y e c to l m u m . □ !x | precompiladas almacenadas con un nombre en una base de datos y se pue­
den ejecutar con una llamada desde una aplicación.
m Q
Un Comando Secundario forma Comandos Jerárquicos que consisten en
j B J2$ P ro y e c to 1 (P ro y e c to 1) un comando que se encuentra dentro de otro. Al comando principal se le
i l I B a E m l F o >f ¡u i ó r1 llama Comando Primario y al otro Secundario y permiten mostrar conteni­
C j F o rm i ( F o r m i) dos de una tabla separados por grupos usando un campo determinado o
N D iseña dores mostrar el contenido de varias tablas relacionadas.
D a ta E n v iro n m e n tl (D a ta E n v iro n m e n tl)

NOTA:
Otra forma de acceder a las opciones anterior es haciendo click derecho sobre
Cuando graba el Data Environment utiliza la extensión *.Dsr (Diseñador). cualquier objeto del Data Environment

508 G ru p o E d ito r ia l M eg ab y te <l¡ ||f |j¡ j ¡ lililí* G ru po E d it o r ia l Megabyte 509


o
CAPÍTULO XII: Programación ADO
WÆii Ufo VISUAL BASIC como debe ser...
En el objeto Command se configura el origen de los registros. Seleccione
A P L IC A C IO N C O N D A T A E N V IR O N M E N T este objeto y haga click en el botón propiedades. Se visualiza la siguiente
ventana. G ra x s s ia s m m e e e e e e e e e e e e e e e e
Para desarrollar una aplicación usando Data Environment tiene que utilizar General | Parámetros ] Relación ) Agrupar | Agregados ) Avanzadas j

Hombre do comando |Commari>.Í'l Conejuói'i: j Connection I —


y asignarle propiedades por lo menos dos objetos de este diseñador: El objeto OiKjen de datos
Connection y el Objeto Command. í*' Objoto do £ase <1° datos: j PiocuUimit» ii
Nombre de obiet«-. |
En el objeto Connection se configura la conexión a la base de datos. Para : f Intlnicctón SOI;
ello seleccione el objeto Connection y haga click en el botón Propiedades.
Se visualiza la siguiente ventana:
L-m-.'-n !-¡ ¡» -.'í-rriss» » — —
Proveedoi J Conexión } Avanmdn ) 1odoi |
L±. Cancelar |
Seteccions los dato« a Io í que des«»« c o n « e l*te
Proveedor(esJ de OLE OB
Microsoft Jet 3.Q1 OLE OB Provider Visual Basic asigna un nombre predeterm inado al objeto Command
Microsoft Jet 4,0 OLE OB Provider
Microsoft OLE DB Ptovidai foi Internet Publbhhw (Command 1) y al Connection (Connectionl), si usted desea puede cambiarles
Microsoft OLE DB Piovidor foi OLAP Scivicoi
Microsoft OLE OB Provider for Oracle
Microsoft OLE DB Provider for SQL Sorvcr
de nombre.
Microsoft OLE OB Simple Provider
MS Remoto
MSDataS liape
Proveedor de Microsoft OLE DB para paquete-; DTS
SOL Server DTS Fiat File OLE DB Provide. 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 Instrucción SQ L y escriba la
Siguiente >> ) instrucción SQL correspondiente para seleccionar los registros deseados.
[ Aceptar | Cancelar | Ayuda
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
Los pasos que siguen se explicaron en la página N° 428 (Conexión mediante DataReport.
Archivos de Vínculos - OLE DB).
Si ya tiene una conexión ODBC creada debe elegir la opción Microsoft En los c o n tro le s donde n e c e site in d ic a r la base de d ato s use
OLE DB Provider For ODBC Drivers. D ataEnvironm entl y donde necesite indicar la tabla use Cornmandl.
Una vez que estableció la conexión a la base de datos debe agregar un Por ejemplo:
objeto Command al objeto Connection. Para ello selecciónelo y haga click Para desarrollar el siguiente listado , dibuje un D ataG rid y en su propiedad
en el botón Agregar Comando. Visualiza la siguiente ventana: DataSource indique DataEnvironmentl y en DataMember indique Cornmandl.
üu L is ta d o d e A r tíc u lo s c o n D a ta E n v iio n m e n t T - !□ ! X ||

§g¡¡ Project! - DataEnvironmentl (D... H0E3| c o d iq o n o m b re 1 p re s e n ta c ió n 1 v a lo rc o m p ra v e n c im ie n to ▲


► 0 0001 A c a r ic id a C re m a x 6 0 gr : P o te 5 3 0 /0 6 /0 2 —
'!□ ! Infi n| u 1 00002 A c a r ic id a L o c ió n x 6 0 rrt F ra s c o
F e n is til x 2 0 C o m p rim id o C aja
10
13
0 7 /0 1 /0 3
1 9 /0 1 /0 2
00003
ll ü DataEnvironmentl 00004 P ilk a G o ta s 2 0 m i F ra s c o 23 1 6 /1 0 /0 2
00005 P a n a d o l A n tig rip a l x 6 0 i C aía 4 3 0 / 1 2 /0 1
- 3? Connectionl 00006 A B -B ro n c o l 3 0 0 IM F ra s c o 1 5 /0 6 /0 0
9 5 ................................
0 Cornmandl 00007 A B -B ro n c o l 6 0 0 1M F ra s c o 12 0 1 /0 5 /0 2
00008 V e n o r u to n F o rte x 1 2 Ce C a ja 13 3 0 /0 6 /0 0
00009 F e n is til G o ta s F ra s c o 2 0 F ra s c o 13 2 9 /0 6 /0 0

1« .............j ............................................................................ ± r

Comando: Cornmandl desde Connectionl

510 G ru po E d it o r ia l Megabyte *^§§1111 G ru po E d it o r ia l Megabyte 511


o
m fa VISUAL BASIC como debe ser.. CAPÍTULO XII: Programación ADO

VENTANA D E D IS E Ñ O D E IN S T R U C C IO N E S SQ L USO DEL DATA REPORT CON DATA ENVIRONMENT

Para crear un reporte usando el Data Environment debe agregarlo a su


Si en el cuadro Origen de Datos elige la opción Instrucción SQL, puede
escribirla en ese mismo cuadro, pero tiene la posibilidad también de hacer aplicación junto con el Data Report.
click en el botón Generador SQL para ingresar a la ventana de diseño de En el Data Environment debe de configurar la conexión a la base de datos
instrucciones SQL la cual permite escribir de manera personalidad las que desea utilizar en el reporte.
instrucciones que necesita. Después de configurar la conexión debe asignarle al Data Report dos
propiedades : DataSource y DataMember.
Área para las Tablas Ventana de Vista de Datos En DataSource debe seleccionar el nombre del DataEnviroment que en
forma predeterminada es DataEnvironment 1.
im . En su propiedad DataMember debe seleccionar el nombre del comando
ta si que en forma predeterminada es Com m andl.
J Vínculos d e datos
1 Conexiones del Entorno d e datos
Luego a cada caja de textos (RptTextBox) que dibuje en la sección de
.Ijifül Connection 1
Detalle para mostrar el contenido de los campos debe asignarles como mínimo
Columna Alias 1Tabla jResul ad-l Tipo d e ord e n 1O r d e n ]Criterios
dos propiedades: DataMember y DataField.
En su propiedad DataMember debe seleccionar el nombre del Comando y

A 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. Sólo
necesita asignar un tamaño y posición a cada ventana de tal manera que se
puedan visualizar ambas al mismo tiempo:

Area para los Campos Área de Instrucciones SQL Área


r^a de Resultados
CS »..ini “ ¡
1-j.laL.J —i—1-iiai i1;*)
"i* "Sk %
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 también ordenar los registros y seleccionarlos
usando las columnas Tipo de Orden y Criterios respectivamente.
En el área de Instrucciones SQL se va escribiendo autom áticam ente lo
que va diseñado. Si usted desea puede m odificarla o escribir una nueva
instrucción SQL. Cuando tenga ambas ventanas arrastre cada campo del objeto Command a la Sección
Para mirar los resultados de la instrucción SQL generada puede hacer click de Detalle del DataReport. Cada campo se muestra con sus propiedades DataMember
derecho y elegir la opción Ejecutar. y DataFiel ya configuradas y acompañada de una etiqueta a su izquierda que muestra
Si pega varias tablas puede relacionarlas arrastrando el campo clave de una el título del campo. Si desea puede mover esta etiqueta a la sección Encabezado de
tabla a la otra. Página o borrarla.
Para ejecutar el DataReport sólo necesita escribirDATAREPORT1.SHOW.
512 G ru po E d it o r ia l Megabyte <||§ |¡|§ G ru po E d it o r ia l Megabyte 513
VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO W J P
EL CONTROL MSHFLEXGRID
USO DE COMANDOS JERÁRQUICOS EN MSHFLEXGRID

1. Mostrar los artículos agrupados por su Presentación


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: Agregue a su aplicación un DataEnvironment y a su objeto Connection 1
M icrosoft Hierarchical Flexgrid. conéctelo la base de datos Tienda (Pag N° 438), luego agréguele un
Para que el control MSHFlexGrid pueda mostrar información de un Data
objeto Command 1 y en su ventana de propiedades seleccione Instrucción
Environment, debe asignarle en su propiedad DataSource el nombre del
SQL para escribir la instrucción SQL que agrupe los artículos por su
DataEnvironment y en su propiedad DataMember el nombre del Command.
Para que el control MSHFlexGrid pueda mostrar información de un control Presentación.
ADO, debe asignarle sólo en su propiedad DataSource el nombre del control P ro p ie d a d e s d e C o m m a n d l

ADO. G en e ial jParám etros | R elación | Agrupar | A greg ad o s | A va n za d a s |


La ventaja de este control es que permite mostrar información de una manera
personalizada. Por ejemplo, puede m ostrar el contenido de Comandos Nom bre de com ando: |C o m m andl Conexión: | C o n ne ctionl ~*]
Jerárq u ico s (Pg.472) alm acenados en objetos R ecordset del Data Origen de datos

Environment. f O bjeto de b ase d e datos: j

N om bre d e objeto: [~ "3


Por ejemplo: El contenido de la tabla Artículos lo puede mostrar agrupadas por la
presentación, el año de vencimiento, etc.: (* Instrucción SQL: G enerador SQ L...

S E L E C T P R E S E N T A C IO N F R O M A R T IC U L O S G R O U P BV
m . L is ta d o d e A r tíc u lo « A g r u p a d o s p o r P R E S E N T A C IO N töt^ i P R E S E N T A C IO N O R D E R B Y P R E S E N T A C IO N

1 2 /3 0 /0 1
00 0 0 8 6 / 3 0 /0 0
00011 Im portal x 6 S h a c h é is
1/ 7 / 0 3
000 04 P ilka G otas 2 0 mi
000 06
00 0 0 7 A B -B fo n c o l 6 0 0 IM A cep tar C ancelar Aplig® A yuda
Frasco
00 0 0 9 Fenistil G otas F rasco 20 mi.
00010 Finisti! Ja ra b e F rasco 1 00 rnl
00012 5 / 8 /0 2
00 0 1 3 Fluida sa iny x 2 mi 9/1 6 /0 0
00001 Luego seleccione el objeto Commandl y haga click en el botón Agregar
Comando Secundario. Se visualiza la siguiente ventana:
ü¡. Listado de A rtícu lo s Agrupados por AÑO DE VENCIMIENTO

AÑ O CODIGO NOMBRE PRESENTACIO N VA LO R C O M P R A VEN C IM IEN TO


Q 00006 AB -B roncol 300 IM Frasco 9.5 6 /1 5 /0 0
00008 V enoruton Forle x 12 Comp. Caja 13 6 /3 0 /0 0
2000 00009 Fenistil Gotas Frasco 20 ml. Frasco 13 6 /2 9 /0 0
00010 FinistilJatabe Frasco 1 00 mi. Frasco 10 6 /2 8 /0 0
0 0013 Fluidasa iny x 2 mi Frasco 13 9 /1 6 /0 0
B 2001 00005 P anadol Antiqripal x GO tab Caja 4 12 /3 0 /0 1
B 00001 A caricida Crema x 60 gr. Pote 5 6 /3 0 /0 2
00003 Fenistil x 2 0 Comprimidos Caja 13 1 /1 9 /0 2
00004 P ilka G otas 20 mi Frasco 23 1 0 /1 6 /0 2
2002
00007 A B -B roncol 6 00 IM Frasco 12 5 /1 /0 2
00011 Importal x 6 S hachets Caja 20 1 /1 9 /0 2
00012 Panalgin amp. x 2 mi Frasco 54 5 /8 /0 2
B 2003 00002 A caricid a Loción x 60 mi. Frasco 10 1 /7 /0 3
Comando: Command2 desde Connectionl

M. 514 G ru po E d it o r ia l M e g a b y te ^ |||¡ ¡ | G ru po E d it o r ia l M e g a b y te 515 « T O


% VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
Ingrese a la ventana de propiedades del Command2 y seleccione la 2. M o stra r los artículos agrupados po r el Año de Vencim.
tabla Artículos, luego en la hoja R elación agregue una relación entre el
Com m andl y el Command2 por el campo Presentación y al final haga Para que la agrupación se muestre por el año de vencimiento de cada Artículo
click en A ceptar. debe cambiar la propiedad del comando primario y secundario:
Propiedades de Command2 Propiedades de Command2 Propiedades de Commandl Propiedades de Command2

j J j
General Parámetros Relación ] Agrupar | Agregados Avanzadas | General | Parámetros Relación | A g r ia r ) Agregados ] Avanzadas | J
Genefal Parámetros | Relación | Agrupar | Agregados | Avanzadas j J
General Parámetros | Relación | Agupar | Agregados | Avanzadas

Nombre de comando: |Command2 Conexión: | — “ j F f jefacionat con un comando primaria Nombre de comando: ¡Commandl Conexión: |Connect»n1 3 Nombre de comando: |Command2 Concón: j

Origen de datos Comando primario: | Commandl ~*\ Origen de datos : Origen de datos.............

: Objeto de base de datos: ¡Tabla Definición de relación


Campos secundarios y
C Objeto de base de datos [ --------------- □ C Objeto de base de datos: I

Nombre de objeto: ¡Artículos Campos primarios parámetros Nombre de objeto: [ Nombre de objeto: f J
C Instrucción SQL: <• Instrucción SQL: . (* Instrucción SQL

SELECT YEAR(VENCIMIENTO) AS AÑO FROM ARTICULOS SELECT


GROUP BYYEAR (VENCIMIENTO) ORDER BY CODIGO.NOMBREPRESENTACION.VALORCOMPRA,VENCIMI
YEAR(VENQMIENTO) ENTO,YEAR(VENÜMIENTO) AS AÑO FROM ARTICULOS
ORDER BY VENCIMIENTO

í Aceptar | Aceptar Ayuda ! Aceptar Aplicar Ayuda Aceptar Aplicar Ayuda


Ayuda

De esta manera el Comando Jerárquico (Commandl) queda listo para mostrarlo en


el control M SHFIexGrid. Para ello asigne en la propiedad D ataSource del INSTRUCaÓNSQLDELCOMMANDl
MSHFlexGrid el nombre del Data Environment y en su propiedad DataMember el SELECT YEAR(VENCIMIENTO) AS AÑO FROM ARTICULOS GROUP BY
nombre del comando primario (Commandl). Para ver el listado ejecute su aplicación. YEAR(VENCIMIENTO) ORDER BY YEAR(VENCIMIENTO)

En forma predeterm ina los grupos de registros se muestran en forma INSTRUCCIÓNSQLDELC0MMAND2


Horizontal como se indica en la Página N° 477. Si desea visualizarlos en SELECT CODIGO, NOMBRE, PRESENTACION, VALORCOMPRA, VENCIMIENTO,
forma vertical, haga click derecho dentro de este control y en la hoja General YEAR(VENCIMIENTO) AS AÑO FROM ARTICULOS ORDER BY VENCIMIENTO
cambie su propiedad BandDisplay a Vertical.
Cuando utiliza el modo Vertical puede hacer uso de la propiedad Bandlndent La relación se debe realizar por el campo calculado Año:
para indicar a partir de qué columna se debe visualizar los registros del P ropiedades d e Com m and2
Comando Secundario. Para ello ingrese a la hoja Bandas y seleccione G e n e ra l j P a rá m e tro s R e la c ió n | A g ru p a r ] A g re g a d o s | A v a n z a d a s )
primero en Band la Banda 1 (Command2) y luego en la propiedad Bandlndex
fs? [ g e i a e i o n a r c o n u n c o m a n d o p rim a ric j
indique el N° de la columna.
En la hoja Bandas también puede seleccionar los campos del Comando C o m a n d o p rim a rio : j C o m m a n d l “3
Secundario que desea visualizar: D e f in ic ió n d e r e la c ió n
C a m p o s s e c u n d a rio s y
C a m p o s p r im a r io s p a rá m e tro s

PH ES EN TACIO N oorliqo J/iombre

Fenjílil x 20 Cornpiimidoi 1/ I 9/02


I I- .1.A.,! mimi . .1 x 1.(1 i ,|. I . V :i j A11
V e r . O H j I o n For t e x 1 Comp G/3Ò/00
T / T í V / o ;?....

A c e p ta r | C a n c e la r Ayuda

516 G r u po E d it o r ia l M e g a b y te " ^ G ru po E d it o r ia l Megabyte 517


Û ' VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO
Para crear el reporte anterior, puede diseñarlo de la siguiente manera:
REPORTE DE COMANDOS JERÁRQUICOS
% P ro je cti - D a taR e p oitl (DataReport)

Si usted desea mostrar en el reporte los datos que se encuentran en Comandos 4 Encabezado de informe (ReportHeader?

Jerárquicos, sólo tiene que agregar una nueva sección mas al DataReport. 4 Encabezado de página (PageHeader)
Esta sección se llama GRUPO y para adicionarla debe puede hacer click Reporte de Artículos por Año de Vencimiento
derecho en el DataReport y elegir la opción Insertar Encabezado o Pie de A ño de V en c im ie n to
4 Encabezado de grupo (Command 1„Header)
Grupo o una vez que asignó las propiedades Datasource y DataMember al Valor de Compra Fecha de Vencim iento
AHO [C o m m a n d i] Código
DataReport hacer click derecho en él y elegir la opción Obtener Estructura. 4 Petate (Command2_DetaiQ________
CODIGO[Comrriancß] j NOMBRE[Commancß] VAl0f?C0MPRA [Commancß] VENCMENTÖ [Command2]

El encabezado de grupo lo debe configurar para que muestre la información Cantidad de Artículos: j RCNT ICommand21

del Comando Primario (Com andl) y la sección de detalle para que muestre 4 Pie de página (PageFooterj

la información del comando secundario (Command2). 4 Pie de informe (ReportFooter

La sección Pie de Grupo la puede configurar para mostrar un resumen de


Sección de Encabezado de Página
cada grupo, por ejemplo, la cantidad de registros mostrados, la suma de
Esta sección tiene dos Etiquetas una con el título principal y la segunda con
campos numéricos, etc.
el título “Año de Vencimiento”.
Sección Encabezado de Grupo
I
i§fc D a t a R e p o i t l
jH _b J Zoom [‘loo*
il
Esta sección tiene un control RptTextBox que m uestra cada año de
11
................ J vencimiento. En su propiedad DataMember seleccione Commandl y en su
Reporte de Artículos por Año de Vencim iento propiedad DataField el campo calculado AÑO. El resto de controles son
■ Año de Vencimiento
Etiquetas con el título para cada campo del Command2.
2000 Código Artículo Valor de Compra Fecha de Vencimiento
00006 A B -Broncol 3 0 0 IM 9.50 1 5/06/00
Sección de Detalle
■a-
00010 F inisti J a r a b e F r a s c o 1 0 0 mi. 1 0 00 28/06ÆI0 Esta sección tiene cuatro controles RptTextBox que muestran el contenido
00009
■ 00008
Fenistil G o ta s F r a s c o 2 0 mi.

V en o ru to n F o rte x 1 2 Com p.
13.00 2 9/06 /00
de los campos del Command2. En la propiedad DataMember de cada uno
13.00 30/06/00
00013 Fluidas« iny x 2 mi 13.00 16)09/00
de ellos seleccione el Command2 y en DataField el campo respectivo.
Cantidad de Artículos: 5 Sección Pie de Grupo
2001
Esta sección tiene un control (RptLabel) con el título Cantidad de Artículos
Código Artículo Valor de Compra Fecha de Vencimiento
00005 Pan ad o l Antigripal x 6 0 ta b 4.00 30/12/01
y un control RptFunction que muestra la cantidad de productos que se vencen
Cantidad de Artículos: 1 en cada año. En su propiedad FunctionType seleccione 4-rptFuncRCnt, y
2002 Código
en su propiedad DataMember seleccione Command2.
Artículo Valor de Compra Fecha de Vencimiento
0 0011 Importal x 6 S h a c h e ts 20.00 1 9/01/02
00003 Fenistil x 2 0 Com prim idos 13.00 1 9/01/02 NOTA
00007 A B -Broncol 6 0 0 IM 1 2.00 0 1/05/02 Usted puede cambiar el diseño de este reporte de acuerdo a lo que necesita y para
00012

00001
P analgin a m p . x 2 mi 5 4.00 0 8/05/02 visualizarlo puede escribir dentro de un botón de Comandos del formulario la
00004
A caricid a C rem a x 6 0 gr.

Pilka G o ta s 2 0 mi
5 .00 30/06/02
siguiente instrucción: DataReportl.Show
Cantidad de Artículos: 6
2 3 .0 0 1 6/10/02
También puede hacer que semuestre automáticamente cuando ejecute el proyecto,
configurándolo como objeto inicial (Proyecto/Propiedades del proyecto).
Páginas: H ¡4 |T ~

518 G r u po E d it o r ia l Megabyte •5|¡¡ f ^ j j ^ G ru po E d it o r ia l Megabyte 519


á llíill* VISUAL BASIC como debe ser.. CAPÍTULO XII: Programación ADO
APLICACIÓN DESARROLLADA N° 68 DESARROLLO DE LA APLICACIÓN

La siguiente aplicación permite mostrar en un reporte el contenido de Co­ Para desarrollar esta aplicación agregue a su formulario un DataEnvironment
mandos Jerárquicos que se forman de dos tablas: Vendedores y Ventas que y un DataReport.
se encuentran en la base de datos llamada CONTROL y cuyas estructuras Al objeto Connectionl del DataEnvironment conéctelo a la base de datos
son: CONTROL, luego agregue un comando (Commandl) e ingrese a su ventana
de propiedades donde se escribe una instrucción SQL que obtiene los datos
Vendedores Ventas de los vendedores ordenados por su nombre:
Codigo Text 3 Codigo Text 3 SELECTCodigo,Nombre,TelefonoFROMVendedores ORDERBYNombre
Nombre Text 30 Fecha Venta Date
Telefono Text 10 Monto Currency G e n e ra l | P a rá m e tro s ] R e la c ió n ] A g ru p a r ] A g r e g a d o s j A v a n z a d a s )

Distrito Ven ta Text 20 N o m b re d e c o m a n d o : | Commandl C o n e jjió n : | Connectionl

j O rig e n d e d a to s
1 O b je to d e fease d e datos: j

Este reporte muestra también de cada vendedor la cantidad de ventas rea­ N fim b ro d e o bje to : j

lizadas, el monto total vendido y su promedio de ventas. In s tiu c c ió n S Q L : fie n e r a d o r SQ L..


J
t t . D a ta ñ e p o rtl

H J e f] Z M m J jjlO O * J
1^ ^ ■;.:--------- j
--------------------------- ÜÉ
. J
A p lic a r

R EPO R TE DE V E N T A S POR V EN D E D O R Luego al C om m andl agréguele un com ando secundario donde debe
seleccionar Tabla en Objeto de base de datos y en Nombre de objeto
Codigo
003 José Portilla 228844 seleccione la tabla Ventas
Fecha Monto Distrito
15/01/00 200.00 Ferreñafe G e n e ra l ] P a rám e tro s ] R e la c ió n ) A g ru p a r ] A g re g a d o s ] A v a n z a d a s J

16/02/00 300.00 La Victoria LJom bre d e c o m a n d o : j C o rr.m w d 2 C onexión: }7


20/02/00 150.00 Chiclayo
C rip e n d o d a lo s
10/03/00 500.00 Zana
22/03/00 450.00 Etem [Tabla ■ 3
N° de Ventas 5 Total S/. 1,600.00 Promedio S/. 320.00
N o m b re d e o bjeto: ¡VENTAS
~3
In s tr u c c ió n S Q L : - J .:u ffifc ía i .
Codigo Nombre Teléfono ........— --------------------------------
004 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 A c e p ta r j C a n c e la r |


Codigo Nombre Teléfono
Hoemi Montano 234878
002
También puede seleccionar Instrucción SQL para obtener por ejemplo todos
Fecha Monto Distrito
12/01/00 50.00 Reque
los registros de la tabla Ventas ordenados por la fecha de ventas.
14/01 /00 150.00 La Victoria En el Comando Secundario ingrese a la página RELA C IÓ N y agregue
18/02/00 500.00 Pimentel
20/02/00 200.00 Lambayeque una relación con el Commandl por medio del campo Código.
Aginas:¡«HIT ►M 'I ......... Para activar el Reporte escriba en el formulario D ataR eportLShow .

G ru po E d it o r ia l Megabyte" G r u po E d it o r ia l Megabyte 521


É£: VISUAL BASIC como debe ser. CAPÍTULO X II: Programación A B O ^ ¡¡¡¡¡1
R E A L IZ A R L A C O N EXIÓ N
CONEXIÓN A UNA BASE DE DATOS
M E D ÍAN TE INSTRUCCIONES Para realizar la conexión se utiliza el objeto tipo Connection con la propiedad
ConnectionString y la forma de conectarse depende del origen de datos que
Para conectarse a una base de datos sin usar el control ADO ni el diseñador ha creado.
DataEnvironment, debe seguir los siguientes pasos: Por ejemplo:
1. Configurar al Visual Basic para que acepte la manipulación los Objetos 1. Si tenemos un ODBC llamado Agenda y hemos definido el objeto DB tipo
de D atos A ctiv eX Connection, las instrucciones para conectarse son: DB.ConnectionString
= “D SN =A genda ”
mediante instrucciones. Referencias - Proyectol
2. Si tenemos un Archivo de Vínculo OLEDB llamado Ventas en la carpeta
Esto se realiza activando C:\Sistema, y hemos definido el objeto DB tipo Connection las instrucciones
Referencias disponibles:
la c a silla M icrosoft para conectarse son:
ActiveX Data Objects □ Intel Procedural Effect Library DB.ConnectionString = “File Name=C:\Sistema\Ventas.UDL”
x .x Library en □ JET Expression Service Type Library
□ LayoutDTC 1.0 Type Library
P royecto /R eferen cias. □ LM Library Si no ha creado ningún origen de datos, también puede realizar la conexión
Li Macromedia Shockwave Director Control — 1 mediante una cadena de conexión. Por ejemplo, la siguiente instrucción se
□ Microsoft Access 9.0 Object Library + 1
□ Microsoft Active Server Pages Object Librar conecta a una base de datos Microsoft Access llamada Practica.mdb.
□ Microsoft ActiveMovie Control Prioridad DB.Conned¡onString="Provider=Microsoft.Jet.OLEDB.4.0;DataSourcc=C:\I,radinuiull>"
□ Microsoft ActiveX Data Objects (Multi-dimer
B Microsoft ActiveX Data Objects 2,1 Library + 1
□ Microsoft ActiveX Data Objects 2.0 Library A B R IR U NA C O N E X IÓ N
□ Microsoft ActiveX Data Objects Recordset ;
□ Microsoft ActiveX Plugin .
: p e r osoft Add-In Desianej
Después de realizar la conexión como se indicó en el paso anterior, ésta so
mantiene cerrada, si usted trata de utilizarla se visualizará el siguiente mensaje
Microsoft Visual Basic

2. Definir un objeto tipo Connection. Sintaxis: Error ‘3709’ en tiempo de ejecución :

Ditti N om bre d el Objeto A s N ew A D O D B . Connection La aplicación solicitó una operación en un objeto con una referencia a
un objeto Connection cerrado o no válido.
3. Definir un objeto tipo Recordset. Sintaxis:
D im N om bre d el Objeto As N ew A D O D B .R ecordset

Dependiendo de la cantidad de formularios que vas a usar en la aplicación,


estos objetos se pueden definir también a nivel de Módulo usando la palabra lerm inar f ¿epurar j

Public.
El objeto tipo Connection se utiliza para administrar la conexión a la base Esto significa que antes de utilizarla, la debe abrir.
de datos. El método OPEN permite abrir una conexión. Sintaxis:
El objeto tipo Recordset almacena los registros que se obtiene de las tablas O bjeto_T ipojC on n ection . Open
de la base de datos donde nos conectamos para poder manipularlos en nuestra Por ejemplo para abrir la conexión almacenada en el objeto DB se debe
aplicación. escribir: D B.O pen
La palabra ADODB es un prefijo que contiene todos los objetos de datos También se puede abrir e indicar el origen de datos o la cadena de conexión
ActiveX. Se debe visualizar automáticamente después de escribir la palabra al mismo tiempo según el origen de datos que ha creado:
New al definir los objetos. Si no se visualiza seguramente no activó la casilla DB.Open "DSN=Agenda"
M icrosoft ActiveX Data Objects x.x Library en la opción Proyecto/ DB.Open “File Name=C:\Sistema\Ventas.UDL”
Referencias. DB.Open “Providei^Microsoft.Jet.OLEDB.4.0;DataSource=C:\Practica.mdb”

522 G r u po E d it o r ia l Megabvte<|f|¡^ 1111^ G ru p o E d ito r ia l Megabyte 523


é S B lk v is i ja B B M M W B i M M 1 CAPÍTULO XII: Programación ADO

ACCEDER A LOS REGISTROS 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.
Para acceder y manipular los registros se puede utilizar el objeto definido de N om bre del O bjeto R ecordset.C lose
tipo Recordset con sus propiedades métodos que se explican a continuación. SAVE
Otras de sus propiedades y métodos se explicaron con el control ADO. Permite grabar un Recordset en el disco. Si desea abrir posteriormente el
A C T IV E C O N N E C T IO N objeto use también el método Open.
Permite indicar al objeto Recordset la conexión desde donde se van a obtener N om bre d el Objeto R ecordset.Save N om bre
los registros. Por ejemplo, la siguiente instrucción le indica al Visual Basic Ejemplo: Las siguientes instrucciones muestran en un DataGrid el contenido
que los registros se van a obtener de la conexión configurada en el objeto de un Recordset grabado con el nombre copia. Dibuje un DataGrid en su
formulario.
DB: RS.A ctiveC onnection = D B
Dim DB As New ADODB.Connection
SO U R C E Dim RS As New ADODB.Recordset
Esta propiedad se utiliza en lugar de Recordsource y permite acceder a los DB.Open “D SN =IN FO RM E”
registros a través de una instrucción SQL o indicando el nombre de la tabla: RS.Open “SELECT * FROM Artículos WHERE ValorCompra<50",
RS.Source= "select*fromartículoswhere year(vencimiento) = 2002" DB, adOpenKeyset, adLockOptimistic
RS.Source = “ artículos” I f Len(Dir(“COPIA”, 0)) o 0 Then
I f M sgBox(“Desea reemplazarlo”, 36, “Ya existe el
OPEN Recordset llamado COPIA”) = 6 Then
Es un método que permite abrir el acceso a los registros Kill “CO PIA”
R S.O pen Else
En este método también se puede indicar el origen de los registros, la Exit Sub
conexión desde donde se van a obtener los registros, el tipo de cursor End I f
(CursorType) y el tipo de bloqueo (LockType). Por ejemplo, las instrucciones: End I f
RS.ActiveConnection = DB RS.Save “C O PIA”
RS.Source = “artículos” RS. Cióse
RS.CursorType = adOpenKeyset Set RS = Nothing
RS.LockType = adLockOptimistic RS.Open “C O PIA”
RS.Open Set DataGrid 1.DataSource = RS
Se pueden reemplazar por:
RS.Open “artículos”, DB, adOpenKeyset, adLockOptimistic CLONE
Permite crear copia de un Recordset. La siguiente instrucción hace una
RE Q U E R Y copia de RS en RS2:
Permite actualizar los registros de un objeto Recordset. Set RS2= RS. Clone
CLO SE FILTER
Permite cerrar un objeto Recordset liberando los recursos del sistema. Filtar los registros de un RecordSet. La siguiente instrucción filtra sólo los
Cuando usted cieña el objeto Recordset o cualquier otro objeto, no lo elimina artículos que valen menos de 50 nuevos soles:
de la memoria, para ello tiene que utilizar NOTHING.. RS.Filter = “ValorCompra < 5 0 ”
SORT
N O T H IN G Ordena los registros de un Recordset. Ejemplo:
Es una palabra clave que borra un objeto de la memoria. Sintaxis: Set Nombre RS.CursorLocation = adUseClient
d el Objeto = N othing RS.Open “A rtículos”, DB, adOpenKeyset, adLockOptimistic
RS.Sort = “ValorCompra”
Set DataGridl.D ataSource = RS
524 G ru po E d it o r ia l Megabyte^ G ru po E d it o r ia l Megabyte 525 wm
VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
APLICACIÓN DESARROLLADA N° 69 INSTRUCCIONES DE LAAPLICACION
Esta aplicación consiste en una consulta, listado y reporte para la tabla Definir los objetos en la General Declaraciones
Dim DB A í New ADODB. Connection
artículos sin usar el control ADO, ni el diseñador Data Environment. Dim RS A s New ADODB.Recordset

«¡i. Aplicación sin el c o ntici ADO ni Data Environnent


Instrucciones del Form_Activate
Prívate Sub Form_Activate()
CZ listado ‘Realiza la conexión
D a lo s d e l A r t ic u la
DB.Open “DSN=VENTAS”
■Código
RS.Open ‘‘select *Jmmartículosorderbynombre",DB, adOpenKeyset, adLockOptimistic
‘Asigna las propiedades al Datacombol
A B-Bronci 300 !M |A B -B ío n c o l3 0 0 IM DataCombo 1. Text =
AB-Bioncol 600 IM Nombre
Acaricida Crema x 6 0 gi
Set DataCombol.RowSource = RS
Acaricida Loción x 60 m£, iFfasco DataCombo LListField = RS(l).Name
FemsW Gotas Frasco 20 mi Pie:eri»ación
jFenisH x 20 Comprimidoí
‘Asigna las propiedades a las cajas de texto
F«n*stil Jarcíbe Fiasco 1 00 mi Set Textl .DataSource = RS
Ftadasa ir$¡ x 2 mi V a b r de Com pia
Importal x$Shache*s ,
Set Text2. DataSource = RS
Panado! An#igrç>al k SO tab J j I 1 5 /0 6 /0 0
Set Text3. DataSource = RS
Fecha de Venomienío
Set Text4. DataSource = RS
Set Text5.DataSource = RS
Textl.DataField = RS(0).Name
Textl.DataField - RS( 1 ).Name
« . Aplicación tin el control ADO ni Data Erwuonment
Text3. DataField = RS(l).Name
Text4.DataField = RS(3).Name
C o n stila TextS.DataField = RS(4).Name
‘Asigna las propiedades al D ataG ridl
Ivatorcom ora i vencim iento
c o dw o
00006
I nombre
' A B-Broncol 300 IM
l presentación
i Frasco 9.5 1 5 /0 6 /0 0
Set DataGridl. DataSource = RS
00007 A B -Bronco! F£n IM F- : • .......1 2 ......... 0 1 /0 5 /0 2 __ End Sub
001X11 l - « - ida Cremai k BO j r P qle 5 3 0 /0 6 /0 2
00002 h ; ai*: >da _oc :n • oU - sFrasco 10 0 7 /0 1 /0 3 Instrucciones del control DataCombol
00009 I V fii." bo?a: ' i a : . 0 2 J f iz.co 13 2 8 /0 6 /0 0 Prívate Sub DataCombol_Change()
0 00 33 f " ili ■! JJ L m| r rnid !.. : i ...... 13 ist/ l M Dim R As String
00010 Fr¡i-I¿ 1 i h f ' f . i o l^ r m c r in 2 8 /0 6 /0 0 .......
R = “NOMBRELIKE + DataCombol + •**’”
00013 F ^id a s a rsy y.2.
mi Fiasco 13 16/0 9/00
If DataCombol < > Then
00011 1mportal » 6 Shachets C sa r20 Î 9 /0 1 /0 2
nnnnS i P.« ia /V i I AnlinrmA! v (-.lì 1(" .«*» 4 Ï1 /1 VfH RS.Find R ,, , 1
_ J ¿
l< IfRS.EOF Then
R e p o rte
Frame 1.Visible = False
RS.MoveFirst
Else
Frame 1.Visible = True
En la primera hoja del control SsTab dibuje el control Frame, las etiquetas y E n d lf
un control DataCombo y cinco cajas de texto. Al control DataCombol sólo E n d lf
asígnele el valor 1-dbcSimpleCombo en su propiedad Style. End Sub
Instruciones del SsTab_Click
En la segunda hoja del SsTab sólo dibuje un control DataGrid y no le asigne Instruc. botón Reporte Prívate Sub SSTabl_Click(PreviousTabAs Integer)
ninguna propiedad. Prívate Sub Commandl _Click() If PreviousTab = 1 Then
El Reporte diséñelo como se indica en la página N° 467, pero sólo con el Set DataReportl.DataSource=RS RS.MoveFirst
título principal y las cajas de texto donde se indican los campos a visualizar DataReport 1.Show DataCombol =
DataReportl .Refresh E n d lf
y sus respectivo títulos. End Sub
End Sub

G ru po E d it o r ia l Megabyte 527
, fK W .
É i » VISUAL BASIC como debe ser. . . CAPÍTULO XII: Programación ADO ^ ¡¡¡¡¡1

EL METODO EXECUTE DEL OBJETO CONNECTION INSTRUCCIONES SQL PARA CONSULTAS DE ACCIÓN

Este método permite ejecutar instrucciones SQL sobre una conexión para D ELETE FROM
obtener y darles mantenimiento a los registros o a las tablas y crear Cursores. Esta instrucción permite borrar todos o sólo un grupo de registros de una tabla.
Sintaxis para borrar todos los registros de una tabla:
Puede ejecutar cualquiera de las instrucciones SQL ya explicadas y espe­ D elete From Nombre de la Tabla
cialmente instrucciones SQL para Consultas de Acción o Instrucciones DDL.
Sintaxis para borrar sólo un grupo de registros:
D elete From Nombre de la Tabla W here Condición
CONSULTAS DE A C CIÓ N
La consultas de acción son un conjunto de instrucciones SQL que permiten Tenga mucho cuidado al utilizar esta instrucción porque los registros que
dar mantenimiento a los registros de una tabla. Las principales acciones que borra ya no se pueden recuperar. Se recomienda hacer una copia de segu
se pueden realizar son: ridad antes usarla.
Ejemplo: Si tenemos el objeto DB conectado a la base de datos Tienda que
1. Actualizar los valores de los registros. tiene la tabla Artículos, entonces:
2. Adicionar nuevos regi stros. La siguiente instrucción borra todos los registros de la tabla artículos:
3. Eliminar registros. D B .E x ecu te(“D elete fr o m A rtíc u lo s”)
La siguiente instrucción borra sólo los artículos que se vencieron en el año
IN ST R U C C IO N E S DDL 1999.
Son un conjunto de instrucciones del Lenguaje de Definición de Datos que DB.Execute(“Delete from Artículos Where Year(Vencimiento) = 1999”)
permiten dar mantenimiento a las tablas de una base de datos. Las principa­
les acciones que puede realizar son: IN S E R T IN T O
Permite insertar registros a una tabla existente desde otra tabla. La tabla
1. Crear tablas. donde se van a adicionar los registros debe existir porque si no existe se
2. Modificar la estructura de las tablas. produce un error con el tiene el número -2147217865. Su sintaxis es:
3. Borrar tablas. Inserí luto TablaDestíno Select Campol,Campo2,...CampoN From TablaOrigen
La sintaxis anterior adiciona todos los registros de la tabla Origen a la tabla
Si se obtienen registros con el método EXECUTE, se pueden almacenar en
Destino. Si desea adicionar sólo un grupo de registros, debe utilizar Where
un objeto Recordset. Por ejemplo, las siguientes instrucciones muestran en con la condición al final de la instrucción. Ejemplos:
un control MSHFlexgrid los artículos ordenados por el Valor de Compra. La siguiente instrucción adiciona todos los registros a la tabla Artículos a la
Después de cerrar el Recordset los registros se siguen visualizando. tabla Respaldo.

Dim DB As New ADODB.Connection DB.Execute(“Insert Into Respaldo Select codigo,nombre, presentación,valorcompra,


vencimiento from Artículos”)
Dim RS As New ADODB.Recordset
DB.Open “D SN =IN FO RM E” La siguiente instrucción adiciona los artículos que tienen presentación Caja
RS.Open “SELECT * FROM Artículos ORDER BY ValorCompra” de la tabla Artículos a Respaldo.
Set M SH FlexG ridl.D ataSource = RS DB.Execute(“Insert Into Respaldo Select codigo,nombre, presentación,valorcompra.
RS. Cióse vencimiento from Articulos Whre Presentación = ‘Caja’”)
Set RS — Nothing

ty 528 G ru po E d it o r ia l Megabyte^ ¡ ||||j j ^ G ru po E d it o r ia l Megabyte 529 - ^ |§ |¡ ¡ |l


. BASIC como debe se r.. . CAPÍTULO XII: Programación ADO
S E L E C T IN T O
Esta instrucción permite crear una tabla y adicionarle registros de otra
tabla. La tabla destino no debe existir porque de lo contrario se produce
INSTRUCCIONES DDL
un error que tiene el número -2147217900. Su sintaxis es:

Select Campo1,Campo2,...CampoNInto TablaDestino From TablaOrigen Las instrucciones DLL significan Instrucciones de Lenguaje de Definición
de Datos y son importantes por que con ellas podemos crear tablas, modifi­
Si sólo desea crear la tabla y adicionarle algunos registros, debe agregar car la estructura de una tabla o eliminar toda una tabla incluyendo los regis­
Where y la condición. Ejemplos: tros que contiene y su estructura.

La siguiente instrucción crea la tabla Seguridad y le adiciona todos los regis­ CREATE TABLE
tros de la tabla artículos.
Esta instrucción, como su nombre lo indica permite crear una tabla. Su
DB.Executef “Select codigo,nombre,presentación, valorcampra, vencimiento Into sintaxis es la siguiente:
Seguridad From Artículos ”)
Create Table Nombre de la Tabla(Campol Tipo, Campo2 Tipo,... CampoNTipo)
La siguiente instrucción crea la tabla Seguridad y le adiciona sólo los artícu­
los cuyo valor de compra es mayor que S/. 250.00
Ejemplo:
DB. Execute( “Select codigo,nombre,presentación, valorcampra, vencimiento Into
La siguiente instrucción permite crear una tabla llamada Clientes dentro de la
Seguridad From Artículos Where valorcompra > 250 ”) base de datos que esta conectada al objeto DB con la siguiente estructura:

UPDATE Codigo Text 5


Permite reemplazar el contenido de un campo de todos o de un grupo de Nombre Text 40
registros por uno nuevo. Ruc Text 8
Sintaxis: Credito Currency
Feeing Date/Time
Para todos los registros:
Update Nombre de la Tabla Set Nombre del Campo = NuevoContenido DB.Execute (“CreateTable Clientes(Codigo Text(5), NombreText(40),
Ruc Text(8), Crédito Currency, Feclns Date)”)
Para un grupo de registros:
Update Nombre Tabla Set Nombre Del Campo= NuevoContenido Where Condicion ALTER TABLE
Ejemplos: Esta instrucción permite agregar o eliminar un campo de una tabla.
La sintaxis para agregar un campo a una tabla es:
La siguiente instrucción incrementa al valor de compra de todos los artícu­
los el 10%. Alter Table Nombre de la Tabla Add Column NombreCampo Tipo
DB.Executef “Update Artículos Set ValorCompra = ValorCompra * 1.10”)
Ejemplo:
La siguiente instrucción cambia a los artículos que tienen su presentación
Caja por Cajitas. La siguiente instrucción agrega a la tabla Clientes el campo Teléfono de
tipo Texto con 10 caracteres.
DB.Execute( '‘Update Artículos Set Presentación= ‘Cajitas ’ Where
Presentación = ‘Cajas') DB.Execute (“Alter Table Clientes Add Column Telefono Text( 10)”)

0^4^ 530 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte . : 531 < á ||||||


iÉiÉ¡iÉÉÉ>' VISUAL BASIC como debe ser. . . CAPÍTULO XII: Programación ADO < € ¡¡¡1 1
La sintaxis para elim inar un campo a una tabla es: A P L IC A C IÓ N D ES A R R O LLA D A N° 70

A lter Table Nombre de la Tabla Drop Column NombreCampo La siguiente aplicación permite dar mantenimiento a los registros y a la
tabla Artículos:
Ejemplo:
¡i. Mantenimiento de la labia Artículos m ora
Artículos
La siguiente instrucción elimina de la tabla Clientes el campo Teléfono. Agregar artículos de prueba
Cambiar una presentación por otra
Cambiar el Valor de Compra
DB.Execute ("AlterTable Clientes Drop Column Telefono") Restaurar el valor de compra anterior
Borrar artículos
Recuperas los Ultimos Artículos Borrados
Borrar la Copia de Seguridad de los archivos borrados
D R O P TABLE Salir

Relación de A rtículos
Esta instrucción permite eliminar toda una tabla incluyendo los registros que Codigo Nombre Presentación Valor de Compra Vencimiento
00001 Acaricida Cierna x 60 gr. Pote 5.0000 2002-06-30 00:00:0
contiene y su estructura. 00002 Acaricida Loción x 60 mi. Frasco 10.0000 2003-01-07 00:00:0
La sintaxis es: 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
Drop Table Nombre de la Tabla 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
Ejemplo: 00008 Venoruton 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 FinistilJ atabe Frasco 100 mi. Frasco 10.0000 2000-06-28 00:00:0
La siguiente instrucción elimina la tabla Clientes. 00011 Importai x 6 Shachets Caja 20.0000 2002-01-19 00:00:0

L a"" ............
DB.Execute ("Drop Table Clientes")
Al ejecutar la aplicación y mientras dure la conexión a la base de datos se
muestra una pantalla de presentación.
NOTA:
En la siguiente aplicación se muestra ejemplos mas amplios sobre el uso de las Program a de ejem plo

instrucciones SQL para consultas de Acción y sobre las instrucciones de Lenguaje


de Definición de Datos (DLL).
La aplicación siguiente también se encuentra en Disco de Aplicaciones que acom­
paña a este libro para visualizar y comparar las instrucciones con mayor facilidad.
V isu al Basic
C om o d e b e ser...

Un m om ento p o r fa v o r

Una vez realizada la conexión esta pantalla se oculta automáticamente y se


muestra el menú principal.
lililí^ 532 G ru po E d it o r ia l Megabyte G r u po E d it o r ia l Megabyte 533
á ü l ^ VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO 4SSB &
El M enú Principal esta com puesta por las siguientes opciones: En el combo sólo se visualizan las presentaciones de los artículos que
actualmente tiene la tabla. Después de elegir una presentación, el programa
AGREGAR ARTÍCULOS DE PRUEBA le pide que escriba la nueva presentación por la cual la desea cambiar. A
Con esta opción usted puede agregar la cantidad de artículos que desee a la todos los artículos que tienen la presentación seleccionada se le cambia por
tabla y de esta manera probar la velocidad de la computadora para procesar la nueva presentación al hacer click en el botón Cambiar Ahora.
una gran cantidad de registros. Por ejemplo usted puede probar qué tan
rápida es su computadora y su programa con unos cinco mil o diez mil CAM BIAR EL VALOR DE COMPRA
Esta es útil cuando desee variar el valor de Compra de los artículos. El
artículos. Esta opción presenta el siguiente formulario.
1 A d ic io n a l a r tí c u lo s d e P r u e b a ■1751x1
formulario que se visualiza es:
Actualmente hay 13 artículos. ¿Cuanto desea agregar? | Aceptar
J
1 üü. V a r i a c i ó n d e l V a lo r d e C o m p ra m u _ In i x l

.............
I n g r e s e e l m o n t o d e V a r ia c i ó n |j
Configuración d e los n ue vo s A rtículos :
Los artículos empiezan con la palabra JProducto L a V a r ia c i o n e s t a e n :

La presentación de los artículos debe ser jCaja
S o le s C P o r c e n t a je
El valor de compra debe estar entre jio.oo V jl 000 00 ~ -

La fecha de vencimiento debe estar entre el |o i / o i / o i J y ®1 31n 2/01 3 ]


J 1ip u u c v d i i a u u n
In c r e m e n ta r C" D is m in u ir
Cerrar j 1

C a m b ia r A h o r a J
Aquí se indica la cantidad de artículos a agregar, el nombre para los artículos. C e r ra r j
Al nombre que usted indique se le adiciona un número correlativo.
También puede indicar la presentación, el rango del valor de compra y de Primero debe ingresar el monto de variación, luego elegir si lo ha ingresado
las fechas de vencimiento que deben tener los artículos al momento de en soles o porcentaje y por último debe indicar si se debe aumentar o disminuir
agregarse. al valor de comprar. Si comete algún error al variar el valor de compra de
Tanto el valor de compra como la fecha de vencimiento se calculan al azar los artículos, utilice la siguiente opción.
entre el rango establecido.
RESTAURAR EL VALOR DE COMPRA ANTERIOR.
CAM BIAR UNA PRESENTACIÓN POR OTRA Cuando usted varia el valor de compra, se guarda en un campo el valor de
Esta opción permite cambiar la presentación de un grupo de artículos por compra anterior y esta opción permite recuperar dicho valor de compra.
una nueva. El formulario que se muestra es: Esta opción es muy útil cuando comete algún error en la variación de los
valores.
Cam biar u n a P resentació n por O tra -Tñnn Antes de restaurar el valor de compra le pide la confirmación:
S e 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 ja ▼ {

I CONFIRME POR FAVOR i . mu n í


E s 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 p o r : C a j a

taurar el Valor de; Compra anterior d e los artículos


- V Res
C am b ia r A h o ra

( Sí ] No
i

534 G r u po E d it o r ia l Megabyte < 3 G ru po E d it o r ia l Megabyte 535


VISUAL BASIC como debe ser. CAPITULO XII: Programación ADO w m ,

Si ingresa a la opción Restaurar El valor de Compra anterior sin haber variado RESTAURAR LOS ÚLTIMOS ARTÍCULOS BORRADOS
los valores se muestra un mensaje de aviso. Cuando usted borra artículos en la opción anterior, estos se guardar en
una tabla de seguridad con un campo adicional llamado Fecha el cual contiene
la fecha que borró el artículo. Esto es importante porque puede borrar por
accidente los artículos. Esta opción permite recuperar todos los artículos
borrados un grupo de ellos. Los grupos de artículos se pueden recuperar la
fecha en la que se borraron. Visualiza el siguiente formulario.
■ ■ ■ ■ ■ ■ ■ iiM B iM iM iiiiiiiiiiiM íiir iiiir in 1................m i

Ver por fecha de borrado 115/07/00 Ver todos los borrados I

|Estos son los artículos que ha borrado el día 15/07/00


Codigo Nombre Presentación Valor de Compra Vencimiento Fecha que se borró
00002 Acaricida Loción x 60 mi. Frasco 49.5662 2003-01 -07 00:00:00 2000-07-15 00 00 00
BORRAR ARTÍCULOS 0000G AB-Broncol 300 IM Frasco 49.5531 2000-06-15 00:00:00 2000-07-1 5 00 OO 00
00007 AB-Broncol 600 IM Frasco 49.61 81 2002-05-01 00:00:00 2000 07-1 5 00 00 00

Esta opción permite borrar todos o un grupo de artículos. 00009 Fenistil Gotas Frasco 20 mi.
00010 Finistil Jarabe Frasco 100 mi.
Frasco
Frasco
49.6442 2000 06-29 00:00:00 2000 07-1 5 00 00 00
49.5662 2000-06-28 00:00:00 2000 07-15 00:00 00

El formulario que presenta es el siguiente: 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
. B o rra r A r t íc u lo s MED
Recuperarlos
Cam po O p e ra d o r
Cerrar
C O D IG O *l
NOMBRE wm
P R E S E N T A C IO N >
VALO R COMPRA
| V E N C IM IE N T O
—i A c e p ta r j
BORRARLACOPIADESEGURIDADDELOSARTICULOS BORRADOS
A V
II A

^1
Si está seguro de los artículos que ha borrado, entonces esta opción
C o n d ic io n
elimina definitivamente los artículos borrados. Visualiza el mismo formulario
anterior, pero con el botón Borrarlos Definitivamente.

B o „ a , lo s A r t í c u lo s q u e c u m p le n B o [|a ( T o d o s te s A r t( c u |o s

Ver pot fecha de borrado


“3 Ver todos los borrados

¡Estos son los artículos que ha borrado el día 15/07/00


Codigo Nombre Presentación Valor de Compra Vencimiento Fecha que se borró

Usted puede formar la condición que deben cumplir los artículos para 00002 Acaricida Loción 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

que se puedan borrar o hacer un click en el botón respectivo para borrar 00007 AB-Broncol 600 IM
00009 Fenistil Gotas Frasco 20 mi
Frasco
Frasco
49.6181
49.6442
2002-05-01 00:00:00 2000-07-15 00:00:00
2000-06-29 00:00:00 2000-07-15 00:00 00

todos los artículos. 00010 Finistil 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

Cuando se elige el campo Valor de Compra no se permite el ingreso de 00013 Fluidasa iny x 2 mi
00004 Pilka Gotas 20 mi
Frasco
Frasco
49.6442
49.9035
2000-09-16 00:00:00 2000-07-15 00:00:00
2002-10-16 00:00:00 2000-07-15 00:00:00
letras y cuando se elige el campo Vencimiento se muestra automáticamente
un control DTPicker.
Este ejemplo lo puede utilizar también en la opción Cambiar el Valor de
Borrarlos
Compra de tal manera que sólo se pueda cambiar el Valor de algunos artículos. Definitivamente

536 G r u po E d it o r ia l M c g a b v te ^ ^ ^ G ru po E d it o r ia l Megabyte 537


^ÉÍÍÉÉÉ^ VISUAL BASIC como debe ser... CAPÍTULO XII: Programación ADO
DESARROLLO DE LA APLICACIÓN N° 70
Instrucciones del Form_Activate
Como esta aplicación está compuesta por varios formularios, debe agre­ Prívate Sub Form_Activate()
gar un módulo y definir allí los objetos Connection y Recorset y las variables MSHFlexGridl. Cois = 0
que se necesitan en la aplicación. Set MSHFlexGridl.DataSource = RS
MSHFlexGridl.FonnatString = “Codigo\ Noném | Presentación \V.deCompra\ Vencimiento“
También debe crear en este módulo el procedimiento MAIN en el cual End Sub
se realiza la conexión y se muestra la pantalla de presentación. Este proce­ Instrucciones de la opción Agregar Artículos de Prueba
dimiento se debe ejecutar primero, para ello configure al Visual Basic en la Prívate Sub Agregar_Click()
opción Proyecto/Propiedades del proyecto/Objeto Inicial. Form3.Show
End Sub ,
Instrucciones de la opción Cambiar una Presentación por Otra
Contenido del Módulo de la aplicación Prívate Sub Cambiar_Click()
Public DB As New ADODB. Connection Form4.Show 1
Public RS As New ADODB.Recordset End Sub
Public RS2 As New ADODB.Recordset Instrucciones de la opción Cambiar el Valor de Compra
Public RP As Integer Prívate Sub CambiarValor_Click()
Public EXISTE As Boolean Form5.Show 1
End Sub
Instrucciones de la opción Restaurar el Valor de C. Anterior.
Sub Main() Prívate Sub RestaurarValor_Click()
‘Muestra pantalla de presentación RS. Cióse
Form l.Show ‘Abre la tabla artículos con todos los campos
F orm l .Refresh RS.Open ‘‘SELECT * FROM Artículos”
'Verificasihayunacopiadebsvdomsdecompraanleriojes(Campo ValorAnterior)
‘Realiza la conexión EXISTE = False
DB.Open “DSN= VENTAS ” F orX = 1 To RS.Fields.Count
RS.Open “SELECT codigo,nombre,presentación,valorcompra,vencimiento IfRS(X- l).Name = “ValorAnterior” Then EXISTE = True
FROM artículos ORDER B Y nombre ”, DB, adOpenStatic, adLockOptimistic Next
‘Cuando termina la conexión oculta la presentación y muestra el menú principal RS.Cióse
Form l. Hide ‘Abre la tabla artículos con los campos principales
RS. Open “SELECT codigo, nombre,presentación, valorcompra, vencimiento
Form l.Show FROM artículos ORDER BY nombre”, DB, adOpenStatic,
End Sub adLockOptimistic
‘Si no existe el campo ValorAnteriorsignifica que no ha variado el vabrde compra
IfNot EXISTE Then
FORMULARIO N 2 01 MsgBox “No se ha variado el Valorde C. de losArtículos”,64, "Nopuedo realizarlo ”
Else
IfMsgBox( “Restaurarel Valorde C. anteriorde losArt. ", 36, “ConfirmeporFavor") = 6 Then
En el formulario N° 01 debe diseñar la pantalla de Presentación. En la aplicación DB.Execute “UPDATE Artículos SET ValorCompra = ValorAnterior”
de ejemplo, este formulario está compuesto por 3 etiquetas con los mensajes: ‘Elimna el campo ValorAnterior
Visual Basic , Como debe ser... y Espere un momento Por Favor con sus RS. Cióse
respectivas propiedades como poR ejemplo: Font, Forecolor, etc. DB.Execute ( “ALTER TABLE Artículos Drop column ValorAnterior”)
RS.Open
‘Actualiza la Consulta
FORMULARIO N 2 02 (Menú Principal) RS.Requery
Set MSHFlexGridl.DataSource = RS
En el formulario N° 02 diseñe el Menú Principal con las opciones indicadas. Este End If
formulario debe tener un control MSHFlexGrid donde se muestran todo los artícu­ End If
los de la tabla. End Sub

538 G E P 539
r u po d it o r ia l
G ru po E d it o r ia l Megabyte
¡Ü- VISUAL BASIC como debe ser... § ^ 5 CAPÍTULO XII: Programación ABO '‘I I É l P
Instrucciones de la opción Borrar Artículos IN STR U C C IO N ES DEL FORMULARIO Ne 03
Prívate Sub Borrar Artículos_Click()
Formó. Show 1 Instrucciones del Form_Activate
End Sub Prívate Sub Form__Activate()
Instrucciones de la opción Recuperar Artículos Borrados 'Valores predeterminados para agregar artículos
Prívate Sub RecuperarArtículos_Clíck() Textl = " "
Form7!Command2. Visible = True Text2 = “Producto”
Form7!Command2.Enabled = True Text3 = “C aja”
Form7!Command3. Visible = False Text4 = “10.00”
Form7.Show 1 Text5 = “1000.00"
DTPickerl.Value - CD ate(“0 1-01-2001”)
End Sub
DTPicker2.Value - CD ate(“31 -12-2001")
Instrucciones de la opción Borrar Copia de Seguridad Labell = “Actualmente hay “ & RS.RecordCount & “ artículos. ¿Cuanto desea
Private Sub BorrarCopia_Click() agregar?”
Form7!Command2.Visible = False Textl. SetFocus
Form7!Command3. Visible = True End Sub
Form7!Command3.Enabled = True Instrucciones del Botón Aceptar
Form7.Sh.ow Private Sub Command!_Click()
End Sub Dim dias, NR As Long
‘Si no ingresa la cantidad de artículos sale del Procedimiento
Instrucciones del MSHFlexGrid para ordenar los artículos
Private Sub MSHFlexGridl_Click() If Val(Textl) = 0 Then Exit Sub
Commandl .Enabled = False
MSHFlexGridl .Sort = 1
End Sub ProgressBarl. Visible = True
ProgressBarl .Min = 1
Instrucciones de la opción Salir ProgressBarl.Max = Val(Textl)
Private Sub Salir_Click() NR = RS.RecordCount
End dias = DTPicker2. Value - DTPickerl. Value
End Sub Randomize
For X = 1 To Val(Textl)
FORMULARIO N e 03 (Agregar Artículos de Prueba) RS.AddNew
RSfcodigo = FormatfX + NR, “00000”)
EKE! RSInombre = Text2 & X + NR
■ : Labeii ¡ Aceptar ; RSIpresentacion = Text3
RS.'valorcompra = Int((Val(Text5)-Val(Text4)+1)* Rnd + Val(Text4))
RS¡vencimiento —DTPickerl .Value + Int((dias -1 + 1) * Rnd + 1)
C o n fig u r a c ió n d e lo s n u e v o s A r tíc u lo s : ProgressBarl. Value = X
Los artículos empiezan con la palabra ÍText2 RS. Update
Next X
La presentación de los artículos debe ser
ProgressBarl. Visible = False
El valor de compra debe estar entre Commandl .Enabled = True
La fecha de vencimiento debe estar entre el
‘Actualiza la consulta
j l 4 /0 7 /0 0 y el j 14/07/00
RS.Requery
Hide
End Sub

En este formulario debe dibujar 5 cajas de texto, 1 ProgressBar, 2 DTPickei; 2 Instrucciones del Botón Cerrar
Private Sub Command2_Click()
botones de comandos 1 Frcime y las etiquetas indicadas. Al ProgressBar asígnele
en su propiedad Visible el valor False. Hide
End Sub
540 G E Megabyte <
ru po d it o r ia l
G r u po E d it o r ia l Megabyte 541
é l i VISUAL BASIC como debe ser.. . , .$<£; CAPÍTULO XII: Programación ADO
FORMULARIO N 2 04 (Caxríbia xana Presentación por Otra) Instrucciones del Botón Cambiar Ahora
Private Sub Commandl_Click()
S . C am b iar u n a P r e s e n t a c ió n p o i O tra rrn a rx ii Form4. Enabled = False
DB. Execute “UPDATE Artículos SET Presentación = & Textl &
S e le c c io n e la P re s e n ta c ió n A c tu a l | C om bol WHERE Presentación = & Combol &
RS.Requery
Form4. Enabled = True
E scrib a la n u e v a p re s e n ta c ió n
Frame ¡.Visible = False
Hide
I T ex tl
End Sub

C am biar A h o ra Instrucciones de Textl


Private Sub Textl_GotFocus()
‘Selecciona el Texto de Textl para reemplazarlo por el que escribe
C errar Textl.SelStart = 0
Textl. SelLength = Len( Textl)
Textl = Textl.SelText
En este formulario dibuje 2 etiquetas, 1 ComboBox, 1 Frame, y 2 botones de End Sub
comandos. Al Frame asígnele en su propiedad Visible el Valor False. Instrucciones del Botón Cerrar
Private Sub Command2_Click()
INSTRUCCIONES DEL FORMULARIO N 2 04 Frame 1. Visible = False
Hide
Instrucciones del Form_Activate End Sub
Prívate Sub Form_Activate()
'Obtiene sólo una presentación de cada grupo
RS2,Open "SELECTDistinct Presentación FROM Artículos", DB, FORMULARIO N 2 05 (Cambiar el Valor de Compra)
adOpenStatic, adLockPessimistic
‘Muestra las presentaciones en el combo V a r ia c i ó n d e l V a lo r d e C o m p r a
RS2. Move First
Combo l.C lear
In g re s e e l m o n to d e V a r ia c ió n • p T e x tl
Do While Not RS2.EOF
Combol.Addltem RS2(0) L a V a r ia c ió n e s ta e n :
RS2.MoveNext
Loop S o le s C* P o rc e n ta je
Combol. ListIndex = -1
RS2. Cióse
End Sub
C In c re m e n ta r D is m in u ir
Instrucciones del Combol
Prívate Sub Com bol_Click()
'Cuando se selecciona una presentación, activa el Frame 1 C a m b ia r A h o ra I .......................
C e rra r I .
Frame 1. Visible = Truc
Label2 - “Escriba la presentación que quiere cambiar por: ” & Combol
Textl = Combo1
Textl.SetFocus En este formulario dibuje 1 etiqueta, 1 caja de texto, 2 Frame y dentro de
End Sub cada uno de ellos 2 botones de opciones y dos botones de comando.

542 G ru po E d it o r ia l Megabyte < |j ||||| G ru po E d it o r ia l Megabvte 543


^ É ü |¡ l! > VISUAL BASIC como debe ser... CAPITULO XII: Programación ADO
INSTRUCCIONES DEL FORMULARIO N 2 05 Instrucciones del Botón Cambiar Ahora
Private Sub Command 1_Click()
Instrucciones del Form_Activate IfVal(Textl)=0 Then
Prívate Sub Form_Activate() Msg Box “Ingrese el monto de Variación”, 64, “Error”
Exit Sub
‘Limpia Textl y desactiva los botones de opciones E n d lf
Textl = "" RS. Close
Optionl = False If Optionl Then
If Option3 Then
Option2 = False lfM sgB ox(“Está Incrementando el Valor de Compra en “ & Textl
OptionJ = False & “ Soles”, 65, “Confirme la Variación”) = 1 Then
Option4 = False RealizaCopia
Textl.SetFocus DB.Execute “UPDATEArtículosSETValorCompra- ValorCompra+ VAU"& Textl A
E n d lf
End Sub E lself Option4 Then
IfMsgBox( “Está Dismuyendo el Valor de Compra en “ & Textl &
Instrucciones del Procedimiento RealizarCopia Soles ”, 65, “Confirme la Variación ’) = 1 Then
RealizaCopia
Sub RealizaCopiaO DB.Execute “UPDATEAi1iculosSETValorCompra= ValorCompra- VAlf" Inil .V
Form5 .Enabled = False E n d lf
'Abre la tabla artículos con todos los campos Else
MsgBox “No ha seleccionado el Tipo de Incremento", 64, "Error"
RS.Open “SELECT * from Artículos”, DB Exit Sub
‘Verifica si hay una copia de los valores anterior E n d lf
EXISTE = False E lself Optionl Then
For X - 1 To RS.Fields.Count If Option3 Then
IfM sgBox(“Está Incrementando el Valor de Compra en un “ &
I f RS(X - l).Nam e = “ValorAnterior" Then EXISTE = True Textl & 65, “Confirme la Variación’ ) = 1 Then
Next RealizaCopia
IfN o t EXISTE Then DB.Execute “UPDATE Artículos SET ValorCompra - ValorCompra t
ValorCompra * VAL(“ & Textl & “)/IOO"
‘Si no existe el campo ValorAnterior lo crea para adicionar una E n d lf
‘copia de seguridad de los valores de Compra Elself Option4 Then
RS. Cióse IfMsgBoxt "Está Disminuyendo el Valor de Compra en un “ &
DB.Execute ( “ALTER TABLE Artículos ADD COLUMN ValorAnterior Currency") Textl & “% ”, 65, 'Confirme la Variación ”) = 1 Then
RealizaCopia
‘Realiza la copia de seguridad DB.Execute “UPDATE Artículos SET ValorCompra - ValorCompra
DB.Execute “UPDATE Artículos SET ValorAnterior = ValorCompra ” ValorCompra * VALI" & Textl & “y ! 00"
Else End If
‘Sólo realiza la copia de seguridad Else
MsgBox “No ha seleccionado el Tipo de Incremento", 64, “Error"
DB.Execute “UPDATEArtículos SET ValorAnterior = ValorCompra” Exit Sub
RS. Cióse End if
End I f Else
MsgBox “No ha indicado la Variación en Soles o Porcentaje”, 64, "Error"
E nd Sub Exit Sub
End If
Instrucciones del Botón Cerrar ‘Abre la tabla artículos con los campos principales
RS.Open “SELECTcodigo,nonú)rej)resenlacioii,va¡orc(mipra,vencim¡erüoFROMArticulas
Prívate Sub Command2_Click() ORDERBYnombre", DB, adOpenStatic, adLockOptimistic
Hide RS. Requery
End Sub Form5.Enabled = True
Hide
End Sub

544 G ru po E d it o r ia l Megabyte G r u po E d it o r ia l Megabyte 545 4 K B


'/jtSi&M' VISUAL BASIC como debe ser.:’. CAPÍTULO XII: Programación ADO
FORMULARIO N e 06 (Borrar Artículos) Instrucciones del L is tl
Private Sub Listl jClicki)
Textl =
C am p o O p e ra d o r Valor ‘Si se ha seleccionado el campo Vencimiento muestra el DTPicker
Li*t2 ; JT e x tl j 0 9 / 0 7 /8 8 tf List¡.Listlndex = 4 Then
S ' TextI .Visible = False
A c e p ta r DTPickerl. Visible = True
Else
Textl. Visible = True
DTPickerl. Visible = False
End If
End Sub
Borrar los A rtíc u lo s q u e cu m p le n Instrucciones del Textl
Borrar T o d o s los A rtícu lo s
la c o n d ic ió n 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
En este formulario dibuje 2 ListBox, 2 cajas de texto, 1 DTPicker, 6 botones de Endlf
comandos y 4 etiquetas. Endlf
El control DTPicker dibújelo encima del control Textl y asígnele en su propiedad End Sub
Visible el valor False porque sólo se debe visualizar cuando se seleccione la Fecha Instrucciones del Botón Aceptar
de Vencimiento. Private Sub Command1_Click()
Al botón Command4 (Borrar Artículos que cumplen la condición) asígnele en su ‘Agrega la condición fonnada a Tetxt2
propiedad Enabled el valor False. tf Listl.Listlndex < 3 Then
If List2.Listlndex = 6 Then
Text2 = Textl + Listl + List2 + ..... + Textl +
INSTRUCCIONES DEL FORMULARIO N s 06 Else
Instrucciones del Form_Activate Text2 = Text2 + Listl + Listl + + Textl +
Endlf
Private Sub Form_Activate() End ¡f
‘Limpia las cajas de texto lf List ¡.Listlndex = 3 Then
Text1 = " " Textl = Textl + Listl + Listl + Textl
Textl = "" Endlf
‘Muestra la fecha del sistema en el DTpicker lf List ¡.Listlndex = 4 Then
DTPicker 1. Value - Date Textl = Text2+List¡ + Listl + "CDATE(“‘ & DTPickerl .Value &
‘Adiciona los nombres de los campos en el Listl End ¡f
List ¡.Clear Commandl. Enabled = True
For X - 1 To RS. Fields. Count Command3. Enabled = True
L istl.Addltem RS(X - l).Name Command4. Enabled = True
Next X End Sub
‘Adiciona los operadores en el L istl Instrucciones del Botón Y
Listl. Clear Private Sub Conunand2_Click()
Listl.Acldltem “ = “ Text2 = Textl + “ AND “
Listl.Addltem “ < “ Commandl. Enabled = False
Listl.Addltem “ > “ Command3. Enabled = False
Listl.Addltem “ < - “ End Sub
Listl.Addltem “ > - “ Instrucciones del Botón O
Listl.Addltem “ < > “ Prívate Sub Command3_Click()
Listl.Addltem “ Like “ Textl = Text2 + “ OR “
Listl.Listlndex - 0 Command2. Enabled = False
Listl. ListIndex = 0 Command3.Enabled = False
End Sub End Sub

546 G r u po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte ;■£ 547


VISUAL BASIC como debé ser. . . í t i ® ® ! CAPÍTULO XII: Programación ADO
Instrucciones del Botón Borrar los artículos que cumplen la C. FORMULARIO N 2 07 (Recupera Artículos Borrados)
Prívate Sub Commcmd4_Click()
On Error GoTo control
Formó.Enabled = False
RP = MsgBox(“Se borraran todos los artículos que cumplen la ■Vet penfechadeboirado Vei todos ios bonados

condición “ + Chr(13) + Text2, 36, CUIDADO”)


IfRP = 6 Then I Estos son todos los artículos que ha borrado
‘Hace la copia en la tabla RESPALDO de los artículos que se borran
DB. Execute “INSERT INTO respaldo SELECT codigo, nombre,
presentación, valorcompra,vencimiento,#" & Date & "#
AS fecha FROM Artículos WHERE “ & Text2
DB.Execute “DELETE FROM Artículos WHERE “ & Text2 Debe dibujar 2 etique­
RS. Requery tas, un ComboBox 4
End If
Hide : Formó.Enabled = True botones de comandos
Exit Sub y 1 MSHFlexGrid. Al
control: Commandl (Ver Todos
'Si no existe la tabla RESPALDO la crea con los primeros registros los borrados) asígnele
If En: Number = -2147217865 Then en su propiedad B ocíalos
DefinWvamerte
DB.Execute “select codigo,nombre,presentación, valorcompra, Enabled el valor False.
vencimiento,#” & Date & “# as fecha into respaldo from
artículos where “ & Text2
Resume Next
Else INSTRUCCIONES DEL FORMULARIO N s 07
MsgBox “Verifique las instrucciones o la C. ”,16, ’’Existe un error’’
Exit Sub Instrucciones del Form_Activate.
End If Prívate Sub Form_Activate()
End Sub
On Error GoTo control
Instrucciones del Botón Borrar Todos los Artículos. ‘Muestra los fechas en el com bol en las que borró artículos
Private Sub Commands_Click() RS2,Open “SELECTDISTINCTfecha FROM Respaldo”, DB, adOpenStatic,
On Error GoTo control adLockPessimistic
RP = MsgBox( “Se borraran todos los artículos ”, 36, “CUIDADO ”)
IfRP = ÓThen RS2.MoveFirst
Formó.Enabled = False Combo I.Clear
DB. Execute “INSERT INTO respaldo SELECT codigo, nombre,
presentación, valorcompra, vencimiento,#" & Do While Not RS2.EOF
Date & “# AS fecha FROM Artículos" Combo I.Addltem RS2(0)
DB.Execute “DELETE FROM Artículos” RS2.MoveNext
RS.Requery
Formó.Enabled = True : Command4.Enabled = False Loop
Hide Combol .Listlndex = -1
End If
Exit Sub RS2. Cióse
control: MSHFlexGrid 1.Cois = 0
If Err.Number = -2147217865 Then RS2.Open “SELECT * FROM Respaldo", DB
DB.Execute “SELECT codigo,nombre,presentacion, valorcompra,
vencimiento, # ” & Date & # AS fecha INTO Set MSHFlexGridl .DataSource - RS2
Respaldo FROM Artículos ” RS2. Requerí
Resume Next
Else MSHFlexGridl.FormatStríng - “ Codigo | Nombre \ Presentación \Valor
MsgBox “Verifique las instrucciones”, 16, “Existe un error” de Compra\ Vencimiento | Fecha que se borró”
Exit Sub
End If RS2.Cióse
End Sub Exit Sub

548 G r u po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte^ 549 « O »


C A P ÍT U L O X II: P rogram ación A D O ^ ^ m
control:
If Combol = “ ” Then
If Err.Number = -2147217865 Then DB. Execute “INSERT INTO Artículos SELECT codigo,nombre,
MsgBox “Nohayartículosborradose",64, ’'Nose encontrócopiade seguridad presentación, valorcompra, vencimiento,fecha FROM Respaldo ”
Command2.Enabled - False DB.Execute ( “DROP TABLE Respaldo ")
Command3.Enabled = False MSHFlexGridl .Rows - 0
Hide
Else
E n d lf DB.Execute “INSERT INTO Artículos SELECT codigo,nombre,
End Sub presentación, valorcompra, vencimiento,fecha FROM Respaldo WHERE
fecha = cdate(“‘ & Combol &
Instrucciones del Combol DB.Executei “DELETEFROMRespaldo WHEREfecha=cdate( ‘“&Combol&"')")
Prívate Sub Combol jClick() End If
Muestra los artículos borrados en la fecha que se selecciona RS.Requery
Label2 = “Estos son los artículos que ha borrado el día “ & Combol Hide
RSLOpen “SELECT*FROMRespaldoWHEREfecht=cdate(‘“&Comhol& “‘)",ÜB End Sub
Set MSHFlexGridl .DataSource = RS2
RS2.Requery Instrucciones del Botón Borrarlos definitivamente
MSHFlexGridl .FormatString = “ Codigo | Nombre | Presentación \Valor Este botón se utiliza cuando se elige la opción Borrar Copia de Seguridad que se
de Compra\ Vencimiento | Fecha que se borró “ encuentra en el Menú Principal
RS2. Cióse Prívate Sub Command3_Click()
Command1. Enabled = True RP=MsgBox(“EstasegurDdebormrdefmitivamente",36,”Yanopodránicuperarlos’')
End Sub IfRP = 6 Then DB.Execute “DROP TABLE Respaldo”
MSHFlexGridl.Rows = 0
Instrucciones del Botón Ver Todos los Borrados Hide
Prívate Sub Commandl_Click() End Sub
Combol =
Label2 = “Estos son todos los artículos que ha borrado ”
RS2. Open “SELECT * FROM Respaldo ” , DB
Set MSHFlexGridl .DataSource = RS2
RS2.Requery
MSHFlexGridl .FormatString - “ Codigo \ Nombre | Presentación | Valor
de Compra\ Vencimiento | Fecha que se borró “
RS2. Cióse
Command!.Enabled = False
End Sub

Instrucciones del Botón Recuperarlos


Prívate Sub Command2_Click()
‘Recupera los artículos

« B » 550 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 551


VI S UAL
B A S I C S.D
C om o d e b e ser...!

“Visual Basic, como debe ser...”, es un texto


eminentemente práctico, quizás esto sea lo medular que
lo hace diferente de otros libros. Aquí encontrarás $ tfisüfll
% r I
programas desarrollados y ejercicios propuestos que te j ,¿4
ayudarán a conjugar armoniosamente la teoría y la
práctica. Es, pues, una eficiente guía didáctica para
crear aplicaciones que te serán útiles en la realización
de tus diversas tareas como programador en tu centro
de estudio y trabajo.
Este libro esta diseñado de tal manera que sirve de
apoyo y guía de autoaprendizaje para estudiantes de
programación de computadoras, porque el autor cuenta
con una amplia experiencia en la docencia de este
curso.
Además cuenta con aplicaciones y componentes como:
Controles ActiveX, Creación de archivos de ayuda,
Manejo de impresoras, Base de datos, Instrucciones
SQL, Programación ADO, Uso de DataEnvironment y
DataReport

P ^ RÚtiñ(foTorncb l889H O f c^208?iCercadoJdé}Lim aW relefax: [332-4110


K w w w .editorialm eqabvte:conrA É ventas@ ed¡torialm eqabvté.com

S-ar putea să vă placă și