Visual Basic 6.0 - Como Debe Ser

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 278

VISUAL BASIC como debe ser.

%Megabyte
GRUPO

s.a.c.

EDITORIAL

Tercera Edicin, Febrero 2006

Dedicatoria
rea
: Computacin e Informtica
Hecho el Depsito Legal en la Biblioteca Nacional del Per
N 2006-1601 (Ley N 26905 / D.S. N 017-98-ED)
R.U.C.
N 20507993444
ISBN: 9972 - 821-53 - 6

A Jos Domingo y Mara Eugenia, mis


Padres, por darme todo lo que estuvo
a su alcance para ser un profesional.

Edward Aburto Correa


Gerente General___________
Juan Jos Castaena Len
Autor
Gean Cario Apolinario Garca
Diseo de Cartula

A Blanca Mrela, mi esposa y a


Juan Jos, Jos Mara y Mara Jos,
mis hijos, por el amor que nos une.

_____

Visual Basic 6.0 Como Debe Ser.....


Derechos Reservados / Decreto Ley 822
Prohibido la reproduccin total o parcial de este libro, su tratam iento informtico
la transmisin de ninguna otra forma o por cualquier otro medio ya sea electrnico,
mecnico, por fotocopia, por registro u otros mtodos sin permiso previo y por
escrito de los titulares de Copyright.

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

rupo

E d it o r i a l

Megabyte

'fo VISUAL BASIC como debe se r..

VISUAL BASIC como debe s e r .. . 4b

<

PRLOGO

AGRADECIMIENTO

A todas las personas e instituciones que, una vez


ms, hicieron posible la culminacin de este segundo
libro.
A mis alumnos, de manera especial, por ser ellos
q u ien es m e e n se a ro n , d ia ria m e n te q u y cm o
escribir este libro.

El A utor.

Pensando en ti, me anim por la redaccin de este libro. Visual


Basic, como debe ser..., es como t: nico; distinto de muchos otros
libros de com putacin, especialm ente los referentes a lenguaje de
program acin.
A travs de mis aos de experiencia como docente he notado, con
asombro y pesar, que la mayora de los estudiantes se quejan de los
libros porque no los entienden, ya que slo presentan conceptos y
sintaxis que antes de responder a sus inquietudes y aclarar sus dudas,
los confunden. Adems, dicen, presentan una secuencia de temas que
pocas veces se tratan en el desarrollo de la asignatura.
V isu a l B asic, com o debe s e r ..., es un texto em inentem ente
prctico, quizs esto sea lo medular que lo hace diferente de otros libros.
Aqu encontrars programas desarrollados y ejercicios propuestos que
te ayudarn a conjugar armoniosamente la teora y la prctica. Es, pues,
una eficiente gua didctica para crear aplicaciones que te sern tiles
en la realizacin de tus diversas tarcas como programador en tu centro
de trabajo.
S, tambin, que como docente no slo debo ser el facilitador del
aprendizaje, si no que adems tengo la tarea de buscar despertar en los
alum nos su aletargado espritu de investigacin que le ayuden a no
contestar, con los conocimientos, impartidos en aulas sino ms bien
que profundicen sus conocim ientos, los contrasten y los pongan en
prctica. Para ellos y par ello presento tambin aplicaciones propuestas.

rupo

d it o r i a l

Megabyte

rupo

E d it o r i a l

Megabyte

^ || |l

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

C O N T E N ID O

P rlogo..................................................................................................................................
Indice ....................................................................................................................................
Introduccin ........................................................................................................................

7
9
17

CAPTULO 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
Descripcin de la Barra Estndar.........................................................................................
28
Ventana de Componentes.....................................................................................................
31
Salir del Visual Basic.............................................................................................................. 33
Solucionando los problemas iniciales................................................................................... 34
Filosofa de programacin en Visual Basic........................................................................... 40
Preguntas de repaso N 01.................................................................................................... 41
CAPTULO II : DESCRIPCI N DE LOS CONTROLES BSICOS
El formulario ........................................................................................................................
Cmo asignar una propiedad?.............................................................................................
Etiqueta (Label).....................................................................................................................
Aplicacin desarrollada N 0 1 ..............................................................................................
Seleccionar controles ............................................................................................................
Modificar el tamao de los controles...................................................................................
Mover el control ..................................................................................................................
Guardar o Grabar una aplicacin..........................................................................................
Ventana para grabar un formulario.......................................................................................
Ventana para grabar un proyecto.........................................................................................
Abrir o recuperar una aplicacin .........................................................................................
Ejecutar una aplicacin ........................................................................................................
Finalizar una aplicacin .......................................................................................................
Grabar un proyecto en un diskette.......................................................................................
Crear un archivo ejecutable (*.EXE)....................................................................................
Qu es un acceso directo?....................................................................................................
Crear un acceso d irecto........................................................................................................
Caja de texto (Text) ............................................................................................................
I P I ^

G ru p o E d ito r ia l M e g a b y te

45
47
49
50
51
52
52
54
55
55
56
57
58
58
59
59
60
64

VISUAL BASIC como debe s e r.. .

VISUAL BASIC como debe se r.. .


Aplicacin desarrollada N 0 2 .................................................. ..........................................
Aplicacin propuesta N 01.................................................................................................
Aplicacin desarrollada N 03..............................................................................................
Botones de Comandos (Command).....................................................................................
Aplicacin desarrollada N 04 .............................................................................................
Escribir instrucciones para los controles.............................................................................
Ventana de cdigo o de instrucciones...................................................................................
Principales eventos ..............................................................................................................
Visual Basic le ayuda a escribir los programas.....................................................................
Aplicacin propuesta N 0 2 .................................................................................................
Trabajando con os nombres de los controles......................................................................
Aplicacin desarrollada N 05 ..............................................................................................
Errores ms com unes...........................................................................................................
Preguntas de rep aso .............................................................................................................
CAPTULO III : ELEM ENTOS DE LA PROGRAMACIN
Procedimientos y funciones ................................................................................................
Sintaxis de un procedimiento...............................................................................................
Sintaxis de una funcin.........................................................................................................
Parmetros por referencia ....................................................................................................
Parmetros por valor ............................................................................................................
Creacin de procedimientos a nivel de formulario ............................................................
Llamar a un procedimiento...................................................................................................
Constantes .............................................................................................................................
Variables.................................................................................................................................
Tipos de variables ................................................................................................................
Diferencia entre Dim. y Static .............................................................................................
Aplicacin Desarrollada N 0 6 ............................................................................................
Ejemplo de una variable a nivel de procedimiento .............................................................
Ejemplo de una variable a nivel de formulario ...................................................................
Operadores aritmticos ........................................................................................................
Orden de ejecucin de los operadores.................................................................................
Comentarios ..........................................................................................................................
Aplicacin desarrollada N 0 7 .............................................................................................
IfT h e n ...................................................................................................................................
Operadores l gicos...............................................................................................................
M sgB ox..................................................................................................................................
Iconos de la funcin M sgBox..............................................................................................
Aplicacin desarrollada N 08 .............................................................................................
Consistencia de datos ...........................................................................................................
E

d it o r i a l

65
67
67
69
70
71
71
72
75
75
76
77
80
81

85
87
88
89
89
90
91
92
92
94
95
97
98
98
99
99
100
101
106
107
109
110
112
116

e g a b y te # ^

Aplicacin desarrollada N 0 9 ............................................................................................


InputBox ...............................................................................................................................
Contadores y acumuladores ................................................................................................
Aplicacin desarrollada N 1 0 ............................................................................................
Aplicaciones propuestas N 04 y 05 ..................................................................................
IIF ...........................................................................................................................................
SelectC ase.............................................................................................................................
Aplicacin desarrollada N 11..............................................................................................
Aplicacin desarrollada N 12 ...........................................................................................
Aplicacin propuesta N 06 ...............................................................................................
C hoose...................................................................................................................................
Funciones de caden a............................................................................................................
Aplicacin desarrollada N 13 ............................................................................................
Funciones tipo fecha ............................................................................................................
Aplicacin desarrollada N 1 4 .............................................................................................
Funcin DateAdd .............,..................................................................................................
Funcin D ateD iff..................................................................................................................
Funcin DateAdd .................................................................................................................
Funciones tipo hora ..............................................................................................................
Funciones Numricas.............................................................................................................
Aplicacin desarrollada N 15 .............................................................................................
Funcin S h ell........................................................................................................................
Aplicacin desarrollada N 16 ...........................................................................................
For Next ................................................................................................................................
Do Loop ................................................................................................................................
D oEvenst...............................................................................................................................
Aplicacin desarrollada N 17..............................................................................................
A rray......................................................................................................................................
Aplicacin desarrollada N 1 8 .............................................................................................
Crear un array de controles .................................................................................................
Aplicacin desarrollada N 19 ...........................................................................................
Aplicacin desarrollada N 2 0 ............................................................................................
Aplicacin desarrollada N 21 ............................................................................................
Errores ms com unes............................................................................................................
Preguntas de repaso N 0 3 ...................................................................................................

116
122
125
125
130
131
132
133
137
143
143
144
145
146
146
148
148
150
152
152
154
157
158
159
159
159
160
162
163
164
165
169
174
178
179

CAPTULO IV : MEJORANDO EL ASPECTO DE LOS FORMULARIOS


Control Frame (Marco) ....................................................................................................... 183
Asignando colores................................................................................................................. 184
Qbcolor ................................................................................................................................. 184
G

ru po

d it o r ia l

Megabyte

f c

VISUAL BASIC como debe se r.. .

<5>

RGB ................................................. ....................................................................................


Control Shape (Figuras)........................................................................................................
Control Line (Lnea) ............................................................................................................
Control PictureBox (Caja de Imagen) ................................................................................
Mtodo grficos ...................................................................................................................
Aplicacin desarrollada N 2 2 .............................................................................................
Buscando grficos en la computadora ..............................................................................
Control Image .......................................................................................................................
Control Timer .......................................................................................................................
Aplicacin desarrollada N 2 3 ............................................................................................
Aplicacin desarrollada N 2 4 ............................................................................................
Control ImageList (Lista de Im genes)..............................................................................
Manejo de las imgenes en el control Im ageList...............................................................
Aplicacin desarrollada N 2 5 .............................................................................................
Funcin LoadPicture.............................................................................................................
Control Calendar (Calendario)............................................................................................
Aplicacin desarrollada N 26..............................................................................................
Control StatusBar (Barra de Estado)...................................................................................
Ejemplo de una aplicacin usando el control StatuBar .....................................................
Pantallas de presentacin .....................................................................................................
Control O L E ..........................................................................................................................
Activar una presentacin en Power Point .........................................................................
Objetos insertables................................................................................................................
Controles Hscroll y Vscroll ................................................................................................
Aplicacin desarrollada N 27 .............................................................................................
Control ProgressBar.............................................................................................................
Control Slider.........................................................................................................................
Preguntas de repaso N 04 ..................................................................................................

184
185
186
187
189
190
193
195
195
196
198
200
202
203
203
204
205
206
209
211
211
212
214
215
215
218
218
219

CAPTULO V : INGRESO PERSONALIZADO DE DATOS


ComboBox.............................................................................................................................
Aplicacin desarrollada N 28 .............................................................................................
Aplicacin propuesta N 07 ................................................................................................
Aplicacin desarrollada N 29 ..............................................................................................
Aplicacin propuesta N 08 ...............................................................................................
Aplicacin desarrollada N 31 ............................................................................................
Aplicacin desarrollada N 32 ............................................................................................
OptionButton .......................................................................................................................
Aplicacin desarrollada N 33 .............................................................................................
Aplicacin desarrollada N 34 ............................................................................................

223
224
225
226
229
230
233
236
237
239

lj i |||>

12

rupo

d it o r i a l

Megabyte ^ f|||

VISUAL BASIC como debe se r.. .


CheckBox..............................................................................................................................
Aplicacin desarrollada N 35 ............................................................................................
ListBox .................................. ..............................................................................................
Aplicacin desarrollada N 36 ............................................................................................
Calculando los das Probables de Fertilidad.......................................................................
UpDown ..... .........................................................................................................................
MaskEdBox .........................................................................................................................
Aplicacin desarrollada N 3 7 .............................................. ...............................................
SendKeys .............................................................................................................................
Aplicacin desarrollada N 38 ............................................................................................
Aplicacin desarrollada N 39 ............................................................................................
Instruccin With ...................................................................................................................
Preguntas de repaso N 05 ..................................................................................................

240
240
243
244
246
248
250
252
257
258
261
264
265

CAPTULO VI : MANEJO DE VARIOS FORM ULARIOS


Agregar Formularios a una aplicacin.................................................................................
Quitar formularios de una aplicacin .................................................................................
Seleccionar un formulario a ejecutar prim ero.....................................................................
Instrucciones para manejar formularios .............................................................................
Aplicacin desarrollada N 40 ............................................................................................
Aplicacin desarrollada N 4 1 ..............................................................................................
Errores ms com unes............................................................................................................
Preguntas de repaso N 06 ..................................................................................................

269
271
271
272
273
278
280
281

CAPTULO VII : DISEO DE MENU


Editar EN men ....................................................................................................................
Instrucciones PopupMen ..................................................................................................
Control ToolBar ...................................................................................................................
Aplicacin desarrollada N 43 ............................................................................................
SsTab......................................................................................................................................
Errores ms com unes............................................................................................................
Preguntas de repaso N 07................................. ..................................................................

295
298
303
305
309
311
312

CAPTULO VIII : MANEJO DE ARCHIVOS


DriveListBox .................................................. .....................................................................
DirListBox ...........................................................................................................................
FileListBox ...........................................................................................................................
Aplicacin desarrollada N 44 ...........................................................................................
Aplicacin desarrollada N 45 ...........................................................................................
CommoDialog ......................................................................................................................

315
315
315
316
317
319

lilil^

G ru p o E d ito ri

Megabyte

13

_______________ , . o

VISUAL BASIC como debe se r...

^ i ' VISUAL BASIC como debe se r...


Aplicacin desarrollada N 46 ...........................................................................................
Uso de la im presora.............................................................................................................
Objeto printer .......................................................................................................................
Mtodo Print .......................................................................................................................
Instruccin T a b .....................................................................................................................
Instruccin S p c .....................................................................................................................
Mtodo PrintForm ..............................................................................................................
Aplicacin desarrollada 47 ...................................................................................................
Comandos del D O S .............................................................................................................
Control de Errores ...............................................................................................................
On Error ................................................................................................................................
Objeto E r r .............................................................................................................................
Errores interceptables ms comunes .................................................................................
Control RichTextBox...........................................................................................................
LoadFile.................................................................................................................................
SaveFile..................................................................................................................................
Funciones A P I......................................................................................................................
Apagar la computadora automticamente .........................................................................
Crear discos de instalacin ..................................................................................................
Control ActiveMovie ...........................................................................................................
Crear Archivos de Ayudas...................................................................................................

323
325
326
327
327
328
328
328
331
332
332
332
333
334
335
335
336
337
338
340
341

Asistente VB para base de datos ........................................................................................


Control D bcom bo.................................................................................................................
Aplicacin desarrollada N 52 ...........................................................................................
Aplicacin propuesta N 09 ................................................................................................
Control D bgrid......................................................................................................................
Aplicacin desarrollada N 53 .............................................................................................
Instrucciones S Q L ................................................................................................................
Aplicacin desarrollada N 54 ............................................................................................
Aplicacin desarrollada N 55 .............................................................................................
Variables tipo Recordset......................................................................................................
Aplicacin desarrollada N 56 ............................................................................................
Aplicacin desarrollada N 57 ............................................................................................
Modificar varios registro a la v e z ........................................................................................
Mtodos de Transacciones ..................................................................................................
Aplicacin desarrollada N 58 ............. ...............................................................................
Manejo de fo to s ....................................................................................................................
Aplicacin desarrollada N 59 .............................................................................................
Manejo de varias tablas .......................................................................................................
Uniendo tablas .....................................................................................................................
Aplicacin desarrollada N 6 0 .............................................................................................
Errores ms com unes............................................................................................................
Preguntas de repaso N 09 ..................................................................................................

CAPTULO IX : MANEJO DE BASE DE DATOS


Base de d a to s .........................................................................................................................
Tablas......................................................................................................................................
Registros y Campos .............................................................................................................
Crear una Base e Datos usando Visual Basic........................... .........................................
Tipos de Recordset ...............................................................................................................
Crear una Base de Datos usando Microsoft Access .........................................................
Control Data .........................................................................................................................
Objeto Recordset ..................................................................................................................
Aplicacin desarrollada N 48 .............................................................................................
Aplicacin desarrollada N 49 .............................................................................................
Control DbList ......................................................................................................................
Consulta de registros ...........................................................................................................
Aplicacin desarrollada N 50 .............................................................................................
Mtodo MoveFirst ..............................................................................................................
Mtodo Nomatch .................................................................................................................
Mantenimiento de registros ...............................................................................................
Aplicacin desarrollada N 51 ............................................................................................

347
347
347
349
351
354
358
358
359
362
364
364
365
365
366
367
367

CAPTULO X : PROGRAM ACIN DAO


Objeto de acceso a datos ..................................................................................................... 416
Mtodos para manejar base de datos .................................................................................... 417
Antes de programar con D A O ................................................................................................ 420
Control MsFlexgrid................................................................................................................. 425
Otras instrucciones SQL ....................................................................................................... 433
Control MsChart .................................................................................................................... 440

rupo

E d it o r ia l M e g a b y t *

371
372
372
373
374
376
376
379
383
386
388
392
397
397
397
398
398
402
404
406
410
411

CAPTULO XI : CREACIN DE REPORTE


Pasos para crear un rep o rte...................................................................................................
Reportes tipo Estndar ..........................................................................................................
Vincular Tablas.......................................................................................................................
Creacin de ndices................................................................................................................
Ordenacin de los registros ...................................................................................................
Totalizar o contar registros ..................................................................................................
Estilo del reporte ..................................................................................................................
Control Cristal Report ..........................................................................................................

I || j^

rupo

E d it o r i a l

Megabyte

15

447
447
448
450
451
452
453
453

VISUAL BASIC como debe ser.

VISUAL BASIC como debe ser. . .

CAPTULO XII PROGRAMACIN ADO


Conexin L ocal..................................................................................................................... 461
Conexin Remota .................................................................. .............................................. 461
ODBC .................................................................................................................................... 461
Archivos de Vnculos OLE-DB........................................................................................... 461
Configurar una conexin ODBC......................................................................................... 462
Configurar una conexin OLE-DB...................................................................................... 466
El control A D O ..................................................................................................................... 467
Uso de la propiedad ConnectionString .............................................................................. 468
Uso de la propiedad RecordSource..................................................................................... 470
Errores ms comunes ............................................................................................................. 471
Control DataGrid ................................................................................................................ 474
Control DataList ................................................................................................................. 474
Control DataCombo ...............................................................................................................474
Control DTPicker ....................................................................................................................491
EIDataReport ....................................................................................................................... 498
Controles del DataReport ................................................................................................... 500
Propiedades para un reporte ............................................................................................... 501
Mtodos del DataReport ..................................................................................................... 501
DataEnvironment ................................................................................................................ 508
Objeto Connection ................................................................................................................. 510
Objeto Command ................................................................................................................. 511
Uso del Data Report con Data Enviroment ...................................................................... 513
El Control M SHFlexGrid..................................................................................................... 514
Uso de comandos Jerrquicos en MSHFIexGrid .............................................................. 515
Reporte de comandos Jerrquicos ....................................................................................... 518
Conexin de una Base de Datos mediante Instrucciones .................................................. 520
Mtodo E xecute..................................................................................................................... 528
Instrucciones SQL para consultas de Accin .................................................................... 529
Instrucciones DLL ................................................................................................................ 531

INTRODUCCIN
Este libro esta diseado de tal manera que sirve de apoyo y gua para estudian
tes de programacin de computadoras y para un autoaprendizaje porque ha sido
escrito con la experiencia que tiene el autor en el dictado del curso y sobre todo
con la experiencia de alumnos en su proceso de aprendizaje, observando sus difi
cultades y escuchando sus preguntas y sugerencias.
Visual Basic Como Debe Ser..., contiene:
y

SECUENCIA ADECUADA DE TEMAS


Obtenida de los aos de experiencia que tiene el autor en el dictado del
curso con la finalidad que no se pierda el inters en su aprendizaje,
jy DISKETTE GRATIS
Que contiene los principales programas desarrollados en este libro para dar
ejemplos mas rpidos y apoyar al lector para que pueda desarrollar aplica
ciones mas avanzadas,
y APLICACIONES PROPUESTAS Y PREGUNTAS DE REPASO
Para que el lector demuestre en forma prctica los conocimientos adquir
dos y autoevaluarse con la finalidad de ir midiendo los conocimientos
adquiridos.
^ TEMAS DE IMPORTANCIA PARA UN CENTRO DE TRABAJO.
Porque se prepara al lector para desarrollar por s solo aplicaciones que se
presenten en un centro de trabajo, como por ejemplo:
Q J Controles ActiveX
Q j Creacin de archivos de ayuda
Q j Manejo de impresoras
y j Base de datos
Q J Instrucciones SQL
Q j Programacin ADO
QIJ Uso de DataEnvironment y DataReport

Y Mucho ms!

1 8 1 1 ^

16

ru po

d it o r ia l

Megabyte

' G

ru po

d it o r ia l

Megabyte

17

^I VISUAL BASIC como debe se r...

ANTES DE EMPEZAR

CAPITULO I

9 '" i" in ) !
Mic(psoft

Visual B asic

Visual Basic es un programa muy fcil de aprender y con este libro no es


necesario que usted tenga conocimientos de programacin, pero si es muy
importante que sepa el manejo bsico de cualquier versin del Windows,
especialmente el manejo de Mouse.

fiew

j L>3.u.y I

<sV

5l
ActiveX m

VBLrierpfis
Etftkx
C
emris

Antes de empezar usted debe saber:

Adiri

A-rtiv^y r*U

ArtivX
Control

MwtX

Active!-

v*5Appfcatkr.
Ward

Doajmwt OU Document V/.

,
H

\
1l

I ^.Pioyectol - Micjosoft Visual Basic [diseo]

H S B l

Archivo Edicin Ver Proyecto Rumato depuracin Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda

Manejar el Mouse.

$ 3 '

& B

>

Abrir y cerrar ventanas.


01 D

^ Minimizar, maximizar y restaurar ventanas.

- ^ Proyectol (Proyectol)

''b Mover y modificar el tamao de las ventanas.


|Forml Form
Aabtica | Por categoras

Manejar el teclado.
Este libro le ensea con una secuencia adecuada brindando en cada prrafo un
conocimiento mas acerca de Visual Basic, por eso es muy importante que los lea sin
apresuramiento y en el mismo orden en el que ha sido escrito.

(Nombre)
Appearance
AutoRedraw
iackColor
iorderStyle
Caption
ClipControls
ControlBox

Formi
+\ 1-30
False
&H8000000F8
2 Sizable
Formi
True
True

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


antes de pasar al siguiente captulo.

Un libro es el mejor aliado para la formacin de un buen Profesional

rupo

d it o r i a l

Megabyte ^ f||j||

ENTORNO
DEL
VISUAL BASIC

CAPITU LO I:

Entorno Del Visual Basic 4

Visual Basic es un sistema diseado para crear aplicaciones grficas


de una manera rpida y sencilla las cuales se ejecutan bajo Windows.
El acceso a Visual Basic es m uy sencillo y depende de la carp eta
donde lo instal o de su versin. P o r ejem plo:
Accesorios

_ r) Corel5

_rr) Inicio

3SBEESSSB0I

rj

.rj] Microsoft Visual FoxPro

. 7^ Powersoft 5.0

jO^ Application Setup Wizard

> 0

The Hacker Anti-Virus


^

AH Text Viewer
ijjjj Application Performance Explorer

Cuaderno de Microsoft

Books Online

Explorador de Windows

Crystal Reports

&

Internet Explorer
Internet Mail

Microsoft Access

Microsoft Excel

Readme
RemAuto Connection Manager

Internet News
^

Automation Manager

fe

'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

MiCttoft Offcce ^ P r o fe s io n a l

.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 ihirj

PLATINUM W orkf/ie w h t ine ine l Explore

.rj

MicrQ:oft Visual SourceSafe

Services er. inea

* 'ij

Microsoft Visual awe 6

S jfca te

* 0J

M c ro :o ft Visual FoxPro SO

A b * f o m e n t o de Olhce

,
_J Eavortos

jj,

.rj
w

* * "

fi.v c

A)uda

W ic

E r

W -n H E ,to .
MS-DOS

lo flfc W fc s E R r> E R X 3 5

S i* Apagar es ii n > 3
In ic io

|j | ||^

H erram iertat errm a ria te s de M ie to VStw IS

O u llc x * Ewpress
^

G ru p o E d ito r ia l

Megabyte

21

4S

<Q>

m X m / VISUAL BASIC como debe se r...

CAPITULO I:

Segn como est configurado el Visual Basic, antes de ingresar a su


pantalla principal Ud. puede visualizar lo siguiente:

_Ll2<J
* H'

Microsoft

Entorno Del Visual Basic

La pantalla tiene tres hojas: New, Existing y Recent.


La hoja NEW, permite crear un formulario en blanco para empezar a
disear una nueva aplicacin (Ver la figura anterior).
La hoja Existing muestra todos los proyectos creados y permite abrir
cualquiera de ellos:

Visual Basic

New

j Existing |

rrrn

Recent )

M ic ro s o ft

ActiveX EXE

ActiveX DLL

SI

VB Enterprise
Edition
Controls

Addin

Si

J1t7
ActiveX
Control

Visual Basic

V
New

VB Application
Wizard

Buscar en:

| _ J Vb

[
<

ActiveX
ActiveX
Document DLL Document EXE

S e le c cio n a las
h o ja s

Existing | Recent | -----------------------------------------------------

J CKsvr

j samples

J Help

J Setup

J Nueva carpeta

J setupkit

JO dbc

J T empiate

J report

J Tsql

J Repostry

L I

vbonline

S e le c c io n a
u n a c a r p e ta

_ j Winapi
u J Wizards
amer.vbp

^ANA.vbp
cli..vbp

% |C H IQ U I.virr

jJ
Cancelar

Nombre de archivo:

(j

Archivos de tipo:

[Project Files ( vbp;".m ak;".vbg)

A,brir

Ayuda

Ayuda

Don't show this dialog in the future

___ M u e s tra los


p ro y e c to s q u e e st n
m s a la d erech a

S e le c c io n a el
tip o d e a rc h iv o
q u e d e se a ver.

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 Estndar


y luego haga click en el botn ABRIR.
N O TA :
Para visualizar o no esta ventana cada vez que Ud. ingresa al Visual
Basic, debe hacer lo siguiente: Una vez que ingres al Visual Basic haga
click en la opcin TOOLS (Herramientas) de la barra de men y elija
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
ENVIRONMENT (Entorno)y active el botn P ro m p t F o r P roject (Pre
guntar por un Proyecto)para que se visualice esta ventana cada vez que
ingresa o el botn C reate D efault P roject (Crear un proyecto predetermi
nado) para que no se visualice.

22

rupo

E d it o r i a l

Megabyte<

QU ES UN PROYECTO ?
Es toda aplicacin que se desarrolla en Visual Basic y est compuesto
por formularios, mdulos, etc. Para abrir un proyecto (visualizar uno que ya
existe) siga uno de los siguientes pasos:
Haga doble click en el nombre del proyecto.
Seleccinelo haciendo un click en l y luego haga click en el botn
Abrir.
Escriba el nombre del proyecto siempre y cuando se encuentre en la
carpeta activa y luego haga click en el botn Abrir.

rupo

E d it o r i a l

Megabyte

23

59^

VISUAL BASIC como debe ser. ..

CAPTULO I:

La hoja Recent muestra todos los proyectos activados recientemente y


nos da la posibilidad de abrirlos.

Entorno Del Visual Basic

ENTORNO DEL VISUAL BASIC

New Project

Al ingresar al Visual Basic se visualiza la siguiente pantalla:

M ic ro s o ft

V
isualB
asic

New

| Existing

File

Barra de Men

R e cen t

Barra de Titulo

Folder

Barra Estndar

Formulario

C:\Archivos de programa\Dev5tudio\VB
%CHIQUI

C:\Archivos de programa\Dev5tudio\VB

garner
IoMAR

C:\Archivos de programa\DevStudio\VB

PROJECT 1

C:\Archivos de programa\Dev5tudio\VB

' ^ r Proyecto1 - M icrosoft V isual Basic [diseo]

C :\ARCHIV~ 1\DEVSTU~ 1\VB

I^LEO

C : \ ARCHIV~ 1\DEVSTU~ 1\ VB

% | t ALLER~1

C : \ARCHI V~ 1\DEVSTU~ 1\VB

Archivo Edicin Ver Provecto Formato Depuracin Ejecutar Consulta Diagrama Herramientas Componentos Ventana Ayuda

3 '
j

3 0

f l 15 * ' i A

T 1

Abrif
Cancelar
Proyecto 1 (P royecto 1)
A yuda

03 Formularios

mmm
zi

|i Propiedades - Formi
P

D on't show this dialog in the future

jF o rm l Form

Alfabtica |

categoras )

(Nombre)

Seleccione el nombre del proyecto y haga click en el botn Abrir.

MUY IMPORTANTE

Formi

-------- 1

Appearance

1 - 3D

AutoRedraw
BackColor

False
&H80G0000F8

BorderStyle

2 - Sizable

Caption

Formi

ClipControls

True

ControIBox

True

zi

Si en cualquiera de las 3 pginas Ud. selecciona la opcin 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:
De la opcin FILE (Archivo) elija New Project.
Pulse las teclas < CONTROL > + < N >

24

rupo

d it o r i a l

Megabyte

G Forml (Forml)

Caja de
Herramientas

rupo

Ventana de
Proyecto

E d it o r i a l

Ventana de
Propiedades

Megabyte

Ventana de
Ubicacin del
Formulario

25

CAPTULO I:

B B b VISUAL BASIC como debe s e r.. .

Entorno Del Visual Basic

BARRA DE MENU
'-in>x|

, P ro ye clo ! - M icrosoft V isual Basic {diseo]


Archivo

Edicin Ver

Proyecto

Formato

Depuracin

Ejecutar Consulta Diagrama Herramientas

Complementos

Ventana

Ayuda

VENTANA DE UBICACIN DEL FORMULARIO

Contiene las rdenes que se utilizan para desarrollar una aplicacin. Las
opciones que se visualizan dependen de la versin del Visual Basic.

Se activa haciendo click en:

M
a

DESCRIPCIN DE LA OPCIN ARCHIVO

Se u tiliz a para in d icar la


posicin del formulario en la
pantalla cuando no queremos
que el formulario ocupe toda
la pantalla.

Una de las opciones de la Barra de men mas utilizada es la opcin


Archivo la cual contiene:
N uevo P ro y ecto
Crea un nuevo proyecto.
A b rir Proyecto
Abre un proyecto existente
A g re g a r Proyecto
Adiciona uno de los proyecto a la aplicacin
Q u ita r Proyecto
Borra uno de los proyectos activados
G u a rd a r Proyecto
Graba un Proyecto diseado
G u a rd a r Proyecto Como
Graba un proyecto con otro nombre
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
Im prim ir
Imprime el proyecto o lo seleccionado
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

BARRA ESTANDAR
,M-

B C L!

Cr>.

t-

!* -b W *

Contiene los botones que perm iten realizar las tare as m s com unes
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,
finalizar un p ro g ram a, etc.

NOTA :

Si no visualiza la Barra Estndar debe hacer click en la


opcin VIEW (Ver) de la barra de men, luego en ToolBars
y activar Estndar.

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


las teclas rpidas 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

,S.

d it o r ia l

Megabyte

jjylgp Grupo Editorial Megabyte

27

% VISUAL BASIC como debe se r.. .

CAPTULO I:

DESCRIPCION DE LA BARRA ESTANDAR


Crea un Nuevo Proyecto

Finaliza un Programa

Crea un Nuevo Formulario

Activa la Ventana de Proyecto

Activa el Editor de Men

EL FORMULARIO

tiO Activa la V. de Propiedades

Abre un Proyecto

[O

Entorno D el Visual Basic I P

Ubicacin del Formulario

Graba un Proyecto

Activa el Examinador Browse

Ejecuta un Proyecto

Activa la Caja de Herramientas

Es la ventana principal, porque sirve de fondo para los controles que se


dibujan en una aplicacin como cajas de textos, etiquetas, etc. Se activa
pulsado SHIFT + F7 o CTRL + R y luego Doble Click en el nombre del
formulario que desea visualizar.

CAJA DE HERRAMIENTAS
PRINCIPALES TECLAS RAPIDAS
CTRL + N
CTRL + O
CTRL + S
CRTL + P
CTRL + R
CRTL + T
CRTL + D
SHIFT + F7
ALT + Q
F4
F5
F8

mm

Crear un Proyecto.
Abre un Proyecto.
Graba un Formulario.
Activa la Ventana para Imprimir.
Muestra la Ventana de Proyecto.
Activa la Ventana de Componentes.
Agrega un Archivo.
Muestra el Formulario.
Sale del Visual Basic.
M uestra de la Ventana de Propiedades.
Ejecuta un Proyecto.
Ejecuta mostrando cada instruccin.

rupo

d it o r i a l

e g a b y te *

General

Se activa haciendo click en:

SS A

[ibi

"

_J

17

1=1

il

^zl

_J

rupo

E d it o r ia !

Contiene los controles que se dibujan


en el form ulario para desarrollar
aplicaciones.

Megabyte

29 m

VISUAL BASIC como debe se r,. .

CAPITULO I:

La caja de herramientas anterior contiene los controles bsicos del Visual


Basic y se visualizan cuando se ingresa en modo E stndar (icono
STANDARD EXE)
"

New

Entorno D el Visual Basic

VENTANA DE COMPONENTES
Al hacer un click con el botn derecho del mouse en cualquier parte de
la caja de herramientas para llamar a controles que necesitamos y no se
encuentran activos, se visualiza el siguiente men:

| EKisting | R e c e n t]
G eneral

Iw

S3

ActiveX EXE

ActiveX DLL

ActiveX
Control

VB Application
Wisard

[5bi

_ j

17

a-

* * e|
C o m p o n e n te s ..
C3

g5>

A g re g a r fic h a ..
A coplable

VB Enterprise
Edition

Ad din

O cu lta r

ActiveX
ActiveX
Document DLL Document EXE

Controls

Al hacer click en la opcin Componentes se visualiza:


.

General

_ l
in

M
w
ii
zl

lib i :

LJ

033

11

IM

;~ r

ni

fe

igEa
P

aA
"

(S

IT
0

DDO

tr. M
V

dS

$2

##l

ES

P a ra in g re s a r al V isu a l B a sic y
visualizar la caja de herram ientas con los
controles ms avanzados debe elegir el
icono VB E n te rp rise E ditio n C ontrol
(Visual Basic Edicin Em presarial). Si
Ud., ya ingreso en modo Estndar y desea
utilizar los co n tro les avanzados, debe
h a c er c lic k con el botn derech o del
m ouse en la caja de herram ientas, elegir
la o p c i n C o m p o n e n te s y lu eg o
seleccionar el nom bre del control que
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
explicando.

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 ]
: : \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
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
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
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
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
c t D a t e OLE C u s to m C o n tr o l m o d u le
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
c t M e t e r OLE C u s to m C o n tr o l m o d u le
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

ru po

d it o r ia l

e g a b y te *

,Vl

9B2

"

xr_

fo-

SB

<*rr.

F~l [553

E le m e n to s s e le c c io n a d o s

C : \W IN D O W S \S Y S T E M \re f e d i t . dll
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

Para activar o llamar a un control, busque su nombre y haga click en su


casilla hasta que se muestre un Aspa y luego haga click en el botn Aceptar.
S'

30

_U ^

Casilla indicando que el control se encuentra activo.

d it o r ia l

Megabyte

31

VISU AL B A SIC como debe ser.. .

CAPTU 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 botn Cerrar de la ventana principal del Visual
Basic.

Se activa haciendo click en:

Form i Form

Botn Cerrar--------

Alphabetic | Categorized
(Name)

Formi

Appearance

1 - 3D

AutoRedraw

False

*
C o n tie n e
las p ro p ie d a d es
o
caractersticas de cada uno de los
controles. Estas propiedades se pueden
cambiar segn lo requiera. Tambin se
activa pulsando la tecla <F4>.

'
_]

BorderStyie

2 - Sizable

Caption

Formi

ClipControls

True

ControlBox

True

S33 E E
File

DrawMode

1 3 -C opy Pen

r w - . . c i- . J.-.

c j-.i-.A

2.
3.
4.

Edit

View

P roject

Form at

Debug

Run

lo o ls

A dd-Ins

W indow

Help

De la opcin F IL E (Archivo) de la barra de men elija E X IT (salir).


Pulse las teclas ALT + Q
Pulse las teclas ALT + F4

NOTA: Si al salir de visual Basic se muestra el siguiente mensaje:

...J

VENTANA DE PROYECTO
Project - ProjecH

]> Project1 (Project 1)


B -& Forms

32

Se activa haciendo click en:

Contine todos los formularios, mdulos,


e tc. que form an una a p lic ac i n .
Tambin se activa pulsando <CTRL>
+ <R>.

rupo

E d it o r i a l

Megabyte^

Visual Basic le pregunta si desea grabar los cambios realizados en el


proyecto. Si no es im portante lo que tiene en el proyecto o en el
form ulario, haga un click en el botn NO.

I f l E j E 'G

ru po

d it o r ia l

Megabyte

3 3 ^ |

CAPITULO I:

BASIC como debe se r...

SOLUCIONANDO LOS PROBLEMAS INICIALES

Entorno D el Visual Basic

2
- La Ventana de Propiedades se ubic debajo de la Barra Estndar y
desea llevarla a su posicin 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


c o m p o n e n tes.

Fie

Edit View Project Form at

si - a - 1

D ebug

es H

Run

Took

A dd-Ins

m,

Window

Help

IF o r m i Form

Para solucionar ste problema debes hacer click en la opcin V IE W


(VER) de la barra de men, cuyas opciones perm iten visualizar los
componentes:
IInixi

5, Proyectol - Microsoft Visual Basic [diseo]

Alphabetic | Categorized |
AutoRedraw
BackColor

False
&H8000000F&

BorderStyle

2 - Sizable

ClipControls
ControlBox

True

.....

*1
1

eSSSIBi 1 Formi

zi

True

Archivo Edicin Ver Proyecto Formato Depuracin Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda

$ . 3 . ' El Cdigo
EH Objeto

=iS|_xJ

MO

. P ro je ct! - Fo rm i (Form )
Form !

Mays+F7 A

Activa el Formulario
i Examinador de objetos

jp Ventana Inmediato

[ab| *v

F2
Ctri+G

4 j

GD _J

3 Ventana Inspeccin

OrK.

^gj

Activa la Ventana
de Proyecto

Ctrl+R

Hl* Ventana Propiedades

B
d
d

Ventana Locales

<$ Explorador de proyectos

F4 .

Q Ventana Posicin del formulario

Activa la Ventana
de Propiedades

Pginas de propiedades Mays+F4


Tabla

Zoom

Mostrar paneles

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

Activa la Caja de
Herramientas

Cuadro de herramientas

Dockable

Dockable
Hide

Hide

Ventana de la vista Datos


Paleta de colores
Barras de herramientas

Visual Component Manager

Activa o desactiva
la Barra Estndar

Depuracin
Edicin
Editor de formularios
* Estndar

Activa la Ventana de
ubicacin de formulario

34

Grupo Editorial Megabyte < | g

Desactive la opcin Dockable, haciendo click en ella.


Otra form a de solucionar este problema es haciendo click en el
ttulo de la ventana de propiedades y arrastrarla a su posicin nor
mal.
Si la ventana de propiedades ocupa toda la pantalla, restaure la
ventana del Formulario.

rupo

E d it o r i a l

Megabyte

35

VISUAL BASIC como debe se r.. .

CAPITULO I:

La C aja de H erram ientas se ubic debajo de la B a rra E st n d a r


y desea llevarla a su posicin norm al.

6 .-

No puede m over ninguno de los controles del form ulario.


Para so lu c io n a r este p roblem a haga un clic k con el botn
derecho del mouse en cualquier parte libre del formulario y luego
desactive la opcin LO C K jC O N TRO L haciendo un click en dicha
opcin.

Para solucionar este problema debe seguir los mismos pasos que
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
propiedades (caso anterior).
4.-

Entorno Del Visual Basic

L a C aja de H erram ien tas ocupa toda la pantalla.


Para solucionar este problema haga click en el botn restaurar
de la caja de herramientas.
Botn Restaurar

Botn Maximizar

1 -1 *
d i

Botn Minimizar
Botn Cerrar

fx l
5.-

No puedes visualizar el fo rm u lario y la ventana de propiedades


y caja de h erram ien tas estn en blanco.
Para solucionar ste problema haga en la opcin FILE y elige
NEW PRO JECT (Nuevo Proyecto).

F ile

d it

s #

y ie w
-

E ro je c t

F rm a t

. g~ ,

>et>ug

f e

gun

T o o ls

& d d -In s
<~vf j

W in d o w

H e lp
cS *

- | |jc |
General

7.-

No en cuentra un control que ha dibujado en el form ulario. Por


ejem plo: al d ib u ja r u n a etiqueta se visualiza L abel3, pero Label2
no la encuentra.
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
existe el nombre del control que buscas significa que no existe
en el form ulario.

Botn para ver ia


lista de controles
que se encuentran
en el formulario

L a b e l3 Label
F o r m i Form
L a b e l l Label
L a b e l2 Label

BackStyle

1 - Opaque

B orderS tyle

0 - None

C aption

Labels

DataField

36

rupo

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.. .

CAPTULO I:

P o r casualidad a creado varios proyectos o form ularios en su


aplicacin y desea b orrarlos.
Grupo de proyectos - Grupol B

En este ejemplo a creado en su


aplicacin tres proyectos y en el
proyecto N 1 tiene 3 formularios.

C3
-

P r o y e c t o l ( P r o y e c t o l)
-j

' > Form ularios


C ] F o rm l (F o rm l)
O

Si hace un Click en el signo mas (+) de


un proyecto, se visualizan sus
componentes y en el signo + de la
palabra Formularios se visualizan los
formularios que contiene. Si hace un
click en el signo menos (-) los oculta.

Form 2 (Form 2)

C ] Form 3 (F o rm 3 )
0

j ? P ro y e c to 2 (P ro y e c to 2 )

B : >IForm
........ularios
......
Q
-

F o rm l (F o r m l)

P ro y e c to 3 (P ro y e c to 3 )
GB- l2

Form ularios

Entorno Del Visual Basic ^ f &

Desea e v ita r que los avances realizad o s en su aplicacin se


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
elctrico , etc.
Para ello, puede configurar al Visual Basic para que al ejecutar
su aplicacin se graben en form a automtica todos los cambios
que le ha realizado.
Haga click en la opcin TOOLS (Herramientas) de la barra de
men y elija OPTIONS... De la ventana que se visualiza active la
pgina E N VIR O N M EN T (Entorno). Se visualiza la siguiente
ventana:
Para que los cambios realizados a
su aplicacin
se graban
autom ticam ente al ejecutarse
active el botn G uardar los
Cambios

Editor | Formato del editor | General ] Acople Entorno | Avanzado ]


Mostrar plantilas para:
Cuando se inicie Visual Basic:
( preguntar por un proyectol

F Eormularios

C rear un proyecto predeterminado

P Formularios MDI
F Mdulos

Para solucionar este problem a haga un click con el botn


derecho del mouse en el proyecto o form ulario que desea borrar.
Se visualiza el siguiente men:

Cuando se inicie un programa:

F Mdulos de clase

C guardar los cambios

F Controles de usuario

C Preguntar p ata guardar los cambios

F Pginas de propiedades

< No guardar los cambios

F Documento de usuano

Directorio de plantillas:
|C:\ARCHIVOS DE PROGRAMA\DVSTUDIO\VB\Tempiate

M en del Proyecto

M en del Formulario
j Aceptar

Cancelar |

Ayuda

1 Ver objeto
Establecer como inicial

CU Ver cdigo

Propiedades de Proyectol...
Propiedades
Guardar proyecto

Desea que en la ventana de propiedades se m uestre una breve


explicacin de cada una de las propiedades.

Agregar

Quitar proyecto

Guardar Forml
Agregar

NOTA
Cada una de las pginas de esta
ventana permiten configurar id
Visual Basic. Es muy importante
que Ud., observe cada una de estas
ventanas.

Guardar Forml como.


Quitar Forml

=$ Imprimir...

Para ello, haga click con el botn derecho del


mouse en cualquier propiedad y luego active
la opcin Descripcin.

1Imprimir...

v' Acoplable
Ocultar

v' Acoplable

En cualquiera de los casos haga click en la opcin Q U IT A R


(Proyecto o Formulario).

rupo

d it o r i a l

Alfabtica

Megabyte

Command 1

Appearance
v' Descripcin

BackColor

1 - 3D
&HSOOOOO1

v" Acoplable

Cancel

False

D efault

False

Descripcin de las propiedades

rupo

j Por categoras |

(Name)

Ocultar

Ocultar

[c o m m a n d 1 CommandButton * |

E d it o r i a l

Megabyte

C a p tio n
Devuelve o establece el texto
mostrado en la barra de ttulo de
un objeto o bajo el icono de un

39

^ llt ll- VISUAL BASIC como debe sen . .

CAPTULO I:

Entorno Del Visual Basic

w m

FILOSOFA DE PROGRAMACIN EN VISUAL BASIC


Para desarrollar un programa en Visual Basic se crea un formulario y sobre
l se dibujan controles tales como cajas de texto, etiquetas, listas desplegables,
grficos, botones de comandos, etc. A continuacin se le asignan las propiedades
y finalmente se escriben las instrucciones relacionadas a cada uno de ellos.
Quiere decir esto que cada control est ligado aun conjunto de instrucciones
que permanece inactivo hasta que ocurra el evento que lo activa.
EV ENTO:
Es una accin reconocida por un control u objeto para el cual se puede escribir
instrucciones de respuesta. Los eventos pueden estar generados por una accin
del usuario como hacer click con el mouse, pulsar una tecla, etc.
CONTROL:
Es un objeto grfico, como por ejemplo un cuadro de texto, un botn de comandos
o un marco que se coloca en un formulario para presentar datos, realizar una
accin o mejorar el aspecto de un formulario, etc.
O B JE T O :
Es una instancia de una clase que combina datos y procedimientos. Por ejemplo
un control cuando es ejecutado en un formulario es un objeto.
CLASE:
Es la definicin de un objeto incluyendo su nombre, sus propiedades y mtodos
y cualquier evento que tenga.
PR O PIED A D :
Es un atributo con un nombre determinado que se le asigna a un control para
definir una caracterstica del objeto como por ejemplo, el tamao, el color, o la
posicin en la pantalla, o un aspecto de su comportamiento, como por ejemplo,
si est oculto o no.
M TODO:
Es un procedimiento similar a una instruccin o funcin que opera sobre objetos
especficos.

rupo

d it o r i a l

Megabyte"

PREGUNTAS DE REPASO - N 01
01.- La ventana principal de una aplicacin se llama:
02.- El entorno de Visual Basic est compuesto por:
03.- Qu es un Proyecto?
04.- Los controles se encuentran en:
05.- Para activar la Ventana de Proyecto se debe pulsar:
06.- Dibuje el botn que sirve para ejecutar una aplicacin.
07.- Qu debe hacer si al activar el Visual Basic no encuentra la Barra
Estndar?
08.- Dibuje el botn para grabar un proyecto.
09.- Qu tecla activa la Ventana de Propiedades?
10.- Dibuje el botn que sirve para finalizar una aplicacin.
11.- Qu ventana contiene las caractersticas que se les puede asignar a
los controles?
12.- Dibuje el botn que activa la Caja de Herramientas.
13.- Qu es un mtodo?
14.- Dibuje el botn que sirve para llamar o abrir un proyecto.
15.- Qu contiene la Barra Estndar?
16.- Qu teclas permiten visualizar el formulario?
17.- Qu debe hacer si al ingresar al Visual Basic no se visualizan todos
sus componentes?
18.- Cules son los pasos para desarrollar una aplicacin?
19.- Cundo se ejecutan las instrucciones de los controles?
20.- Qu es un evento?
C U ID A D O !
Le recomiendo no seguir con los prximos temas mientras
no obtenga un veinte en esta autoevaluacin.

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 BSICOS

EL FORMULARIO:

Es una ventana muy importante porque aqu se dibujan o pegan todos los
controles que necesitamos utilizar en nuestro programa o aplicacin. Se
pueden utilizar tantos formularios como se necesiten, y dependiendo de la
utilidad que se les d, stos sern de diferentes tipos. As, se puede crear un
formulario que contenga un grfico, para visualizar informacin o para
ingresar datos.
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 presentacin y comportamiento del formulario.
C A P T IO N
Asigna un Ttulo 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 ningn evento.
FO N T
Indica el tipo, tamao 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

CAPTULO II:Descripcin de los Controles Bsicos

4S S S & VISUAL BASIC como debe ser.. .


LEFT
Permite indicar la posicin horizontal del formulario.
M A X B U TTO N
Indica si se visualiza el botn Maximizar.
M IN B U T T O N
Indica si se visualiza el botn Minimizar.
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
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
Indica si el usuario puede mover el formulario.
P IC T U R E
Para seleccionar un grfico que sirva de fondo para el formulario.
SCALEM ODE
Asigna la unidad de medida para el tamao o ubicacin del formulario o cualquier
otro control. La unidad de medida que se activa en forma automtica es TWIP.
Un TWIP es una unidad de medida estndar para todo tipo de pantallas la
cual nos permite asignar el mismo tamao o ubicacin de los controles sin
importar el tipo de pantalla que utilizamos. Un TWIP es igual a 1/20 de un
punto de impresora. 1440Twips equivalen a una pulgada y 567 equivalen a
un centmetro.
SH O W IN T A SK B A R
Indica si el formulario se debe visualizar en la barra de tareas cuando se
esta ejecutando.
ST A R T U PPO SIT IO N
Permite seleccionar la posicin inicial del formulario en la pantalla.
TOP
Se utiliza para indicar la posicin vertical del formulario en la pantalla.
V ISIB L E
Indica si el formulario se debe visualizar.
W ID T H
Permite indicar el ancho del formulario.
W IN D O W STA TE
Selecciona el modo de presentacin del formulario: Normal, Minimizado o
Maximizado.

ru po

d it o r ia l

Megabyte <

CMO ASIGNAR UNA PROPIEDAD?


Para asignar una propiedad a un control (formulario, caja de texto,
etiqueta, botn de comando, etc.), primero debe seleccionarlo, haciendo un
click en l, luego pulse <F4> o el botn propiedades.

BOTON DE PROPIEDADES

NOMBRE DEL
CONTROL AL
CUAL SE LE ^
ESTA ASIGNADO
PROPIEDADES

ES* i S S S B S
JF o r m i Form

.I.J

Alphabetic ] Categorized |
Aubzftdraw
jckColor
/ BorderStyle

FORMAS DE
VISUALIZAR
LAS
PROPIEDADES

- Ia !.*J

False
&H8000000

BOTON PARA
SELECCIONAR EL
CONTROL Al.
CUAL LE
QUEREMOS
ASIGNAR
PROPIEDADES

2 - Sizable

ClipControls

True

ControlBox

True

DrawMode

13 - Copy P e n __

DrawStyle

0 - Solid

DrawW idth

Enabled
FillColor

True
&HG0000

FillStyle

1 - Transparen

BARRA DE
DESPLAZAMIENTO
DE
PROPIEDADES

MS Sans Serif
Font
FontTransparenl True
&H8000001
ForeColor
Height
H elpContextID

3600
0

NOTA:
Usted, puede modificar el ancho o altura de esta ventana.

rupo

E d it o r i a l

Megabyte

47

w J

S fk > VISUAL BASIC como debe se r.. .

ETIQUETA (Label) :
* Segn la propiedad que ha elegido, Ud. Puede visualizar:

A
1

II

Es un control que se utiliza para mostrar mensajes en una aplicacin.


Al dibujarlo en el formulario se visualiza: Label 1, Label2, Label3, etc.

D S H j J

Al dibujar un control no debe preocuparle el tamao Inicial que tome,


porque se puede modificar de una manera fcil y rpida.

(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.

2.-

Para que al hacer un click en la flecha hacia abajo se visualice una


lista de valores que podemos asignar como propiedad.

3.-

Para que al hacer un click en los tres punto se visualice una ventana
de dilogo.

A M E
Perm ite asignarle un nombre. Por defecto el nombre es Label 1,
Label2, Label3, etc. Segn el nmero de Etiquetas que se dibujen en el
formulario.
A L IG N M E N T
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


com probar sus efectos ejecutando el form ulario con la
tecla <F5> o con el botn Ejecutar y para term inar . U
ejecucin pulse la tecla <A LT> + <F4> o click en el
botn finalizar.

Cambia la apariencia de la Etiqueta.


A U T O S IZ E
Para indicar si el tamao de la Etiqueta depende del tamao de la
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
B O T O N F IN A L IZ A R

Asigna el estilo del fondo de la Etiqueta.


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 informacin que desea visualizar.

ru po

d it o r ia l

Megabyte-^

jllll^

ru po

d it o r ia l

Megabyte

49

S B ib ' VISUAL BASIC como debe ser.. .

< $8

PONT
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto o
mensaje que desea visualizar en la Etiqueta.

APTULO I I .-Descripcin de los Controles Bsicos %


MUY IMPORTANTE:
Para trabajar con un control, debes seleccionarlo.

FORECOLOR

Siempre debes mirar la caja de propiedades para darte cuenta con qu


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
el formulario.

VISIBLE

- lai *1

Indica si la Etiqueta se debe visualizar o no.

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

Alfabtica | por categori!

VISUAL BASIC

(Nombre)
Appearance
AutoRedraw

Como debe ser...

BackColor
BorderStyle
Caption

M nombre es

Forml
1 - 3D
1
False
&H8000000F8
2 - Sizable
Forml

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 aplicacin debe seguir los siguientes pasos:
1.- C re a r una nueva aplicacin.
De la opcin F IL E de la Barra de Men elegir N E W PROJECT.
2.- Mueva y ajuste el tamao del Formulario.
3.- Dibuje los controles.
4.- Defina las propiedades del formulario y controles.
5.- Escriba las instrucciones para los controles.
6.- Guarde la aplicacin.

,
1

C o n tro l
A ctiv o

I I x ||

(Nom bre)
Alignment

7.- Ejecute la aplicacin.

jf v

Appearance

1 - 3D

AutoSize

False
&H8000000F8

BackColor

NOTA: Si durante el diseo de la aplicacin desea b o r ra r un control,


debe seleccionarlo haciendo un click en l y luego pulsar la tecla D ELETE

Label 1
0 - Left Justify

BackStyle

1 - O paque

BorderStyle

0 - None

Caption

Labell

(SUPRIM IR).
G

rupo

d it o r i a l

Megabyte

rupo

E d it o r i a l

Megabyte

51

VISUAL BASIC como debe ser..

CAPITULO II.Descripcin de los Controles Bsicos

Los puntos alrededor de un control indican que este se encuentra


activado.

DESARROLLO DE LA APLICACIN N 01
Para desarrollar la aplicacin N 01 se siguen los siguientes pasos:

MODIFICAR ELTAMAO DE LOS CONTROLES

Formi

EHH1

D ibujar los
C ontroles

A justar el tam ao
del Form ulario

Para modificar el tamao de un control, primero debe seleccionarlo


haciendo click en l. Una vez seleccionado se visualizar los puntos
que permiten modificar su tamao, entonces lleve el puntero del mouse
por uno de estos puntos hasta que visualice una flecha en doble sentido,
luego arrastre el mouse ampliando o reduciendo el tamao del control.

JSl-l
Labell

El control esta
listo para
modificar
su ancho

Label2

Labell

Label3

3.- Asignar las propiedades a los Controles


CONTROL
El control esta listo
para modificar su
ancho

El control esta listo para


modificar su ancho

MOVER UN CONTROLEN EL FORMULARIO


Para m over un control haga clic dentro del control y arrastre el
mouse hasta la posicin donde desea moverlo. Observar la siguiente
pantalla.

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

LA B EL 1

V IS U A L B A S IC

C e n te r

T rue

28

0 -N o n e

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

Si desea que a ejecutar la aplicacin el formulario ocupe toda


la pantalla, su propiedad W indow state debe tener el valor 2
fmaximized).

. Formi

En esta aplicacin no se escriben instrucciones porque slo


permite mostrar mensajes.
Labell

Posicin del control


en el formulario

A.Guarde o grabe la aplicacin.


5.Pulse la tecla F5 o el botn ejecutar para que el formulario se ejecute
y observar los resultados de esta aplicacin.

ru po

d it o r ia l

Megabyte

53

I l b

VISUAL BASIC como debe s e r ...

CAPITULO II'.Descripcin de los Controles Bsicos

>

VENTANA PARA GRABAR UN FORMULARIO

G U ARDA R O G R A B A R UNA A PLIC A C I N .


Existen dos formas de guardar una aplicacin:
1 Haciendo click en la figura del Disco que se encuentra en la Barra
Estndar

Primero le pide el nombre de cada formulario (*.FRM) que forma


parte de la aplicacin y al final le pide el nombre del Proyecto (*. VBP)
el cual se utiliza para abrir o recuperar posteriormente la aplicacin.

jd -ii

Q-ave Pieiect A*
G u ardar en:

2.- De la opcin F IL E "Archivo" de la Barra de Men, elegir Guardar


Proyecto. Si desea guardarlo con un nombre diferente al asignado
inicialmente, debe elegir la opcin Guardar Proyecto Como.

Crea una Nueva


Carpeta

Carpeta
Anterior

Selecciona
otra carpeta

Carpeta
Actual

Accin que
est realizando

=3

_j V b
I R e p o s try

__ I v b o n lin e

I sam ples

__ J W in a p i

3cap
J Clisvr

J d oe s

L J S e tu p

j H e lp

__ 1 s e tu p k it

j O dbc

(__J T em p ia te

j report

I T sql

d
Formas de
ver los
Formularios
y carpetas

I W iz a rd s
CALEN DAR
<jbf c a s e
checkl

_Formularios y
carpetas

jJ

jl L
G uardar

N o m b re d e archivo :
G u ardar c o m o tipo:

C a ncela r

{P ro je c t Filep (x.v b p )

Botn para
Grabar

Ayuc a

VENTANAPARAGRABAR UN FORMULARIO
C aja para escribir el nombre del formulario que
desea grabar

A ccin que
est realizando

C arpeta
A ctual

Selecc rna
otra carpeta

C arpeta
A nterior

S a v e F ile A s
Guardai en: |

C rea una N ueva


C arpeta

I
M Vb

J Clisvr
j Help
J Odbc
j report
J Repostry
1samples

+
m
L - Setup
L_J setupkit
J T empiate
L J T sql
__ j vbonline
L J Winapi

Nombre de archivo: '

|9BRr

Guardar como tipo:

I Form FileJ (x.frm)

L U Wizards

Formas de
ver los
Formularios
y carpetas

hh
^ PROG01
Q PRO G02

^Form ularios y
carpetas
existentes
Guardar

C aja para escribir el nom bre del form ulario que


desea g ra b a r

T ip o de archivo que est


grabando

Cancela la accin

" MUCHO CUIDADO "


Para cada formulario de un proyecto y para cada proyecto que usted
grabe, utilice nom bres d istin to s porque de lo con trario el nuevo
formulario o proyecto borrar al anterior. Por ejemplo, si ya tiene un
proyecto grabado con el nom bre trabajo y graba un nuevo proyecto
con el mismo nombre, entonces el primer proyecto se borrar y ya no
podr recuperarlo. Esto tam bin sucede con los formularios. Por eso
tenga M U C H O CU ID A D O
Antes que el proyecto o formulario se borre se muestra un mensaje
de advertencia.
G u a rd a i p ro y e c to co m o

|"

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.


D esea reemplazarlo?

Cancelar
Ayuda

Tipo de archivo que est


grabando

Botn para
G rabar

C ancela la accin

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


anterior (lo borra) y si responde NO, Visual Basic le pide otro nombre.
G

rupo

E 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
aplicacin que hagas lo grabas en una ca rp e ta diferente, esto tambin
te permite administrar mejor tus proyecto.
A B RIR O R E C U PE R A R UNA A P L IC A C I N
Existen tres formas de abrir o recuperar una aplicacin:
1

Haciendo click en la figura del L ibro que se encuentra en la Barra


Estndar.

E JE C U T A R UNA A P L IC A C I N
Existen tres formas de ejecutar una aplicacin:
1.- Pulsando la Tecla <F5>.
2.- De la opcin E je cu ta r de la Barra de Men, elegir Iniciar.
3.- Haciendo click en el Botn E jecu tar que se encuentra en la Barra
Estndar.

>

BOTN EJECUTAR

2.- De la opcin ARCHIVO de la Barra de Men, elegir A b rir Proyecto.


3.- Pulsar las teclas (CTRL + O).
Una vez que se visualiza la ventana para abrir un proyecto, usted
puede hacer doble clic en el nombre del proyecto o escribir su nombre
en la caja indicada y luego haga clic en el botn ABRIR. Si al abrir un
proyecto, no se visualiza, pulse CTRL + R para activar la ventana de
proyecto y luego doble clic en Forms y/o en el formulario que desea
visualizar.

NOTA:
Segn como esta configurado Visual Basic, cada vez que ejecuta un
programa le preguntar si desea guardar los cambios realizados. Esto se
puede activar o desactivar en la opcin H erram ientas de la barra de men
luego en O pciones y finalmente en la hoja E ntorno
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 |


M o stra r plantiB as p a r a :
C u a n d o s e Inicie Visual B asic:
C~ p r e g u n ta r p o r u n p r o y e c to
C r e a r u n p r o y e c to p re d e te rm in a d o

VENTANAPARA ABRIR UN PROYECTO

P7 F o rm ularios
W F o rm u lario s MDI
P ? M dulos

Muestra todos los proyectos que tienes grabados.

Muestra la accin aue esta


Muestra los orovectos recin

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

<* 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

fo 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

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

] D a ta e n v iro n m e n t
J T e m p iate
1 T sq l
) W iz a rd s
A lu m n o s
B a la n c e

a J a l frnr-il
C o le gio
C o m p ra s
C o n ta b le s
E xa m e n
F a rm a cia
H o ra rio s

3 S | H o te l
Info rm e s
Juegos
Pagos
P s ic o lo g ia
S is te m a s i

S u e ld o s
T est
T ie n d a
T ra b ajo
U n iv e rs id a d
U n iv e rs o d a d

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 )

Tipo de
archivo que

Caja para
escribir el

&

56

Abre el
------ G

ru po

MUY IMPORTANTE:
l.S i al ejecu tar una aplicacin no se v isualiza el form ulario,
verifique que el form ulario no tenga en su propiedad Visible el valor
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 IM inimized (M inimizado).

UL
N o m b re d e a rc h iv o :

Como puede observar, aqu tambin se puede cambiar otras configuraciones.

Muestra los Proyectos que


estn mas a la derecha

d it o r ia l

M eg a b y te^

2. Si al ejecutar la aplicacin el form ulario se visualiza pero no


responde a ningn evento incluyendo los controles que contiene,
entonces verifique que su propiedad Enabled no tenga el valor False.
|| ||^

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
Existen cuatro formas de Finalizar una aplicacin:
1.- Pulsando las Teclas <ALT> + <F4>.
2.- De la opcin Ejecutar de la Barra de Men, elegir T erm inar.
3.- Haciendo click en el botn cerrar del formulario (X).
4.- Haciendo click en el Botn F in alizar que se encuentra en la Barra
Estndar.

BOTN FINALIZAR

CREAR UN ARCHIVO EJECUTABLE (*.EXE)


Un archivo ejecutable es un archivo con la extensin EXE donde se
encuentran unidos todos los formularios, instrucciones y mdulo de una
aplicacin.
Tiene las siguientes ventajas:

Permite ejecutar la aplicacin sin necesidad de ingresar al Visual

Basic.
Evita que alguien visualice las instrucciones que hemos utilizado en

nuestra aplicacin.
Evita que alguien modifique las instrucciones que hemos escrito en

GRABAR UN PROYECTO E N UN D IS K E T T E
Si desea llevar tu proyecto en un diskette, debe copiar en l no slo
el proyecto (*.VBP) si no tambin cada uno de los formularios (*.FRM) u
otros componentes que contiene como por ejemplo una base de datos, etc.
Si ya grabaste tu aplicacin er, el disco de la computadora (disco
duro) y te encuentras en el Visual Basic con tu aplicacin en la pantalla que
deseas llevar en un diskette, entonces debes activar la ventana de proyecto
(CTRL+R) hacer clic con el botn derecho del mouse en cada formulario
(uno por uno) y elegir G u a rd a r xxx.Frm Como. Esta opcin tambin se
encuentra en la opcin Archivo de la barra de Men donde encontrars
tambin la opcin G ra b a r Proyecto Como la cual se utiliza para guardar el
proyecto, entonces haga clic donde se selecciona las carpetas y elija Disco
3 1/2A:

la aplicacin.
Para crear un archivo ejecutable elija primero la opcin ARCHIVO
de la barra Estndar y luego GENERAR EXE. Visual Basic le pedir el
nombre del archivo que desea crear. El nombre por defecto que presenta es
el nombre con el que Ud. a grabado la aplicacin.
Guardar en: p _il Vb98
2J Dataenvironmenl i*""1Link
*1T empiate
feV b 6
_2j T sql
Ce?Visdata
*"1Wizards
3 C2
**~1Cvpack
tiombre de archivo: ITrabaio

r? ix i
G u a rd a r e n:
_ _ J D a t a e n v ir i
.. I T e m p ia te
__J T s q l
_ J W iz a r d s
C3 d d d

Vb98

..

Mi PC
D is c o d e 3H (A :)
a J J u a n jo s (C .)

mi Ml ou immJ

C e d ti (D :)
1....1 S e r v ic io s e n lin e a

| F o rm u la rio (x.frm )

T 1

g u a rd a r
C a n c e la r

A yuda

Tambin puede utilizar el Windows para realizar esta copia.


G

ru po

d it o r ia l

Megabyte^

1 Aceptar

Cancelar

Ayuda

Qpciones. . 1

Al hacer click en el botn A ceptar o pulsar ENTER despus de ingresar


el nombre, Visual Basic genera en forma automtica el archivo ejecutable.
Una vez creado el archivo ejecutable Ud. puede crearle un acceso directo
para poder ejecutarlo desde el entorno del WINDOWS sin necesidad de
activar el Visual Basic.

1 ... 1 A r c h iv o s d e p r o g r a m a
I 1 M ic r o s o f t V is u a l S tu d io

N o m b r e d e a r c h iv o : { R a y a
G u a r d a r c f im o
a r c h iv o s d e tip o :

M l J f ml

QU ES UN ACCESO DIRECTO ?
Un Acceso Directo es una manera rpida de ejecutar una aplicacin des
de el escritorio del Windows sin necesidad de activar el Visual Basic.
Tambin nos permite acceder a arribos y carpetas.
G

rupo

E d it o r i a l

Megabyte

59

fifi

^i^ VISUAL BASIC como debe se r.. .

VITULO II:Descripcin de los Controles Bsicos

CREAR UN ACCESO DIRECTO

3. De la pantalla anterior haga clic en la opcin Acceso Directo para visualizar


la siguiente pantalla:

Hay tres maneras de crear un acceso directo:


1.
2.
3.

Desde una carpeta.


Desde el escritorio.
Desde el Men de Inicio.

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 ,
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.
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


debe salir al escritorio y luego seguir los siguientes pasos:

E xa m inar..

En cualquier parte libre del escritorio haga clic con el botn derecho
del mouse. Se mostrar el siguiente men de opciones:
Active Desktop

Organizar iconos
Alinear iconos

C a n c e la r

Actualizar

' ' ent

De la pantalla anterior haga clic en el botn Examinar para buscar el archivo


Ejecutable (*.EXE) que usted ha creado

Deshacer Eliminar
Nuevo
Active Desktop

Organiza iconos

E xa m in a r

Propiedades

Buscar en:

a i I B a l

Vb98

AJinear iconos

Lleve el puntero del mouse a la opcin Nuevo. Se


mostrar la siguiente pantalla.

Actualizar
Pegar

f'ft3< c jvtfpy [

_JDataenvironmen(j

ZD T sql
Z 3 C2
1Cvpack

I _ J Carpeta
Propiedades

Acceso directo

W inZ p File

VbS

G jiV isd a la

1Wizards

Deshacer Eliminar

IZLink
Q Trabajo

1 T empiate

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 Presentacin de Microsoft PowerPoint


Hoja de clculo de Microsoft Excel

ir CorelDRAW 8.0 Grfico


@

Imagen Corel PHOTO-PAI NT 8.0

Normalmente Visual Basic Graba el archivo ejecutable que usted crea en la


carpeta:
C:\Archivos de programa\M icrosoft Visual Studio\VB98

^1 Corel Media Folder


O

Adobe Photoshop Image

Microsoft Data Link

PowerDesigner 8 Physical Data Model File

60

rupo

d it o r i a l

M eg a b y te^

ru po

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 seleccinelo haciendo doble clic
en l o un solo clic y luego en el botn A brir. Se mostrar la siguiente
pantalla donde se muestra la ruta y el nombre del archivo ejecutable. En
nuestro ejemplo el archivo se llama TR A BA JO .EX E.

Despus de cambiar o no el nombre del acceso directo haga clic en el botn


Finalizar. Observar inmediatamente en el escritorio del Windows un nuevo
icono.

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

S~
fi
s *>*... 1
PB

NO TA:
Para ver las otras formas de crear un Acceso Directo consulte con el Manual
o Ayuda de Windows.

De la pantalla anterior seleccione el botn Siguiente.


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

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 :

IM P O R T A N T E

Si desea grabar y ejecutar el archivo *.EXE generado en una computadora


que no tenga instalado el Visual Basic, debe copiar en la carpeta
WINDOWS\SYSTEM de dicha computadora el archivo MSVBVM60.DL1,
que se encuentra en la misma carpeta de la computadora donde desarroll
la aplicacin. Si la aplicacin trabaja con archivos externos como base de
datos tambin debe copiarlos en su carpeta respectiva. Si no copia el archivo
*.DLL se mostrar el siguiente mensaje cuando intente ejecutar la aplicacin.

IT r a b a jo

al

E rro r a l in icia r e l p ro g ra m a

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

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


el acceso directo.
Segn los iconos (*.ico) que tenga grabados, Windows le pedir tambin
elegir el icono para el acceso directo.

62

rupo

E d it o r i a l

M e g a b y te < ||

j|

NOTA:
Tambin puede crear los Discos de Instalacin de la Aplicacin como se
explica en la pgina N 307.
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):

fibj
Es un control que permite al usuario el ingreso de datos por medio del teclado.
Al dibujarlo se visualiza: Textl, Text2, Text3, etc.
PR IN C IPA LE S PR O PIED A D ES DE UNA CA JA DE TEX TO :
AME
Permite asignarle un nombre. Por defecto el nombre es Textl, Text2, Text3,
etc. Segn el nmero de Cajas de Texto que se dibujen en el formulario.
BACKCOLOR
Selecciona el color del fondo.
ENABLED
Activa o Desactiva la Caja de Texto. Si est desactivada se muestra en un
color opaco y no responde a ningn evento ni se puede ingresar datos.
FO N T
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto que se
escribe en este control.
FO RECO LO R

PA SSW O R D C H A R
Para indicar el carcter que deseamos que reemplace a cada uno de los
caracteres que digitamos. Se puede utilizar por ejemplo cuando queremos
ingresar claves de acceso.
SC R O L L B A R S
Para indicar qu barras de desplazamiento queremos que tenga la caja de
texto: Ninguna (None), Vertical, Horizontal o Ambas (Both).
TA BIN D EX
Indica el orden en el que el cursor debe ubicarse en las Cajas de Texto.
Donde queremos que se ubique el cursor al, ejecutar la aplicacin debe
tener el valor cero.
T A B ST O P
Indica si el cursor debe ubicarse o no en una Caja de Texto.
TEX T
Almacena el texto que el usuario escribe en este control. Por defecto su
contenido es: Textl, Text2, Text3, etc. Para ingresar datos debe borrar este
contenido y dejar en blanco la Caja de Texto.
V IS IB L E
Indica si la Caja de Texto se debe visualizar o no.

APLICACIN DESARROLLADA N 02

Permite asignar el Color de la letra del texto que se escribe en este control.
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 modificacin
y el valor TRUE lo evita.

Datos Personales
Nombre

M AXLENGTH

Direccin

Para indicar el nmero mximo de caracteres que el usuario puede ingresar


en una Caja de Texto. El valor cero (0) permite que el nmero de caracteres
a ingresar sea ilimitado. Este valor es asignado por defecto.

T elfono
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 lneas. Se


recomienda utilizarla junto con la propiedad SCROLLBARS para poder
desplazarse de una manera ms rpida y fcil por el texto ingresado

"1 ]

rupo

E d it o r i a l

Megabyte

65

VISUAL BASIC como debe ser. . .

>

D esarrollo de la Aplicacin:

APLICACIN PROPUESTA N 01
\

<. IN G R E S O DE P R O D U C TO S

1.- D ib u jar los controles.

_ |n |x |

Nombre
Descripcin
Labell
Precio Unitario
Label2

|T e>:H

Label3

Jfext2

Label4

ffe x t3

Label5

f f ext4

Unidad de Medida
Stock

Fecha de Vencimiento

| Chicyo. 2 } de Agosto de 1.998

Label6
Text5

APLICACIN DESARROLLADA N 03
n

2.- A signar las P ropiedades a los C ontroles.

O T T T rO T rrn rT a rr
Nom bre

ETIQUETAS

CONTROL
Labell
LabeI2
Label 3
Label4
Label5
Label

CAPTION
Datos Personales
Nombre
Direccin
Telfono
Centro de Estudios
Observaciones

Ciclo (del I al X )

ALIGNMENT BORDERSTYE
Center
1-Fixed Single
Left
O-None
Left
O-None
Left
O-None
Left
O-None
Center
O-None

S exo [F /M ]
Clave
D ire cci n E lectrn ica

r~
!......
r~
r~
i

.................... ....

..

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,
U d. n o p o d r in g r e s a r la

CAJAS DE TEXTO

CONTROL
TEXT1
TEXT2
TEXT3
TEXT4
TEXT5

TEXT
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco

MULTILINE
False
False
False
False
True

SCROLLBARS
None
None
None
None
Vertical

CARACTERISTICAS:
1.
2.
3.

El formulario debe tener: INGRESO DE DATOS en su Caption.

66

G ru p o

E d ito r ia l

Megabyte

4.

^^

En el ciclo slo se debe ingresar hasta 03 caracteres.


En el sexo slo un carcter.
En la clave hasta 05 caracteres y no se debe visualizar a medida
que se ingresa.
No se debe permitir el ingreso de la direccin electrnica.
G ru p o

E d it o r ia l

Megabyte

67

17.S7 l / ItASIC como debe ser.

Iii

PTULO II'.Desciipcin de los Controles Bsicos

<

nidlli) ilc li Aplicacin:

B O TO N DE CO M A N D O S (C O M M A N D ):

I I Xluijiu los controles.

La bell

j|T e xtl

Label2

|T ext2

Label3

Text3

Es un control que contiene instrucciones que se ejecutan cuando ocurre


un evento. El evento ms utilizado es el evento CLICK, cuyas instrucciones
se ejecutan cuando el usuario hace un click en dicho control. Cuando se
dibuja se visualiza:Commandl, Command2, Command3, Etc.

-----

Label4

P R IN C IP A L E S

[ i ext4

Label5

BOTON DE

COMANDOS:

BACKCOLOR

E T IQ U E T A S

CAPTION
Nombre
Ciclo (del I al X)
Sexo (F/M)
Clave
Direccin Electrnica
La direccin elec...

Selecciona el color del fondo. Para que acepte el color que se le asigna la
propiedad Style debe estar en modo Grfico.
ALIGNMENT
Left
Left
Left
Left
Left
Center

BORDERSTYE
O-None
O-None
O-None
O-None
O-None
1-Fixed S.

CAJAS DE TEXTO

LOCKED
False
False
False
False
True

UN

AME
Permite asignarle un nombre. Por defecto el nombre es C om m andl,
Command2, Command3, etc. Segn el nmero de Botones de Comandos
que se dibujen en el formulario.

2.- Asignar las Propiedades a los Controles.

CONTROL
TEXT1
TEXT2
TEXT3
TEXT4
TEXT5

DE

j ext5

Label6

CONTROL
Labell
LabeI2
LabeI3
Label4
Label5
Label

P R O P IE D A D E S

m axlength

0
3
1
5
()

PASSWORDCHAR t e x t
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco
En Blanco

Caption del formulario : INSCRIPCION DE ALUMNOS

CANCEL
Para indicar si las instrucciones que contiene se deben ejecutar cuando el
usuario pulsa la tecla <ESC>.
C A P T IO N
Para indicar el ttulo que debe tener el botn. El ttulo que se le asigne
siempre se visualiza en el centro del botn de comandos. Ud. puede subrayar
una de las letras del ttulo usando antes de dicha letra el smbolo (&), esto le
permitir ejecutar las instrucciones que contiene este control pulsando la
tecla ALT y la letra subrayada.
FO NT
Permite asignar el Tipo, Tamao y el Estilo de la letra del texto que se
escribe como ttulo del botn.
P IC T U R E
Selecciona un grfico para que se utilice como ttulo del botn de comandos.

68

r u po

d it o r ia l

Mega byte<

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 visualizacin: Estndar o Grfico. Si el estilo es
grfico, puede almacenar un grfico como ttulo y se le puede cambiar el
color del fondo.
T O O L T IP T E X T
Nos permite escribir un texto que se visualizar cuando el puntero del mouse
se ubique en el botn. El texto que se escriba sirve de ayuda para el usuario,
porque le puede dar a entender qu tarea o /uncin realiza el botn.

ESCRIBIR INSTRUCCIONES PARALOS CONTROLES


Para escribir instrucciones dentro de algn control se debe hacer
Doble Click en dicho control o una vez seleccionado (haciendo un click en
l) se debe pulsar la tecla <F7>. Ingresar a la ventana de instrucciones,
llamada tambin ventana de cdigo:

VENTANA DE C D IG O Q IN STR U C C IO N ES

V ISIB L E
Para indicar si el botn se debe visualizar.

APLICACIN DESARROLI ADA N 04 (Similar a la N 02)


wmm

1 INGRESO DE DATOS

1 Datos Personales

N om bie
D irecci n
T el f on o
C en tro d e E stu d io s

J-

LiL l i

OBSERVACIONES

H u e v o A lum no

Finalizar

J
IM P O R T A N T E :

La propiedad de los controles son iguales a la Aplicacin N02. Lo que sigue


son de los nuevos controles.
CONTROL
CAPITON
CANCEL TOOLTIPTEXT
Commandl
&Nuevo AlumnoFalse
Adiciona un nuevo alumno.
Command2
&Finalizar
True
Finaliza la aplicacin.
NOTA:

El resultado de TOOLTIPTEXT, se visualiza cuando al ejecutar la


aplicacin se ubica el puntero del mouse por unos instantes en cualquiera
de los botones.

Se debe escribir instrucciones dentro de los Botones.

El smbolo & permite que una letra est subrayada.


70

rupo

d it o r i a l

Megahyte

El nombre del control depende de dnde se hizo doble click o puls


<F7> y de la Propiedad ame que tiene el control. Si no ha cambiado la
propiedad ame del control se visualiza el nombre por defecto.
Cada control tiene un evento por defecto, si Ud. desea programar en un
evento diferente debe hacer click en la lista de Eventos y si desea programar
dentro de otro control que pertenece al mismo formulario debe hacer click
en la lista de controles (Flecha hacia abajo).

I p l ^

r u po

d it o r ia l

Megabyte

71

^ y ^ VISUAL BASIC como debe se r.. .

PRINCIPALES EVENTOS
ACTIV A TE
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es activado.
CHANGE
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se modifica el contenido del control.
C L IC K
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se hace un click o pulsa ENTER en un control.
D B L C L IC K
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se hace doble click control.
DEA C T I VATE
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es desactivado.
G O T FO C U S
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
el cursor se posiciona en un control.
IN IC IA L IZ A T E
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario se inicializa.
K EY PR ESS
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se pulsa una tecla en el control.
LOAD
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es cargado en memoria.
L O ST FO C U S
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
el cursor sale en un control.
T IM E R
Es un evento del control Timer (Reloj). Las instrucciones que se escriben
dentro de este evento se ejecutan cada cierta cantidad de segundos, que
Ud. Deber indicar.
U N LO A D
Es un evento del formulario. Las instrucciones que se escriben dentro de
este evento se ejecutan cuando el formulario es descargado de la memoria.

72

rupo

E d it o r i a l

Megahvte

EV EN TO S M OU SED OW N Y M O U SEU P
Las instrucciones que escribimos en el MouseDown se ejecuta se presiona
un botn del mouse.Las instrucciones que escribimos en el evento MouseUp
se ejecutan cuando se deja de presionar un botn del mouse.
Estos eventos reciben cuadro (4) valores y se almacenan en la variables
Button, Shift X, Y.
Prvate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
End Sub
Prvate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y
As Single)
End Sub
La variable BUTTON recibe un valor que indica el botn del mouse que se
presion:
Valor
1 Indica que se presion el botn Primario.
2 Indica que se presion el botn Secundario.
3 Indica que se presion el botn Central.
(No todos los mouse tiene 3 botones)
La variable SH IFT recibe el valor que indica la tecla especial que se tiene
presionada cuando pulsa o deja de pulsar uno de los botones del mouse:
Mays (Shift), CONTROL (Ctrl) o ALT.
Valor
1 Indica que se tiene presionada MAYS (Shift).
2 Indica que se tiene presionada CONTROL (Ctrl).
3 Indica que se tiene presionada ALT.
Las variables X, Y reciben el valor de la posicin Horizontal y Vertical del
mouse respectivamente.
M UY IM PO R T A N TE
El botn primario del Mouse es el botn principal y permite seleccionar los objetos
de una manera normal y casi siempre es el botn Izquierdo. El botn secundario del
Mouse permite acceder a los men contextales y casi siempre es el botn derecho.
Los men contextales contienen las opciones mas utilizadas de una aplicacin.
Puede utilizar la configuracin del Panel de Control de Windows para configurar el
Mouse.
l i l i l G

ru po

d it o r ia l

Megabyte

VISUAL BASIC como debe se r.. .

^CAPTULO II:Descripcin de los Controles Bsicos

VISUAL BASIC AYUDA A PROGRAMAR

En este libro al botn secundario se le llama Botn Derecho


DESARROLLO DE LAAPLICACIN N 04
En la aplicacin N 04 slo se necesita programar el Evento Click de cada Botn de
Comandos.
ELBOTN: NUEVO ALUMNO.
Debe limpiar las cajas de texto y ubicar el cursor en Textl para ingresar un nuevo
alumno.
EL BOTN: FINALIZAR.
Debe finalizar o terminar la aplicacin, ^sto tambin debe suceder si se pulsa la tecla
ESC.
Entonces dentro del evento click del botn Nuevo Alumno se debe escribir:
Textl =
Text2 =
Text3 =
Text4 =
Text5 =
Textl.Setfocus
Y dentro del botn finalizar se debe escribir: End
NOTA:

Cuando escribe el nombre de un control que tiene en el formulario y luego


un punto se visualiza las propiedades o eventos que puede asignar a dicho
control. Una vez que se encuentra seleccionada (Sombreada) la propiedad
o evento en forma automtica o en forma manual (con la flecha hacia abajo
o h acia a rrib a), pulse la barra e s p a d a d o r a para que se e scrib a
automticamente.
Esta ayuda se puede activar o desactivar en la opcin:
Herramientas\Opciones\Editor\Lista de miembros automtica
Tambin le ayuda cuando escribe una funcin visualizando los parmetros
que necesita. Cuando esto ocurre quiere decir que ha escrito correctamente
el nombre del control o el nombre de la funcin.
I P P r o y e c t o l - F o i m l (C d i g o ]
IC o m m a n d l

1t Proyecto! Form! (Cdigo)

" l i J c " ck

P r i v a t e S u b C o m m a n d l _ C l i c k IT
T e x t 1.
E n d S [^liignment
e* Appearance
Ef? BackColor
i**? BorderStyle
nf? CausesValidation
eS* Container
ei? DataChanged

Commandl

Click

Private Sub C o m m a n d l _ C l i c k ()
Dim R As Intger
R = Right (
End S Right(SftMg,Le)i#/lsi-onfl) [

La instruccin 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.

Despus de escribir las instrucciones de un control puede cerrar la ventana haciendo


clic en el botn cerra (X).

Las instrucciones quedan grabadas cuando se graba el proyecto o el formulario.

ASPECTO FINAL DE LAS VENTANAS DE COMANDOS


BOTONNUEVO ALUMNO
BOTON FINALIZAR

A P L IC A C I N PR O PU ESTA N 02
Escriba la siguiente aplicacin:
Si se hace un click en el botn de comando N 1 (Nombre), se debe visualizar
tu nombre. Si se hace un click en el botn de comando N 2 (Centro de
Estudios), se debe visualizar el nombre del colegio, instituto, universidad,
etc. donde estudias. Si se hace un click en el botn de comando N 3 (Fecha
de Nacimiento), se debe visualizar la fecha en que naciste.
O

Private Sub Command2_Click()


End
End Sub

- | n |_ g j

N o m b re

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

ru po

d it o r ia l

M egabyte^

rupo

E d it o r i a l

Megabyte

75

VISUAL BASIC como debe s e r ...


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

A P L IC A C I N D ESA R RO LLA D A N 05
Esta aplicacin permite ingresar el nombre, fecha de nacimiento, DNI y
domicilio actual de una persona utilizando la propiedad ame de los controles.

Todos los controles tienen asignado un nombre automticamente cuando


son dibujados en el formulario, esto lo puede confirmar mirando la propiedad
ame (Nombre) de cada control que dibuja en el formulario.

. In g re so de D a lo s
Nombre..................
! Fecha de Nacimiento ! !
DNI

Por ejemplo:

Domicilio Actual

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

Salir

automticamente 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.

automticamente el nombre T extl, la segunda Text2, etc.


El primer botn de comando (Command) que dibujas en el formulario
tiene automticamente el nombre Command 1, el segundo Command2,
etc.

Labell: Label2 :
- Label3

; |Texl3

............| Text 4

Label4-

Para desarrollar una aplicacin puedes utilizar estos nombres que se asignan
automticamente al ser dibujados en el formulario asignarles nombres que
usted cree conveniente (ESTO ES OPCIONAL).
N O TA :
Norm alm ente los controles en su propiedad Caption o Text tienen lo
mismo que se asigna automticamente en la propiedad ame, por eso
tenga mucho cuidado de no modificar la propiedad ame en lugar de
la propiedad Caption o Text.

Command!

En la siguiente aplicacin se les asigna a los controles nombres distintos a


los que Visual Basic les asigna en forma automtica.

76

rupo

E d it o r i a l

M egabyte

Command2

Paso N 02: D ib u jar los controles.


ETIQUETAS

CAPTION

CONTROL
L a b e 11
Label2
LabeB
Label4

True

Fecha de Nacimiento
DNI
Domicilio Actual

True
True
True

CONTROL

TEXT

NAME

Textl

En Blanco

Nombre

Text2
Text3
Text4

En Blanco
En Blanco
En Blanco

Fecha
Dni
Domicilio

CAJAS DE TEXTO

CONTROL CAPTION

NAME

Coiranandl

Nuevo

Nuevo

Command2

Salir

Salir

^ G

rupo

AUTOSIZE

Nombre

CAJAS DE TEXTO

E jem plo:

E d it o r i a l

Megabyte

77

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 botn Nuevo.
Cuando haga clic o pulse la tecla F7 en el botn Nuevo, se visualiza la
siguiente ventana:
1IH

Proyectol - Formi (Cdigo)

Huevo

jt J

Private

I1 Q

bU D

Sub

1Click

Nuevo C l i c k ()

t "

k u j

Observe el nombre del


Control

En esta ventana se tiene que escribir las instrucciones para limpiar el contenido
de las cajas de texto y poder ingresar los datos de otra persona.
Como cada caja de texto tiene un nombre asignado, entonces se tiene que
escribir las siguientes instrucciones:

Llnlxl

1 t P ro ye cto l - Form i (Cdigo]


1Huevo

1Click

Private Sub Muevo Click


Nombre =
Fecha =
Dni =
Domicilio =
Nombre.SetFocus
End Sub
8 -ill

()

Instrucciones del Botn Salir


Cuando haga clic o pulse F7 en el botn Salir, se visualiza la siguiente ventana
donde debe escribir End.

PREFIJOS PARA LOS NOMBRES DE LOS


CONTROLES
Si tu lo deseas, puedes hacer uso de los prefijos que se recomiendan
utilizar en los nombres de los controles de Visual Basic, de tal manera que
con su nombre se sepa a qu tipo de control te refieres. Por ejemplo, si en
una caja de textos va a ingresar la direccin de una persona, le puedes
asignar el nombre de txtdireccion. Esto es opcional, incluso si tu lo deseas
puedes crear tus propios prefijos para los nombre de los controles en sus
aplicaciones.
Prefijo
Control
db
Base de datos
fId
Campo
chk
CheckBox
cbo
ComboBox
cmd
Command Button
cdl
Command Dialog
dat
Data Control
dbc
DbCombo
dbg
DbGrid
dbl
DbList
dir
Directory ListBox
drv
Drive ListBox
dtp
DTPicker
fil
File ListBox
frm
Form
fra
Frame
img
Image

Control
Prefijo
lin
Line
1st
ListBox
mnu
Menu
ch
MsChar
ole
Ole Contaiifeg-;
opt
Option Button
pic
Picture Box
ProgressBar
prg
Ree
Recordset
ScrollBar Horizontal hsb
vsb
Scrollbar Vertical
shp
Shape
tab
SsTab
tb
Tabla
txt
TextBox
tmr
Timer

upd

UpDown

lbl

Label

Observe el nombre
del control
P

78

rupo

d it o r i a l

Megabyte

ru po

d it o r ia l

Megabyte

79

S k VISUAL BASIC como debe ser.. .


ERRORES MAS COMUNES
Si al ejecutar una aplicacin se m uestra una ventana de m ensaje
indicando un error, haga click en el botn aceptar o en el botn Debug
y finalice la aplicacin para corregir el error.
- r-v .

j v

j |

Compile error:
E xpected E nd Sub

A cepta r

jj

Se espera fin del procedimiento.


Posiblemente, borr End Sub por casualidad al
escribir las instrucciones del control

PREGUNTAS DE REPASO N 02
1.
2.
3.
4.

A yuda

5.
6.
R un -tim e e rro r '4 24 :
O b je ct re q u ire d

J {

End

D e b u g j|

Help

Se req u iere un objeto.


seguramente Ud. se est refiriendo a un control que no existe en el formulario,
escribi en forma incorrecta la propiedad del control o a una propiedad le
est asignando un valor incorrecto.

7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

Cmo se borra un control del formulario?


La propiedad Caption sirve para:
Con qu propiedad se puede evitar que un control se visualice cuando
se ejecute una aplicacin?
Para que al ejecutar el formulario ocupe toda la pantalla se usa la
propiedad:
Cul es la diferencia entre una etiqueta y una caja de textos?
Cul es el nombre por defecto de un formulario, caja de textos, etiqueta
y botn de comandos?
Para qu sirve la propiedad Font?
Para qu sirve la propiedad Tooltiptext?
Cul es la diferencia entre la propiedad visible y la propiedad Enabled?
Cuntas formas de ejecutar una aplicacin conoces?
Para qu sirve la propiedad Backcolor?
Cuntas formas de finalizar una aplicacin conoces?
Para qu sirve la propiedad Forecolor?
Los pasos para desarrollar una aplicacin son:
Cmo se borra un control del formulario?
Cmo se puede asignar un color a un botn de comandos?
Qu utilidad tiene la propiedad Tabindex en las cajas de texto?
Para escribir instrucciones dentro de un control se debe:
Cul es el evento por defecto de un formulario, etiqueta, caja de texto
y de un botn de comandos?
Cundo se ejecutan las instrucciones que se encuentran en el evento
Click?

CUIDADO!
No pase a los siguientes temas sin responder
correctamente a esta autoevaluacin.

G ra b a r los cam bios? SI, NO o C A N C ELA R


Seguramente quiere salir del proyecto actual sin grabarlo.

80

rupo

d it o r i a l

Megabyte

rupo

E d it o r i a l

Megabyte

81

CAPITULO III
Nombre del Trabajador

David Infante

Horas Trabajadas Normales

48

Horas Extras

Pago por Hora Normal

10

Pago por Hora Extra

20

Total por Horas Normales

480

Total por Horas Extras

100

; Calcular

Nuevo
l'XA

Sub

a v e Incorrecta

Descuento
Total a

Cancelar

Aceptar

Producto
Precio Unitario

Calce1

Cantidad Comprada
Subtotal

S/.

Nuf

ELEMENTOS
DE LA
PROGRAMACION
D e scu e n to S /.

TOTAL A PAGAR

$/. ===>

Se

I
Y FUNCIONES
-- PROCEDIMIENTOS
--------------------------------------------------------------;-----------------------------Un procedimiento es un conjunto de instrucciones que se le da a la
computadora para que desarrolle un determinado proceso. A este conjunto
de instrucciones se le asigna un nombre para poder llamarlo o ejecutarlo en
cualquier momento. Toda aplicacin en Visual Basic est basada en
procedimientos.
Segn la forma como empiezan a ejecutarse los procedimientos se
dividen en dos grupos:
1.
2.

Procedimientos conducidos por eventos.


Procedimientos generales.

PROCEDIMIENTOS CONDUCIDOS POR EVENTOS


Son procedimientos ligados siempre a un control y a un evento
determinado y que se ejecutan cuando el control reconoce que a ocurrido
dicho evento. Tambin se puede ejecutar cuando es invocado desde cualquier
otro procedimiento. Estos tipos de procedimientos se crean automticamente
cuando comenzamos a escribir instrucciones para un determinado control.
Por ejemplo el siguiente procedimiento llamado Com m and l Click,
se crea automticamente cuando hacemos doble click o pulsamos la tecla
F7 en el control COMMAND 1 para escribir las instrucciones

VISUAL BASIC como debe se r...

CAPTULO III: Elementos de la Programacin

Las instrucciones que Ud. escriba en este procedim iento llam ado
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
Commandl.
El nombre del procedimiento depende del nombre que Ud. ha asignado al
control en la propiedad AME y del evento elegido. Si Ud., no ha asignado
un nombre al control, entonces Visual Basic utiliza el nombre que le asigna
a cada control en forma automtica.
As como cada control tiene un nombre que en forma automtica le asigna
Visual Basic, tambin tiene un evento predeterminado el cual se visualiza
cuando empezamos a escribir las instrucciones para el control. Por ejemplo,
el evento predeterminado de los botones de comandos (Command) es el
evento CLICK y si queremos escribir instrucciones en otro evento, debemos
elegirlo de la lista de eventos. Otros ejemplos:
Prvate Sub Form_Activate()
EndSub
Prvate Sub Form Load()
EndSub
Prvate Sub Textl_Change()
EndSub

^ as instrucciones que se escriban


en este procedimiento se ejecuta
cuando el formulario es activado
Las instrucciones que se escriban en
este procedimiento se ejecuta cuando el
formulario es llamado para que quede activado.
Las instrucciones que se escriban en este
procedimiento se ejecuta cuando se modifica
el contenido del control Textl.

Prvate Sub Textl_KeyPress(KeyAscii As Integer)


EndSub
Las instrucciones que Ud. escriba en este procedimiento se ejecutan cuando se
presiona alguna tecla (escribe) en el control Textl y en la variable KeyAscii se
almacena el valor de la tecla pulsada. Por ejemplo si pulsa la tecla ENTER se
almacena el valor 13, ESC almacena el 27, la letra A el valor 65, etc. Esto quiere
decir que almacena el valor ASCII.

86

rupo

d it o r i a l

Megabyte ^

P R O C E D IM IE N T O S G EN ER A LES
Son los procedimientos que se ejecutan slo cuando se hace una llamada
explcita a dicho procedimiento. Estos tipos de procedimientos no se crean
automticamente, por eso tambin reciben el nombre de procedimientos o
funciones definidos por el usuario.
Un procedimiento general puede escribirse como procedimiento SUB o
como funcin FUNCTION. Un procedimiento conducido por un evento
siempre es un procedimiento SUB.
Segn el lugar de la aplicacin donde los podemos llamar, los procedimientos
generales pueden ser:
1.
2.

Procedimientos a nivel de formulario.


Procedimientos a nivel de mdulo.

Procedimientos a Nivel de Formulario.


Los procedimientos a nivel de formulario son aquellos que se pueden
llamar o ejecutar slo desde el formulario en el cual han sido creados.

Procedimientos a Nivel de Mdulo.


Los procedimientos a nivel de mdulo son procedimientos pblicos; es
decir, se pueden llamar o ejecutar desde cualquier formulario de la aplicacin.

Sintaxis p a ra un procedim ien to:


[Prvate | Public] [Static] Sub nombre [(listaDeArgs)J
[instrucciones]
[Exit Sub]
[instrucciones]
End Sub

rupo

d it o r i a l

Megabyte

87

S i

VISUAL BASIC como debe ser.


Un procedimiento tiene las siguientes partes:
1. FO RM A S DE A C CESO :
P rvate
Indica que se puede tener acceso al procedimiento slo desde
los procedimientos del formulario donde se ha declarado o
creado(Procedimiento a nivel de Formulario).

CAPTULO III: Elementos de la Programacin


1. T IP O
Es opcional e indica el tipo de dato del argumento que se pasa a la funcin.
2. EX PR ESI N
Es el valor que retorna la funcin.

Public

Indica que se puede tener acceso al procedimiento desde


todos los procedimientos de cualquier formulario que forma
parte de la aplicacin (procedimiento a nivel de mdulo).

Las palabras clave Exit Function producen la salida inmediata de la Funcin.


La ejecucin del programa contina con la instruccin siguiente a la
instruccin que ha llamado a la Funcin.

Statc

Indica que se conservan los valores de las variables locales


del procedimiento entre una llamada al procedimiento y otra.
El atributo Static no afecta a las variables declaradas fuera
de Sub, ni siquiera cuando se usa en el procedimiento.

MUY IMPORTANTE
* La diferencia principal entre una Funcin y un Procedimiento es que un
procedimiento nunca devuelve un valor mientras que la funcin si puede
devolver un valor y adems una funcin puede usarse en una expresin.

2. N O M B R E :
Nombre del procedimiento que se utiliza para poder llamarlo o ejecutarlo.

* Al conjunto de procedimientos, funciones, declaraciones de variables


y constantes se le llama M D ULO . Un mdulo puede ser:

3. LISTA DE A R G U M EN TO S (LISTAD EARGS):


Lista de variables que almacenan los valores que se pasan al procedimiento
cuando es llamado. Cuando se pasan varios valores se utilizan variables
mltiples y se separan con comas. Tambin se llaman parmetros.
4. IN ST R U C C IO N E S
Cualquier grupo de instrucciones que se va a ejecutar dentro del cueipo
del procedimiento.
Las palabras claves E x it S ub producen la salida inm ediata del
procedimiento. La ejecucin del programa contina con la instruccin
siguiente a la instruccin que ha llamado al procedimiento.

Sintaxis p a ra una F uncin:


[Public|Private][Static]Function nombre [(listaDeArgs)][As tipo]
[instrucciones]
[nombre = expresin]
[Exit Function]
(instrucciones]
[nombre = expresin]
End Function
Adems de lo que contiene un procedimiento, una Funcin tiene las siguientes
partes:
'

88

rupo

E d it o r i a l M e g a b y t e ^

Mdulo de formulario, contiene todos los procedimientos a nivel de


formulario los cuales se graban en un archivo con la extensin *.Frm.
Mdulo estndar, contiene todos los procedimientos y declaraciones a
nivel de mdulo, se graban en un archivo con la extensin *.Bas.

PARMETROS POR REFERENCIA.


Permite que el valor de un parmetro pueda cambiarse en el cuerpo
de la funcin o procedimiento.
Para pasar un parmetro por Referencia debe estar sin parntesis.
La palabra ByRef
(Opcional), indica que el parmetro se pasa por
referencia. ByRef es el modo predeterminado en Visual Basic.

PARMETROS POR VALOR.


Permite que el valor de un parmetro no pueda cambiarse en el cuerpo de
la funcin o procedimiento. Para pasar un parmetro por Valor debe estar
entre parntesis. La palabra By Val (Opcional). Indica que el argumento se
pasa por valor.
Ejemplo:

Raz (Num), D if
En la llamada a la funcin Raz, el parmetro Num es pasado como por
Valor y el parmetro Dif es pasado por Referencia.
l i l i l G

ru po

d it o r ia l

Megabyte

89

CAPTULO III: Elementos de la Programacin

^^ VISUAL BASIC como debe se r.. .


CREACIN DE PROCEDIMIENTOS A NIVEL DE FORMULARIO
Existen 2 formas para crear este tipo de procedimientos:
I ra . F orm a.
Active la ventana de cdigo o instrucciones del formulario o de cualquier
control haciendo doble click en l o pulsando la tecla F7, luego elija la opcin
Tools (herramientas) de la Barra de Men y luego ADD PROCEDURE
(Agregar Procedimiento). Se visualiza la siguiente ventana:
Agregar procedimiento

Nombre:

Cancelar-

Funcin

NOTA:
Para crear o activar la ventana de declaracin de un formulario, haga doble
click en cualquier parte libre del formulario o pulse la tecla F7. Luego, de la
lista de objetos elija GENERAL y de la lista de eventos DECLARACIONES.

LLAMAR A

PROCEDIMIENTOS

A cepta r

Tipo
(* Procedim iento

SUB CAMBIO

j |

< ^ ||

Ejemplo: Para crear un procedimiento llamado cambio, escriba la siguiente


instruccin y luego pulse la tecla ENTER.

Propiedad

Para llamar o ejecutar procedimientos slo se necesita escribir el nombre


del procedimiento con los argumentos o parmetros si es necesario y
opcionalmente puede utilizar la instruccin CALL.

~ E vento

La sintaxis para llamar o ejecutar un procedimientos es:

Alcance
(* Pblico

[Cali] nombre [listaargumentos]

f~ Todas las varia bles locales son est ticas

Una vez que Ud. llene los datos de esta ventana con la informacin
correcta del procedimiento que desea crear, haga click en el botn Aceptar
para que se muestre la plantilla del procedimiento y empezar a escribir las
instrucciones que se deben ejecutar cuando el usuario llame al procedimiento.

2da. F orm a.
Active la ventana de cdigo o instrucciones del formulario o de cualquier
control haciendo doble click en l o pulsando la tecla F7, luego ubique el
cursor despus de cualquier instruccin E N D SU B y escriba la palabra
SUB seguida del nombre del procedimiento que desea crear o la palabra
FUNCTION y el nombre de la funcin y despues pulse la tecla ENTER.

90

rupo

E d it o r i a l

Mega b y te

La instruccin CALL es opcional, si Ud. la utiliza para llamar o ejecutar


procedimientos que necesitan argumentos o parmetros, estos deben estar
entre parntesis. Por ejemplo la siguiente instruccin llama al procedimiento
IMPRIME utilizando la instruccin CALL y le pasa 2 argumentos.
Cali imprime("Hola",3)
La siguiente instruccin llama al procedimiento IMPRIME sin utilizar la
instruccin CALL y le pasa 2 argumentos.
Imprime "Hola",3
NOTA:
Para pasar una matriz completa a un procedimiento, use el nombre de
la matriz seguida de parntesis vacos.

rupo

E d it o r i a l

Megabyte

91 m

VISUAL BASIC como debe s e r.. .

CAPTULO III: Elementos de la Programacin

VARIABLES

CONSTANTES
Es un elemento con un nombre determinado que mantiene un valor
constante durante el desarrollo de todo el programa el cual no se puede
cambiar. La constantes se definen con la instruccin CONST. Por ejemplo:
CONST Saludo = Buenos Dias
Define la constante SALUDO que tendr el texto Buenos Das durante
la ejecucin del programa. Esto quiere decir que si se desea utilizar el texto
puede utilizar slo la constante Saludo. As, la siguiente instruccin muestra
el texto Buenos Das en el control Label 1:
Label 1 = Saludo
La siguiente instrucciones define la constante IGV con el valor 18.
Const IGV = 18
Si durante el desarrollo del programa escribimos por ejemplo IGV = 16 para
cambiar de valor a la constante IGV, se visualiza un mensaje de error.

M icro so ft V is u a l B asic

Una variable es un elemento con un nombre determinado que contiene


un valor en forma temporal hasta que la aplicacin finalice. El valor puede
variar en cualquier momento de la ejecucin de la aplicacin. Una variable,
segn el lugar de la aplicacin donde se desea utilizarla puede ser:
1. V ariables a nivel de procedim iento.
-Si una variable se declara a nivel de procedimiento, significa que conserva su
valor (se reconoce) slo dentro del procedimiento donde ha sido declarado.
2. V ariables a nivel de F orm ulario.
Si una variable se declara a nivel de formulario, significa que conserva su
valor (se reconoce) en cualquier procedimiento del formulario donde ha
sido declarada.
3. V ariables a nivel de M dulo.
Si una variable se declara a nivel de mdulo, significa que conserva su
valor (se reconoce) en cualquier procedimiento de cualquier formulario
de la aplicacin.
La sintaxis bsica para declarar una variable es:
Am bito Nom bre As Tipo
1) A M B IT O :
El mbito indica en qu lugar de la aplicacin desea utilizar la variable y
puede ser una de las siguientes palabras claves: Dim, Static, Prvate o Public.
Dim

Se puede utilizar a nivel de procedimiento y a nivel de formulario.


Si se declara una variable a nivel de procedimiento con la palabra
DIM, Visual Basic reinicializa (borra su contenido) la variable
cada vez que ejecuta el procedimiento.
Se utiliza slo a nivel de procedimiento. Cuando una variable se
declara con la palabra STATIC, Visual Basic no reinicializa la
variable cada vez que se ejecuta el procedimiento, slo lo hace la
primera vez. Esto quiere decir que la variable conserva su valor
entre una llamada al procedimiento y otra.
Se utiliza slo a nivel de mdulo e indica que la variable es privada;
es decir, slo va a ser reconocida dentro del mdulo donde ha
sido declara.
Se utiliza slo a nivel de mdulo e indica que la variable es publica;
es decir, va a ser reconocida en toda la aplicacin.

Error de compilacin:

Static :
Asignacin a la constante no permitida
Aceptar

Ayuda

Prvate:
NOTA:
La definicin de constantes puede empezar con las palabras Public o Private.
Para que sean pblicas o privadas. Por defecto son Privada.

92

rupo

d it o r i a l

Megabyte

Public :

rupo

E d it o r i a l

Megabyte

93

^ j | J ||

CAPTULO III: Elementos de la Programacin

S B ts VISUAL BASIC como debe se r.. .


2) N O M B R E :
Es el nombre que utilizamos para referirnos a la variable en la aplicacin.
El nombre de una variable tiene que comenzar con una letra y puede
tener como mximo 255 caracteres. Los caracteres pueden ser letras,
dgitos, el carcter subrayado y los caracteres de declaracin del tipo de
la variable (% ,& ,!,#,@ y $). El nombre de una variable no puede ser una
palabra reservada porque tienen un significado especial para Visual Basic.
3) T IP O :
Es opcional y determina qu clase de valores puede almacenar una variable.
Si no indica el tipo no utilice la palabra AS, en este caso la variable se
considera de tipo Variant.

Una variable definida de tipo Integer, acepta nmeros enteros comprendidos


entre -32768 hasta 32767. Una variable definida de tipo Single, Double y
Currency acepta nmeros sin decimales y con decimales.
MUY IMPORTANTE:
Si a una variable la declaramos de un tipo determinado y le asignamos un
valor incorrecto se visualiza un error.
Ejemplo Nl:
Dim A as Integer
A = 50000
Se define la variable A de tipo Integer cuyo valor mximo debe ser 32767,
pero le asignamos el valor 50000. En este caso se visualiza un error de
overflow (desbordamiento):

TIPOS DE V A RIABLES
TIPO
Byte

DESCRIPCIN
I Byte

Boolean

Lgico

Integer
Long
Single
Double
Currency
String
Date

CARCTER

(2 Bytes)
Entero
(2 bytes)
Entero Largo
(4 bytes)
Real Simple
Precisin (4 bytes.)
Real Doble
Precisin (8 bytes)
Nmero con Punto
Decimal Fijo (8 bytes)
Cadena de Caracteres
(4 b.+ l b./car. hasta 64K.)
8 bytes

RANGO

E r r o r '6 ' e n tie m p o d e e je c u c i n :

0a255

D e s b o r d a m ie n to

T rue o False
%

-32768 a 32767

&

-2147483648 a 2147483647

-3.40E+38 a 3.40E+38

-1.79D+308 a 1.79D+308

-9.22E+14 a 9.22E+14

0 a 65500 car.

D e p u ra r

j|

Ayuda

Dim A as Integer
A = "Juan"
Se define la variable A de tipo Integer cuyo valor mximo debe ser 32767,
pero le asignamos un valor tipo Texto. En este caso se visualiza un error de
Type Mismatch (tipo):

01/01/100 a 31/12/9999

rupo

d it o r i a l

Megabyte

E jem plo N 2:

Variant es el tipo de datos al que se convierten todas las variables si no se


declaran explcitamente de algn tipo. El tipo de datos Variant no tiene carcter
de declaracin de tipo.
Los tipos de datos Byte, Integer, Long, Single, Double y Currency indican
que una variable va a almacenar slo nmeros, pero cada uno de estos tipos
tiene sus caractersticas. Por ejemplo:
Una variable definida de tipo Byte acepta nmeros enteros (sin decimales),
pero slo entre 0 y 255.

94

T e r m in a r

E r r o r '1 3 ' e n tie m p o d e e je c u c i n :


N o c o in c id e n lo s tip o s

D e p u ra r

rupo

E d it o r i a l

Megabyte

Ayuda

95

S K S k VISUAL BASIC como debe ser.. .

<

CAPTULO III: Elementos de la Programacin

CMODECLARAR VARIABLES ANIVELDEPROCEDIMIENTO?


Las variables a nivel de procedim iento se declaran dentro de cada
procedimiento que Ud., crea en su aplicacin. Su utilizacin ms comn es
intervenir en clculos intermedios. Por ejemplo:
Prvate Sub CommandI_Click()
Dim NOM As String * 30
Dim E As Integer
Static C As Integer

A PL IC A C I N D ESA R RO LLA D A N 06
Esta aplicacin muestra la diferencia entre una variable declarada con DIM
y STATIC dentro de un procedimiento.
PASO N 01: Dibujar los controles.
o
Ci
- lo l *l

In cre m e n ta ia va ria b le y B

Otras instrucciones
End Sub

PASO N 02: Asignar las propiedades.


C3

CMO DECLARAR VARIABLES ANIVEL DE FORMULARIO?


Debe activar la ventana de declaracin de variables. Para ello se debe hacer
doble click en cualquier control o pulsar la tecla <F7>, lueg'o de la lista de
controles elegir GENERAL y de la lista de eventos elegir DECLARACIONES.
Se puede visualizar

t
i

I(General)

j(Declarations)
;

Vj

|(Declarations)

[O p tio n E x p l i c i t

Valor de A
Valor de B
En Blanco

Label4

En Blanco

CONTROL
Coinmandl

96

ru po

d it o r ia l

Com m andl

True
True
False
False

)|

BO R D ER STY L E

0 - None
0 - None
1 - Fixed Single
1 - Fixed Single

Megabyte

CAPTION
Incrementa la variable A y B

Private Sub Commandl_Click()


Dim A Ai Integer
Static B Ai Integer
A = A + /

B =B +1
Labe!3 = A
Label4 = B
E nd Sub

5 _1_U
j j | |l ^

Label4

Caption del Formulario: Diferencia entre Dim y Static.


PASO N 03: Escribir las instrucciones.
* Slo se programa en el commandl. Observar que al hacer click en
este botn la variable A no se incrementa porque est declarada
con DIM, que perm ite reinicializar una variable cada vez que ,v<
ejecuta un procedim iento. En el ejem plo, el procedim iento es:
COMMAND 1_CLICK().

Este tipo de variables normal


mente se utilizan cuando nuestra
aplicacin tiene varios for
mularios.

jrJ j(D eclaraciones)

|(G eneral)

Labei3

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

Labe11
Label2
Label3

iT

CMO DECLARAR VARIABLES A NIVEL MDULO?


De la opcin Proyecto de la barra de men elija la opcin Adicionar Mdulo.
H liiE [|

CONTROL

Si la ventana tiene la instruccin OPTION EXPLICIT, significa que se generar


un error por cada variable que utilice y no declare: V ariable not Defined
(Variable no definida).
Si Ud., desea puede borrar la instruccin Option Explicit y tambin si esta
ventana no la tiene, la puede escribir.

^ P ro y e c lo l - M odule! (C digo)

Label2

BO TO N ES DE COMANDOS

rJds jJ J

iS

j
j

jrj

_ la l x |

L a b e ll

-J C lx jl

1"m P ro je c t-! * Ftm 1 (C od e)

|(General)

51

ru po

d it o r ia l

Megabyte

97

VISUAL BASIC como debe ser.

CAPTULO III: Elementos de la Programacin

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

P R O CEDIM IENTO " A "

OPERADORES ARITMETICOS:

S E

Suma
Resta
Multiplicacin
Divisin

PROCEDIM IENTO "B "

Dibuje una etiqueta y dos botones de comandos y asgneles su propiedad


Caption como se muestra en la aplicacin.
INSTRU CCION DEL COMMAND1
Prvate Sub Commandl_Click()
Dim N As Integer
N =5
Labell = N

OPERACION
5+13
8 0 -4
7 *6
13/2
13 \ 2
13 MOD 2
4 A3
12+14/2
(12 +14)/2

N = 10

End Sub

EJEMPLO DE UNAVARIABLEANIVELDE FORMULARIO.


Para que la variable N sea reconocida en ambos procedimientos, debe de
declararla a Nivel de F orm ulario.
.

1 m P ro y e c to l - F orm i (C digo)
|(General)
D im

n lx l

j(Declaraciones)
N

As

In te g e r

-*

~H
J j

Las instrucciones de los botones de comandos sern:


Prvate Sub Command] _Clck()
N =5
Labell = N

Prvate Sub Command2_Clck( )


Labell = N
End Sub

N = 10

End Sub

KA

98
G

rupo

d it o r i a l

Megabyte-^

Divisin Entera
Resto de una Divisin
Exponenciacin
Orden de Operacin

Ejemplos:

INSTRU CCIONES DEL COMMAND2


Prvate Sub Command2_Click()
Labell = N
End Sub

Al hacer click en el Commandl (Procedimiento "A"), se visualiza el valor 5,


y luego la variable N toma el valor 10, pero al hacer click en el Command2
(Procedimiento "B") se visualiza el error "VARIABLE NO DEFINIDA" o
no se muestra nada. Esto depende si existe o no la instruccin Option Explicit.
Como puede observar, el valor de la variable N no es reconocida en el
segundo procedimiento (Command2) porque fue declarada dentro del
procedimiento commandl (Nivel de Procedimiento).

\
MOD
A
0

RESULTADO
18
76
42
6.5

64
19
13

ORDEN DE EJECUCIN DE LOS OPERADORES (Prioridad)


Cuando hay varios operadores en una misma expresin se resuelven en un
orden predeterminado segn la prioridad de los operadores. As:
1. Exponenciacin (A)
2. Negacin (-)
3. Multiplicacin y divisin (*, /)
4. Divisin de enteros (\)
5. Resto de una Divisin (Mod)
6. Suma y Resta (+, -)
NOTA:
Si los operadores de una expresin tienen la misma prioridad se ejecutan de izquierda
a derecha.
Los parntesis cambian el orden de operacin porque toda expresin que tenga
parntesis se ejecuta primero y si existen varios parntesis primero se ejecutan los
parntesis ms internos. Por ejemplo, si las notas de un alumno son 12 y 14, la
siguiente expresin: 12 + 14/2 dar como promedio 19 y la expresin (12 + 14) / 2
dar como promedio 13.
G

rupo

d it o r i a l

Megabyte

99

k' VISUAL BASIC como debe ser...

CAPTULO III: Elementos de la Programacin

APLICACIN DESARROLLADA N 07
Los comentarios son textos que se pueden utilizar para documentar nuestra
aplicacin perm itiendo de esta m anera ir explicando cm o estam os
desarrollando la aplicacin y cmo funciona. Este texto explicativo y
aclaratorio es ignorado por la computadora cuando nuestra aplicacin se
ejecuta.

Ingresar el nombre de un trabajador, las horas normales que ha trabajado,


las horas extras, el pago por cada hora normal y extra. Al hacer un Click en
el botn Calcular se debe calcular y mostrar el total por las horas normales,
el total por las horas extras, el sub total, un descuento del 10% del sub total
y el total que se le debe pagar.
1i_ PAGOS

Los comentarios se pueden colocar dentro de un programa utilizando la


instruccin REM o el Apostrofe ( ).
La instruccin REM normalmente se utiliza al inicio de una lnea y en forma
independiente. Por ejemplo:

Nombre del Ttabajadoi

David Infante

Horas T rabajadas Normales

48

Horas Extras

Pago por Hora Normal

10

Pago por Hora Extra

20

Total por Horas Normales

Rem Se limpian las cajas de texto.


Textl=""
Text2 = ""
Text3 = ""

Calculai

GO
O

COMENTARIOS

Nuevo

Total por Horas Extras I I 00


Sub Total

|580

Descuento (10%)

Salir

|58

T otal a Pagar

j522

Si queremos colocar el comentario en la misma lnea de instruccin, se debe


separar con dos punto (:). Ejemplo:
PASO N 1: D ib u jar los controles.
Textl = "" : Rem Limpia la caja de textos
El apostrofe se puede utilizar al inicio de una lnea en forma independiente o
al final de una lnea de instruccin. Por ejemplo:
1.

El valor de A se incrementa en 1
A=A+ 1
2

.
A = A + 1 El valor de A se incrementa en 1

NOTA:
Cuando se insertan los comentarios se visualizan con un color diferente al
de las instrucciones, este color es normalmente el verde.

100

rupo

E d it o r i a l

I- I I *1

Form!

Megabyte

ru po

L a b e ll

T e x tl

L a b e l2

( i e xt2

L a b e l3

|T e x t3

L a b e l4

|T ext4

L a b e l5

|T ext5

LabeIS

L a b e ll 1

L a b e l7

L a b e ll 2

LabeIS

L a b e ll 3

LabeIS

L a b e ll 4

L a b e ll 0

L a b e ll 5

d it o r ia l

Megabyte

Com m andl

C om m a n d 2

C om m a n d 3

101

Wm

CAPTULO III: Elementos de la Programacin

^ > VISUAL BASIC como debe s e r ...

PASO N 2: A signar las propiedades a los controles.


Asigne la propiedad Caption al formulario, a los botones de comandos y a la
etiqueta nmero 1 hasta la etiqueta nmero 10 como se muestra en la
aplicacin a desarrollar.
A las cajas de texto y las etiquetas desde la nmero 11 hasta la nmero 15
no les borre su contenido por se van a limpiar al ejecutar la aplicacin.
PASO N 3: E sc rib ir las instrucciones p a ra los controles.
Para que al ejecutar la aplicacin se limpie el contenido de las cajas de texto
y de las etiquetas N 11 hasta la N 15 y adems se ubique el cursor en la
caja de textos N 1 para empezar a ingresar los datos, se debe programar en
el evento ACTIVATE del formulario. Para ello ingrese a la ventana de cdigo
o instrucciones haciendo doble click en el formulario o pulse la tecla F7 y de
la lista de controles seleccione el control FORM y de la lista de eventos
seleccione el evento ACTIVATE. Se visualizar la siguiente ventana:

| m Proyectol - Formi (Cdigo)


|Form

jftctiuate

jrj

Private S u b Form Activate ()

Sj|

End S ub
S_J

Las instrucciones que debe escribir en esta ventana son:


Prvate Sub Form_Activate()
Textl = ""
Text2 = ""
Textl = ""
Text4 = ""
TextS = ""
L abelll =
Labell2 = ""
Labell3 = ""
Labell4 = ""
Labell5 = ""
Textl. SetFocus
E nd Sub

102

rupo

E d it o r i a l

Megabyte <^ g

IN ST R U C C IO N E S D EL BO T N C A LC U LA R .
Para escribir las instrucciones del botn CALCULAR, debe hacer doble
click o pulsar la tecla F7 en dicho botn. Si se encuentra dentro de la ventana
de cdigo seleccione de la lista de controles el control COMMAND1 y de
la lista de eventos el evento Click. Se visualizar la siguiente ventana:
^ x ]

H Pryeclol - Foiml (Cdigo)


C om m andl

Click

at.

Option Explicit
_____
Private Sub Coimiandl_Clicli: ()
I
I
End Sub
.......

---I
i
J

m <l I

MUY IMPORTANTE:
Si al ingresar a la ventana de cdigo visualiza la instrucciones O ption
Explicit, significa que debe definir todas las variable que va a utilizar. Si
Ud., no desea definir las variables puede borrar la instruccin Option Explicit.
Las instrucciones del botn CALCULAR (Com m andl) son:
Prvate Sub Commandl_Click()
Dim HNT, HET, PHN, PHE, THN, THE, ST, DES, TP As Single
Const DESCUENTO = 10
HNT = Val(Text2) Horas Normales Trabajadas
HET = Val(Text3) Horas Extras Trabajadas
PHN = Val(Text4) Pago por Hora Normal
PHE = Val(Text5) Pago por Hora Extra
THN = HNT * PHN Total por Horas Normales
THE = HET * PHE Total por Horas Extras
ST = THN + THE Sub Tota!
DES = S T * DESCUENTO /1 0 0 Descuento
TP = ST - DES
Total a Pagar
Labelll = THN
Labell2 = THE
Labell3 = ST
Labell4 = DES
LabellS = TP
E nd Sub

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

Megabyte

103

# VISUAL BASIC como debe ser...


NOTA:
En esta aplicacin se utiliza la funcin VAL, que permite convertir un
valor tipo carcter a un valor tipo numrico. Para realizar operacio
nes aritmticas con datos almacenados en cajas de texto o etiquetas,
se recomienda usar la funcin VAL para convertirlos a numricos.

MUY IMPORTANTE:

OTRA FORMA DE PROGRAMAREN EL BOTN CALCULAR


En el ejemplo anterior se definen y usan variables y constantes para obtener
los resultados deseados, pero tambin se pueden obtener los resultados sin
utilizarlas.Por eso dentro del botn CALCULAR (Com m andl) tambin se
puede programar lo siguiente:

de cada una de las cajas de textos.

Se puede desarrollar la aplicacin de tal manera que los resultados se


visualicen al ingresar los datos sin necesidad de hacer click en el botn
CA LCU LA R . Para ello debe llam ar a las instrucciones del botn
CALCULAR (procedimiento Command2_Click) desde el evento CHANGE

Tenti

Prvate Sub Commandl_Click()


Labelll = VaI(Text2) * Val(Text4)
Labell2 = Val(Text3) * Val(Text5)
Labell3 = Val(Labelll) + Val(Labell2)
Labell4 = Val(Labell3) * 1 0 /1 0 0
LabelI5 = Val(Labell3) - Val(Labell4)
End Sub

jrJ

Private S u b Text4_Change()
Command1_C1ick
End S u b
Private S ub Text5_Change()
Command1_Click
End S ub

| Click

lilil

jf1
G

.................................... ........zq

Private S u b Text3_Change()
Command1_Click
End S u b

|_|n|x|

P r i v a t e S u b Command2 C l i c k ()
F o rm A c t i v a t e
(End S u b

m m

IChange

Private S u b Text2_Change()
Command1_C1ick
End S u b

Form Actvate

|com m and2

Private S u b Textl_Change()
Commandl_C 1ickj
End S ub

INSTRUCCIONES DEL BOTN NUEVO.


Cada vez que haga click en el botn NUEVO, se deben limpiar los datos
ingresados y los resultados y ubicar el cursor en textl para ingresar los
datos de un nuevo trabajador.
Como las instrucciones que realizan este proceso se encuentran en el
procedimiento Form_Activate ya no es necesario volverlas a escribir en el
botn NUEVO, slo debe llamar al procedimiento desde este botn.
La instruccin que debe escribir en el botn NUEVO es:

| t Proyectol - Formi (Cdigo)

n|x|

rm Provecto! - Form! [Cdigo)

rupo

d it o r i a l

M egabyte^

De esta manera ya no necesita el botn CALCULAR porque los resultados


se visualizan cuando se ingresa o modifica cualquier dato. Ud., puede borrar
el botn CALCULAR porque las instrucciones que contiene permanecen
en el formulario cuando el botn se borra.

rupo

E d it o r i a l

Megabyte

105

--- ----------------------------VISUAL BASIC como debe s e r.. .

IF - THEN - ELSE
Permite ejecutar una o ms instrucciones dependiendo de la respuesta
(verdad o Falso) de una condicin dada.
Su sintaxis es:
1.-

If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Else
Instruccin(es)
(Se ejecutan cuando es Falso)
Endlf

2.-

If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Endlf

3.-

If condicin Then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Elself condicin then
Instruccin(es)
(Se ejecutan cuando es Verdad)
Else
Instruccin(es)
(Se ejecutan cuando es Falso)
End If

4.-

If condicin Then Instruccin else Instruccin

Esta ultima sintaxis se pude utilizar normalmente cuando en cada caso de va


a ejecutar slo una instruccin, si son dos o ms instrucciones se deben
separar por dos puntos, pero es recomendable utilizar la lera, o 2da. sintaxis
en estos casos.

CAPITULO III: Elementos de la Programacin


En la condicin se pueden utilizar los OPERADORES DE RELACIN Y
LGICOS:
o Diferente
= Igual
AND Y Lgico
> Mayor Que
OR O Lgico
< Menor Que
NOT Negacin
>= Mayor o Igual
Like Comparar Cadenas
<= Menor o Igual
Por ejemplo:
Se desea mostrar en la etiqueta N 1 (Labell) el mensaje APROBADO O
DESAPROBADO, dependiendo de su promedio almacenado en la variable PROM.
La instruccin ser:
If Prom >= 10.5 Then
Label 1 = APROBADO"
Else
Labell = DESAPROBADO
End If

La instrucciones anterior tambin se puede desarrollar de la siguiente manera:


If Prom>= 10.5 Then Label 1=APROBADO Else Label 1=DESAPROBADO
La instruccin If se debe utilizar con Else normalmente cuando slo existen
dos alternativas como por ejemplo para saber si un alumno est aprobado o
no, para saber si una persona es mayor de edad o no.
Cuando existe slo una o a partir de tres alternativas es mejor utilizar una
instruccin If sin Else para cada alternativa.
Por ejemplo:
Se ha ingresado en Text3 el turno de un trabajador y de acuerdo al turno se
le da un pago que debe visualizarse en Label.
Maana (M) ==> 300, Tarde (T) ==> 500 y Noche (N) ==> 700

106

ru po

d it o r ia l

rupo

E d it o r i a l

Megabyte

107

<lfj|^

VISUAL BASIC como debe se r...

CAPITULO III: Elementos de la Programacin

Las instrucciones seran:

MSGBOX

Dim PAGO As Integer


I f Text3 = "M" Then
PAGO = 300
End I f
I f Text3 = "T" Then
PAGO = 500
End I f
I f Text3 = "N" Then
PAGO = 700
End I f
Label6 = PAGO

M uestra una ventana de m ensaje en el centro de la pantalla. Tiene


dos sintaxis:
1.- Cuando no se espera la respuesta del usuario:
Msgbox Mensaje,Valor,Ttulo
2.- Cuando se espera la respuesta del usuario:
Varable^Msgbox (Mensaje,Valor,Ttulo)

Tam bin se puede d e sa rro lla r de la siguiente m anera:


Dim PAGO As Integer
I f Text3 = "M" Then PAGO = 300
I f Text3 = "T" Then PAGO = 500
I f Text3 = "N" Then PAGO = 700
Label = PAGO
La sintaxis N 03 (con Elself) tambin se puede utilizar en estos casos:
Dim PAGO As Integer
I f Text3 = "M" Then
PAGO = 300
E lself Text3 = "T" Then
PAGO = 500
E lself Text3 = "N" Then
PAGO = 700
End I f
Label = PAGO

Variable:
Mensaje:
Valor :
Ttulo :
Valor

Almacena un valor tipo entero de acuerdo a la respuesta del usuario.


Es el mensaje que se desea mostrar.
Indica qu botones van a acompaar al mensaje.
Es el ttulo que desea que tenga la ventana.
C onstante

vbOKOnly

Ok (Aceptar)

vbOKCancel

Ok y Cancelar

vbAbortRetrylgnore

Anular,Reintentar e Ignorar

vbYesNoCancel

S, No y Cancelar

vbYesNo

S y No

vbRetryCancel

Reintentar y Cancelar

16

vbCritical

Icono de Error Crtico

32

vbQuestion

Icono de Inten-ogacin

48

vbExclamation

Icono de Exclamacin

64

vbnformation

Icono de Informacin

vbDefaultButtonl

108

rupo

d it o r i a l

Megabyte^

Botn que se visualiza

Primer botn por defecto

256

vbDefaultButton2

Segundo botn por defecto

512

vbDefaultButton3

Tercer botn por defecto

ru po

d it o r ia l

Megabyte

109

VISUAL BASIC corno debe s er.. .

CAPTULO III: Elementos de la Programacin

ICONOS QUE SE PUEDEN MOSTRAR

^ ^ ||P

E jem plo:
1.

Icono de Error Crtico

16

Icono de Interrogacin

32

Dim R as Integer
R=M sgbox(Est seguro de salir,3 6 ,CUIDADO")
Muestra la siguiente ventana:
1

48

Icono de Exclamacin

Est seguro de salir

No

Icono de Informacin

64
Si el usuario hace un click en el botn SI, la variable R toma el
valor 6 y si hace un click en el botn NO la variable R toma el valor 7.

NOTA :
Para visualizar los botones con los iconos se debe sumar los valores
de cada uno de ellos. Por ejemplo para visualizar los botones S y No
y el icono de interrogacin el valor ser: 4 + 32 o simplemente 36.
Tambin se puede usar las constantes en lugar de los valores.
Si queremos que el mensaje ocupe varias lneas, se debe usar Chr(13)
al fin a l de cada lnea.

2.
Dim T as Integer
T -M sgB ox("C lave Incorrecta",1 + 16, "Acceso D enegado")
Muestra la siguiente ventana:
l

Valores que reto rn a:


Valor
1

C o n sta n te
vbOK

2
3
4

vbCancel
vbAbort
vbRetry

5
6

vblgnore
vbYes

Reintentar
Ignorar
Si

vbNo

No

R espuesta del U su
OK (Aceptar)
Cancelar
Anular

rupo

d it o r i a l

Clave Incorrecta

Aceptar

Cancelar

Si el usuario hace un click en el botn ACEPTAR, la variable T


toma el valor 1 y si hace un click en el botn CANCELAR la variable T
toma el valor 2.

Megabyte

rupo

d it o r i a l

Megabyte

111

O B E Sb VISUAL BASIC como debe ser.. .

CAPTULO III: Elementos de la Programacin

APLICACIN DESARROLLADA N 08

Para desarrollar la caracterstica N 01 se debe:

D e sa rro lla r nuevam ente la siguiente aplicacin (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
ca (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 vaca el b o tn 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 caracterstica N 02 de esta aplicacin se debe:

C on las siguientes caractersticas:


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

desactivado. S lo se debe a ctiva r cuando com ience a ingresar el

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


Por ejem plo haga doble C lic k en T e x tl y de la lista de eventos e lija el
evento Keypress. V isualizar:

nom bre del alum no.


2.

Cuando el usuario ingrese

un cam po y pulse E N T E R , el cursor

3.

A l hacer un c lic k en el botn fin a liz a r se debe m ostrar un mensaje

debe pasar autom ticam ente al siguiente campo.


de advertencia. Las instrucciones de este botn se deben ejecutar
tam bin cuando el usuario pulse < E S C > .

Prvate Sub Iext 1 KeyPress(KeyAscii As Integer)


End Sub
Entonces se debe pro gram a r lo siguiente:
Prvate 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
End If

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:

E nd Sub
G

ru po

d it o r ia l

Megabyte

113

CAPTULO III: Elementos de la Programacin


L a v a ria b le KeyAscii alm acena el v a lo r de la tecla que se ha pulsado.
E je m p lo : E N T E R = 13, ESC = 27, etc.
Si el usuario ha pulsado la tecla E N T E R (1 3 ) el cursor pasa en fo rm a
autom tica a la segunda caja de Texto.
En las siguientes cajas de texto tam bin se tiene que program ar casi lo
mismo:

Prvate Sub Text2_KeyPress( KeyAscii As Integer)


Ifkeyascii = 13 then

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
variable R no est definida, sig n ifica que ex iste la instruccin O PTIO N
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
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
in icio d e las in stru ccio n es: Dim R as Integer
L a program acin del evento C lic k del C om m and 1 (N uevo A lu m n o s ) es:

Prvate Sub C om m andl_Click()


Textl =

Text3.setfocus
End If

Text2 =
Text3 =

End Sub

Text4 =

Prvate Sub Text3_KeyPress(KeyAscii As Integer)


Ifkeyascii = 13 then

Text5 =

Text4.setfocus

Textl. SetFocus
Com mandl .Enabled = False

End I f
End Sub

End Sub

Prvate Sub Text4_KeyPress(KeyAscii As Integer)


Ifkeyascii = 13 then

Text5.setfocus

A P L IC A C I N

PRO PUESTA

N2

07:

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

Prvate Sub Text5_KeyPress(KeyAscii As Integer)


Ifkeyascii = 1 3 then

Alumno

Commandl.setfocus
E n d lf
End Sub

Otro Alumno

Especialidad
Ciclo

Salir

C uando el usuario te rm ine de ingresar los datos (pulse E N T E R en Text5), el


cursor se ubica en el b otn N ue vo A lu m n o .

Turno
Aula

Para desa rrollar la caracterstica 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:

Prvate Sub Command2_Click()


R = MsgBox( EST SEGURO DE SALIR , 36, CUIDADO )
IfR = 6 Then
End
E nd I f
End Sub

IChiclayo, 1G de Agosto de 1998

IMPORTANTE:
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
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

ru po

d it o r ia l

M eg a b y te^

ru po

d it o r ia l

Megabyte

115

CAPTULO III: Elementos de la Programacin

CONSISTENCIA DE DATOS

PASO N 2 ESCRIBIR LAS INSTRUCCIONES

La consistencia de datos consiste en co n tro la r que el


usuario ingreso slo
los datos correctos que necesita el program a, por ejem plo, si se trata de
ingresar la nota de un alum no se debe c o n tro la r que slo se ingrese un
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.

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
siguientes caractersticas:
1. El p rim e r carcter de cada n om bre o a p e llid o debe c o n ve rtirse en
m ayscula y el resto en m insculas.
2. Se debe v e rific a r que la fecha ingresada este correcta.
3. En el turno slo se debe aceptar las letras M , T y N.
4. E l p rom edio debe ser un nm ero entre 0 y 20.
5.
Los botones N uevo y S a lir deben perm anecer desactivados hasta que
se ingresen todos los datos correctos.
IN G R E S O D E D A T O S
.apellidos y N om bres

B H

Turno [M -T -N ]

1
-----

Funcin M inuscula
Funcin Num ero
In dica si se ha ingresado un nm ero.

Funcin Especial
In d ica si a ingresado una vocal con tild e , la letra o o puls E N T E R , la
Barra Espaciadora o de Retroceso (BackSpace).
Las funciones reciben en la variable V el v a lo r de la tecla que el usuario a
pulsado desde la variab le K E Y A S C II del p ro ced im ien to KeyPress de la
Cajas de Textos y devuelven un va lo r verdadero (T R U E ) o falso (F A LS E ).

A = 65
B = 66
C = 67

a = 97
b = 98
c = 99

Z = 90Z

z = 122

N uevo

| ....

S_alir

Prom edio [U a 20]

I F o rm i

- Ini

L a B arra Espaciadora tiene el v a lo r 32.

Label2

|T e xt2

LabeIS

1Text3

C om m andl

LabeW

j T ext4

Command2

ncf

|Text1

F unction M inuscula(v)
V (v> = 97 A n d v < ~ 1 2 2 )
Tlien
M inuscula = True

M ayuscula = False

Else

Minuscula = False

E nd Function

r u po

9 = 57

La tecla de Escape (ESC ) tiene el va lo r 27.


F unction M ayuscula(v)
l f (v> 65 A n d v< = 90) Then
M ayuscula = True
pse '

116

0 = 48
1 =49
2 = 50

= 255
= 233
f = 237
= 243
= 250
= 241
= 209

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


La tecla de Retroceso (B A C K S P A C E ) tiene el va lo r 8 .

PASO N 1 D IB U JA R LOS CO N TRO LES

L a b e ll

Que in d ic a si la letra ingresada est en m ayscula.

L o valores con sus respectivos caracteres son:

- I n lx l

F e c h a de Ingreso

Funcin M ayuscula

Que in d ica si la letra ingresada est en m inscula.

APLICACIN DESARROLLADA N 09

P rim ero debe de e scrib ir las siguientes funciones:

d it o r ia l

ru po

E nd If
E nd Function
E

d it o r ia l

Megabyte

117

CAPTULO III: Elementos de la Programacin

^ liy|> VISUAL BASIC como debe se r...

Instrucciones del Procedim iento T e x tl_ K e y p re s s : V erifican que los apellidos


y nom bres se ingresen correctam ente y que se co nvierte la p rim e ra letra a

Function numero(v)
I fv < 48 Or v > 57 Then
numero = False
Else
numero = True
End I f
End Function

m ayscula y el resto a m inscula.

Function Especial(v)
I f v - 13 Or v -3 2 Or v=8 Or v=225 Or v=233 Or v=237 Or v=243 Or
v=250 Or v=241 Or v = 209 Then
Especial = True
Else
Especial - False
End I f
End Function
Instrucciones de la Funcin INGRESADO: Verifican si todos los datos han sido
ingresados correctamente para poder activar o no los botones Nuevo y Salir.

Function ingresados()
IfT rim (T extl) <> ""A n d lsDate(Text2) A nd Trim(Text3) <> ""
A nd Trim(Text4) o "" Then
Command 1.Enabled = True
Command2. Enabled = True
Else
Command .Enabled = False
Command2. Enabled = False
E nd f
End Function
Instrucciones del P rocedim iento F o rm _ A c tiv a te : Para que al ejecutar
el program a se lim p ie el contenido de las cajas de texto, se desactiven los

Private Sub Textl_KeyPress(KeyAscii As Integer)


Static anteriorespacio As Boolean
f KeyAscii = 13 Then
Text2.SetFocus
End I f
I f KeyAscii = 32 Then
anteriorespacio = True
Else
I f May usculaf KeyAscii) O r Minuscula( KeyAscii) Or
Especial(KeyAscii) Then
IfTrim (Textl) = "" Or anteriorespacio Then
Rem Convierte a Mayuscula.
KeyAscii = Asc(UCase(Chr( KeyAscii)))

Else
Rem Convierte a Minuscula
KeyAscii = Asc(LCase(Chr( KeyAscii)))
End I f
anteriorespacio = False
Else
MsgBox "Debe ingresar slo letras", 16, "Cuidado"
KeyAscii = 0 Ignora el carcter digitado
Commandl .Enabled = False
Command2. Enabled = False
End I f
End I f
End Sub

Instrucciones del P rocedim iento T ext2_LosF ocus: V e rifica n que la fecha


ingresada est correcta. Esto ocurre en el m om ento que ubica el cursor en
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.

Prvate Sub Text2_LostFocus()


I f lsDate(Text2) Tiren
ingresados
Else
MsgBox "Debe ingresar una fecha correcta", 16, "Cuidado"
Text2.SelStart = 0
Text2.SelLength - Len(Text2)
Text2 = Text2.Se/Text
Text2.SetFocus
End I f
End Sub

Private Sub Form_Activate()


Text - ""
Text2 = ""
Text3 - ""
Text4 = ""
Command 1.Enabled = False
Command2. Enabled - False
Textl. Set Focus
End Sub
lilil! ^

r u po

d it o r ia l

Megabyte

lilil^

r u po

d it o r ia l

Megabyte

119

|S |> VISUAL BASIC como debe ser.. .

CAPTULO III: Elementos de la Programacin

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 .

Prvate Sub Text2_KeyPress(KeyAscii As Integer)


IfK eyA scii = 13 Then
Text3. Set Focus
E nd I f
End Sub

Prvate Sub Text4_Change()


l f Val(Text4) < 0 Or Val(Text4) > 20 Then
M sgBox "El promedio debe estar entre 0 y 20", 16, "Error"
Text4.SelStart = 0
Text4.SelLength = Len(Text4)
Text4 = Text4.SelText
Text4.SetFocus
Commandl.Enabled - False
Command2.Enabled = False
Else
ingresados
E n d lf
End Sub

Instrucciones del Procedimiento Text3_Keypress: Verifican que en el tumo slo se


ingresen las letras M , T o N y si se ingresan en minscula las convierte en mayscula.

Prvate Sub Text3_KeyPress(KeyAscii As Integer)


Dim Letra A i String * 1
IfK eyA scii = 13 Then
Text4.SetFocus
Else
Letra = UCase(Chr( KeyAscii))
lfL etra = "M" Or L e tra -"T " Or Letra= "N" Or KeyAscii=8 Then
Rem Convierte la letra ingresada a Maysculas.
KeyAscii = A sc( UCasef Chr(KeyAscii)))
Else
M sgBox "Debe ingresar slo las letras M ,T o N", 16, "Error"
Rem Ignora el caracter ingresado.
KeyAscii = 0
Command 1.Enabled = False
Command!. Enabled = False
E nd I f
E nd I f
E nd 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
p ro m e d io slo se ingresen nmeros.

Prvate Sub Text4_KeyPress(KeyAscii As Integer)


I f numerof KeyAscii) Or KeyAscii = 8 Or KeyAscii = 13 Then
ingresados
Else
M sgBox "Debe ingresar slo nmeros", 64, "Cuidado"
KeyAscii - 0
Com m and! .Enabled = False
C om m and!.Enabled = False
End I f
End Sub

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


IN G R E S A D O S cada vez que se m o d ific a algn dato para v e rific a r si todos
los datos han sido ingresado correctam ente para poder a ctiva r o no los
botones N uevo y Salir.

Prvate Sub Textl_Change()


ingresados
End Sub
Prvate Sub Text3_Change()
ingresados
End Sub
In stru cci n de botn N uevo. L la m a al p ro ce d im ie n to F o rm _ A c tiv a te para
em pezar a ingresar los datos de un nuevo alum no.

Prvate Sub Com m andl_Click()


Form_Activate
End Sub
Instrucciones del p ro c e d im ie n to F o rm _ U n lo a d : Piden una respuesta de
c o n firm a c i n para fin a liz a r el program a.

EXPLICACION BREVE DE LAS FUNCIONES UTILIZADAS (Ver Pgs. 116,122 y 130):


C H R : Convierte un valor ASCII a su respectivo carcter.
UCASE: Convierte un texto a mayscula.
LCASE: Convierte un texto a minscula.
TRIM : Quita los espacios en blanco de la derecha de un texto.

Prvate Sub Form_Unload(Cancel As Integer)


Dim resp A Integer
resp = MsgBox("Est seguro de salir", 36, "Cuidado")
I f resp = 7 Then
Rem Respondi SI
Cancel = True
End I f
End Sub

^ |f^

j |f |j |^ G

120

ru po

d it o r ia l

Megabyte <111111

ru po

d it o r ia l

Megabyte

121

S /S k VISUAL BASIC como debe ser. . .

.=

<3

CAPTULO III: Elementos de la Programacin

^ 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 instruccin:

M uestra una caja con un mensaje y perm ite adems 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,ttulo, valor pred, c o lu m n a jila )

Proyecto!

Variable.
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.

C a n c e la r

Es el mensaje que se desea m ostrar cuando se pid a el dato a ingresar.

Ttulo.
Es el ttu 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
que se muestre la caja.

Fila
Es un va lo r que in d ica la posicin ve rtica l d el fo rm u la rio donde se desea que
se m uestre la caja.

Si no desea u tiliz a r alguno de los otros parm etros interm edios, debe u tiliz a r
siem pre las comas.
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
en fo rm a autom tica.
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 )

M ue stra la siguiente caja de ingreso:

Por ejem plo, la siguiente instruccin:

VENTA DE DOLARES

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 ",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 dlar, 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 osicin h o riz o n ta l 2000 y vertica l


1000. M uestra la siguiente caja de ingreso:

E3

IV E N TA DE D O LA R ES
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 parm 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
122

en fo rm a autom tica ni la u bicaci n de la caja en el fo rm u la rio .

ru po

d it o r ia l

Megabyte

r u po

d it o r ia l

Megabyte

.2 3

^ l> VISUAL BASIC como debe se r.. .

CAPTULO III: Elementos de la Programacin

P=INPUTBOX("INGRESE EL PRECIO DE VENTA","VENTA DE DOLARES")


M uestra la m ism a caja de ingreso a nte rio r en el centro de la p antalla, p o r
que no se in d ic la posicin:
Si desea e scrib ir el mensaje en varias lneas, u tilic e C h r(1 3 ) (R e to rn o de
C arro) o C h r(lO ) (A vance de lnea) o las dos ju n ta s al fin a l de cada lnea.

CONTADORES Y ACUMULADORES
U n contador es una variab le num rica que perm ite contar algn evento
que ocurre durante la ejecucin de un program a. Su sintaxis es:

VA R IA B LE = VA R IA B LE + IN C REM EN TO .
E l increm ento norm alm ente es uno. Por eje m p lo: A = A + 1.
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 paado de la fecha y hora actual (escrbalo es una
sola lnea).

U n acumulador llam ad o tam bin sum ador es una variab le que perm ite ir
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")

VENTA DE DOLARES
INGRESE EL PRECIO DE VENTA
AL 29/04/9 9 6:49:00 PM

Aceptai
Cancela

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.
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.
E jem p lo : L a b el5 = Val(Label5) + Val(Text3)
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
d e Text3.
L a siguiente a plicacin m uestra un e je m p lo de contadores y acum uladores.

APLICACION DESARROLLADA N 10
Esta a plicacin cuenta el nm ero de depsitos y retiros realizados por un
cliente, adems alm acena el to ta l de las m ontos tanto de retiros com o de
depsitos efectuados in clu ye n d o el saldo actual

NOTA:
M

I *.. B a n c o " E l A m i g o "


C lie n te

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 carcter.

i n i R ii

Ok 1

jT it o R a m ir e z V s q u e z
M o n t o d e M o v im ie n t o
15 0
D e p s it o
C a n t id a d

ru po

d it o r ia l

Megabyte <

lp l |

r u po

|2

|1 3 5 0

R e tir o

150

d it o r ia l

T o ta l

D e p s it o

SALD O A C TU A L

124

R e tir o _

1i N u e v o C l ie n t e l j
S a lir

|1300

Megabyte

125

<i>

i !

CAPITULO III: Elementos de la Programacin

VISUAL BASIC como debe ser.

PASO N 1: Dibujar los controles.


L a b e ll

INSTRUCCIONES D E L BOTN OK.

|T e x t1
L a b e l2
j f e x f2
C om m and2

C o m rn a n d 3

L a b e l3

L a b e l4

L a b e l5

L a b e l7

L a b e l9

L a b e l6

L a b e (8

L a b e ll 0

C o rn m a n d 4
Com m and5
L a b e ll 1

L a b e ll 2

PASO N 2: Asignar las propiedades.


Asigne la propiedad Caption al formulario, etiquetas y botones de comandos
como se muestra en la aplicacin planteada.

Private Sub Commandl_Click()


Textl.Locked = True
Text2.Locked = False
Commandl.Visible = False
Command2.Enabled = True
Command3.Enabled = True
Rem La siguiente instruccin debe ir en una sola lnea.
saldo=Val (InputBox ("Monto de Apertura "+Chr (13) +Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta", 350))
Labell2 = saldo
td = saldo
cd = 1
Label7 = cd
Label9 = td
Text2.SetFocus
End Sub
INSTRUCCIONES D E L BO T N DEPSITO.

PASO N 3: Escribir las instrucciones para los controles.


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

Declaraciones.
D im td, cd, tr, cr, saldo As Integer
INSTRUCCIONES DELPR O C ED IM IEN TO F O R M _A C IW A TE.
Permiten que al ejecutar la aplicacin se lim pien las cajas de texto y las etiquetas,
adems muestran el botn O K y desactivan los botones DEPOSITO y RETIRO y no
se permite el ingreso del monto.

Priva te Sub Command2_Click()


Dim deposito As Integer
deposito = Val(Text2)
td = td + deposito
'Total de depsitos
cd = cd + 1
'Cantidad de depsitos
Label7 = cd
Label9 = td
saldo = Val(Labell2)
Labell2 = saldo + deposito
End Sub
INSTRUCCIONES D E L BO T N RETIRO.

Private Sub Command3_Click()


Dim retiro As Integer
retiro = Val(Text2)
saldo = Val(Labell2)
If saldo < retiro Then
MsgBox "La cantidad que desea retirar excede su
saldo actual", 64, "Disculpe"
Text2 = ""
Text2.SetFocus
El se
tr = tr + retiro
'Total de Retiros
cr = cr + 1
'Cantidad de Retiros
Label8 = cr
Label10 = tr
Label12 = saldo - retiro
End If
End Sub

Prvate Sub Form_Activate()


Textl =
Texl2 =
Label7 =
Label8 =
Label9 =
LabelJO = ""
L abell2 = ""
C om m andl .Visible = True
Command2. Enabled = False
Commands. Enabled = False
Text I.Locked - False
Text2.Locked = True
Textl.SetFocus
End Sub
G

ru po

d it o r ia l

M egabyte^

ru po

d it o r ia l

Megabyte

127

CAPTULO III: Elementos de la Programacin


INSTRUCCIONES D E L BOTN NUEVO C L IE N T E .

INSTRUCCIONES D E L BOTN RETIRO.

Llama al procedimiento Form_Activate y reinicializa las variables con cero (0).


P r v a t e S u b C o m m a n d 4 _ C l i c k ()
F o rm _ A cti va t e
td = 0 'T o ta l D e p s ito s
c d = 0 'C a n tid a d d e D e p s ito s
t r = 0 'T o ta l de
R e tiro s
c r = 0 'C a n tid a d
de R e tir o s
End Sub

Este program a tam bin se puede d e sa rrollar sin usar variables.

Prvate Sub Command.3_Click()


lfV a l(L abell2) < Val(Text2) Then
MsgBox "La cantidad que desea retirar excede su saldo
actual", 64, "Disculpe"
Text2 = ""
Text2.SetFocus
Else
Label8 = Val(Label8) + 1
Label 10 = Val(LabellO) + Val(Text2)
Label 12 = Val(Labell2) - Val(Text2)
End I f
End Sub

INSTRUCCIONES D E L BO T N OK.

Private Sub Commandl_Click()


Textl.Locked = True
Text2.Locked = False
Commandl.Visible = False
Command2.Enabled = True
Command3.Enabled = True
Rem La siguiente instruccin debe ir en una sola lnea.
Label12=InputBox("Monto de Apertura "+Chr(13)+Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta ", 350)
Label 7 = 1
Label 9 = Label12
Text2.SetFocus
End Sub

INSTRUCCIONES D E L BO T N DEPSITO.

Prvate Sub Command2_Click()


Label7 = Val(Label7) + 1
Label9 = Val(Label9) + Val(Text2)
Label12 = Val(Labell2) + Val(Text2)
E nd Sub

INSTRUCCIONES D E L BOTN NUEVO CLIENTE.

Private Sub Command4_Click()


Forrn_Activate
End Sub

INSTRUCCIONES D I I J R O C I.D IM IKN TO F O R M A C TIV A T E .

Private Sub Form_Activate()


Textl =
Text2 = ""
Label7 = ""
Label8 =
Label9 = ""
LabellO = ""
Labell2 = ""
Commandl .Visible = True
Command2.Enabled = False
Command3.Enabled = False
Textl.Locked = False
Text2.Locked = True
Textl.SetFocus
End Sub

G ru p o E d ito r ia l

Megabyte

129

VISUAL BASIC como debe s e r .. .

CAPTULO III: Elementos de la Programacin

DESARROLLAR LAS SIGUIENTES APLICACIONES:


N 04: Ingresar el nom bre del producto, p re cio a nte rio r y p re cio actual,
luego ca lcu la r el alza en soles y el alza en porcentaje.

IIF
Es una fu n c i n que devuelve uno de dos valores dados dependiendo de una
condicin.

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.
n

- I n i x|
Producto
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.....................
1........... ...

A lza en Soles

r............

N u evo Producto

VARIABLE = IIF (CONDICION, VALOR 1, VALOR2)

f.............

Precio Actual

Alza en Porcentaje

Su sintaxis es:

r ~

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 .


T am bin se puede u tiliz a r un co n tro l com o una caja de textos o etiqueta para
alm acenar cualquiera de los valores. Si los valores son de tip o carcter

.......

deben ir entre co m illa s.

Calcular

Salir

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 nm 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


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 ms de 48 horas su pago p o r hora es de S/. 8.00 soles y SI. 7.00
en caso co ntrario. P o r hora e xtra S/. 9.50.

en la variab le O B S el mensaje M E N O R D E E D A D .
OBS = IIf(E D A D >= 18, "M AYOR DE EDAD", "MENOR DE EDAD")

Otro ejemplo:
Nombre del Profesor

I ,a siguiente instruccin:

Horas Trabajadas
__________

Calcular

Horas Extras
Pago por Hora

Otro

Total por Hs. Normales


Salir

Total por Hs.Extras


T o ta l a P a g a r ===>

I f pro >= 10.5 Then


Label8 = "Aprobado"
Else
Label8 = "Desaprobado"
End I f
Tambin se puede e s c rib ir de la siguiente manera:

P rog ra m a d orJu a n J o s Castaeda Len

ru po

d it o r ia l

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

Megahyte<^ ||| |

ru po

d it o r ia l

Megabyte

<?

i i j ^ VISUAL BASIC como debe se r.. .

CAPITULO III: Elementos de la Programacin

< 5

SELECT - CASE

APLICACIN DESARROLLADA N 11

Perm ite ejecutar una o ms instrucciones dependiendo del v a lo r de


una va riab le, de una expresin. Puede reem plazar a varias instrucciones

f=i Li i : i f . i i a :iT!TTT37T! WSIM

IF-THEN.

- In | x |

Producto
Precio Unitario

Su sintaxis es:

Cantidad Comprada

Calcular

Subtotal S/.

Select Case VAR IABLE O EXPRESIN


Case CASO N 1
Instruccin(es)
Case CASO N 2
Instruccin(es)
Case CASO N3
Instruccin(es)
Case C A S O N 4
Instruccin(es)

Descuento

Nue vo

.................. i;:!.

Salir

Descuento S/.

T O T A L A P A G A R S/. ===>

CARACTERSTICAS:
Se debe ingresar el n om bre de un producto, su p re cio u n ita rio y la c a n ti
dad com prada de d ich o producto, luego se debe ca lcu la r y v is u a liz a r el
subtotal, el descuento en porcentaje, el descuento en soles y el to ta l a pagar,
lil descuento en porcentaje se depende d el subtotal, de acuerdo a la s igu ien

Case CASO n
Instruccin(es)
Case Else
Instruccin(es)
End Select

te tabla:

NOTA:

SUBTOTAL

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
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.

100 101
de 101.1 a

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 ln e a d e l C ase, se
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
d o s o m s in stru c c io n e s en u n a so la lnea.

DESCUENTO

200

2%
4%

de 200.1 a 500
a partir de 500

6%
10%

NOTA:
Los casos pueden escribirse de la siguiente manera:
Case 1
Case 2

j^

132

Case 1 to 10
Case 10 to 20

Case 1,2,3
Case 4,5,6

ru po

Case Is >40
Case Is <20

d it o r ia l

Megabyte1

lista aplicacin 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
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
visu a liza ci n a lo s datos.

G ru p o E d ito r ia l

Megabyte

133

VISUAL BASIC como debe ser.. .


BO TO N ES DE COMANDOS

D E S A R R O L L O D E L A A P L I C A C I N 11
P A S O N 01: D ib u ja r los controles.

CONTROL
Coinmandl
Command2
Command3

- n l x l
L a bell

||T e xtl

Label2

|T e xt2

Label3

| t ext3

Label4

Label8

Label5

Label9

El

P A S O N 03: E s c rib ir las instrucciones.


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
A M E asignada a las cajas de texto y algunas etiquetas.

Private Sub Commandl_Click()


Dim ST As Single
ST = Val(PRECIO) * Val(CANTIDAD)
SUBTOTAL = ST
Select Case ST
Case 100, 101
DESCPOR = 2
Case 101.1 To 200
DESCPOR = 4
Case 200.1 To 500
DESCPOR = 6
Case Is > 500
DESCPOR = 1 0
Case El se
DESCPOR = 0
End Select
DESCSOL = ST * Val(DESCPOR) / 100
'El Total a Pagar se visualiza con 2 decimales
PAGO = Format(ST - Val(DESCSOL) , "###, ##0.00")
End Sub

L a b e ll 1

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
Labell
Labe12
Label3
Labe14
Label5
Label6
Labe17
Labe18
Label9
LabellO
Label11

ALIGNMENT
NAME
Labell
0 - Left
Label2
0 - Left
Label3
0 - Left
Label4
0 - Left
Label5
0 - Left
Label6
0 - Left
Label7
0 - Left
SUBTOTAL 1 - Right
DESCPOR 1 - Right
DESCSOL 1 - Right
1 - Right
PAGO

BORDERSTYLE
CAPTION
Producto
0 - None
Precio Uni.
0 - None
Cantidad Com. 0 - None
Subtotal
0 - None
Descuento %
0 - None
Descuento S/. 0 - None
TOTAL A PAGAR 0 - None
0
1 - Fixed S
1 - Fixed S.
0
0
1 - Fixed S.
0
1 - Fixed s,

INSTRUCCIONES

DEL

COMMAND2

(Nuevo).

Prvate Sub Command2__Click ()


NOMBPRO = ""
PRECIO = ""
CANTIDAD = ""
SUBTOTAL = 0
DESCPOR = 0
DESCSOL = 0
PAGO = 0
NOMBPRO.SetFocus
End Sub

C A JA S D E T E X T O S

CONTROL
NAME
Textl
NOMBPRO
Text2
PRECIO
Text3
CANTIDAD

tener en C aption: V E N T A D E P R O D U C T O S .

Command2

L a b e ll 0

Label7

Tooltiptext
Muestra los totales
Para ingresar otro producto
Finaliza la aplicacin

Com m aridl

Command3
LabelG

formulario debe

CAPTION
&Calcular
&Nuevo
ScSalir

TEXT
En Blanco
En Blanco
En Blanco

sHHIb

ru po

d it o r ia l

Megabyte

135

^ |||||^

^ lilil'' VISUAL BASIC como debe se r,..


INSTRUCCIONES DEL COMMAND3 (Salir)
Prvate Sub Command3_Click()
Dim H As Integer
H = MsgBoxf"ESTA SEGURO DE SALIR", 36, "CUIDA
DO")
If H = 6 Then
End
End If
End Sub

CAPTULO III: Elementos de la Programacin

APLICACIN DESARROLLADA N 12
Se debe ingresar el nom bre del alum no, su nota N 1 y su nota N k z, ai
hacer c lic k en el botn O btener P rom edio se debe visua liza r: el pro m e dio
del a lu m n o , una obse rva cin que in d ic a si el a lu m n o est aprobado o
desaprobado, la ca ntid ad de puntos que le fa lta n para aprobar, si est
desaprobado o los puntos para lleg ar a veinte en caso que est aprobado.
Tam bin 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
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 ;
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
c a ja s d e texto .
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
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 .

Excelente

Se debe co n tro la r que slo se ingresen notas entre 0 y 20.

A s:
INSTRUCCIONES DE TEX T2,

Psimo
M alo
Regular
Bueno

Entre 0 y 5
Entre 5.1 y 10.4
Entre 10.5 y 14.4
Entre 14.5 y 17.4
Entre 17.5 y 20

Informacin Acadmica
Alumno

Curso

CUYO NOMBRE (AME) ES PRECIO.


Nota N!

01

|o

Nota N!

02

|o

B H f lW

-Inlxl

..........................
--------

Otro Alumno

Obtener Promedio

Prvate Sub PRECIO__Change ()


Commandl_Clck
End Sub

Promedio

Observacin

1 .....................

INSTRUCCIONES DE TE X T3, CUYO NOMBRE (AME) ES CANTIDAD.

Finalizar

Puntos

Prvate Sub CANTIDAD_Change()


Commandl_Clck
End Sub

Cualidad

ru po

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

L a b e ll

|fr ext1

Label2

| e x l2

CONTROL
Commandl
Command2
Command3

Com m andl

Label3

IT ext3

LabeM

Text4

Label5

Label8

LabelG

Label9

Label7

L a b e ll 0

CAPTION
&0tro Alumno
Obtener &Promedio
&Finalizar

TOOLTIPTEXT
Ingresar nuevo alumno
Imprime el promedio
Finaliza la aplicacin

Command2

FORMULARIO
Command3

CONTROL
Forml

CAPTION
Informacin Acadmica

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


d e l fo r m u la r io .

L a b e ll 1
Lab e ll 2

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
Labell
Label2
Label3
Labe14
Label5
Label6
Label7
Labe18
Label9
Label10
Label11
Label12

CAPTION
AUTOSIZE
Alumno
True
Curso
True
Nota N 201
True
Nota N e02
True
Promedio
True
Observacin True
Puntos
True
En Blanco
False
En Blanco
False
En Blanco
False
Cualidad
True
En Blanco
False

BORDERSTYLE
0 - None
0 - None
0 - None
0 - None
0 - None
0 - None
0 - None
1 - Fixed
1 - Fixed
1 - Fixed
0 - None
1 - Fixed

1.

SelStart, S elLength, y SelText son propiedades de las cajas de texto


que se usan en el m odo de program acin.
SelStart:
E sp ecifica la p o sici n de in ic io del bloque de texto seleccionado.
SelLength:
E sp ecifica el nm ero de caracteres seleccionados.
SelText:

Single
Single
Single
Single

C ontiene el te xto seleccionado.


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
Textl
Text2
Text3
Text4

138

TEXT
En Blanco
En Blanco
0
0

r u po

TABINDEX
0
1
2
3

d it o r ia l

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


se puede considerar de tip o num rico.

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
n L ab e ll

IfT e x tl

Label2

|T ext2

CONTROL
Commandl
Command2
Command3

Command!

Label3

|T ext3

LabeW

| ext4

Label5

LabelS

LabelG

LabeIS

Label7

L a b e ll 0

CAPTION
&0tro Alumno
Obtener &Promedio
&Finalizar

TOOLTIPTEXT
Ingresar nuevo alumno
Imprime el promedio
Finaliza la aplicacin

Command2

FORMULARIO
Command3

CONTROL
Forml

CAPTION
Informacin Acadmica

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


d e l fo r m u la r io .

L a b e ll 1
L a b e ll 2

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
Labell
Label2
Labe13
Label4
Label5
Labe16
Label7
Labe18
Labe19
Label10
Label11
Label12

CAPTION
AUTOSIZE
Alumno
True
Curso
True
Nota N s01
True
Nota N 202
True
Promedio
True
Observacin True
Puntos
True
En Blanco
False
En Blanco
False
En Blanco
False
Cualidad
True
En Blanco
False

BORDERSTYLE
0 - None
0 - None
0 - None
0 - None
0 - None
0 - None
0 - None
1 - Fixed
1 - Fixed
1 - Fixed
0 - None
1 - Fixed

1.

SelStart, SelLength, y SelText son propiedades de las cajas de texto


que se usan en el m odo de programacin.
SelStart:
E sp e cifica la p o sici n de in ic io del bloque de texto seleccionado.
SelLength:
E sp ecifica el nm ero de caracteres seleccionados.
SelText:

Single
Single
Single
Single

C ontiene el te xto seleccionado.


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
Textl
Text2
Text3
Text4

138

TEXT
En Blanco
En Blanco
0
0

TABINDEX
0
1
2
3

G ru p o E d ito r ia l

3.

L a fu n c i n IS N U M E R IC perm ite saber si lo ingresado por un usuario


se puede considerar de tipo num rico.

Megabyte <|ys;

CAPTULO III: Elementos de la Programacin

^II ^ VISUAL BASIC como debe se r...


A l empezar a e scrib ir la N ota N 01, se selecciona el contenido de la
caja de texto N 03 para que sea reem plazado p o r el v a lo r que se ingresa.
Las siguientes instrucciones se deben e scrib ir en el evento G otFocus
de Text3. Para e llo Haga doble c lic k en Text3 o un solo c lic k y pulse F7,
luego en la lista de Eventos seleccione el E vento GotFocus.

Text3.SelStart = 0
Text3.SelLength - Len(Text3)
Text3 = Text3 .SelText

_ |n[ x|
GotFocus

Text3

Prvate Sub Text3_GotFocus()


Text3.SelStart = 0
Text3.SelLength = Len(Text3)
Text3 = Text3.SelText
End Sub

Las siguientes instrucciones p erm ite n que al empezar a e s c rib ir la


N ota N 02, se selecciona el contenido de la caja de texto N 04 para que
sea reem plazado p o r el v a lo r que se ingresa. Se deben e s c rib ir en el evento
G otFocus de Text4.

Private Sub Text4_GotFocus()


Text4. SelStart ~ 0
Text4. SelLength = Len(Text4)
Text4 = Text4. SelText
End Sub

Prvate Sub Text3_LostFocus()


Pregunta si no se ha ingresado un valor numrico o
la nota N1 es menor que 0 es mayor que 20
I f Not IsNumeric(Text3) Or Val(Text3)<0 Or Val(Text3)>20 Then
MsgBox "Slo nmeros entre 0 y 20", 16, "Cuidado"
Text3.SetFocus
E n d lf
End Sub

02, se v e rifiq u e que se ha ingresado un v a lo r num rico y entre 0 y 20. Se

* : P foje ctl - Frmi (Code)

deben e s c rib ir en el evento LostFocus de Text3.

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:

Las siguientes instrucciones perm iten que al fin a liz a r de e s c rib ir la N ota N
01, se v e rifiq u e que se ha ingresado un v a lo r num rico y entre 0 y 20. Se

ru po

d it o r ia l

Megabyte

deben e s c rib ir en el evento LostFocus de Text4.

Prvate Sub Text4_LostFocus{)


Pregunta si no se ha ingresado un valor numrico o
la nota N2 es menor que 0 es mayor que 20
I f N ot lsNumeric(Text4) Or Val(Text4)<0 Or Val(Text4)>20 Then
MsgBox "Slo nmeros entre 0 y 20", 16, "Cuidado"
Text4.SetFocus
E n d lf
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
evento C lic k del C om m and 1.

Prvate Sub Commandl_Click()


Textl = ""
Text2 = ""
Text3 - 0
Text4 = 0
Label8 = ""
Label9 = ""
LabellO = ""
L abell2 = ""
Textl.SetFocus
End Sub

141

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe se r.. .


Las siguientes instrucciones perm iten m ostrar los resultados del alum no

APLICACION PROPUESTA N 06

(p ro m e d io , observacin, etc). Se deben e s c rib ir en el evento C lic k del


C om m and2.

Se debe ingresar el nom bre y el ao de n a cim ie n to de una persona y se


tiene que visua liza r: su edad, una observacin que in d ic a si es m ayor o
m enor de edad. Si m enor de edad se debe m ostrar cuntos aos le faltan
para ser m ayor de edad y si es m ayor de edad se debe m ostrar hace cuntos
aos es m ayo r de edad. T am bin se debe m ostrar la etapa de la persona
teniendo en cuenta lo siguiente:
0 y 12 Nio
13 y 17 Adolescente
18 y 30 Joven
31 y 70 Adulto
70...
Anciano

Prvate Sub Command2_Click()


pro = (Val(Text3) + Val(Text4)) / 2
Label8 = pro
I f pro >= 10.5 Then
Label9 = "Aprobado(a)"
LabellO = "Le faltan "+Str(20-pro)+" puntos para tener 20"
Else
Label9 = "Desaprobado(a)"
LabellO - "Le faltan " + Str(ll-pro)+ " puntos para Aprobar"
E n d lf
Select Case pro
Case OTo 5
L abell2 = "Psimo"
Case 5.1 To 10.4
L abell2 = "Malo"
Case 10.5 To 14.4
L abell2 = "Regular"
Case 14.5 To 17.4
L abell2 - "Bueno"
Case 17. 5 To 20
L abell2 = "Excelente"
End Select
End Sub

fe-Iri fxf
N o m b re
A o d e N a c im ie n to

|
R e s u lta d o s |

Edad
b s e r v a c i n

JN uevo

j"

Aos

S a lir
E ta p a

FUNCIN CHOOSE

L a siguiente in stru cci n fin a liz a la a plicacin . Se debe e s c rib ir en el evento


C lic k del C om m and3.

Variable=CHOOSE(ndice,valorl, valor2,valor3..)

R etorna un v a lo r dependiendo de un ndice.

Su sintaxis es:

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

Prvate Sub C om m and3jClick()


End
End Sub

da de la semana dependiendo del v a lo r que contiene la variable D IA .


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 & .
E l signo + slo p e rm ite concatenar valores tip o texto. Si desea concatenar
valores de d iferen te tip o lo s tiene que c o n v e rtir a texto usando la fu nci n
S T R si es un nm ero o Cdate si es tip o fecha.
E l signo & tiene la ventaja de poder concatenar datos de d iferen te tipo.
Por ejem plo, la instruccin:
L a b e ll = L e fa lta n + S tr(20 - p ro ) + Puntos para lle g a r a 20
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

Si D IA tiene el v a lo r 1, devuelve L U N , si da tiene el v a lo r 2, devuelve


M A R , etc.
El n dice debe tener un
v a lo r entre 1 y el nm ero I M i c r o s o f t V is u a l B a s ic
de valores devueltos, en
Error '94' en tiempo de ejecucin :
caso co ntrario se muestra
El uso de Nuil no es vlido
el mensaje de error:

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


^ ^ ^

jj

G ru p o

E d it o r ia l

M e a h v t e <^ ^

Terminar

Depurar

j|

Ayuda

CAPITULO III: Elementos de la Programacin

VISUAL BASIC como debe ser. ,.


F U N C IO N E S D E C A D E N A
U na cadena es un dato tip o S trin g (carcter); es decir se re fie re a letras o
letras y nmeros, com o p o r ejem plo: el nom bre de una persona, su direccin,
etc. S i usamos al fin a l de la fu n ci n el signo $ devuelve el resultado com o
tip o Cadena, de lo c o n tra rio el tip o d evuelto es Variant.

APLICACIN DESARROLLADA N 13
Las siguiente a plicacin es un eje m p lo del uso de las funciones de cadena

In g re s e u n a F ra s e

E s tu d ia n d o

L o n g itu d d e la F r a s e

V IS U A L

23

n :::

P rim e r C a r c t e r

R IG H T .L E F T .-

MXD. -

Obtiene de una cadena una cantidad de caracteres empezando por


la derecha. Sintaxis Right(Cadena, N)
Obtiene de una cadena una cantidad de caracteres empezando por
la Izquierda. Sintaxis Left(Cadena, N)

D e l 2 d o a l G to C a r c t e r

stu d i

M u e s tr a
N uevo
S a lir

P o s i c i n d e la 1 r a le tr a *A'

Obtiene de una cadena una cantidad de caracteres


a partir de una determinada posicin.

Sintaxis Mid(Cadena, Posicin, N)

U ltim o C a r c t e r

B A S IC

M in s c u la s

e s tu d ia n d o v is u a l b a s ic

M a y sc u la s

E S T U D IA N D O V IS U A L B A SIC

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

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

L E N .-

Obtiene la longitud de una cadena, es decir la cantidad de caracteres


que contiene incluyendo los espacios en blanco.
T R IM .Q uita los espacios en blanco que se encuentran al in ic io y al fin a l de
una cadena.
R T R IM .- Quita los espacios en blanco al fin a l de una cadena.
L T R IM .- Quita los espacios en blanco que se encuentran al in ic io de una
cadena.
U C A S E .- Convierte una cadena a maysculas.
L C A S E .- Convierte una cadena a minsculas.

La sintaxis de las funciones anteriores es: Funcin (Cadena)


S T R C O N V : Esta funcin permite convertir una cadena a 3 formas diferentes:
STRCONV (Cadena, Valor)
El valor indica el tipo de conversin y puede ser:
1. Convierte el texto a mayscula.
2.

Convierte el texto a minscula.

3. Convierte la primera letra de cada palabra a mayscula.


IN S T R :
Obtiene un nmero que indica la posicin de una subcadena dentro de
una cadena.
IN STR (Valor, Cadena, Subcadena)
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
subcadena. Cadena es el texto donde se desea buscar y Subcadena es el
te xto que desea buscar.
144

rupo

d it o r i a l

M ee a b v te

Label2

:|Text1
Labell 0

LabeB

Label! 1

LabeM

Labell 2

Label5

Labell 3

LabeS

Label14

Label?

Labell 5

LabeB

Labell 6

LabeIS

Labell 7

P A S O N 02: A s ig n a r las propiedades a los controles.


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
botones de com m andos. T e x tl y las etiquetas desde L ab eI 8 hasta L a b e ll3
deben estar en blanco.
P A S O N 03: E s c rib ir las instrucciones para los controles.
Prvate Sub Commandl_Click()
LabellO = Len(Trm(Textl ))
tM belll = Left(Trm( Textl ), 1)
Labell2 = Right(Trim(Textl ), 1)
Labell3 = Mid(Trm(Textl), 2, 5)
Labell4 = lnStr(Textl, "a")
Labell 5 = LCase(Textl)
Label 16 = UCase(Textl)
Label 17 = StrConv(Textl, 3)
End Sub

Prvate Sub Com m andi JClick()


Textl = ""
LabellO =
L abelll =
Labell2 =
Labell3 =
Label 14 =
Labell5 =
Label 16 =
L a b e l17 =

Textl.SetFocus
End Sub

CAPTULO III: Elementos de la Programacin

como debe ser.

PASO N 03 E s c rib ir

FUNCIONES TIPO FECHA


NOW.DATE.YEAR.MONTH.DAY.-

O btiene la fecha y hora del sistema.


O btiene la fecha del sistema.
O btiene el ao de una fecha.
O btiene el nm ero mes de una fecha.
O btiene el da de una fecha.
W E E K D A Y .-O b tie n e el nm ero del da de la semana.
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.
ISDATE.-V e rifica si un determ inado va lo r puede considerarse de tip o fecha.
La fu n c i n Format perm ite asignar un fo rm a to a las fechas:
d-m-y
21-8-98
dd/mm/yy
21/08/98
dd-mmmm-yyyy
21-Ago-1998
h:m:s: AM /P M , dd/mm/yy
20:35:20 PM, 21/08/98

APLICACION DESARROLLADA N 14
Se debe ingresar e l nom bre y la fecha de nacim ie nto de una persona y
visualizarse p o r separado: El da, mes, ao, nm ero del da de la semana, la
fecha en letras y la fecha y hora actual.
Nombre

fjO S E MARIA

Fecha de Nacimiento

11 7-1 0-86

Mes Ingresado

P7
|

Ao Ingresado

|1986

D a Ingresado

O k

Salir

D a de la semana

V'&rsr&s-. / Z

afe
iHoy es 1 7 /0 7 /1 998 11:26:58 PM

PASO N 01 D ib u ja r

los controles.

=asi- 2l

PASO N 02 A s ig n a r

Labell

jfT extl

Label2

jText2

Label3

Label7

Label4

LabeIS

Label5

Label9

LabeIS

L abell O

las propiedades.

A sig ne las propiedades a los controles de tal manera que se visua lice n com o
se m uestra en la a plicacin a desarrollar.
1 4 6 ^ 1

las instrucciones.

L a siguiente in stru cci n muestran en la etiqueta N 12 la fecha y hora del

rupo

d it o r i a l

Megahyte

sistema. Se deben e s c rib ir en el evento F orm Load.

Prvate Sub Form_Load()


L abell2 = "Hoy es " + Str(Now)
End Sub
Las siguientes instrucciones perm iten v is u a liz a r los resultados que se de
sean. Se escriben en el evento C lic k del C o m m a n d l (O K ).

Prvate Sub Comm andl_Click()


Dim fecha As Date
Dim ndia, nmes As String *10
Dim da, mes, ao, diasemana As Integer
fecha = CVdate(Text2)
dia = Day (fecha)
mes Month(fecha)
ao = Year(fecha)
diasemana - WeekDay(fecha)
Label7 - dia
Label8 = mes
Label9 - ao
LabellO = diasemana
convierte el N del da de la semana en letras
Si desea escribir dos instrucciones en una
lnea, debe separarlas po r dos puntos
Select Case diasemana
Case 1 : ndia = "Domingo"
Case 2 : ndia = "Lunes "
Case 3 : ndia = "Martes"
Case 4 : ndia = "Mircoles
Case 5 : ndia = "Jueves"
Case 6 : ndia = "Viernes"
Case 7 : ndia - "Sbado"
End Select
convierte el N del mes en letras.
Select Case mes
Case 1: nmes = "Enero"
Case 2: nmes - "Febrero"
Case 3: nmes = "Marzo"
Case 4: nmes - "Abril"
Case 5: nmes = "Mayo"
Case 6: nmes = "Junio"
Case 7: nmes - "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes - "Setiembre"
Case 10: nmes = "Octubre"
Case 11: nmes = "Noviembre"
Case 12: nmes = "Diciembre"
End Select
Labell 1 = ndia+", "+Str(dia)+" de "+nmes+" de "+Str(ao)
End Sub

147

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe ser.. .


Valorl

FUNCIN DATEADD
Perm ite increm entar o d is m in u ir un inte rva lo de tiem po a una fecha. E l
in te rva lo de tiem pos puede ser un num ero de das, semanas, meses, aos,
etc., retornando una nueva fecha.
Su sintaxis es: D ateA d d ("In te rva lo ",V alo r,F e ch a)

Es o p c io n a l y perm ite in d ic a r cul es el p rim e r da de la semana se usar


V isual Basic. En fo rm a predeterm inada el p rim e r da de la semana es el
D o m in g o . Los valores que se pueden e s c rib ir son:
Valor
1
2
3
4
5
6
7

Intervalo
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:
Intervalo

yyyy
q
m

d
w
ww

h
n
s

Descripcin
Ao
Trimestre
Mes
Da del ao
Da
Da de la semana
Semana
Hora
Minuto
Segundo

VaIor2

Valor
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
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.

Fecha
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
Ejemplo:
Las siguientes instrucciones muestran en L a b e ll la fecha actual y en Label2
la fecha a nte rio r pero increm entada en dos semanas. Si desea d is m in u ir dos
semanas, debe e s c rib ir menos dos (- 2 ).
Label 1 = Now
Label2 = DateAdd("ww", 2, Now)

FUNCIN DATEDIFF
D evuelve la d ife re n cia entre dos fechas en un in te rv a lo de tie m p o indicado.
P or ejem plo, la d ife re n cia de dos fechas en das, semanas, meses, etc. Su
sintaxis es:
DateDiff(Intervalo, Fecha I, Fecha2, Valor I,VaIor2)

Intervalo
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
fechas. Los valores que puede tener son los m ism os que en la funcin DateAdd.
Fechal y fecha2
Son las fechas entre las cuales se va a c a lcu la r la d iferencia.

148

ru po

Descripcin
Domingo (predeterminado)
Lunes
Martes
Mircoles
Jueves
Viernes
Sbado

d it o r ia l

Megabyte<|fjj|||

Es o p cio n a l y perm ite in d ic a r cul es la p rim era semana del ao que usar
V isual Basic. En fo rm a predeterm inada es la semana que contiene al p rim ero
de enero. L os valores que se pueden e s c rib ir son:
V alor
D escripcin
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
(predeterm inado).
2 Em pieza con la Ira. semana que tenga al menos 4 das en el nuevo ao.
3 Empieza con la Ira semana que est completamente incluida en el nuevo ao.
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
en semanas que existe entre el 30 de Setiem bre del ao 1999 y el 01 de
M a y o del ao 2000.
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"))
NOTA
V isual Basic devuelve cero (0) si las fechas se encuentran dentro del m ism o
in te rv a lo de tie m p o indicado. Por eje m p lo, si el p rim e r da de la semana es
dom ingo, la instruccin:
Labell = DateDiff("ww", C V D atef 14-07-00"), CV D atef 15-07-00"))
Muestra en Labell el valor cero (0) porque el 14-07-00 es viernes y el 15-07-00es
sbado (la misma semana).
L a instruccin:
Labell = DateDiff("ww", CV D atef 15-07-00"), CVDate(" 16-07-00"))
M uestra en L a b e ll el v a lo r uno (1) porque el 15 de J u lio del ao 2000 es
sbado y el 16 de Ju lio del ao 2000 es d o m in g o (siguiente semana).

149

> CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe se r.. .

FUNCIN DATEPART
Perm ite obtener el in te rv a lo de tie m p o en el cual se encuentra una fecha.
P o r e je m p lo, a qu nm ero de la semana del ao corresponde a una fecha.
Su sintaxis es:
DatePart(Intervalo, Fecha, Valorl,VaIor2)

Intervalo
In d ica el in te rva lo de tie m p o en el que se encuentra la fecha. Los valores
que puede tener son los m ism os que en la fu n c i n D ateA dd.

Fecha
Es la fecha que se desea evaluar.

Valorl y Valor2
Son los m ism os que los de la fu n ci n D a te D iff.
Por e jem plo, la siguiente in stru cci n m uestra en L ab el 1 el trim e stre del ao
al cual pertenece la fecha actual.
Label 1 = DatePart("q", Now)

APLICACIN DE EJEMPLO:
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
in fo rm a ci n u tiliza n d o las funciones anteriores:
TTTc:
Fecha de Nacimiento

|oi

-05-68

N om bre de la E s ta c i n en la q u e n a c i

jO too

S igno Z o d ia c a l al q u e p e rte n e c e

|Tauro

N 9 de la S em ana del A o e n q u e n a c i

h 8

M eses T ranscurridos d e s d e q u e n a c i

{377

F e c h a A c tu a l D e spus de 3 Sem anas


23-10-1999

1. DIBUJAR LOS CONTROLES


g

L a b e ll

jl* e x t l

L a b e l2

1 1x 1
C om m andl j

L a b e IS

L a b e l3

L a b e l7

L a b e l4

L a b e lQ

L = b l5

150

ru po

C om m and?

d it o r ia l

Prvate Sub Form_Activate()


Textl = ""
Label7 = ""
LabelS = ""
Textl. SetFocus
F onnl.C aption = "Fecha A c tu a l: " + Str(Date)
End Sub
Instrucciones del del Botn Aceptar
Prvate Sub Commandl _Clck()
Dim Dia,Mes As Integer
Dim Fecha As date
IflsDate(Textl) Then
Fecha = CDate(Textl)
Da = Day( Fecha)
Mes = Month( Fecha)
Rem ESTACION DE NACIMIENTO
If(Dui>=23And Mes=12) OrMes- 10rMes=2 Or(Dia<=22 AndMes=3) Then Label6= "Verano"
lf(Dia>=23AndMes=3) 0rMes=4 0rMes=5 Or (Dia<=22And Mes=6) Then Label6= "Otoo"
lf(Dia> =23 AndMe=6)0rMes=70r Mes=8 Or (Dia< =22AndMes=9) Then LabeI6= "Invierno"
lf(Dia>=23AndMes=9) 0rMes=l()0rMes=II 0r(Dia< =22AndMes= 12) Then Label6="Primav.
Rem SIGNO ZODIACAL
lf(Dia>=21 And Mes=3) Or (Dia <= 20 And Mes = 4) Then Label7 = "Aries"
I f (Dia>=21 And Mes=4) Or (Dia <= 20 And Mes = 5) Then Label7 = "Tauro"
I f (Dia>=21 And Mes=5) Or (Dia<=20 And Mes = 6) Then Label7 = "Geminis"
lf(Dia>=21 And Mes=6) Or (Dia<=22 And Mes = 7) Then Label7 = "Cncer"
lf(Dia>=23 And Mes = 7) Or (Dia <= 22 And Mes = 8) Then Label7 = "Leo"
I f (Dia>=23 And Mes=8) Or (Dia < =22 And Mes = 9) Then Label7 = "Virgo"
I f (Dia>=23 And Mes=9) Or (Dia<=22 And Mes = 10) Then Label7 = "Libra"
I f (Dia>=23 And Mes=10) Or (Dia<=2l And M es= ll) Then Label7="Escorpio"
lf(Dia>=22 And M es= Il) Or (Dia<=21 And Mes=12) Then Label7="Sagitario"
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"
Label8 = DatePart("ww", CDate(Textl))
Label9 = DateDiff("m", CDate(Textl), Date)
Label 11 = DateAdd("ww", 3, Date)
Else
MsgBox "La fecha ingresada no es correcta", 64, "Verifique"
Textl.SetFocus
End If
End Sub

Instrucciones del del Botn Salir

L a b ' 19
L a b e l! O
L a b e ll 1

1.
ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Instrucciones del Form_Activate

M egabyte^

Prvate Sub Command2_Click()


End
End Sub

m k

CAPTULO III: Elementos de la Programacin

VISUAL B A SW co.no t e t e s e , . .

VAL

F U N C IO N E S T IP O H O R A
TIM E

I .a fu n c i n Val convierte una cadena de caracteres en un v a lo r num rico.


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 slo las Horas (H H ).

STR(Valor Numrico)

CHR

M INUTE

D evuelve el carcter A S C II de un valor. C H R (V a lo r).

O btiene slo los M in u to s (M M ).

ASC

SECOND

D evuelve el v a lo r A S C II de un carcter. A S C (C arcter).

O btiene slo los Segundos (SS).

FORM AT

F U N C IO N E S N U M E R IC A S
ABS
O btiene el v a lo r absoluto de un nm ero. A B S (N m e ro ).
BVT
O btiene la parte entera de un nm ero. IN T (N m e ro ).
SQR
O btiene L a raz cuadrada de un nm ero. S Q R (N m ero ).
RND
R etorna un v a lo r random .
Para obtener nm eros aleatorios en un in te rv a lo dado, use esta f rm u la :

R ealiza lo m ism o que STR , y adems da un fo rm a to a la salida de acuerdo


con el patrn especificado.
Ejemplo:
Si la variable Sueldo = 635, la siguiente instru cci n :
Textl = Format(Sueldo, ###,##0.00 )
V is u a liz a en la caja de texto el v a lo r: 635.00
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
significativos. E l sm bolo cero (0) representa un d gito cualquiera, incluyendo
los ceros no s ig n ific a tiv o s y adems redondea el resultado. E l punto indica
la p osicin del punto d ecim al y la com a es el separador de m iles. O tros

Int( i(Lm._superior-Km._inferior+l)*Rnd+ lm.Jnferior)

sm bolos que tam bin se pueden usar son: + -$ () y espacios. E l sm bo lo %

Por ejem plo, para obtener nmeros aleatorios entre 12 y 50 u tilic e la siguiente
form ula:

representa el v a lo r p o r ciento y aade este sm bolo al resultado.

Para indicar el separador decimal (punto o coma) debe hacerlo en la


configuracin del Windows.

Int((50 - 12 + 1) * Rnd + 12)


RANDO M IZE
In ic ia liz a el generador de nm eros aleatorios, p e rm itie n d o que no se repita

ISNUM ERIC

la secuencia de nm eros aleatorios anteriores.

Perm ite saber si un v a lo r se puede considerar com o num rico.


ISNUMERIC(Valor)

SGN
ISEM PTY

O btiene el signo de un nm ero. SGN(Nmero)

P erm ite saber si una variab le est vaca.

-1 Negativo, 0 Cero, 1 Positivo


HEX
C on vie rte un n m ero a Base H exa de cim a l. HEX(Nmero).
OCT
C o n vie rte un nm ero a Base O ctal. OCT(Nmero).

152

r u po

d it o r ia i

Megabyte

ISEMPTY (Variable)

ISNULL
Perm ite saber si el contenido de una variab le no es vlido.
ISNULL(Variable)

1 fc

153

ja m

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe ser.

APLICACIN DESARROLLADA N 15

NUEVAS FUNCIONES

Esta aplicacin es un eje m p lo de la u tilid a d de las funciones tip o num ricas.


x
Ingrese un nmero

j[~

Parle Entera
Parte Decima!

M U E S TR A

Valor Absoluto

NUEVO

Labell

(Textl

Label2

LabeIS

Label3

LabellO

Commandl

Labe!4

LabelH

Command?

L a Versin 6.0 de V isual Basic tiene las siguientes funciones:


ROUND
Esta fu n c i n perm ite redondear un nm ero a una determ inada cantidad de
decimales.

Round (Valor.; Nmero de Decimales)


M O NTHNAM E

Label5

Labell 2

LabelB

Labell 3

Esta fu n c i n m uestra el nom bre del mes a p a rtir de un nm ero entre 1 y 12.

Valor Octal (Base 8)

Label?

Labell 4

MonthName (Numero, Valor Lgico)

Valor Hexadecimal (Base 16)

Label

Labell 5

El nm 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.

R a z cuadrada
SALIR
Signo del Nmero

Command3

A sig ne la propiedad C aption al fo rm u la rio , botones de comandos y etiquetas


desde L a b e ll hasta L a b e l 8 . E l resto debe estar en blanco.
Instrucciones del botn M U E STR A:

Prvate Sub Commandl_Click()


Dim NUM As Double
I f lsNumeric(Textl) Then
NUM = Val(Textl)
Label9 = Int(NUM)
LabellO = NUM - Val(Label9)
Labelll = Abs(NUM)
No se puede obtener la Raz Cuadrada de un # Negativo
IfNUM > 0 Then
Lab el 12 = Sqr(NUM)
Else
Lab el 12 - "No Existe"
End If
Labell 3 = Sgn(NUM)
LabelM = Oct(NUM)
Labell 5 = Hex(NUM)
Else
MsgBox "Debe ingresar un valor numrico", 0, "Slo nmeros"
Textl = ""
Textl.SetFocus
End If
End Sub
En el botn N ue vo, lim p ie T e x tl y las etiquetas desde L ab el9 hasta Label5
y el botn S a lir escriba la in stru cci n E N D .

W EEKYDAYNAME
M uestra el nom bre del da de la semana a p a rtir de un N entre 1 y 7 segn
el 1er. D a de la semana co nfig urad o.

WeekDayName (Nmero, Valor lgico,Primer Da)


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
en abreviatura. P rim e r D a co n fig u ra el da que se debe considerar el que
in ic ia la semana y puede tener uno de los siguientes valores:
1 Domingo (Predeterminado), 2 Lunes, 3 M artes,... 7 Sbado.
Por ejem plo: W e e kD ayN am e(3,F alse,5) d evuelve sbado porque el 1er da
de la semana se ha c o n fig u ra d o a 5 (Jueves).
R E P LA C E
Reemplaza una subcadena p o r otra dentro de una cadena.
Replace (Cadena, SubCadenal, SubCadena2, ValorI, Valor2)

( 'adena es aquella donde se desea re a liz a r el reem plazo.


SubCadenal es la subcadena que va hacer reemplazada.
SubCadenal es la subcadena reem plazante.
V a lo r 1 es un v a lo r que in d ic a la p osicin de la cadena desde donde se va a
luiscar la subcadena que va hacer reemplazada.
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
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.

|VISUAL BASIC como debe ser...

CAPITULO III: Elementos de la Programacin

- "xs

STRREVERSE

FUNCIN SHELL

In v ie rte los caracteres de una cadena.

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

StrReverse (Cadena)

El ltim o carcter lo coloca p rim e ro , el p e n ltim o lo coloca segundo, etc.


FORMATCURRENCY

com o *.E X E , *.C O M , etc.) desde el V isu a l Basic.


Su sintaxis es:

SHELL RUTA Y NOMBRE DEL PROGRAMA,

A sig n a un fo rm a to m onetario a los nm eros. El signo m onetario depende de


la C onfigu racin R egional.

La ruta es la d ire cci n exacta de la carpeta donde se encuentra el program a

FormatCurrency (Nmero, Valorl, Valor2, Valor3, Valor4)


V a lo r l: Indica la cantidad de decimales.
Valor2: Indica si se muestra un cero en la parte entera cuando no hay decimales.
Valor3: Indica si los negativos deben estar entre parntesis.
Valor4: Indica si se muestra el separador para los miles.
Valor2, valor3 y Valor4 pueden ser:
-1 SI, 0 N O ,- 2 Segn la configuracin Regional

que se desea ejecutar.


E l v a lo r in d ic a el e stilo de la ventana donde se va a ejecutar el program a:
0

: O cu lta la ventana donde se ejecuta el archivo.

1
2

: E jecu ta el p ro g ra m a en su ve n ta n a d e ta m a o
: E jecuta el program a con su ventana m in im iza da .

: E jecuta el program a con su ventana m axim izada.

: E jecuta el program a con el tam ao y posicin mas reciente de su

NOTA

norm al.

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 segn la


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)

6:

Ejecuta el program a con su ventana m in im iz a d a y la ventana actual


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 .


Configuracin
regional

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


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

FORMATNUMBER
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
m onetario.

FORMATDATETIME
A sig n a un fo rm a to a datos tip o fecha y hora.
Form atD ateTim e(F echa, Valor)

Shell "c:\windows\calc.exe", 1
Shell "c:\windows\control.exe", 1

E l v a lo r puede ser:
0: F orm ato general (Fecha u H ora).
1: Form ato de fecha largo.
2: Form ato de fecha corto.
3: F orm ato de hora segn la c o n fig u ra c i n regional.

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
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).
P a ra o b te n e r este v a lo r u tilice la sig u ie n te sin taxis:
V A R IA B LE = SH E LL( R U TAY NOM BRE D E L PROG RAM A , VALOR)

4: M uestra la hora en fo rm a to de 24 hora.

156

r u po

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


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
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
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.

d it o r ia l

Meeabvte

| I i >

VISUAL BASIC como debe se r.. .

CAPTULO III: Elementos de la Programacin

APLICACIN 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 ms 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

Instruccin(es)

|P r o g r a m a a E /e c u ta r :

N E X T variable
STEP: Slo es necesario cuando el incremento es diferente de 1.
EXIT FORM: Permite salir del bucle.

C A LC U LA D O R A E LE C TR O N IC A

DO-LOOP

MICROSOFT W O R D

Permite ejecutar una o ms instrucciones mientras una condicin se cumpla


(W H IL E ) o hasta que se cum pla una c o n d ic i n ( U N T IL ). Tiene cuatro

MICROSOFT EXCEL

sintaxis:
EXP LO R A D O R DE W IN D O W S

D o W hile Condicin

SALIR A L D .O .S.

D o Until Condicin
Instruccin(es)

Instruccin(es)

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

Loop

Loop

Do

Do

Instruccin(es)

Si sale al D.O.S., escriba EXIT para regresar al Windows.

Loop W hile Condicin

Instruccin(es)
L oop Until Condicin

La instruccin de cada Botn de Comando es:


M UY IMPORTANTE
M ientras Visual Basic est ejecutando un bucle, no reconoce ningn evento. Esto
lo p u ed e evitar con la instruccin D oEvents.

Private Sub Command 1JClickf)


Shell "C:\WlNDOWS\CALC.EXE", 1
End Sub
Prvate Sub Command2_Click()
Shell "C:\Archivos deprograma\Microsoft Offtce\Office\WINWORD.EXE", 1
End Sub
Prvate Sub Commands_Click()
Shell "C:\Archivos de programa\Microsoft Ojfice\Office\EXCEL.EXE", I
End Sub
Prvate Sub Command4_Click()
Shell "C:\WINDOWS\EXPLORER.EXE", I
End Sub
Prvate Sub Command5_Click()
Shell "C:\WINDOWS\COMMAND.COM", 1
End Sub
Prvate Sub Command_Click()
End
End Sub

'mm

ru po

d it o r ia l

Megabyte

DOEVENTS
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
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
co n tin u a con el e v en to inicial.
E je m p lo s:
Dim x
Integer
For x = 1 To 10000
Labell .Left = x
Next

E stas instrucciones m ueven la etiqueta N 1 de


izq u ierd a a d erec h a y no se reco n o ce n ingn
evento hasta que termine.

Dim x As Integer
For x = / To 10000
Labe 11. Left = x
Doevents
Next

E stas instrucciones m ueven la etiqueta N 1 de


izquierda a derecha, p ero cada vez que ejecuta el
bucle verifica si ha ocurrido algn evento pa ra
ejecutarlo.

m s*

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe ser.

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 botn OK:

ju n to con su v a lo r A S C II y su va lo r B in a rio ; adems, 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 .
E JE M P L O S D E B U C LES

. |n| x|

IN G R E S E U N T E X T O
LE TR A
V A L O R A SC II
V A L O R B IN A R IO

OK

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


I ^

Form

-.In i x |
L a b e ll

IfT e x tl

La b e l2

LabeIS

La b e l3

LabelB

La bel4

L a bel?

Prvate Sub Commandl_C!ick()


TEXTO = Trim(Textl)
For X - 1 To Len( TEXTO)
Label7 = " "
LETRA = Mid(TEXTO, X, 1)
Label5 = LETRA
VALOR = Asc( LETRA)
Label = VALOR
La be 17 = BlNARIO( VALOR)
Label8 = Label7
Mvimiento del valor Binario
For T = 1 T 5000 Step 0.1
Label8.Left - T
Next T
N extX
End
End Sub

Instrucciones de la funcin BINARIO:


Prvate Function BINARIO(NUM)
Dim VALORBIN As String
Do While NUM > 1
RESTO = NUM Mod 2
NUM = N U M \2
VALORBIN = Trim(Str(RESTO)) + Trim( VALORBIN)
Loop
VALORBIN = Trm(Str(NUM)) + VALORBIN
BINARIO = VALORBIN
End Function

C om m a n d l I
LabelQ

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 segn el ejem plo.

160

ru po

d it o r ia l

Megabyte <

16,

ill i^

VISUAL BASIC como debe ser.. .

ARRAYS

CAPTULO III: Elementos de la Programacin

^ 1

APLICACIN DESARROLLADA N 18

U n array perm ite almacenar en una sola variable, varios elementos del m ism o

Se debe ingresar un nm ero del 1 al 7 y v is u a liz a r el nom bre del da de la


semana.

- I1-n|
x |1
------1----

tip o u tiliz a n d o un ndice. El p rim e r elem ento de un array se alm acena en


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 nmero (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
seccin 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 seccin de declaracin del fo rm u la rio .

Dim D (1 To 7) As String * 9

D ecla ra la va riab le N om de tip o cadena que p erm ite alm acenar veinte
elem entos (de 0 a 19).

3.

Dim A (1 to 15) A s Integer

Prvate Sub Form_Load()


'Almacena los elementos en el Array
D (1) = "Lunes"
D(2) = "Martes"
D(3) = "Mi rcoles"
D(4) = "Jueves"
D(5) = "Viernes"
D(6) = "Sbado"
D (7) = "Domingo"
End Sub
4. Escribrir las instrucciones del Botn OK.
Prvate Sub Commandl_Click()
Dim N As Integer
N = Val(Textl)
If N >= 1 And N <= 7 Then

D eclara la variable A de tipo integer que perm ite alm acenar 15 elementos
(de 1 a 15).

Static N um (1 to 4, 1 to 4) A s Integer
D eclara la variable N um de dos dim ensiones (4 * 4) de tip o Entero.
A r r a y s D in m ic o s .
Se caracterizan porque sus dim ensiones no son fijas.
E l espacio para un array d in m ico ser asignado durante la e jecucin del
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
m om ento de la ejecucin del program a.
R E D IM
Es una in stru cci n que perm ite ca m b ia r e l nm ero de elementos de un array,
se debe e scrib ir solamente en un p ro ce d im ie n to . E je m p lo:

Dim Num () As Integer


D ecla ra cin din m ica de la va riab le N u m de tip o Entero.
En el m om ento que necesite asignarle espacio puede e scribir:

Redim N um (N )
D onde N contiene el valor con el que desea redim ensionar la variable N um .

ljllllll^

162

G ru p o E d ito ria l
(

Megabvte

A s ig n a r los elementos al array en F O R M L O A D .

L ubel2- "El nmero ingresado representa el da "+D(N)

El se
MsgBox "Slo nmeros del 1 al 7", 0,
Textl = ""
Textl.SetFocus
End If
End Sub
El botn S A L IR debe tener la in stru cci n E N D .

"Por favor"

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe se r.. .

CREAR UNARRAYDE CONTROLES


E xisten dos form as de crear un array de controles:

l.Cuando los controles ya estn dibujados en el formulario.


Si los controles ya estn dibujados en el fo rm u la rio y desea crear con ellos
un array de controles, asgneles el m ism o nom bre (propiedad A M E ) a
cada uno de ellos. A l escribir el m ism o nom bre al segundo c o n tro l se

APLICACIN DESARROLLADA N 19
L a siguiente aplicacin perm ite ingresar valores en un array de 4 X 4
lle n a rlo con valores al azar entre 1 y 50, luego se pueden ordenar en fo rm a
ascendente y restaurar los valores iniciale s.
PASO N 1: D ib u ja r los controles
U s T E l

ti, F o tm l

visualiza el siguiente mensaje:


F ra m e l

M icrosoft V isu a l Basic


Y a existe un control llam a do 'N'. D e se a crear u n a m atriz de
co n tro le s ?

|[T e x tl

|T e x t2

I T e xt3

j T ext4

| t e xt5

JT extG

|Tex<7

I T e x t8

1T ext9

I T e x tl 0

|T e x t1 1

T e x tl 2

|T e x t1 3

|T e x tl 4

| t e x tl 5

1T e x tl 6

C om m andl
C om m a n d 2
C om m a n d 3

No

C om m a n d 4
C om m and5

Haga c lic k en el botn SI y contine 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 ensin cuyos elementos se d iferen cian por el
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
v a lo r 1, etc.

2. Cuando los controles todava no estn dibujados en el formulario.


Si los controles todava no los ha d ibujado en el fo rm u la rio , entonces d ib u
je slo el p rim e r c o n tro l y asgnele, si lo desea, un nom bre diferente al que
tiene en fo rm a predeterm inada, luego seleccinelo haciendo un C lic k en
dich o co n tro l y pulse las teclas CTRL+C, para co p ia rlo en la m em oria
de la com putadora y despus pulse las teclas CTRL+V, para pegarlo en
el fo rm u la rio .
L a p rim era vez que U d. pulsa CRTL+V, se visua liza el mensaje anterior,
haga C lic k en el botn SI y contine pulsando CTRL+V hasta que tenga
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,
pero con la propiedad IN D E X diferente. Cuando term ine ubquelos en su
respectivo lu g a r y en el orden correcto.

G ru p o E d ito r ia l

Cree un array de controles con las cajas de te xto usando cualquiera de los
dos form as indicas y asgnele el n om bre

Mega bvte

N en

la propiedad

ame a cada

una de ellas.

i,. ORDENACION DE UN ARRAY


V alores del Array

I2
I8
I 43
j GG

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 opcin


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 opcin
P e g a r (P aste).

164

PASO N 2: Convertir las Cajas de Texto en un array.

1 I4 I 5
I 12 !
1
1
I 76
3

|23

44

NUEVO
[ ' O R D E A R ']

28

|S3

|54

leo

1154

RESTAURAR I
LLENAR
SALIR

CAPTULO III: Elementos de la Programacin

y!' VISUAL BASIC como debe ser.. .

^| feiP

PASO N 3: Escribir las instrucciones para los controles.

Instrucciones del Botn 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


declare las siguientes variables:

Estas instrucciones llenan las cajas de texto con valores al azar entre 1 y 50.
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


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
originales en el array O R IG E N

azar entre un rango determ inado se u tiliz a la siguiente fo rm u la :

Int((lmitesup - lmiteinf + 1) * Rnd

lmiteinf)

Lmitesup:

Dim ORIGEN( 16) As Integer


Dim YA As Boolean

Es el v a lo r m xim o que deseamos obtener.

Lmiteinf:

Instrucciones del Evento FORM ACTIVATE

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.

Prvate Sub Form_Activate()


A l activarse el formulario se llaman a las instrucciones del
'Commandl para limpiar el contenido de las cajas de texto
CommandljC lick
End Sub

Por e je m p lo para obtener valores al azar slo entre 7 y 36 se escribe:

lnt( ( 3 6 - 7 + 1 ) * Rnd + 7).

Int:
Es una fu n c i n que p erm ite obtener slo la parte entera (sin decim ales) de
un valor.

Instrucciones del Botn NUEVO


Estas instrucciones perm iten lim p ia r el contenido de las cajas de texto para
ingresar nuevos valores.

Prvate Sub Commandl_Click()


Dim X A i Integer
F orX = OTo 15
N(X) = " "
N extX
N(0).SetFocus
Activa el botn ORDENAR
Command2.Enabled = True
Inicializa la variable Ya
YA = False
End Sub

166

G ru p o E d ito ria l

Megabyte

Prvate Sub Command4_Clck()


Almacena en las cajas de texto
valor al azar entre 1 y 50
F orX = OTo 15
N(X) = lnt((50 -1 + 1 )* Rnd + I)
Next X
Activa el botn ORDENAR
Command2.Enabled = True
Desactiva el botn RESTAURAR
Command3.Enabled = False
Inicializa la variable Ya
YA = False
End Sub

CAPTULO III: Elementos de la Programacin

VISUAL BASIC como debe. ser. _.

Instrucciones del Botn ORDENAR

APLICACIN DESARROLLADA N 20

Prvate Sub C o m m a n d l _C lick()


Dim A R ( 16) A i Integer
Copia los valores de las cajas de texto en las
variables tipo array A R y O RIG EN
F o r X = 0 T o l5
I fN o t YA Then
O RIG EN(X) = Val(N(X))
E n d lf
A R (X ) = Val(N(X))
N ext
O rdena los valores que se encuentran en la variable A R
Do
sw - 0
F or X = 0 7o 14
I fO p tio n l Then
IfA R (X ) > A R (X + 1) Then
A X - A R (X )
A R (X ) = A R (X + 1)
A R (X + 1) = A X
sw - 1
E n d lf
Else
IfA R (X ) < A R (X + 1) Then
A X = A R (X )
A R (X ) = A R ( X + 1)
A R (X + 1) - A X
sw = 1
E n d lf
E n d lf
N e x tX
Loop Until sw = O
M uestra los valores ordenados en las cajas de textos
F o r X - O To 15
N (X ) = A R (X )
N e x tX
YA - True
A ctiva el botn restaurar
C om m and3.E nabled - True
E nd Sub

La siguiente a plicacin perm ite m anejar los elem entos de array de 4 x 4.


Estos elementos son valores n um ricos de tip o entero con los cuales se
realiza los siguientes procesos:
1.- Suma las filas.
2.- Suma las colum nas
3.- Sum ar las diagonales, etc.

a. MANEJO DE ARRAYS
COL 2

COL 3

COLI

FILA 1 [ i

C0L1

[2

[6

F IU 2 |2

p-------

f -------- |20

FIL43 p

[5

p -

[3

n w . p ------- [o

!n |x

LIMPIAR EL ARRAY

LIMPIA LOS BESULTADOsj

j3

p ----------p

SUMA U S COLUMNAS |

SUMA LAS ElLAS

[ _ _

|
COLUMNA 1 |
FILAI

SUMAS INDEPENDIENTES ----COLUMNA 2 |


FILA 2

DIAGONAL Ni 1 | \ )
|25

|
| j

COLUMNA 3 |
FILA3

COLUMNA 4 |

F ILM

DIAGONALN12 [ / )

|15

SAUR 1 1

PASO N 1: Dibujar los controles.


Labell Label2

Label5
Label
: Labd7

Label8

Label3 LabeM

|7^r frr [
; 1Text5

Text6

|Text7

f r ^ T

fie x iT f ^ T

.........................

f r l* ;
jexl8

Command2

Label14 -

fr3 rt2

|TexH3 Text14 |TexH5 fTextlG L-abel16


: LabeB

Command3

Command4

LabellO Labdl.1 Label12 : : : : : : :

Instrucciones del Botn 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 ).
Comrraiid9

Prvate Sub Command3_Click()


For X = O To 15
N(X) = ORICEN(X)
NextX
End Sub

168

Commandl 0

Commandl 3

Labell 8

Command'll

Commandl 2

I;

Commandl 4

Labell 9
Commandl 5

G ru p o E d ito r ia l

Megabyte

>

lll^ I' VISUAL BASIC como debe ser.. .

PASO N 6: Escribir las instrucciones para los controles.

PASO N 2: Convertir las Cajas de Texto en un array.


U tilic e cualquiera de las dos form as explicadas. A signe el nom bre
una de las cajas de Texto.

CAPTULO III: Elementos de la Programacin

N a cada

En la ventana de declaracin del fo rm u la rio d efin a las siguientes variables:


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


en un array de controles.

C rear el siguiente p ro ced im ien to en el fo rm u la rio .

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


IN D E X de cada etiqueta de tal manera que Label9 se llam e SC, pero que su
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
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.
Para cam biar el va lo r de la propiedad IN D E X de cada c o n tro l debe empezar
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

program ar de una fo rm a ms cm oda p o r que el array de controles em pieza


con el In dice uno (1) y no con el cero (0).

PASO N 4: Convertir las Etiquetas desde Labell3 hasta Labell


en un nuevo array de controles.
Asigne a cada una de estas etiquetas el nom bre SF empezando p o r Label 13
en form a ordenada hasta label 16, pero al fin a l cambie el va lo r de la propiedad
IN D E X de cada etiqueta de tal manera que Label 13 se llam e SF, pero que
su propiedad IN D E X tenga el va lo r 1, Label 14 tenga en su propiedad IN D E X
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
en su propiedad IN D E X el va lo r 4.

MUY IMPORTANTE
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
L a b e ll ) para ca m biar el va lo r de la propiedad IN D E X .

PASO N 5: Asignar a los otros controles sus propiedades.


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
comandos com o para las etiquetas, algunas etiquetas tienen adems en la
propiedad B O R D E R S T Y L E el v a lo r 1-S ing le Fixed.

170 ^

ru po

d it o r ia l

Megabyte < ^ ||||

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

NO TA:
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
em p ie za n con el v a lo r 1.

Sub PASAR()
X=0
For COL = lT o 4
For FIL = lT o 4
A(COL, FIL) = Val(N(X))
X =X+1
Next FIL
Next COL
End Sub

Instrucciones para el evento FORM_ACTIVATE.


Prvate Sub Form_Activate()
Al activarse el formulario llama al procedimiento
COMMAND1JCLICK (Limpia los valores) y al
'procedimiento COMMAND2_CLICK (Limpia los resultados)
Commandl jC lick
Command2_Cl ick
End Sub
Botn LIMPIAR EL ARRAY

Botn L IM P IA LOS RESULTADOS

Private Sub Commandl_Click()


'Limpia los valores del array
F orX - OTo 15
N(X) = ""
Next X
N(0).SetFocus
End Sub

Prvate Sub Command2_Click()


'Limpia los resultados
F orX - 1 To 4
SF(X) = ""
SC(X) = ""
Next X
End Sub

171

CAPITULO III: Elementos de la

VISUAL BASIC como debe ser..


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
P rivate Sub C om m and3_C lick()
Llam a al procedim iento "PASAR"
PASAR
SUM A L A S C O LU M N A S D E L A R R AY
F or CO L = 1 To 4
SU M A(C O L) = 0
F or FIL = 1 To 4
SU M A (C O L) = SU M A (C O L) + A (F IL, COL)
N ext FIL
N ext COL
F o r X = 1 To 4
SC (X ) = SU M A (X )
N e x tX
E nd Sub
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
Prvate Sub C om m and4_C lick()
Llam a al p rocedim iento "PASAR"
PASAR
SUM A L A S F ILA S D E L A R R A Y
F or F IL = I To 4
SU M A (F IL) = 0
For CO L = 1 To 4
SU M A (F IL) = SU M A (F IL ) + A(FIL, CO L)
N ext COL
N ext FIL
F or X = 1 To 4
SF(X) = SU M A(X)
N e x tX
E nd Sub
Instrucciones: Botn COLUMNA 1
Instrucciones: Botn COLUMNA 2
Prvate Sub Command5_Click()
Prvate Sub Command6_Click()
Suma slo la columna 1
Suma slo la columna 2
ST = 0
PASAR
PASAR
ST = 0
Command2_Click
Command2_Click
F orX = 1 To 4
F orX = 1 To 4
ST = ST + A(X, 1)
ST = ST + A(X, 2)
NextX
NextX
S C (1 ) = ST
SC(2) = ST
End Sub
End Sub
G ru p o E d ito ria l

M egabyte^

Instrucciones: Botn COLUMNA 3


Prvate Sub Command7_Click()
Suma slo la columna 3
S T -0
PASAR
Command2_Click
For X = lT o 4
S T = S T + A(X, 3)
NextX
SC(3) = ST
End Sub

Instrucciones:Botn COLUMNA 4
Prvate Sub Command8_Click()
Suma slo la columna 4
ST= 0
PASAR
Command2_Click
F orX = lT o 4
ST = ST + A(X, 4)
NextX
SC(4) = ST
End Sub

Instrucciones del Botn FILA 1


Prvate Sub Command9_Click()
Suma slo la fila 1
ST = 0
PASAR
Command2_Click
F orX = I To 4
S T = S T + A (l, X)
NextX
SF( 1) = ST
End Sub

Instrucciones del Botn FILA 2


Prvate Sub Commandl 0_Click()
Suma slo la fila 2
ST = 0
PASAR
Command2_Click
For X = 1 To 4
ST = ST + A(2, X)
NextX
SF(2) = ST
End Sub

Instrucciones del Botn FILA 3


Prvate Sub Commandl 1_Click()
Suma slo la fila 3
ST = 0
PASAR
Commcind2_Click
For X = IT o 4
ST = ST + A(3, X)
NextX
SF(3) = ST
End Sub

Instrucciones del Botn FILA 4


Prvate Sub Commandl 2_Clck()
Suma slo la fila 4
ST = 0
PASAR
Command2_Clck
For X = 1 To 4
ST = ST + A(4, X)
NextX
SF(4) = ST
End Sub

Instruc.:Botn DIAGONAL 1(\)


Prvate Sub Commandl 3_Click()
Suma la diagonal 1 ( \ )
PASAR
ST = 0
F orX = 1 To 4
ST = ST + A(X, X)
NextX
Labe! 18 = ST
Eiul Sub

Instruc.: Botn DIAGONAL 2 (/)


Prvate Sub Commandl4_Click()
Suma la diagonal 2 ( / )
PASAR
ST = 0
For X = 1 To 4
ST = ST + A(X, 5 - X)
NextX
Lab el 19 = ST
End Sub

173

VISUAL BASIC como debe ser...

CAPTULO III: Elementos de la Programacin

PASO N 2: Asignar las propiedades a los controles.

APLICACIN DESARROLLADA N 21
La siguiente a plicacin 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, asgneles 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.

PASO N 3: Escribir las instrucciones para los controles.

m. O P E R A C IO N E S C O N A R R A Y S
AR RAY " A "

D efinir las variables a nivel de Form ulario


Dim X, F, C A s Byte
Dim AA( 1 To 3, 1 To 3) A s Inte ge r
Dim AB( T o 3, 1 To 3) A s Integer
Dim AR( I To 3, To 3) A s Single

ARRAY "B "

[a

[5

[9

I3
Io

|7

|-4

|7

10

|-5

|-1

I9

Transpuesta

pr

Transpuesta

Instrucciones del Form_Activate.


Prvate Sub Form_Activate()
Rem Limpian el contenido de los arrays
For X = OTo 8
A(X) = "
B(X) = ""
R(X) = ""
N extX
A(0).SetFocus
End Sub

R E SU LTADO

I 13 I 8
I 10 1 8
1 9 1 -2

Borrar

4
6

1
1

Llenar

Salir

OPERACIONES :
i urna

i|

R e sta

J M ultip lic a [

d iv id e

2A * 3B

PASO N 1: Dibujar los controles


D ib u je los co ntrole s com o de m uestran en el ejemplo. Para el 1er. A rra y,
d ib u je la le ra ., caja de texto y asgnele el nombre (am e)

A, luego

cpiela

hasta tener 9 (desde A (0 ) hasta A ( 8)). A l 2do. Array, asgnele el nom bre
y al 3er.array (etiquetas) asgnele el nom bre

Labell

R.

T extl

Textl

|T e x t l J T extl

|T extl

T extl

Textl

jT ex tl

|Text1~ |T extl

JT extl

Textl

Textl

JTextl

jT extl

Command2 I

Commandl

|Text1

jTextl

Transpuesta para el Array A.


Private Sub Command_Click()
Rem Traspuesta del array A
PASAR
For F - T o 3
For C = 1 To 3
AR(C, F) = AA(F, C)
Next C
Next F
MOSTRAR
End Sub

Label3
Label4 Label4 Label4

Command8

Label4 Label4 Label4

Commarid9 j

Label4 Label4 Label4

Commandl 0

Framel
Commands

174

Command4

Commands Commands Command7

ru po

Instrucciones del Botn BO RRAR.


Prvate Sub Command8_Click()
Form_Activate
End Sub

Label2

jTextl

Instrucciones del Botn LLE N A R .


Prvate Sub Command9_Click()
Rem Llenan los dos Arrays con valores entre -5 y 0.
Randomize
F o rX = OTo 8
A(X) = Int((10 - (-5) + l ) * R n d + (-5))
B(X) = Int((10 - (-5) + ) * Rnd + (-5))
N e x tX
End Sub

d it o r ia l

M eg a b y te^

Transpuesta para el Array B.


Prvate Sub Com mandl_Click()
Rem Traspuesta del array B
PASAR
For F = 1 To 3
For C - To 3
AR(C, F) = AB(F, C)
Next C
Next F
MOSTRAR
End Sub

Ufo VISUAL BASIC como debe se r.. .

CAPITULO III: Elementos de la Programacin

Instrucciones del Botn SUMAR.

Instrucciones del Botn RESTAR.

Prvate Sub Command3_Click()


Rem Suma los valores.
PASAR
For F =1 To3
For C = 1 To 3
AR(F,C)=AA(F,C)+AB(F,C)
Next C
Next F
MOSTRAR
End Sub

Prvate Sub CommandA_Click()


Rem Resta los valores.
PASAR
For F - 1 To 3
For C = 1 To 3
AR(F,C)=AA(F,C)-AB(F,C)
Next C
Next F
MOSTRAR
End Sub

Instrucciones del Botn MULTIPLICAR.


Prvate Sub Command5_Click()
Rem Multiplicacin los valores de los Arrays
Dim Y As Byte
PASAR
For F - 1 To 3
For C - 1 To 3
AR(F, C) = 0
For Y = 1 To 3
AR(F, C) = AR(F, C) + (AA(F Y) * AB( Y, C))
Next Y
Next C
Next F
MOSTRAR
End Sub

Instrucciones del Botn 2A + 3B (Multiplicacin Escalar).


Prvate Sub Command7_Click()
Rem Multiplicacin Escalar 2A.3B
PASAR
For F = 1 To 3
F orC = 1 To 3
AR(F, C) = AA(F, C )* 2 + AB(F, C)
Next C
Next F
MOSTRAR
End Sub

176

ru po

Instrucciones del Botn DIVIDIR.


Prvate Sub Command6_Click()
Rem Divide los valores de los Arrays
PASAR
For F = 1 To 3
For C = 1 To 3
I f AB(F, C) o O Then
AR(F, C) = AA(F, C)/AB(F, C)
End If
Next C
Next F
Rem Muestra los resultados con 2 decimales
Dim N As Byte
For F = 1 To 3
For C = 1 To 3
R(N) = Format(AR(F, C), "##0.00")
N = N+ 1
Next C
Next F
End Sub

Instrucciones del PROCEDIMIENTO PASAR.


Sub PASAR()
'Pasan los elementos desde los Text al Array Bidimesional.
Dim N As Byte
For F = 1 To 3
F orC = 1 To 3
AA(F, C) = A(N)
AB(F, O = B(N)
N = N+ 1
Next C
Next F
End Sub

Instrucciones del Botn MOSTRAR.

'Muestran los resultados en el array R (etiquetas).


Sub MOSTRARO
Dim N As Byte
For F = 1 To 3
For C = 1 To 3
R(N) = AR(F, C)
N = N+ I
Next C
Next F
End Sub

d it o r ia l

Megabyte

177

A S if r VISUAL BASIC como debe se r.. .

CAPTULO III: Elementos de la Programacin

ERRORES MAS COMUNES


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
cue lo vu elva a com eter.

Microsoft Visual Basic


Compile error:
Variable not defined
Aceptar

Variable no definida. Est usando una


variable sin definirla. Defina la variable o
borre O PTIO N E X P L IC IT del objeto
GENERAL.

Ayuda

Microsoft Visual Basic


Compile error:
*
[

Expected: list separator o r )

Aceptar

PREG UNTAS
1.
2.
3.
4.
5.
6.

7.
8.
9.
10.
11.

Se esperaba separador de lista o


parntesis.

12.

Verifique que ha cerrado parntesis.

13.

Ayuda

14.
15.

Microsoft Visual Basic


Compile error:

Se esperaba THEN.

Expected: Then or GoTo


Aceptar

jl

Avuda

Probablemente se o lv id o de escribir
T H E N despus de la condicin en la
instruccin IF.

16.
17.
18.
19.
20

DE

REPASO

Ng

03

Por defecto una variab le es de tip o :


Escriba la sintaxis de la fu n c i n M sgb ox.
Por qu es im portante Setfocus.
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?
E xp liq u e los atributos de una variable.
E xp liq u e las caractersticas de una variable, Loca l, a N iv e l de F orm ulario
y G lobal.
Cm o se activa la ventana para declarar variables a N iv e l de M dulo?
Cm o se declara la va riab le A de tip o In te ge r y de m bito G lo ba l.
U na variable num rica p o r defecto tiene el v a lo r .....y la de tip o cadena
C m o se borra el contenido de una caja de textos?
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 )
De la pregunta a nte rio r Qu v a lo r tom a la variable R si el usuario
hace c lic k en Cancelar?
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 )
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 .
E scriba los Iconos y Botones con su respectivo v a lo r que podem os
visu a liza r en el M sgb ox.
Qu valores puede d e v o lv e r el M s g b o x y a qu botn pertenece?
Qu fu n c i n cum ple: C H R (13 )?
Qu es una palabra reservada y con qu palabra reservada se define
una variable y qu fu n c i n cum ple?
Si en la ventana de declaracin de variables se tiene la instru cci n
O P T IO N E X P L IC IT qu s ig n ifica ?
Cuantos tipos de p rocedim ientos existente?
IM P O R T A N T E
Con los conocim ientos adquiridos hasta ahora ya est en condiciones de
desarrollar m uchas Aplicaciones.

Run-time error '13':


Type mismatch

Error de Tipo
Los Datos o variables
son de diferente tipo.
End

178

Debug

Help

G ru p o E d ito r ia l

Megabyte

179

CAPITULO IV
SISTEMA
DE
VENTAS
Castaeda O

HORA

54:42 AM

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 slo c o n tro l.
Se puede d ib u ja r sobre controles que estn en el fo rm u la rio , los
cuales quedarn 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. Segn el nm 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 ao 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 bin pa ra los
controles que se encuentran dentro de l.

w 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.

a .. M A T R I C U L A D E A L U M N O S
-D A T O S

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

PERSONALES

Nombre

fig u ra s de d iferen te form a.

Direccin
T elfono

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. Segn el nm 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
Q BCO LO R :
Es una fu n c i n que p e rm ite asignar colores.
Su sintaxis es QBCOLOR(Valor). E l v a lo r es un num ero entre 0 y 15 que
representa el v a lo r a asignar:

Selecciona el e stilo del fo n d o para la fig ura.


BO RDERCO LO R
A sig n a un c o lo r para el borde de la fig u ra .
BO RD ERSTYLE

COLOR

OSCURO

CLARO

0
1
2
3
4
5
6
7

8
9
10
11
12
13
14
15

Negro
Azul
Verde
Aguamarina
Ro jo
Fucsia
Amarillo
Blanco

A s ig n a el estilo del borde.


B O R D E R W ID T H
Para cam biar el ancho del borde.
F IL L C O L O R
A s ig n a el c o lo r que rellen a la fig u ra .

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 IL L S T Y L E

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


R ojo , Verde y A z u l.
Su sintaxis es: R G B (Valorl, Valor2, Valor3). Los tres valores pueden ser
un nm ero entre 0 y 255 que representan la intensidad asignada a los colores
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
intensidad asignada al c o lo r R ojo, el V alor2 representa la intensidad asignada
al c o lo r Verde y el va lo r3 la intensidad para el c o lo r A z u l.

Para seleccionar el tip o de la fig u ra que deseamos

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:

F orm l.B ackC olor = RGB(255, 0, 190)

184

G ru p o E d ito r ia l

Megabyte

I Shape

lo - RectanaleHffSS*
0 - Rectangle
1 - Square
2 - Oval
3 - Circle
4 - Rounded Rectangle
5 - Rounded Square

MI

___________________ ____

W t& m VISUAL BASIC como debe ser.. .

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


lneas.

P R IN C IP A LE S PRO PIED AD ES D E L CO NTROL LIN E :

AME
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
etc. Segn el nm ero de lneas que se d ib u je n en el fo rm u la rio .

BORDERCOLOR
A sig n a un c o lo r para el borde de la lnea.

BORDERSTYLE
A s ig n a el e stilo del borde.

BORDERWIDTH
Para ca m b ia r el ancho del borde.

DRAWMODE

Es un control que se u tiliz a para m ejorar el aspecto de un fo rm u la rio


insertando dibujos o grficos. Estos grficos 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
automticamente el mismo tamao del control.
Los archivos m apa de b its , son imgenes representadas por pixeles.
Norm almente estos archivos tienen la extensin *.BM P.
Los Iconos son grficos que se u tiliz a n norm alm ente para representar
aplicaciones minimizadas en M ic ro s o ft W indow s. Estos archivos tienen la
extensin *.IC O .
Los M e ta rc h iv o s representan grficos como lneas, crculos, etc., como
pixeles. Estos archivos normalmente tienen la extensin *.W M F . El este control
tambin puede mostrar archivos M etarchivos mejorados con la extensin * .JPG
y *.G IF.
Ud., p u ed e utilizar cualquiera de los g rficos que estn instalados en su
com putadora o crear sus pro p io s grficos utilizando p o r ejem plo el Paintbrush.

PRINCIPALES PROPIEDADES DE UN PICTURE BOX:

A sig n a el m odo de la lnea.

VISIBLE

AME
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 lneas que se


pueden d ib u ja r en una aplicacin.

AUTOSIZE
Para in d ic a r si el g r fico debe visualizarse con su tamao o rig in a l o segn el
tam ao del P ictureB ox.

BAC KC O LO R
Selecciona un c o lo r para el fondo.
BORDERSTYLE
A sig n a el estilo del borde.
DRAWSTYLE

\\

E tiq ue ta d e n tro de la Ftguid

Y\
\ \

.......

Asigna el estilo de lnea de los crculos y cuadros creados con los mtodos grficos.
DRAW W IDTH
Asigna el ancho de lnea de los crculos y cuadros creados con los mtodos grficos.
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 RFICO S

A s ig n a el c o lo r que se usado para lle n a r form as, tam bin se usa para llen ar
c rc u lo s y cuadros creados con los m todos g rficos C irc le y L in e .

FILLSTYLE

Son instrucciones que operan sobre un objeto com o un Form , P ictureBox,


P rin te r y efecta operaciones de d ib u jo en tie m p o de ejecucin com o una

A s ig n a el e stilo de re llen o para los controles Shape, as com o los crculos y


los cuadros creados con los m todos g r ficos C irc le y L in e .

a nim a cin o sim ulacin. L os m todos g r ficos son:

FONTTRANSPARENT

CIRCLE

In d ic a si el texto y los g rficos de fo n d o de un objeto F orm o Printer, o de un


c o n tro l P ictu reB o x, se m uestran en el espacio situado entre los caracteres.

P erm ite d ib u ja r crculos, una elipses o arcos. S intaxis:

FORECOLOR

C irc le (x ,y ), radio, c o lo r

A s ig n a el c o lo r para los crculos y los cuadros creados con los mtodos


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
D ra w m o d e debe tener el v a lo r 13 - C o p y Pen

PICTURE

Si se o m ite el c o lo r se tom a el de la p ropiedad F orecolor. Los argum entos


X ,Y es el punto central del crcu lo . Por e je m p lo, la siguiente instru cci n
d ib u ja un crcu lo en un c o n tro l P ic tu re B o x de c o lo r ro jo .
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 grficos.

Las caractersticas 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.


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 ,
7=centm etro.

Para crear elipses o arcos u tilic e la sintaxis:


C irc le (x ,y ), radio, color, in ic io , fin , aspecto
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


para g r ficos.

E l v a lo r predeterm inado para in ic io es 0 radianes; el v a lo r predeterm inado

SCALEHEIGHT
Indica el valor m xim o de la altura de un control cuando se u tiliza instrucciones
para g r ficos.

VISIBLE

para fin es 2 * pi radianes.


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
del crculo. E l valor predeterminado es 1.0, lo que produce un crculo perfecto.

LINE

Para in d ic a r si se desea visu a liza r el d ib u jo o g r fico .

Perm ite d ib u ja r lneas o rectngulos. S intaxis:

Ejemplo de una aplicacin con el control PictureBox.


n r m

n i mi 11

miman m i n i n a ...........

i- Informacin dei A lu m n o ...... -...................................


Alumno
j
I Curso

[color],

[B][F]

X I y Y l , es el punto in ic ia l de la lnea o rectngulo.


X 2 y Y 2 , es el punto fin a l de la lnea o rectngulo.

N ota N* 01

Nota N 9 02

Es opcional. Si se in c lu y e , hace que se d ib u je un cuadro usando las


coordenadas para espe cifica r las esquinas opuestas del cuadro.

Promedio

Observacin

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:
N uevo

188

Line (xl, yl) - (x2, y2),

Es opcional. Si se u tiliza la opcin B, la opcin F especifica que el

u tiliza r F sin B. Si se u tiliza B sin F, el cuadro se llena con los valores actuales de

Calcular el Promedio

Salir

G ru p o E d ito r ia l

F illC o lo r y F illS tyle. E l valor predeterminado para F illS tyle es transparente.

M egabyte^

B B fa - VISUAL BASIC como debe ser.. .


L a siguiente in stru cci n d ib u ja una lnea 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 botn de com andos y un Tim er.

L a siguiente in stru cci n d ib u ja un rectngulo en el c o n tro l P ictu re B o x.

i. Formi

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 rficos 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 A S O N 2: E s c rib ir las instrucciones para los controles.

P ic tu r e l. c ls
P R IN T
M uestra un texto en un fo rm u la rio o en el co n tro l P ictu reB o x.

D ebe crear 3 p rocedim ientos para que cada uno de ellos d ib u je crculos,
lneas y rectngulos.

Por e jem plo la siguiente instru cci n m uestra el texto D IB U J A N D O en el

Rem Definicin de las variables


Public maxcolumna, maxfila, color As Integer
Public coll, col2, fill, fil2 As Integer

p rim e r c o n tro l P ictureB ox.

P ic tu r e l.P r in t " D IB U J A N D O

APLICACIN DESARROLLADA N 22
En la siguiente a plicacin se m uestra dentro de tres controles P icturebox
crculos, lneas y rectngulos con un tam ao, c o lo r y p o sici n al azar.

Mtodos Grficos

P r i v a t e S u b T i m e r l _ T i m e r ()
c rc u lo s
lin e a s
re c t n g u lo s
End Sub

Finalizar

G ru p o E d ito ria l

Sub lineas()
maxcolumna = Picture2.ScaleWidth
maxfila = Picture2.ScaleHeight
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
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

Megabyte ~4 l

p li|

P r i v a t e Su b F orm _L oad()
R a nd om ize
T i m e r l . I n t e r v a l = 100
End Sub

191

S i k > VISUAL BASIC como debe se r...


Sub crculos()
Dim columna, fila, margder, margsup, margderm As
Integer
Dim margsupm, maxradioder, maxradiosup, radio As
Integer
maxcolumna = Picturel.ScaleWidth
maxfila = Picturel.ScaleHeight
columna = I nt((maxcolumna - 1 + 1 ) * Rnd + 1)
fila = Int((maxfila - 1 + 1 ) * Rnd + 1)
margder = Picturel.ScaleWidth
'mximo ancho
margsup = Picturel.ScaleHeight ' mxima altura
Re7i Obtiene el punto central del. control picture
margderm = Picturel.ScaleWidth / 2
margsupm = Picturel.ScaleHeight / 2
color = I n t ((14 - 1 + 1 ) * Rnd + 1) 'Color al azar
If columna>margderm Then
maxradioder=margder-columna
El se
maxradioder = columna
End If
If fila > margsupm Then
maxradiosup = margsup - fila
El se
maxradiosup = fila
End If
If maxradioder > maxradiosup Then
radio = maxradiosup
El se
radio = maxradioder
End If
Picturel.ForeColor = QBColor(color)
Picturel.Circle (columna, fila), radio
If (Int(Timer) Mod 10) = O Then
Picturel.Cls
Picture2.Cls
Picture3.Cls
Randomize
End If
End Sub
Sub rectngulos()
maxcolumna - Picture3.ScaleWidth
maxfila = Picture3.ScaleHeight
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
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)
Picture3.Line (coll, fill)- (col2, fil2), , B
End Sub

192

G ru p o E d ito ria l

Megabyte <

BUSCANDO G RAFICO S EN LA COMPUTADORA


N orm alm ente los grficos que Ud. puede insertar se encuentran en la carpeta
G raphics que se encuentra dentro de V b . Tam bin puede insertar grficos
del M ic ro s o ft O ffic e que norm alm ente se encuentran en la siguiente ruta:

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


Si desea buscar en el disco de su com putadora todos los gr ficos que puede
insertar, siga los siguientes pasos:
l

~1 Programas

tareas del W in d o w s y e lija la opcin Buscar y

----- 3 Documentos

m
\

Haga un C lic k en el B o t n In ic io de la barra de

Configuracin

Buscar

luego A rc h iv o s o Carpetas.
Archivos o carpetas...
PC...

^ Mediante Miciosoft Outlook...

Ayuda
1

^
Ejecutar...

y j

Suspender

^ jj

Apagar el sistema...

|i;H jn ic iq i

2. Visualizar la siguiente ventana:

m Buscai:
A rc h iv o

todos los archivos

E d ici n

Ver

O p c io n e s

A yuda

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
B uscar ahora

Nom bre:
B uscar en: |M i PC

-w j

Examinar.,

N u e v a b sq u e da

in c lu ir subcarpetas

En la caja de textos N O M B R E : escriba un asterisco ( * ) y luego un punto


seguido de la extensin del tip o de a rc h iv o g r fic o que desea buscar.

H- VISUAL BASIC como debe se r..


Por ejem plo: Para buscar todos los archivos grficos que tengan la extensin

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 grficos a la vez, indquelos separados
p or un espacio en blanco.
Por ejem plo: para buscar todos los g r fico s con la extensin B M P , IC O y
W M F , debe e scribir: * .B M P *.IC O * .W M F
En la caja de textos B U S C A R EN : seleccione M I PC para que los archivos
g r ficos se busquen en todos los discos de su com putadora. As:
A rc h iv o

E d ic i n

Ver

O p c io n e s

|* .B M P " ICO X.W M P

3.

tam ao del co ntrol, si no que u tiliz a su p ro p io tamao. La propiedad Stretch


B u sca r a h o ra

determ ina si el tam ao del g r fic o depende del tam ao del co ntrol.

N u e va bsqueda

in c lu ir s u b ca rp e ta sj

T IM E R (R E L O J ):

H aga c lic k en el botn B U S C A R A H O R A para que em piece la bs


queda de todos los archivos que tienen las extensiones indicadas (ar
ch ivo s grficos). 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
U d., pueda buscar la carpeta y u b ica rlo s rpidam ente.
H B uscar: a rchiv o s c o n nom bre .B M P .ICO " W M P
|qx i
Archivo

Edicin

Ver

Nombre y ubicacin

Qpciones

Ayjd

j Fecha de modificacin ]

Nombre

|- BMP ICG WMP

Buscar

jMiPC

los m todos g rficos n i todas las propiedades y otros m todos que el control
P ictu reB o x tiene.

--------------- 3
E xam inar..

B u sca r en: |M i P C

P ictureB ox. Se diferen cian porque el c o n tro l Im agen no tiene ninguno de

E l tam ao del g r fic o que se alm acena en este c o n tro l no depende del

Ayda

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

N om bre:

Este co ntrol perm ite m ostrar g r fico s en un fo rm u la rio , s im ila r al control

Avanzadas j

PRIN C IP ALES PRO PIED AD ES D E U N TIM ER:


AME
Perm ite asignarle un nom bre. Por defecto el nom bre es T im e rl, T im e r2 ,

Buscar ahora

~Ei

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


cantidad de segundos. Puede ayudar a m e jo ra r el aspecto de un fo rm u la rio .

T im e r3 etc. Segn el nm ero de controles que se d ib uje n en el fo rm u la rio .

Jueva bsqueda I

EN ABLED

fv? incluir subcarpetas

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


Notel 6. ico
Notel 7.ico
Notel 8.ico
PenOI .ico
Pen02.ico
^*Pen03.ico

| Tama... | Tipo
I En carpeta
2KB
Icono
C:\Archivos de prograrrtaSDevStudioWBSGraphi...
2KB
Icono
C:\Archivos de programaSDevStudioWBSGraphi...
2KB
Icono
C:\Archivos de prograrna\DevStudo\VB\Graphi...
2KB
Icono
C:\Archivos de programa\DevStudio\VB\Graphi...
2KB
Icono
C:\Archivos de programa\DevStudioW/B\.Graphi ..
2KB
Icono
C:VArchivos de programa\DevStudio\VB\Graphi

Modificado
*- I
20/02/97 12:00 AM
20/02/97 12:00 AM
20/02/97 12:00 AM -----1
20/02/97 12:00 AM
20/02/97 12:00 AM
20/02/97 12:00 AM

IN T E R V A L
In dica el tie m p o en que se deben ejecutar las instrucciones. E l v a lo r 1000
in d ica cada segundo.

Las instrucciones que queremos que se ejecuten cada cierto tiem po se deben

161 6 archivo(s) encontrado(s)

NOTA:
Para visualizar la ruta com pleta de cada archivo am ple 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^

e s c rib ir en el E v e n to T im e r de este co n tro l.

VISUAL BASIC como debe se r..

<

APLICACIN DESARROLLADA N 23
En la siguiente aplicacin se u tiliz a n funciones tratadas anteriorm ente y
ejem plos de cm o m ejora r el aspecto del fo rm u la rio :
FECHA :

- V e n ia d e P ro d u c to s :

JJ-

Precio Unitario
C antidad

I.G.V.

Total

I-

Lo que puede hacer :

^
J ju e v o

I
]

E l g r fic o del c o n tro l PICTUREBOX se lla m a DINERO.WMF, que


norm alm ente se encuentra en la carpeta: A rch iv o s d e P rogram aSM icrosoft

O ffic e \C lip a r t\P o p u la r


Bsquelos, y si no los encuentra p ractique insertando otros grficos.
A las etiquetas donde se m uestran la fecha y hora no les asigne ninguna
propiedad, porque se visua liza n cuando se ejecuta el program a.
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
cuando ejecuta la a plicacin no se v is u a liz a y tiene un solo tamao.

J21 -07-1S

Nom bre del Producto

> CAPITULO IV: Mejorando el Aspecto de los Formularios ^

PASO N 03: E s c rib ir

las instrucciones de cada co ntrol.


Instrucciones del B. Calcular
Instrucciones Form Activate

fe s u lta d o s

PASO N 1: DIBUJAR LOS CONTROLES:


Labell

Label2

Label3

Label4

Framel---------------Label5

(Textl

Label6

|jext2

Label7

| t ext3

Prvate Sub Command2_Click()


Dim ST, IGV, TPAs Single
ST = Val(Text2) * Val(Text3)
IGV= S T * 18 /1 0 0
TP = S T + IG V
Labell 1 =Format(ST, "###,##0.00")
Labell2=Format(IGV, "###,##0.00")
Labell3=Format(TP, "###,##0.00")
End Sub

Instrucciones del b o t n Nuevo.

Label8

Labell 1

Label9

Labell 2

Labell 0

Labell 3

Command2

Private Sub Commandl_Click()


Form_Activa te
End Sub
Instrucciones del b o t n Salir

-Frame2-----------Command!

Prvate Sub Form_Acvate()


Textl = ""
Text2 = ""
Text3 = ""
L a b e lll = ""
L abell2 = ""
Labell3 = ""
Textl.SetFocus
End Sub

Command3

Prvate Sub Command3_Click()


Dim R As Integer
R = MsgBox("Est seguro de salir", 36,
If R = 6 Then End
End Sub

"Cuidado")

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.


Asgnele las propiedades a cada uno de los controles que se muestran en el
form ulario, de tal manera que tenga un aspecto sim ila r a la aplicacin planteada.
NOTA:
Los botones de comandos deben tener en su propiedad SY T L E el valor 1 Grfico y
en su propiedad PICTURE asgnele los grficos indicados.
Los nombres de los grficos en el orden que se muestran en la aplicacin a desarrollar
son: PAINT.BMP, PREVIEW.BMP, POINT4.1CO, que normalmente se encuentran
en la siguiente carpeta: Archivos de Programa\DevStudio\Vb\Graphics

P r v a t e S ub F orm _L oad()
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 )
T im e r1 . I n t e r v a l = 100
End Sub

Instrucciones del control T IM E R : Visualizan la hora en la etiqueta 4 y mueven la palabra


VENTAS en el ttulo del formulario.
P r i v a t e S u b T i m e r l _ T i m e r ()
L a b e l 4 = F o r m a t ( T i m e , " h h :mm: s s AMPM")

Forml.Caption = Mid(Forml.Caption, 2) + LeftfForml.Caption, 1)


End 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.

APLICACIN DESARROLLADA N 24
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
de im p rim ir.

D e fin ir las variables a u tiliz a r en la seccin de declaracin del fo rm u la rio .


101 Project! - Formi (Code)
|(General)

Esta a plica ci n es una pantalla de presentacin con un texto de fo nd o, una


etiqueta cuyo contenido va m od ifica n do su tamao y un gr fico que se m ueve

jrJ

r M
1(Declarations)

Dirn T, N As Irxteger
:

de derecha a izquierda.
PANTALLA DE PRESENTACION

H S I3E 3

Juan Jos Castaeda Len


Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser..
Juan Jos Castaeda Len
Visual Basic com o debe ser.
Juan Jos Castaeda Len
Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser...
Juan
Jos Castaeda Len
Visual Basic como debe ser...
Juan Jos Castaeda Len
Visual Basic como debe ser..
OK j Juan Jos Castaeda Len
Visual Basic como debe ser.
Juan Jos Castaeda Len
Visual Basic com o debe ser...
Juan Jos Castaeda Len
Visual Basic com o debe ser...
Juan Jos Castaeda Len
Visual Basic com o debe ser...
Visual Basic como debe ser... Juan Jos Castaeda Len
Visual Basic com o debe ser... Juan Jos Castaeda Len

V IS U A L
IA % I4

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


g r fic o (p ictu re b o x), un re lo j (tim e r) y un b otn de comandos (com m and). A
la etiqueta, al botn de com ando y al fo rm u la rio , m od ifqu e le s su propiedad
C ap tion co m o se m uestra en la fig u ra anterior:
i. Form!

-ill

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


se ejecutan cuando el fo rm u la rio se activa. Estas instrucciones m uestran un
texto de fo nd o en el fo rm u la rio .

Prvate Sub Form_Activate()


Dm X As Integer
'Ancho del Formulario
Forml.Wdth - 6400
'Altura del Formulario
Forml.Height = 3330
Labell.AutoSze = True
For X = 1 To 35
Print T a b ( X ) " V i s u a l Basic como debe ser. . .
Print Tab(60 - X ) ; "Juan Jos Castaeda Len"
Next X
'Posicin inicial del Grfico
T = 6000
'Puesta en marcha del Reloj
Timerl.Interval = 1 0
End Sub
Instrucciones del E ve nto T IM E R

Prvate Sub Timerl_Timer ()


N = N + 1
If N > 30 Then
N = 1
End If
T = T - 50
If T < -600 Then
T = 6000
End If
Picturel.Left = T
Labell.FontSize = N
End Sub

Lab ell

E l botn O K debe tener la in stru cci n E N D .

G rupo E ditorial M

jlP

| ! 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 rficos con la extensin IC O

&ey: 1
lag: 1

Index:

(* .IC O ) y con la extensin B M P ( * .B M P ) en la m em oria de la com putadora


para poder m an ip u la rlo s en nuestro program a.
Si no se encuentra en la caja de herram ientas debe seguir cualquiera de los
siguientes pasos:
1. En la caja de herram ientas haga c lic k con el botn derecho y e lija la
o p ci n C O M P O N E N T E S .
2. D e la o pcin P ro je ct e lija C O M P O N E N T E S .
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:

Im genes:

U
Insertar imagen.. !

A c e p ta r

Tam bin 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


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
B asic o crear un nuevo proyecto.

PRINCIPALES PROPIEDADES DE UN IMAGELIST:

I Nm ero de imgenes:

C a n ce la r

En esta hoja podemos adicionar o e lim in a r ms grficos del control im agelist.


E l b otn Insertar
adicionarla.

Microsoft Windows Common Controls 5.0.

Quitar imagen

E l botn

Imagen perm ite

buscar y seleccionar una im agen para

Quitar Imagen perm ite b o rra r una im agen.


Key, se puede asignar uno o ms caracteres que

En la caja de textos

van a

id e n tific a r a cada im agen alm acena en el co n tro l.


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 slo 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 nm ero de im agen activa y p e rm i


te a ctiva r a cu a lq u ie r otra imagen.

o fichas: General, Im genes y color.

tm \

P g in a s d e p r o p ie d a d e s
j n * r . * ! j ] Im g e n e s
r -

r -

H e ig h t:

W id t h :

1 6 X 1 6

3 2 x 32

J C o lo r

Ejemplo de algunos grficos que puede insertar en el control Imagelist:

4 8 X 48

LE]

Pginas de propiedades

C u s to m
1^

En la etiqueta N m e ro de Imgenes se v isu a liza la cantidad de imgenes


que tiene el co n tro l Im agelist.

G e n e ra l

Im g e n e s | c o lo r

Im a g e n a c tu a l

J U s e M a s k C o lo r

in d e x :

[g

Key:

lag: r
Im g enes:

A c e p ta r

C a n c e la r

A yuda

L a h o ja General, p erm ite asignar la a ltu ra y el ancho para los g r fico s que

[ in se rta r im age n... |

Q u ita r im age n

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


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

A c e p ta r

| N m ero de im ge nes: J?

C a n c e la r

A p lic a r

A yuda

201

3 ^

VISUAL BASIC como debe ser.

>CAPTULO IV: Mejorando el Aspecto de los Formularios

El contenido de la Hoja C olor es:

APLICACIN DESARROLLADA N 25
Inserte en el c o n tro l Im a g e list una cantidad determ inada de im genes para

P g in a s d e p r o p ie d a d e s

G e n e ra l ) Im g e n e s

C o lo r

P ro p ie d a d e s:

r-T

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 botn

j
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,

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

g] -i

| C ara d e l b o t n
E scrito rio

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

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.
E l co n tro l tam bin tiene la propiedad U sem askC olor para establecer un valor
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
com o una mscara.

S ALIR

Una vez que insert imgenes en el co ntrol Im a g e L is tl, use la propiedad


Personalizado, escriba las siguientes instrucciones en el botn M o s tra r Siguiente:
Prvate Sub Commandl_Click()
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
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

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
Para obtener cualquiera de las im genes que se encuentran almacenas en
el c o n tro l Im a g e list se u tiliz a la siguiente sintaxis:

Control_ImageList.Listlmages(ndice).picture
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

End Sub
Las instrucciones anteriores perm iten mostrar las imgenes una a continuacin
de otra y cuando se llega a la u ltim a muestra nuevamente la primera.

FU N C IO N

LO ADPICTURE

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:

Picturel = ImageListl.Listlmages(3).Picture
Para saber cuantas imgenes tiene el co n tro l Im a g e L is t u tilic e la propiedad
C ount. Por ejem plo, la siguiente in s tru c c i n alm acena en la variable N, la
cantidad de im genes del co n tro l Im a g e lis t 1.

G ru p o E d ito ria l

P ic tu rel = L oadP icture( "graphics\icons\com puter\key04. ico ")


Im age 1 = L o a d P icture("graphics\icons\com puter\key04.ico")
P ic tu rel = L oadPicture( "c:\vb\m etafiles\com puter.w m f")

M U Y IMPORTANTE

N = ImageListl.Listlmages.Count
202

Nombre_del_Control=loadpicture (ruta y nombre de grfico)


Ej empl os:

Megabyte <|| f |

Ud., debe escribir correctam ente la ruta de donde se encuentra el grfico que desea
colocar en el control PictureBox o en el control Image.

203

VISUAL BASIC como debe se r...

' CAPITULO IV: Mejorando el Aspecto de los Formularios

APLICACIN DESARROLLADA N 26

CALENDAR: (CALENDARIO)

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
Es un control que se utiliza para manejar la fecha del sistema de una manera
personalizada. Este control muestra en el form ulario un calendario con la fecha
actual seleccionada y nos permite buscar otra fecha en cualquier mes o ao. De la
lista de componentes haga click en la casilla del control llamado: Microsoft ca
lendar

D om

4
11
18
25

Control.

Lun

5
12
19
26

Mar

6
13
20
27

Mi

7
14
21
28

~\ j-m s _-J
Ju e

1
8
15
22
29

PR IN C IP A LE S PRO PIED AD ES D E UN CALEND AR:

Vie

2
9
16
23
30
6

Sb

3
10
.............i

24
31

CUSTOM

Permite personalizar el control Calendar.


DAY

Obtiene el da de la fecha seleccionada y permite seleccionar un


nuevo da.
DAYFONTCOLOR

Asigna el color para los nombres de los das.


DAYLENGTH

Indica la forma de visualizar el nombre de los das de la semana.


FIRSTDAY

Permite indicar el primer da de la semana a visualizar en el


calendario.
GRIDCELLEFFECT

Cambia el estilo de las lneas del calendario.


GRIDFONTCOLOR

Asigna un color para los das del mes.


MONTH

Obtiene el nmero del mes seleccionado y permite seleccionar un


nuevo mes.
MONTHLENGTH

Indica la forma de visualizar el nombre de los meses.


SHOWDATESELECT

Permite que se muestren los botones para seleccionar una nueva


fecha del calendario.
SHOWDAY

Permite que se muestren los nombres de los das de la semana en


el calendario.
SHOWVERTICALGRID

Permite visualizar las lneas verticales del calendario.


VALUE

Permite obtener la fecha seleccionada del calendario.


YEAR

Obtiene el ao de la fecha seleccionada y permite seleccionar un


nuevo ao.
204

rupo

d it o r i a l

M e g a b y t e ^ ^

DESARROLLO DE LA APLICACIN
Para desarrollar esta aplicacin dibuje en el form ulario el control Calendar y dos
etiquetas. Luego se debe programar en el evento C lick del control Calendar.
El signo dlar ($) al final de una variable indica que la variable es de tipo String.
INSTRUCCIONES DEL CONTROL CALENDAR.

Prvate Sub Calendarl_Click()


Labell = Calendar1.Valu
diasemana = WeekDay(Labell)
dia$ = Day(Labell)
mes = Month(LabellJ
ao$ = Year(Labell)
Select Case diasemana
Case 1 : diasem
"Domingo"
Case 2 : diasem
"Lunes"
Case 3 : diasem
"Martes"
Case 4 : diasem
"Mi rcol es "
Case 5: diasem = "Jueves"
Case 6: diasem = "Viernes"
Case 7: diasem = "Sbado"
End Select
Select Case mes
Case 1: nmes = "Enero"
Case 2: nmes = "Febrero"
Case 3: nmes = "Marzo"
Case 4: nmes = "Abril"
Case 5: nmes = "Mayo"
Case 6: nmes = "Junio"
Case 7: nmes = "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes = "Setiembre"
Case 10 : nmes = "Octubre"
Case 11 : nmes = "Noviembre
Case 12 : nmes = "Diciembre
End Select
Label2 = diasem

End Sub

+ dia$ + " de " + tunes + " de " + ao$

VISUAL BASIC corno debe s e r ...

C APITU LO IV: Mejorando el Aspecto de los Formularios

STYLE

STATUSBAR (BARRA DE ESTADO)

Perm ite in d ic a r el estilo de la barra de estado. E l estilo 0 -strN orm al, muestra

' ts;;::

la barra de estado con todos los paneles asignados y el e stilo 1-sbrS im ple

r~ r

muestra slo 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 seleccin del g r fic o los puede hacer en la pgina 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


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


c o n tro l llam ado:

Microsoft Windows Common Controls 5.0 de la

lista

de componentes.

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.

OLEDDROPMODE
D evu elve o establece el m odo en que un com ponente de destino rea liza las

P R IN C IP A LE S PRO PIED AD ES D E U N STATU SBARS:


Las propiedades principales del co ntrol se obtiene con slo ele gir la propiedad
C ustum ize (personalizado). Se visualiza la siguiente ventana con cuatro hojas
o fichas: General, Paneles, Fuente e Im agen.
E l conte nid o de la

ms adelante.

hoja General es:

operaciones de co locacin.

ENABLED
In d ic a si la barra de estado debe estar activada o desactivada.

SHOWTIPS
In d ic a si la barra de estado debe m ostrar el te xto de ayuda que se escribe
en la p ropiedad T o o ltip te x t de la h oja Paneles.
E l contenido de la

am ar

hoja Paneles es:

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

f panel

Incjex:

Style:

H f W BfflllTO

M o useP ointe r:

j o - c c D e a u lt

Q u it a r p a n e l

Te x t:
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

Q L E D ro p M o d e :

T aa

A c tu a l W id t h :

11 4 4 0 0 0

jo - c c O L E D ro p N o n e
E n a b le d

fs?

Im a g e n

A lig n m e n t:

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

A u t o S ize:

O - s b rN o A u tc ^~ |

'W I

J
A c e p ta r

C a n c e la r

Aplicar,

Ayuda

E n a b le d

Jv'

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

<CAPITULO IV: Mejorando el Aspecto de los F orm ularios^

S S t t VISUAL BASIC como debe se r...


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.
TOOLTIPTEXT
Permite escribir un texto de ayuda que se visualiza cuando el puntero del mouse se
encuentre en el panel siempre y cuando la propiedad Show Tips de la hoja General
se encuentre activada.
KEY
Permite asignar uno o ms caracteres que van a identificar a cada panel. No acepta
nmeros.
TAG
Permite escribir un texto el cual queda almacenado para poder utilizarlo en cualquier
momento si lo deseamos.
ALIGNMENT
Alinea el texto o el grfico dentro del panel a la izquierda, centro o derecha.
STYLE
Permite seleccionar el tipo de informacin que desea mostrar en el panel. Si desea
visualizar el texto escrito en la propiedad Text, debe elegir el estilo 0-sbrText. Aqu
puede elegir que se muestre la fecha u hora del sistema, el estado del teclado, etc.
BEVEL
Selecciona el tipo de borde del panel (sin relieve, bajo relieve o en alto relieve).
A IT O S IZ E
Para indicar si el tamao del panel debe estar de acuerdo al tamao de lo que
contiene o no.
M IN IM U M W IDTH
Para indicar el ancho mnimo que puede tener el panel.
EXAM INAR
Permite seleccionar un grfico que va a acompaar a la informacin que mostramos
en el panel. Ud., debe conocer previamente la ruta de la carpeta donde se encuen
tran los archivos de grficos en su computadora.
Una de las rutas donde puede encontrar archivos de grficos es:

F u e n te

Im a g e n )

P ro p ie d a d e s :

z ] I82 6

Permite cambiar el tipo


de le tra , tam ao y
asignar efectos al texto
que se muestra en la
barra de estado.

E fe c to s

N e g rita

S u b ra y a d o

C u rs iv a

T achado

T e x to d e ejem p lo :

M S S a n s S erif

A c e p ta r

E l contenido de la h o ja Im a g e n es:

G e n e ra l | P a n e le s

j F u e n te

Im a g e n

V is ta previa:

. ______

P ropiedad e s:

VJMzi i

E xam inar...

A c e p ta r

C a n c e la r

J ____ I

--------

Esta
hoja
permite
seleccionar un grfico el
cual va a reemplazar al
puntero del mouse cundo
lo ubiquemos en cualquier
parte de la barra de estado.
El grfico que Ud. elija se
visualiza siempre y cuando
se halla seleccionado la
opcin 99-ccCustom de la
propiedad MousePointer
de la hoja General..

EJEM PLO DE UNAAPLICAGON USANDO ELCONTROLSTATUSBAR

tm iS M m m n i ^'m rr

T - idi *i

S IS T E M A
1

DE

SIN IM AG EN
Borra el grfico asignado al panel
ENABLED
Para indicar si el panel debe estar activado o no.
VISIBLE
Para indicar si el panel debe estar visualizar o no.
G ru p o E d ito r ia l

Xam ao:

F u e n te :
M S S a n s S erif

C:\Archivos de Programa\DevStudio\Vb\Graphics'Sicons Y luego en cualquiera


de las carpetas que contiene.

208

G e n e ra l ] P a n e le s

VENTAS
/ X

Megabyte

8 /0 5 /9 9

J o s C asta eda

4 42 AM

I
209

>CAPITULO IV: Mejorando el Aspecto de los Formularios ^

^ lll|> VISUAL BASIC como debe ser.. .

PANTALLAS DE PRESENTACIN

A signe las propiedades al c o n tro l Toolsbar de tal manera que tenga el m ism o
aspecto de la a plicacin m ostrada. Tam bin 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 cul 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
v a lo r 2 , etc.
Entonces las siguientes instrucciones para el co n tro l son:

o ttjR

Prvate 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",
End If

'

rm

nrrj i t

1
f; sai is 1

End Sub
Si U d., ha asignado uno o ms caracteres en la p ro p ie d a d K E Y , entonces
ta m b in puede id e n tific a r e l panel donde se h iz o C lic k , m ediante esta
propiedad. Por ejem plo: Si ha asignado las letras

CAL en la propiedad K E Y

del panel n m ero 4 (calcula do ra ), entonces puede e s c rib ir ta m b in


siguientes instrucciones en el co ntrol:

las

Prvate Sub StatusBar l_PanelClick(By Val Panel As ComctlLib.Panel)


I f P a n e l . K e y = "CAL" T h e n
S h e l l " c : \ w i n d o w s \ c a l c . e x e , 1
End I f

U d., puede disear su pantalla en Pow er P o in t y pegarla en su fo rm u la rio o


a ctiva rla . Si usted pega la pantalla, sta se v is u a liza r esttica (sin los
m ovim ientos o efectos asignados) Para e llo una vez que term in de disearla,
presntela (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
pulse IMPR PANT (Print Screen), luego vaya al V isu al Basic y,haga
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
pantalla, borre el co nte nid o de la propiedad P icture del fo rm u la rio .
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
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 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
de d ia lo g o , para regresar haga un c lic k con el botn derecho del m ouse en
el c o n tro l O L E y e lija la o pcin INSERTAR OBJETO.

SHELL p erm ite ejecutar program as (*.exe) desde el V isual B asic y el valor l le
indica que el program a se debe ejecutar con e l tam ao d e ventana norm al. D ebe
especificar correctam ente la ruta y el nom bre del archivo.

I Insellai o b j e t o

CALCULADORA DEL WINDOWS

Edicin

Tips de objeto:

Ver

Ayuda

B ack

r ~
MC

CE

C 1

Crear Quevo

f"

Crear desde archivo

Adobe-Table 2.5
Clip de multimedia
Corel PHOTO-PAINT 5.0 Imagen
CorelCHART! 5.0 Chart
CorelDRAW! 5.0 Grfico
CorelDRAW! 5.0 Presentation Exchar
,
CorelEquation! 1.0 Equation
.T I

........

. S

Aceptar
Cancelar

postrar como icono

Resultado

s q rt

MR

MS

1 /x

M+

+h

G ru p o E d ito r ia l

<

E l

Inserta un nuevo objeto de Adobe Photoshop


Image en el documento.

La opcin C rear d esd e A rc h iv o


creado

210

...

3*

Megabyte

perm ite seleccionar el archivo previam ente

VISUAL BASIC como debe se r...

ACTIVAR UNA PRESENTACIN EN POWER POINT


Una vez creada y grabada la presentacin en Power Point, active el Visual
Basic y en un form u la rio en blanco pegue el control O LE y en la ventana que se
visualiza e lija la opcin C rear desde A rch ivo , luego haga c lic en el botn E x a
m in a r para buscar y seleccionar la presentacin creada en Power Point ha
ciendo clic en el botn Insertar y luego en Aceptar. En el evento Form Load
del form u la rio debe escribir:
P riva t e

End

S u b F o rm _ L o a d ()
O l e l . V i s i b l e = F a lse
O le l.A c tin o = 7

Sub

2. Muestra la palabra SISTEMA letra por letra.

SISTEMA

CAPTULO IV: Mejorando el Aspecto de los Formularios


Instrucciones del control TIMER
Private Sub TimerI JTimer()
Static N As Byte
Labell(N). Visible = True Muestra de la letra
Labell(N).Top = 2000 'Ubicacin vertical
Labell(N ).Left = P Ubicacin horizontal
P = P + 500 Velocidad de movimiento de las letras
IfP > FIN Then
FIN = FIN + Label 1(N). Width + 200
P =0
N= N+ 1
End I f
I fN > 6 Then
Tim erl.Intenal = 0
Com mandl .Visible - True
End I f
End Sub

3. Mueve las palabras y oscurece y aclara el formulario


. 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 )). Tambin debe dibujar un control T IM E R y un
botn de comandos el cual tiene el grfico 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 seccin de declaracin 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

In stru ccio n es del p roced im ien to FORM ACTIVATE


Prvate Sub Form_Activate()
Dim X As Byte
Formt. WindowState = 2 Maximiza el Formulario
For X = OTo 6
Labell(X).FontName = "Courer New" Tipo de letra
Labell(X).FontSize = 72 'Tamao de letra
Labell(X). Visible = False Oculto
Labell(X).BackStyle = 0 Transparente
Labell(X).AutoSize = True
Next X
FIN = 2500 Ubicacin de la primera letra
Commandl. Visible = False Oculta el Botn OK
Timerl Anterval = 100
End Sub

- *-

G rupo Editorial Megabyte

D ibuje en el form ulario dos


etiquetas, dos control Tirner, un
P ic tu re B o x y un b o t n de
com andos. A las etiquetas,
P ic tu re B o x y b o t n de
co m a n d o
a sg n e le s
la s
propiedades como se muestran
en la figura anterior.

L ab e ll

Label2

Com m andl

Definir las variable en la seccin de declaracin del formulario


P u b l i c N,

I As In te g e r

Public sw, CLARO As Boolean

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 ()
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
T im e r 2 . I n t e r v a l = 100

HSCROLL Y VSCROLL (Barras de Desplazamiento)

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
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
tie m p o, para increm entar o d ism in u ir el valor de una variable, etc.

Instrucciones del TIM E R 1

Suben y bajan las palabras


Prvate Sub Timerl_Timer()
Ifsw Then
N = N - 200
IfN < 0 Then
sw = False
E n d lf
Else
N = N + 200
IfN > 7000 Then
sw = True
E n d lf
E n d lf
Labell.Top = N
Label2. Top = 7000 - N
End Sub

il
il

jj il

Instrucciones del T IM E R 2
Aclaran y oscurecen el formulario.
Prvate SubTimer2_Timer()
If C LA R O Then
1 = 1 -5
If 1 = 0 Then
C LA R O = False
End If
Else
1 = 1+ 5
If I = 255 Then
C LA R O = True
End If
End If
Form 1.BackColor=RGB(0,1,0)
End Sub

P ractique cam biando la p o sici n d el de la v a ria b le I en R G B .


E xiste n m uchas otras form as de crear pantallas de presentacin y muchas
veces depende de la cre a tivid a d de cada uno.

Sus p rin c ip a le s p ro p ie d a d e s son:


LARG ECHANG E
Para in d ic a r el increm ento o decrem ento de la propiedad Valu cada vez
que el usuario haga c lic k en el rea de desplazam iento.
SM ALLC H AN G E
Para in d ic a r el increm ento o decrem ento de la propiedad Valu cada vez
que el usuario haga c lic k en la fle cha de desplazamiento.
MAX
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
Valu. E l v a lo r predeterm inado es 32767.
M IN
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.
E l v a lo r predeterm inado es 0.
VALU E
In d ic a la posicin actual del cuadro de desplazam iento. Esta propiedad es la
predeterm inada de las barras de desplazam iento, esto quiere d e c ir que para
refe rirm os a esta propiedad slo se necesita e s c rib ir el nom bre del control
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


M ic ro s o ft, galera de imgenes, Hojas y grficos de Excel etc.

R = H s c r o lll

Para e llo , haga c lic k con el botn derecho del m ouse en c u a lq u ie r parte de la

Esta a plicacin 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


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 .

diferentes tonalidades, y m o ve r un grfico.

APLICACIN DESARROLLADA N 27

U SO DE S C R O LLB A R S

Intensidad
R O JO

Selected Items Only


Adobe Phiotoshop ImajLocation:

G rupo E d ito r ia l

Megabyte'1

1255

VERDE j J

1 1 1255

AZUL

j J

\\COM13\D\ADOBE\PHOTOSHP.EXE

=J

214

j J

Em pezar

Salir

M u e ve el Grfico
A.

jd

1255

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 continuacin:

barras de desplazam iento y las etiquetas N 5 ,6 y 7 tengan el v a lo r cero (0).

I t i Form l

imi

Priv a t e S u b F o r m _ A c t i v a t e ()
.Inlxl

Label4
Labell

Labe!5

jlU

Label2

Label3

Label6

<1

Command!

1
|

LabeIS

Label7

Command2 |

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 .
A sig n e las propiedades a las etiquetas y botones de com andos com o de
m uestra en la a p lica ci n a desarrollar.
Instrucciones del F o rm _ L o a d para que al ejecutar la a plica ci n se asignen
las propiedades a las barras de desplazam iento.

Prvate Sub Form_Load()


HScrolll.Min = 0
HScrolll.Max = 255
HScrolll.LargeChange = 5
HScrolll .SmallChange = 5
HScroll2.Min = 0
HScrolll.Max = 255
HScroll2.LargeCh.ange - 5
HScroll2.SmallChange - 5
HScroll3.Min = 0
HScroll3.Max = 2 5 5
HScroll3.LargeChange - 5
HScrollJ. SmallChange = 5
VScrolll.Min = 0
VScrolll.Max = Forml .ScaleHeight
VScrolll .LargeChange = 100
VScrolll.SmallChange = 25
End Sub
- l*

H S c r o l l l . V a lu
H S c ro ll2 .V a lu
H S c r o l l 3 . V a lu
V S c r o l l l . V a lu
P ic tu re l.T o p =
L a b e l5 = 0
L a b e16 = 0
Label7 = 0
End Sub

= 0
= 0
= 0
= 0
0

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


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.
S u b CAMBIO()
D im ROJO, VERDE, AZUL A s B y t e
ROJO = H S c r o l l l
VERDE = H S c r o l l 2
AZUL = H S c r o l l 3
F o r m l . B a c k C o l o r = RGB(ROJO, VERDE, AZUL)
L a b e l5 = H S c ro lll
L a b e l6 = H S c ro ll2
L a b e l7 = H S c ro ll3
End Sub

Instrucciones del B o t n E M P E Z A R .
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 _ A ctiva t e
End Sub

D en tro de cada Barra se llam a al p ro ce d im ie n to C A M B IO .

Prvate Sub HScrolll_Change()


CAMBIO
End Sub
Prvate Sub HScroll2_Change()
CAMBIO
End Sub
Prvate Sub HScroll3_Change()
CAMBIO
End Sub
Instrucciones del c o n tro l V S C R O L L 1 .
P r v a t e S u b V S c r o l l l _ C h a n g e ()
P ic tu re l.T o p = V S c ro lll
End Sub
G r u p o E d it o r ia l M e g a b y t e < |f || |j j f

C A P T U L O IV : M ejorando el A specto c los F orm ularios

^ lliil? ' VISUAL BASIC como debe ser. .

PREGUNTAS DE REPASO N 2 0 4

PROGRESSBAR (Barra de Progreso)


m
M uestra una barra que re fle ja la ejecucin de un proceso en la com putado
ra. En la ventana de com ponentes se llam a: M icro so ft W indow s C om m on
C ontrols 6.0. Sus p rincip ale s propiedades son:
MAX
In d ica el v a lo r m xim o que puede tom ar el control.
M IN
In d ica el va lo r m n im o que puede to m a r el control.
VALU E
n d ica el v a lo r del c o n tro l en un determ inado m om ento.

m P r o y e c to l
P a ra d e s a r r o lla r u n
e je m p lo , pegue en un
fo rm u la rio en blanco el
c o n tro l P ro gressB ar y
en su p ro c e d im ie n to
F orm A ctva te escriba:

|_ |a |x |

- F orm l (C digo)

jrj jA c tv a te

jF o rm

+j

P r v a t e S u b F o r m _ A c t i v at e ()
Dim x As Integer
P r o g r e s s B a r 1.M a x = 1000
F o r x = 1 To 1 0 0 0
P r o g r e s s B a r 1.V a l u = x
N e xt x
E n d Sub

<11

Jl f l

C O N T R O L S L ID E R

tr.
Es un c o n tro l que p erm ite desplazar una barra a travs de una m arca que
tiene el co n tro l. Se puede m anejar de manera casi ig u a l a los controles
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

W indow s C o m m o n C o n tro ls 6.0.


Sus p rincipales propiedades son:
LAR G EC H AN G E
In d ica el n m ero de marcas que se desplazar la barra al presionar las
teclas R E P G o A V P G o al hacer clic en el control.
SM ALLC H AN G E
In d ica el n m ero de marcas que se desplazar la barra al presionar las
teclas Flecha Izq uie rd a o Flecha Derecha.
M A X y M IN
Son sim ilares a las del c o n tro l ProgressBar.
O R IE N T A T IO N
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
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 | |

1. Qu casilla debe activar en las lista de componentes si en


la caja de herramientas no encuentra el control ImageList?
2. Explique los mtodos grficos.
3. Con qu propiedad se puede saber el panel donde el usuario
hizo click en el control StatusBar?
4. Cul es la diferencia entre Qbcolor y RGB?
5. Cul es la utilidad del control Calendar?
6. Explique cmo se pueden buscar los grficos que tenemos
disponibles en nuestra computadora.
7. Qu significa el signo de dlar ($) al final de una variable?
8. Qu valor debe tener el control Timer en su propiedad
Interval para que las instrucciones que contiene se ejecuten
cada segundo?
9. Qu diferencia encuentra entre el control Hscroll y Vscroll?
10. Qu es un mtodo grfico?
11. Cmo podemos saber la ruta exacta de un archivogrfico?
12 .Cul es el valor predeterminado de la propiedadMax y Min di>
los controles Hscroll y Vscroll?
13. Cul es la diferencia entre los controles Image y PictureBox?
14. Cuntos tipos de figuras se pueden dibujar con el control
Shape?
15. Cul es la ventaja de usar el control Frame?
16. Cul es la utilidad del control ImageList?
17. Cuales son los tipo de grficos que se pueden insertar en el
control PictureBox?
18. Con qu funcin se puede colocar un grfico en un control
PictureBox o Image?
19. Cmo le indicamos a Visual Basic que deje de ejecutar las
instrucciones que se encuentran en el control Timer.?
20. Qu funcin cumple las pulsacin de las tecla CTRL+K cuando
trabajamos con el control Frame?

Es muy importante que Ud., se formule nuevas aplicaciones o


intercambie aplicaciones propuestas entre sus compaeros de estudio
y desarrollarlas con la finalidad de enriquecer sus conocimientos.
r

CAPITULO V
TA DE PASAJES
A gencia de Transporte "EL PROVINCIANO S.,
Pasajero |H T 0 RAMIREZ
D.N.I.

|1 6895654
Destino :

Hora de Salida
C

8 :0 0 pm .

Lima

annan

(* 9:00 prn.

ffiLSoft D a t S .A

Fecha 7/Z3/9B

PR O F O R M A

............

'

OBSERVACr

n is iE a g

.Wc
le c c i n

|X IM E N A TORREE
1CAS TI LLA 2565

Precio
^omputadaroa

| p ker Bell

-|

7DOLOO

|D a s k e t 40a

-]

270.00

p 1p e s c u t
y re s o ia s

^ u b Total 970.00

Total 1 1 44. EO

I.G.V. 174.G0

_ Q tra F W q r n a - j

INGRESO
PERSONALIZADO
DE DATOS

V-lA

<X >

CAPTULO 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. Segn el nmero 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 ao 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

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..


APLICACION DESARROLLADA N 28

CAPTULO V: Ingreso Personalizado de Datos


PASO N 03: Escribir las instrucciones para los controles.

Esta aplicacin debe permitir al usuario ingresar el nombre del alumno, su


especialidad y tumo. Al hacer click en cualquiera de los Combo se debe
desplegar las opciones posibles a elegir.
Jn Jxj

Especialidad JComputacin

jr ]

^ U!ri

j- ]

Maana

Otro Alumno

Alumno

Daniel Rivea

Especialidad

Turno

Arquitectura
Secretariado
Sistemas

Finalizar
Olio Alumno

Finaliza!

Instrucciones del botn O T R O A LU M N O


Prvate Sub Com m andl_Click()
Borra el contenido de Textl
Textl =
Muestra el elemento predeterminado del Com bol (Computacin)
Combol. Listlndex = 0
'Muestra el elemento predeterminado del Combo2 (M aana)
Combo2.Listlndex - 0
Ubica el cursor en Textl para ingresar un nuevo alumno
Textl. SetFocus
End Sub
El botn FINALIZAR debe tener la instruccin END.

A PL IC A C IO N PRO PU ESTA N 07

PASO N 01: Dibujar los controles.

. 4V

Labell
Label2

jcom bol

Label3

|Combo2

Command!

CAPTION
Alumno
Especialidad
Turno

COMANDO CAPTION
Command I
&Otro Alumno
Command2 &Finalizar
1EXTO
Textl

Tipo

[Permanente

z\

Estado Civil

1Casado

Categoria

| a -i

Ingresar Otro

COMBO TEXT
Combol Computacin

Combo2

Maana

TEXT
En Blanco

224 :

Nombre

Command2

PASO N 02: Asignar las propiedades.


EOQUEIA
Label 1
Label2
Label3

;l l | | |

G r u p o E d it o r ia l

LIST
Computacin
Arquitectura
Secretariado
Sistemas
Maana
Tarde
Noche

Tipo
Estado Civil
Categora

Salir

: Permanente, Contratado, Eventual.


: Casado, Soltero, Viudo, Divorciado.
: A -l, A-2, A-3 B -l, B-2, B-3.

CAPTULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser...

PASO N 02: Asignar las propiedades.

APLICACION DESARROLLADA N 29

P a g o p o r H o ra

[1 5 .0 0

H o r a s T r a b a ja d a s

T 0 TAL A PAGAR

p |

N uevo

BORDERSTYLE
0 - None
0 - None
0 - None
0 - None
0 - None
1 - Fixed Single
2 - Fixed Single

EITQUETA
Labell
Label2
Label 3
Label4
Label5
Label
Label7

CAPITON
Nombre
Tipo
Pago por Hora
Horas Trabajadas
TOTALA PAGAR
En Blanco
En Blanco

COMANDO
Commandl
Command2

CAPTION
&Nuevo
&Salir

FIGURA
Picture 1

VISIBLE
False

PICTURE
Grfico que se indica

COMBO
Combo 1

TEXT
Permanente

LIST
Permanente
Contratado
Eventual

ENABLED
False
True

S a lir

La aplicacin debe tener las siguientes caractersticas:


1. Al ejecutar la aplicacin, el grfico debe estar oculto y el botn Nuevo
desactivado hasta que se comience a ingresar el nombre del trabajador.
2. El pago por hora se visualiza en forma automtica y depende del tipo de
empleado: Permanente S/.15.00, Contratado S/.10.00 y Eventual SI.
5.00.
3. No existe el botn Calcular, entonces el total a pagar debe visualizarse
automticamente cuando el usuario ingrese el N de horas trabajadas o
cuando cambie el tipo de empleado.
4. En el nmero de horas trabajadas no se permite el ingreso de letras (no se
activa el botn Nuevo).

jlT e x t l

L a b e l2

jC o m b o l

L a b e l3

L a b e lG

LabeM

|T e x t2

L a b e l5

L a b e l7

Com m andl

PASO N 03: Escribir las instrucciones de los controles.


M UY IM PO R T A N TE:
El valor cero (0) puede reemplazar al valor False y el valor uno (1) puede
reemplazar al valor True. Ejemplo:
Com m andl.Visible=True es igual a Com m andl.Visible=l
Com m andl.Visible=False es igual a Com m andl.Visible=0

PASO N 1: Dibujar los controles.

L a b e ll

Ud. Puede cambiar otras propiedades que crea conveniente.

Instrucciones del botn Nuevo: limpia las cajas de texto y las etiquetas,
adems muestra el tipo de empleado por defecto y oculta el grfico.
^

|
----------

Com m and2

Prvate Sub Com mandI_Click()


Textl =
Com bol .Listlndex = 0
Label =
Text2 =
Label7
Picture! .Visible = 0
End Sub

>

VISUAL BASIC como debe ser...

CAPTULO V: Ingreso Personalizado de Datos

Instrucciones del C om bol: permiten visualizar en forma automtica el


pago por hora, segn el tipo de empleado que se elija y si ya se ingres las
horas trabajas visualiza el total a pagar.

In stru ccio n es de Text2: Verifica que se ingrese slo nmeros en las


horas trabajas y calcula en forma automtica el total a pagar. Se puede
realizar la misma operacin usando la funcin ISNUMERIC.

Prvate Sub C om bol_C lick()


N = Combol .Listlndex
Select Case N
Si N vale 0 a elegido la primera opcin
Case 0
Label = "15.00
Case 1
Si N vale 1 a elegido la segunda opcin
Label = "10.00
Case 2
Si N vale 2 a elegido la tercera opcin
Label = 5 .0 0
End Select
Pregunta si no se ha ingresado el pagos por hora
I f Trim(Text2) =
Then
Si no ha sido ingresado pide N" de horas trabajadas
Text2.SetFocus
Else
Si se ha ingresado calcula el total a pagar
Label7 = Format(Val(Label) * Val(Text2), "###,##0.00)
End I f
End Sub

Prvate Sub Textl_Cliange()


I f Trim(Text2) =
Or Val(Text2) = 0 Then
Command 1.Enabled = 0
Else
Command 1.Enabled = 1
Label?-Format(Val(Label) * Val(Text2), "###,##0.00)
End I f
E nd Sub

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


Si es verdad activa el botn Nuevo y visualiza el grfico.
Prvate Sub Textl_Change()
I f Trim( Textl) =
Then
Command2.Enabled = 0
Pie ture 1.Visible - 0
Else
Command2.Enabled = 1
Picturel.Visible = 1
End I f

A P L IC A C I N P R O P U E S T A N 08
Si es Soltero debe pedir la edad y el N de hermanos y si es casado debe
pedir el tiempo de casado y el N de hijos.

Nombre

Nom bre

Estado Civil

|Soltero

Estado Civil

[Casado

E dad

Tiem po d e Casado

N 5 de herm anos

N s d e hijos

N u evo

Sal

N u evo

Salir

M U Y IM P O R T A N T E
Ud., fo rm le se nuevas aplicaciones o intercam bie aplicaciones
p ropuestas entre sus com paeros y desarrllelas con
la fin a lid a d de enriquecer sus conocim ientos.
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 ISlAL BASIC como debe ser..

CAPITULO V: Ingreso Personalizado de Datos

APLICACION DESARROLLADA N 31

PASO N 02: Asignar las propiedades.


EITQUEI
Labell
Label2
Label3

CAPTION
Profesor
Tipo de Curso
Nombre del Curso

BORDERSTYLE
0 - None
0 - None
0 - None

COMANDO
Command 1
Command2

CAPTION
&Nuevo
&Salir

ENABLED
True
True

TEXTO
Textl

TEXT
En Blanco

Esta aplicacin permite asignar un curso a cada profesor. Primero se debe


ingresar su nombre y luego seleccionar el tipo de curso: Aplicativos,
Programacin, Otros. Segn el tipo de curso, se mostrar una lista de cursos:

COMBO
Combol
Combo2

TEXT
En Blanco
En Blanco

A PLIC A TIV O S
Windows 95
Word
Excel
Power Point

Ud. Puede cambiar otras propiedades que crea conveniente.

JQI-xJ
Tipo de Curso
Nombre del Curso

| a p u w TIVS

|W IN D O W S 95

Nuevo

jr ]

Salir

P R O G R A M A C IO N
Foxpro
Visual Basic
Visual Foxpro
Power Builder

OTRO S
Internet
Correo Electrnico
Ingls Tcnico

: Permite limpiar el contenido de un combo.


Nombre del Control. Clear
: Permite adicionar un elemento a un combo.
Nombre del Control. Additem Elemento

A D D 1TE M

En est aplicacin de ejem plo, las propiedades de cada combo se


asignan en el Evento Form_Load.
PASO N 1: Dibujar los controles.
a

;
L a b e ll

jfT e x t l

L a b e l2

[C o m b o l

L a b e l3

|C o m b o 2

C om m andl

230

PASO N 03: Escribir las instrucciones de los controles.


Instrucciones del Form JL oad para asignar las propiedades o valores iniciales
de cada Combo.

IM P O R T A N T E :
CLEAR

LIST
En Blanco
En Blanco

....

.=..l.s l->d

zJ
-1

C o m rn a n d 2

G r u p o E d it o r ia l

Megabyte-^

Prvate Sub Form_Load()


Limpia el contenido del combol
C om bol.C lear
'Adiciona elementos al combol
Combol.Additem APLICATIVOS
Com bol.Additem PROGRAM ACIN
Combo 1.Additem O TRO S
Limpia el contenido del combo2
Combo2.Clear
Adiciona elementos al combo2
Combo2.Additem WINDOWS 9 5
Combo2.Additem W ORD
Combo2.Additem EXC EL
Combo2.Additem P O IN T
Permite que se visualice el ler. elemento de cada combo
Combo l.Listlndex = 0
Combo2.Listlndex - 0
End Sub

S t

CAPITULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser...

Instrucciones del Combol para que de acuerdo al tipo de curso que se


seleccione, se muestre en el combo2 los nombres de los cursos.
P r v a t e S u b C o m b o l _ C l c k ()
n = C o m b o l. L s t l n d e x
S e l e c t C ase n
C ase 0
Combo2. C 1 ea r
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"
C o m b o 2 . A d d l t e m "PO IN T"
m
Combo2. L s t l n d e x = 0
C ase 1
Combo2. C 1ear
C o m b o 2 . A d d l t e m "FOXPRO"
C o m b o 2 . A d d l t e m "V ISU A L B A S I C "
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"
Combo2. L s t l n d e x = 0
C ase 2
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 ELECTRNICO"
Combo2 . A d d l t e m "IN G L S TCNICO"
Combo2. L s t l n d e x = 0
End S e l e c t
End Sub

Instrucciones del Commandl (Nuevo), para ingresar un nuevo profesor.


A signa los valores por defecto a cada com bo y para ello, llam a el
procedimiento Form_Load que contiene dichas instrucciones.
P r v a t e S u b C o m m a n d l _ C l c k ()
'L i m p i a y u b i c a e l c u r s o r e n T e x t l
T e x tl =
T e x t l . S e tF o c u s
'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
End Sub

A P L IC A C I N D E S A R R O L L A D A N 32
Una empresa de venta de computadoras necesita un formulario que permita
realizar su proforma. Dicha empresa tiene los siguientes productos:
Precio

Impresoras

850.00
700.00
600.00

Epson LX-300
Deskject 400
IBM graphics

Computadoras

IBM
Packer Bell
Acer

C lie n te

|X IM E N A T O R R E S

D ire c c i n

(C A S T IL L A 2 5 6 5

C o m p u ta d o ra s

| p a c k e r B e ll

7 0 0 .0 0

|D e s k je t4 0 0

- |

2 7 0 .0 0

S u b T o ta l 9 7 0 .0 0

C a lc u la r

command2 s e

232

e sc rib e

la

in stru c c i n

G r u p o E d it o r ia l

Megabvte

I.G .V . 1 7 4 .6 0

T o ta l 1 1 4 4 .6 0

O tra P ro fo rm a |

_______ S a lir

El botn Calcular permitir obtener el Sub Total, IGV (18%) y el Total.


El botn O tra Proform a permitir limpiar los datos y pedir otros.
El botn Salir finalizar el programa.

PASO N 01: Dibujar los controles.


m m

I in. Formi
Label2

LabeH

Labe!3

T e x tl

Label4

|e x t 2

Label5

I C om bol

Label7

LabelB

|C om bo2

Labe!8

L abe l9

E N D .

180.00'
270.00
380.00

F e c h a 0 7 /2 3 /9 8

P R O F O R M A

Im p re s o ra s

Precio

n s ix i

t S o it D a ta S .A

Com m andl

En e l

" llliJ S P '

L a b e ll 0

Com m and2

L ab e ll 1

Com m and3

| S S ^

VISUAL BASIC como debe ser...

CAPTULO 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, asgneles la propiedad Caption, como


se muestra en la aplicacin.

Estas instrucciones permiten visualizar el precio de la impresora cuando el


usuario la selecciona.

TEXTO

P r i v a t e Sub C o m b o 2 _ C lick()
D im n A s I n t e g e r
n = Combo2. L i s t l n d e x .
S e l e c t C ase n
C ase 0
: L a b e l8 = " 1 8 0 .0 0 "
C ase 1
: L a b e l8 = " 2 7 0 .0 0 "
C ase 2
: L a b e l8 = "3 8 0 .0 0 "
End S e l e c t
End Sub

TEXT

Textl
Text2

En Blanco
En Blanco

LINEA

BORDEWIDTH

Linei
Line2

4
4

combo

text

Combol

IBM

LIST
IBM

Packer Bell
Acer
Combo2

Epson LX-300

Epson LX-300
Deskject 400
IBM graphics

Ud. Puede cambiar otras propiedades que crea conveniente.


PASO N 03: Escribir las instrucciones de los controles.
In stru ccio n es del C o m b o l.
Estas instrucciones permiten visualizar el precio de la computadora cuando
el usuario la selecciona en el combo N1 haciendo click.
P r v a t e S u b C o m b o l _ C l i c k ()
D im n A s I n t e g e r
n = Combo1 . L i s t i n d e x

Select Case n
C ase 0
L a b e l 7 = "8 5 0 .0 0 "
C ase 1
L a b e l 7 = "7 0 0 .0 0 "
C ase 2
L a b e l 7 = " 6 0 0 .0 0 "
End S e l e c t
End Sub

234

Instrucciones del Botn CALCULAR.


P r v a t e S u b C o m m a n d l _ C l i c k ()
D im s t , i g v , t t A s S i n g l e
s t = V a l(L a b e l7 ) + V a l(L a b e l8 )
i g v = s t * 18 / 100
t t = s t + ig v
L a b e 19 = "Sub T o t a l " + F o r m a t $ ( s t , " # # # ,# # 0 .0 0 " )
L a b e llO = " I .G .V . " + F o rm a t$ ( i g v , " # # # ,# # 0 .0 0 " )
L a b e l l l = " T o ta l " + F o rm a t$ ( t t , " # # # ,# # 0 .0 0 " )
End Sub

Instrucciones del Botn OTRA PROFORMA.


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 = "
T e x t 2 = ""
'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
C o m b o l. L i s t l n d e x = 0
Combo2. L i s t l n d e x = 0
L a b e l 9 = "
L a b e l l O = ""
L a b e l l l = ""
T e x t l . S e tF o c u s
End Sub

El botn SALIR debe tener la instruccin END.

G r u p o E d it o r ia l

Megabyte'^|

CAPTULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser...


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

Es un control que permite ingresar datos por seleccin. De esta forma slo
se puede seleccionar una opcin de un grupo de ellas.

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.
: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

AME
Permite asignarle un nombre. Por defecto el nombre es
Optionl, 0ption2, 0ption3 etc.
A IJ G N M E N T

Nombre

Estado Civil :

- Estado Civil:-.......

Nuevo

< Soltero (a)

r
Salir

C Casado [a)

|
Nuevo

Soltero [a)

( Casado [a]

Salir

Para indicar la ubicacin del texto y del botn.

CAPTION

Sueldo

Para escribir el texto que acompaa al botn.

Edad

Tiempo de Servicio |

N! de hermanos

N! de Hijos

ENABLED
Para indicar si debe estar activo o no.

n s ir

Sueldo

(250.00

FONT
Permite seleccionar el tipo,

tamao y estilo de letra.

FORECOLOR
Selecciona un color de la letra.
VALUE

PASO N 1: Dibujar los controles.

Permite saber si un botn ha sido elegido o seleccionado.

VISIBLE
Para indicar si se debe visualizar.

Labell

Para preguntar si un botn de opcin est seleccionado se utiliza la


propiedad Valu. Por ejem plo, para preguntar si el botn N1 est
seleccionado se escribe:
O p t i o n l . V a lu

= T rue

th e n

Tambin 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
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
a s i g n a e l v a l o r FA LSE , E j e m p l o :
O p tio n l.v a lu e = T r u e
o O p tio n l= T ru e
O p tio n l,v a lu e = F a ls e o O p tio n l= F a lse

236

Commandl I

Framel

M UY IM PO R T A N T E

I f

|Texti

Megabyte

f ' 0ption2

Label2

LabeB

Label3

|Texl2

LabeW

|Text3

Command2

le
le

Lo s e l e c c i o n a .
Q u ita la s e le c c i n .

G r u p o E d it o r ia l

Optionl

PASO N 02: Asignar las propiedades.


Asigne las propiedades como se muestra en la aplicacin planteada.

CAPTULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser. . .


PASO N 03: Escribir las instrucciones de los controles.

A P L IC A C I N D E S A R R O L L A D A N 34
Esta aplicacin permite ingresar dos valores numricos y segn el botn de
opcin que se elija, se mostrar el resultado.

P r v a t e S u b C o n u n a n d l_ _ C lc k ()
T e x t l = ""
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 "
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

Labell

( i exl1

Label2

|T e xt2

End Sub

( 0 phon1

Si el usuario hace un click en el botn N 1, se cambia el contenido de las etiquetas N


1, N 2 y N 3 por: Edad, Nde hermanos y 200.00 respectivamente.

0plon 2

0ption 3

0ption 4

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"
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
End Sub

Label3

Label4

Commandl

Command2

PASO N 01: Dibujar los controles.


OPERACIONES ARITMETICAS

Si el usuario hace un click en el botn N 2, se cambia el contenido de las etiquetas


N 1, N 2 y N 3 por: Tiempo de Servicio, N de hijos y 250.00
P r v a t e S u b O p t i o n 2 _ C l i c k ()
L a b e 13 = " 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 "
L a b e l5 = " 2 5 0 .0 0 "
T e x t2 . S e tF o c u s
End Sub

P its ]

V alor N * 01

V alor NS 02

Si no desea escribir las instrucciones en el evento Click de los botones de opciones,


puede agregar un botn de comandos (Command3) que realiza lo mismo:
P r i v a t e S u b C o m m a n d 3 _ C lic k ()
I f O p tio n l Then
L a b e 1 3 = "E d a d "
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 "

Sum a

("

Resta

r*

M ultiplica

Divide

j R E S U LT A D O

OK

SALIR

PASO N 02: Asignar las propiedades.


PASO N 03: Escribir las instrucciones de los controles.

Text2.SetFocus
End I f
I f O p tio n 2 T hen
L a b e 1 3 = "T ie 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 "
L a b e l 5 = " 2 5 0 .0 0 "
T e x t 2 . S e tF o c u s
End I f

Instrucciones de Commandl (OK):


P r i v a t e Sub C o m m a n d l_ C lic k ()
I f O p tio n l
Then L a b e l4 =
I f O p tio n 2
Then L a b e l4 =
I f O p tio n 3
Then L a b e l4 =
I f O p tio n 4 Then
L a b el4 = V
E nd Sub

End Sub
G r u p o E d it o r ia l

Megabyte(

V a l(T e x tl) + V a l(T e x t2 )


V a l(T e x tl) - V a l(T e x t2 )
V a l(T e x tl) * V a l(T e x t2 )
a l( T e x tl) / V a l(T e x t2 )

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
Es un control que permite seleccionar una opcin. 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

Permite asignarle un nombre. Por defecto el nombre es


Checkl, Check2, Check3 etc.
AUGNMENT
Para indicar la ubicacin del texto y de la caja.
CAPTION
Para escribir el texto que acompaa a la caja.
ENABLED
Para indicar si debe estar activo o no.

[Negritai

f"

Subrayado

T~

Cursiva

Salir

PASO N 01: Dibujar los controles.


3

PONT

Permite seleccionar el tipo, tamao y estilo de letra.


FORECOLOR
Selecciona un color de la letra.
VALUE
Permite saber si una caja ha sido elegida o seleccionada.

L a b e l!

VISIBLE

Para indicar si se debe visualizar.

iCheckl

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

Checkl. Valu = 1 Then

Tambin se puede preguntar de la siguiente manera:


If

Checkl Then

A l i g u a l q u e l o s O p tio n
q u ita r la s e le c c i n con

B u tto n s e p u e d e n s e le c c io n a r
l o s v a l o r e s TRU E o F A L S E :

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
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

f ^

240

Lo selecciona.
Le quita la seleccin.

G r u p o E d it o r ia l

J Check3

Commandl

Esta aplicacin es un ejemplo de cmo se puede usar las cajas de verificacin.


Para preguntar si una caja de verificacin est seleccionada se utiliza la
propiedad Valu. Para preguntar si la caja de verificacin N 1 est
seleccionada se escribe:
If

Check2

Megabyte

PASO N 02: Asignar las propiedades.


ETIQUETA

CAPTION

BORDERSTYLE

Labell

Visual Basic

1 - Fixed Single

CAJA DE VERIF.

CAPTION

Checkl
Check2
Check3

Negrita
Subrayado
Cursiva

COMANDOS

CAPTION

Commandl

&Salir

FORMULARIO

CAPTION

Formi

Estilos de Letra

VALUE

0 - Unchecked
0 - Unchecked
0 - Unchecked

| l l t y |> VISUAL BASIC como debe ser. . .

CAPITULO V: Ingreso

PASO N 03: Escribir las instrucciones de los controles.


Si el usuario hace un click en la caja N 1, se verifica s est seleccionada.
Para activar la letra negrita, a la propiedad FontBold de la etiqueta se le
asigna el valor True.
P r v a t e S u b C h e c k l _ C l i c k ()
l ' f C h e c k l . V a lu = 1 Then
L a b e1 1 .F o n tB o ld = True
E lse
L a b e l l . F o n tB o ld = F a ls e
End I f
End Sub

L ISTB O X (CA JA DE LISTA)

Es un control que permite mostrar en una lista un conjunto de elementos o


alternativas que el usuario puede seleccionar.
PR IN C IPA LE S PR O PIED A D E S DE UN LISTB O X :
AM E

Permite asignarle un nombre. Por defecto el nombre es


Listl, List2, List3 etc.
ENABLED

Para indicar si debe estar activo o no.


FONT

Permite seleccionar el tipo, tamao y estilo de letra.


Si el usuario hace un click en la caja N 2, se verifica s est seleccionada.
Para activar la letra subrayada, a la propiedad FontUnderline de la etiqueta
se le asigna el valor True.
P r v a t e S u b C h e c k 2 _ C l c k ()
I f C h e c k 2 . V a lu = 1 Then
L a b e l l . F o n tU n d e rlin e = True
E lse
L a b e l l . F o n tU n d e rlin e = F a lse
End I f
End Sub

Si el usuario hace un click en la caja N 3, se verifica s est seleccionada.


Para activar la letra cursiva, a la propiedad Fontltalic de la etiqueta se le
asigna el valor True.
P r v a t e S u b C h e c k 3 _ C l i c k ()
I f C h e c k 3 . V a lu = 1 Then
L a b e l l . F o n t l t a l i c = True
E lse
L a b e l l .F o n t l t a l i c = F a lse
End I f
End Sub

FO R EC O LO R

Selecciona un color de la letra.


LIST

Permite ingresar los elementos o alternativas que el


usuario puede elegir de este control. Por cada elemento
que se ingrese se debe pulsar <CTRL> + <ENTER>. Para
insertar un elemento, ubique el cursor al inicio de
donde lo desea insertar y pulse <CTRL> + <ENTER>.
LISTCOUNT

Permite obtene el nmero de elementos de la lista.


LISTINDEX

Para saber el elemento que el usuario ha elegido. El


valor -1 indica que no se ha seleccionado ningn
elemento, 0 indica el primer elemento, 1 el segundo,etc.
SORTED

Para indicar si los elementos deben salir ordenador.


STYLE

Para indicar la forma de seleccionar un elemento:


O-Standard 1-Checkbox. La opcin 1-Checkbox permite
que cada elemento funcione como una casilla de
verificacin.
T O O L T IP T E X T

Para mostrar un mensaje de ayuda cuando el puntero


del mouse se encuentre sobre el control.
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^

CAPTULO 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
t *

V E N T A

D E

P A S A JE *

5 3 * 3 1

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 ."

P a s a je r o

( R u b n C a s t illo

D .N .I.

| l 6374657

Prvate Sub Form_Activate()

D e s t in o :
L im a

s e r a s *
T r u jillo
----P iu r a
N uevo

P r e c io

1 5 0 .0 0

P ? [D e s c u e n to !

js .O O

T O T A L S /.

4 5 .0 0

S a lir

D.N.I, y el lugar de destino que se debe seleccionar de una lista, luego debe
mostrar en forma automtica su precio y opcionalmente un descuento del
10%. Los lugares de destino y su precio son: Lima S/. 60.00, Chimbte S/.
50.00, Trujillo S/. 30.00, Piura S/. 30.00 y Tumbes S/. 50.00. El precio debe
estar almacenado en un array.
PASO N 1 : D ib u jar los controles.

-----------------------

L a h > a t3

jT e x t2

L atol3
L a b e l5

-----

L o b o l7

Checkl

L a b e lB

Com m andl

Asignar los valores al array; es decir los precios de los pasajes. Se ejecutan
cuando se activa el formulario.
Al hacer Doble Click o pulsar F7 en cualquier parte libre del formulario elija
el evento ACTIVATE.

L o b o ie
L ab e IS

Com m and2

N O TA :
La barra de desplazamiento vertical del control List se muestra en forma automtica cuando no
se puede visualizar todos los elementos que contiene.

PASO N 02: A signar las propiedades a los controles.


Ud., est en condiciones de asignar las propiedades a los controles como se
muestra en la aplicacin a desarrollar. Los elementos se ingresan a la lista
de la misma forma que en un Combo. Las cajas de texto deben estar en
blanco.
PASO N 03: E sc rib ir las instrucciones de los controles.
Definir la variable PRECIO de tipo Array para cinco elementos en la ventana
de declaracin del formulario (General - Declarations).
CINCO ELEMENTO (DE 0 A 4)
Dim PREClO(5) A s Single
FnrrnRiAr M e g a b y , e S

P R E C IO (0 )
P R E C IO (1 )
P R E C IO ( 2 )
P R E C IO (3 )
P R E C IO (4 )

End Sub

60
50
30
30
50

Instrucciones del Botn Nuevo.


P r v a t e S u b C o m m a n d l_ C lic k ()
L i s t l .L is tln d e x = 0
C h e c k l.V a lu = 0
T e x t l = ""

Text2 =
L a b e l7 =
L a b el8 =
L a b el9 =
T e x t l . SetF ocus
End Sub

Instrucciones de la Casilla de Verificacin (CHECK1), para que al activar


o desactivar el descuento se visualicen los resultados.
P r v a t e S u b C h e c k l _ C l i c k ()
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 b e l8 = F o r m a t(D e s , " # # 0 .0 0 " )
Else
L a b e l8 = 0
End I f
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 " )
E nd S ub
?

Instrucciones del Control LIST1, para que al seleccionar un elemento


(destino), se visualicen los resultados.
P r v a te Sub L is tl_ C lic k ( )
D im N A s I n t e g e r
D im D e s , T o t A s S i n g l e
N = L i s t l . L is tln d e x
L a b e l 7 = F o r m a t( P R E C I O ( N ) , " # # 0 . 0 0 )
I f C h e c k l Then
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 " )
Else
L a b e l8 = 0
End I f
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 r m a t( T o t, " # # 0 .0 0 " )
End Sub

'

CAPTULO V: Ingreso Personalizado de Datos

VISU A L BASIC como debe ser.. .

CALCULWiWSDAS DE FERTILIDAD SEGN ELMTODODELRITMO


G C liS MENSTRUALES REGULARES
Si una mujer tiene ciclos Menstruales Regulares, sus das probables de fertilidad empiezan
a losdasde su primer da de menstruacin y duran 13 das. Por ejemplo: Si su primer
da de menstruacin fue el 01 de Oct, sus das frtiles empiezan el 7 de Oct y terminan en
19deOct.
OCLQ8 MENSTRUALES IRREGULARES
Para determinar los das probables de fertilidad en mujeres con ciclos Menstruales
Irregulares, se tiene que saber cul es el perodo de das mas largo y mas corto en los
ltimos 6 (seis) ciclos menstruales. A la cantidad de das mas corto se le resta 18
(dieciocho) para obtener a los cuantos das de su primer da de menstruacin empieza
sus das frtiles y al periodo de das mas largo se le resta 11 (once) para obtener a los
cuantos das de su primer da de menstruacin terminan sus das frtiles. Por ejemplo,
si el periodo de das mas corto fue de 24 das y el ciclo mas largo fue de 32 das,
entonces, sus das frtiles empiezan a los seis das de su primer da de menstruacin
(contando uno el primer da de su menstruacin) y terminan a los 21 das de iniciado su
periodo menstrual.
. M t T 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 "
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
M itr.* liu c i n l l r g u l .

M c n iliu o c i n lii a g u la i

in s tru c c io n e s
BOTN

P E R IO D O

de

lo s

M EN STRU A L

b o to n e s
REGULAR

Prvate Sub Commandl_Click()


Dim fecha As String
Dim R, X As Integer
Listl.Clear : ListC lear : List3.Clear
fecha = InputBox(Ingrese la Fecha del Primer Da + Chr(13) + de la
ltima menstruacin, MENSTRUACION REGULAR)
If Not IsDate(fecha) Then
MsgBox HA INGRESADO UNA FECHA INCORRECTA, 16, CUIDADO
Else
R = MsgBox( ler. Da de Menstruacin + Format(CDate(fecha), Long
Date), 36, ES LA FECHA CORRECTA)
If R = 6 Then
Labell= ler. Da de Menstruacin:+Format(CDate(fecha),Long Date)
Frame2 = DIAS PROBABLES EN CICLO MENSTRUAL REGULAR DE:
For X = 0 To 5
Listl.Addltem (CDate(fecha) + X) 'DIAS PROBABLES DE NO FERTILIDAD
Next X
For X = 6 To 18
List2.AddItem (CDate(fecha) + X) DIAS PROBABLES DE FERTILIDAD
Next X
For X = 19 To 27
List3.AddItem (CDate(fecha) + X) DIAS PROBABLES DE FERTILIDAD
Next X
End If
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 : ..............................
NO FER TILID AD
2 3 /0 1 /0 0
2 4 /0 1 /0 0
2 5 /0 1 /0 0
2 6 /0 1 /0 0
2 7 /0 1 /0 0
2 8 /0 1 /0 0

FUENTE

F E R T IL ID A D
2 9 /0 1 /OU
3 0 /0 1 /0 0
3 1 /0 1 /0 0
0 1 /0 2 /0 0
0 2 /0 2 /0 0
0 3 /0 2 /0 0
0 4 /0 2 /0 0
0 5 /0 2 /0 0
0 6 /0 2 /0 0

O B S T E T R IZ

NO FER TILID AD

JT J

1 1 /0 2 /0 0
1 2 /0 2 /0 0
1 3 /0 2 /0 0
1 4 /0 2 /0 0
1 5 / 0 2 /0 0
1 6 /0 2 /0 0
1 7 /0 2 /0 0
1 0 /0 2 /0 0
1 9 /0 2 /0 0

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 ra IN N P A R E S * C hiciayo

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
M e n s tr u a c i n R g u la i

Else

M e n s t r u a c i n li r g u l a i

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
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 .
N O FER TILID A D
0 4 /0 1 /0 0
0 5 /0 1 /0 0
0 6 /0 1 /0 0
0 7 /0 1 /0 0
0 8 /0 1 /0 0
0 9 /0 1 /0 0

10/01/00
FUENTE

F E R T IL ID A D

1112/0
/011/0
/000

1 3 /0 1 /0 0
1 4 /0 1 /0 0
1 5 /0 1 /0 0
1 6 /0 1 /0 0
1 7 /0 1 /0 0
1 8 /0 1 /0 0
1 9 /0 1 /0 0

N O FERTILID AD
2 5 / 0 1 /0 0
2 6 / 0 1 /0 0
2 7 / 0 1 /0 0
2 8 / 0 1 /0 0
2 9 / 0 1 /0 0
3 0 / 0 1 /0 0
3 1 / 0 1 /0 0
0 1 /0 2 /0 0

02/02/00

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 ra IN N P A R E S - C N d a y o

Para desarrollar esta aplicacin, dibuje en un formulario 2 controles Frame, 2 boto


nes de comandos, 4 etiquetas y 3 ListBox.

246

G r upo E ditorial

BOTN PERIODO MENSTRUAL REGULAR


Prvate Sub Command2_Click()
Dim fecha As String
Dim L, C, INICIO, FINAL, R, x As Integer
C = Val(InputBox(Nmero de das ms corto,"DE LOS ULTIMOS 6 CICLOS MENSTRUALES"))
L = Val(InputBox(Nmero de das ms largo , DE LOS ULTIMOS 6 CICLOS MENSTRUALES'))
INICIO = C - 18
FINAL = L - 11
MsgBox El perodo frtil empieza a los & INICIO & das de la menstruacin & Chr(13) & y
termina despus de & FINAL & dias de tu mestruacin, 64, CUlDAIX V
fecha=InputBox(ingresa ek da de tu ltima menstruacin,MENSTRUACION IREGULAR)
If Not IsDate(fecha) Then
MsgBox HA INGRESADO UNA FECHA INCORRECTA , 16, CUIDADO

Megabyte^

If R = 6 Then
Labell = 1er. Da de Menstruacin: + Format(CDate(fecha), Long Date)
Labell = Labell & Chr(13) & Periodo mas corto: & C & " das y
periodo mas largo: & L & das
Frame2 = DIAS PROBABLES EN CICLO MENSTRUAL IREGULAR DE:
For x = 0 To INICIO - 2
Listl.Addltem (CDate(fecha) + x) DIAS PROBABLES DE NO FERTILIDAD
Next x
For x = INICIO - 1 To FINAL
List2.AddItem (CDate(fecha) + x)
DIAS PROBABLES DE FERTILIDAD
Next x
For x = FINAL + 1 To 30
List3.AddItem (CDate(fecha) + x)
DIAS PROBABLES DE FERTILIDAD
Next x
End If
End If
End Sub

CAPTULO V: Ingreso Personalizado de Datos

i VISUAL BASIC como debe ser...

U PD O W N
1:
Este control muestra dos botones con flechas que nos permiten incrementar
o disminuir un valor. Se puede relacionar o no con otro control como por
ejemplo con una caja de textos para que funcionen como un solo control.
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 :
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas:
General, Relaciones y Desplazamiento.
la^TTiT-Tl-'MdJ I II I I I I I E l
General | Relaciones | Desplazamiento j

Qriontnton

|0

OLEDrouM ode

c-c20rntonVricoil

_~]

j - cc20LED ropN one

j- ]

BUDDYCONTROL
Se utiliza para escribir el nombre de un control que se encuentre dibujado en
el formulario y con el cual desea relacionar el control UpDown. Por ejemplo,
si tiene dibujado 5 cajas de texto y desea relacionar el control con Text3,
entonces debe escribir Text3 o el nombre que le a asignado en ame.
A U TOBUD DY
Permite que el control UpDown se relacione automticamente con el control
que usted ha dibujado inmediatamente antes o despues de dibujar del
control UpDown.
SYNCBUDDY
Se utiliza para indicar si la propiedad Valu del control UpDown debe estai
sincronizada con la propiedad predeterminada o seleccionada del control
con el que se encuentra relacionado. Si se relaciona con una caja de textos,
la propiedad predeterminada es Text, esto quiere decir que en la propiedad
Text de la caja de texto se muestra el valor la propiedad Valu del control
UpDown.
B U D D Y PR O PERTY
Se utiliza para seleccionar una propiedad para la relacin diferente a la
predeterminada.
El contenido de la hoja Desplazamiento es:
r-j'.i.mi'. f 'i'i'.mumiii.Kiii.i-'

_J

C a n c e la r

______________|A y u d a

G en e ra ! | R elaciones

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

A L IG M E N T
Coloca el control UpDown a la derecha o izquierda del control con el que se
ha relacionado.
O R IE N T A T IO N
Coloca el control en forma vertical o en forma horizontal
O LEDROPM O DE
Devuelve o establece el modo en que un componente de destino realiza las
operaciones de colocacin.
E l contenido de la hoja Relaciones es:
G e n e ra l

R e la c io n e s

B u d d y C o n tro l

JD e s p la z a m ie n to j
|

f~ AutoBucyj

248

A c e p ta r

C a n c e la r

G r u p o E d it o r ia l

A p li a r

Megab

Ayuda

D e s p la za m ie n to |

y e lu e

M in:

,
M ax

fu l

r Wmp

T a s a d e d e s p la z a m ie n to
In c re m e n t

ir'
|

A ce p ta r

Cancetai' J

Aphj. y

A y ix l .

VALUE
Contiene un valor que depende de los botones donde se hizo clck. Este
valor se visualiza en el control relacionado.
M IN
Se utiliza para indicar el valor mnimo para el control UpDown.
M AX
Se utiliza para indicar el valor mximo para el control UpDown.
W RAP
Esta propiedad permite establecer si el valor regresa al valor mnimo cada
vez que se llegue al valor mximo o viceversa.
IN C R E M E N T
Esta propiedad permite establecer el valor del incremento o decremento
para cada vez que se haga clik en los botones del control UpDown.

M B ? VISUAL BASIC como debe ser...

>

Ejemplo: Si en la propiedad Mask Ud., escribe:

M A SK E D B O X
##|
Este control permite ingresar y visualizar datos con un formato determinado.
Si no le asignamos ningn formato de ingreso o visualizacin se comporta de
una manera similar al de una caja de textos.
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 :
FORMAT
Sirve para seleccionar el formado de visualizacin de los
datos. Estos datos pueden ser de tipo numrico, fecha, hora
y texto. Por ejemplo: Formato monetario $#,##0.00; ($#,##0.00)
Utiliza separador de miles; presenta los nmeros negativos entre parntesis.
Formato de porcentaje. 0%

Multiplica el valor por 100 y agrega un signo de porcentaje.


Formato de fecha largo, dddddd

Ejemplo: Domingo 13 de Junio de 1999


Formato de fecha medio, dd-mrm-yy

Ejemplo: 13-Jun-99.

#### .- Permite ingresar cuatro dgitos.


???? .- Permite ingresar cuatro letras.
##??## .- Permite ingresar dos dgitos, luego dos letras y
luego dos dgitos mas.
##/##/## o ##-##-## .- Facilita el ingreso de un fecha, pero
no controla si la fecha ingresada es correcta.
##:##.## .- Facilita el ingreso de las horas,minutos
y
segundos, pero no controla si se ingresada correctamente.
###,###.## .- Facilita el ingreso de cantidades utilizando
miles y dos decimales.
>?<??????? .- Permite ingresar ocho letras, la primera la
convierte a mayscula y el resto en minsculas.
\<####\> .- Permite ingresar cuatro dgitos entre los signos
mayor y menor.
##CAAAAA .- Permite ingresar dos dgitos, -un espacio (opcional)
y luego cinco valores alfanumricos (letras o nmeros).
NOTA:

Para borrar dentro de un programa el contenido de este control, primero debe borrar lo que
contiene en la propiedad Mask y luego se borra lo que contiene la propiedad Text.

Formato de fecha corto, ddddd

MaskedBox 1.Mask =""


MaskedBox 1.Text=""

Ejemplo: 13/06/99.
Formato de hora largo, tttt

Ejemplo: 1:30:42 A.M.


Formato de hora medio. hh:mm AM/PM

Ejemplo: 1:30 A.M.


Formato de hora corto. hh:mm

Ejemplo: 1:30.
MASK
Sirve para asignar un formado para ingresar datos.
Los caracteres ms utilizados son:
# .- Indica que slo se deben ingresar
dgitos.
? .- Indica que slo se deben ingresar
letras.
. .-Se utiliza para separar decimales.
, .- Se utiliza para separar miles.
: .-Se utiliza para separar en las horas.
/ .-Se utiliza para separar en las fechas.
En los cuatro caracteres anteriores verifique la configuracin
de su computadora (Configuracin regional).
A .-- Indica que slo se deben ingresar letras o nmeros.
> .- Convierte las siguientes letras amaysculas.
< .- Convierte las siguientes letras aminsculas.
C .- Indica que slo debe aceptar espacios.
\ .- Permite incluir cualquier carcter anterior dentro de
la mscara.
250

CAPTULO V: Ingreso Personalizado de Datos s S S P

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

ALLOW PROM PT
Se utiliza para indicar el carcter de peticin se puede considerar como un
ingreso vlido.
PRO M PTCH A R
Se utiliza para indicar el carcter de peticin de los datos. El carcter
predeterminado es el subrayado (_), pero Ud., puede utilizar cualquier otro
carcter.
M UY IM PO R T A N TE
Si no desea visualizar ningn carcter de peticin de datos, borre el carcter
que se encuentra en la propiedad PromptChar y luego pulse la tecla ALT y
el nmero 255.
P R O M P T IN C L U D E
Se utiliza para indicar si al referirnos al contenido de la propiedad Text se va
a tomar en cuenta el carcter de peticin.
NOTA:

( uando se ingresa un valor incorrecto; es decir, no cumple el formato establecido, entonces


se ejecutan las instrucciones del evento ValidationError.

CAPITULO V: Ingreso Personalizado de Datos

como debe ser...

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

N o m b re d e l P a c ie n te

jjO R G E R IO S

F e c h a d e In g re s o

|0 4 /0 8 /1 9 99

H o ra d e In g re s o (2 4 H s .)

1 6 :2 0 :1 5

- I

s z i

A c tu a liz a r e l S is te m a j]
A c tu a liz a r e l S is te m a

S a la N s [ I - 1 2 )
N uevo
A s e g u ra d o ( S / N ) ?

S alir

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

Debe tener las siguientes caractersticas:


1. La Fecha y la hora de ingreso se pueden modificar con el control UpDown.
2. Para actualizar la hora el usuario debe ubicar primero el cursor en las horas,
minutos o segundos. En forma predeterminada se modifican los segundos.
3. Para ingresar la sala se deben utilizar un caja de textos y un control UpDown.
4. En Asegurado slo se debe aceptar las letras S(si) o N(no).
5. Los botones Actualizar el Sistema, deben actualizar la fecha y hora del
sistema.
6. Se deben visualizar la fecha y hora del sistema.
PASO N 1: Dibujar los controles.

AL formulado, frame, etiquetas y botones de comandos asgneles la propiedad


Caption como se muestra en la aplicacin a desarrollar.
Las cajas de texto: Text2, Text4 y Text deben tener en su propiedad
BorderStyle el valor 0-None y en su propiedad Width el valor 200.
Las cajas de texto: Text3 y Text5 deben tener en su propiedad BorderStyle
el valor 0-None, en su propiedad Width el valor 90 y en su propiedad Texl
dos punto (:).
Las cajas de texto desde Text2 hasta Text, deben estar lo mas juntas
posibles. Esto lo puede lograr usando la propiedad Left.
Los controles UpDown 1 y UpDown2 no deben tener ninguna propiedad
porque no estn ligados a ningn control, trabajan en forma independiente.
El control UpDown3 est ligado al control Text7, por lo tanto, debe tener las
siguientes propiedades:
UPDOWN

BUDDYCONTROL SYNCBUDDY

UpDown3

Text7

True

BUDDYPROPERTY

Predeterminado

MIN

MAX

WRAP

12

True

Las propiedades de los controles MASKEDBOX son:


MASKEDBOX

MaskedBoxl
MaskedBox2
MaskedBox3
Maskedbox4

MASK

FORMAT

#/# # /# # # #
>?
En Blanco
En Blanco

En Blanco
En Blanco
dddddd
ttttt

ENABLED

True
True
False
False

PASO N 3: Escribir las instrucciones para los controles.


Definir las variables a nivel de formulario:
m u

jjl Proyeclol - Form! (Cdigo)


(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 *

CAPTULO V: Ingreso Personalizado de Datos


Instrucciones del Procedimiento M U ESTRA TIEM PO
S u b MUESTRATIEMPO ()
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 " )
T e x t 6 = Form a t(S E G U N D O S, " 0 0 " )
End Sub

Instrucciones del evento Form_activate


P r v a t e S u b F o r m _ A c t i v a t e ()
T i m e r l . I n t e r v a l = 1000 'A c t i v a l a s i n s t r u c c i o n e s d e l T im er
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
FECHA = D a t e
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 2 . T e x t = "N"
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
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
HORAS = H o u r ( T im e )
MINUTOS = M i n u t e ( T i m e )
SEGUNDOS = S e c o n d ( T i m e )
MUESTRATIEMPO
T e x t l = ""
T e x t7 = 1
T e x t l . S etF o cu s
End Sub

Instrucciones del Control Timer


'Muestra la hora del sistema
P r v a t e S u b T i m e r l _ T i m e r ()
M a sk E d B o x 4 . T e x t = T im e
End Sub

Instrucciones del Control UpDownl


'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 ()
FECHA = C V D a t e ( M a s k E d B o x l . T e x t ) - 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 " )
E nd 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 .
P r v a t e S u b U p D o w n l_ U p 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
M a s k E d B o x l . T e x t - Format(FECHA, " d d / m m / y y y y " )
E nd S u b

254

G rupo .............R, a l

M e g a b y te # *

Instrucciones del Control UpDown2


Al hacer click en la flecha hacia abajo disminuye las horas, los minutos o
segundos, dependiendo de donde se encuentre el cursor. En form a
predetermina disminuyen los segundos.
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 ()
S e l e c t C a s e CAJA
C ase 2
HORAS = HORAS - 1
I f HORAS = - 1 T h e n HORAS = 23
C ase 4
MINUTOS = MINUTOS - 1
I f MINUTOS = - 1 T h e n MINUTOS = 59
C ase 6
SEGUNDOS = SEGUNDOS - 1
I f SEGUNDOS = - 1 T h e n SEGUNDOS = 5 9
End S e l e c t
MUESTRATIEMPO
End Sub

Al hacer click en la flecha hacia arriba aumentan las horas, los minutos o
segundos, dependiendo de donde se encuentre el cursor. En form a
predetermina aumentan los segundos.
P r v a t e S u b U p D ow n2 _U p C lic k ()
S e l e c t C a s e CAJA
C ase 2
HORAS = HORAS + 1
I f HORAS = 24 T h e n HORAS = 0
C ase 4
MINUTOS = MINUTOS + 1
I f MINUTOS = 6 0 T hen MINUTOS = 0
C ase 6
SEGUNDOS = SEGUNDOS + 1
I f SEGUNDOS = 6 0 T h en SEGUNDOS = 0
E nd S e l e c t
MUESTRATIEMPO
End Sub

Instrucciones del Botn Actualizar el Sistema (Fecha)


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 sk E d B o x 3 . T e x t = D a t e
End S u b

Instrucciones del Botn Actualizar el Sistema (Hora)


P r v a t e S u b C o m m a n d 2 _ C lic k ( )
HORAS = V a l ( T e x t 2 )
MINUTOS = V a l ( T e x t 4 )
SEGUNDOS = V a l ( T e x t 2)
Time = CVDate ( S t r (HORAS) +":"+Str (MINUTOS) +*: "+Str (SEGUNDOS))
M a sk E d B o x 4 . T e x t = T im e
E nd S u b

f ^

VISUAL BASIC como debe ser. . .

<

Instrucciones del Control M askEdB oxl


Al dejar de ingresar la fecha de ingreso, verifica que la fecha es correcta.
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 ()
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
M sgB ox "No e s una f e c h a C o r r e c t a " , 1 6 ,
M a skE d B o xl. S e tF o c u s
E nd I f
Erid S u b

"R ec tifiq u e "

Instrucciones del Control M askEdBox2


Permiten que slo se ingresen las letras N o S.

CAPTULO V: Ingreso Personalizado de Datos '%

INSTRUCCIN SENDKEYS
Hace que Visual Basic considera que se han pulsado teclas com o si
hubisemos utilizado el teclado. Esto quiere decir que con esta instruccin
podem os presionar autom ticam ente las teclas ENTER, ESCAPE,
BACKSPACE, TAB, etc., o escribir algn texto sin que el usuario, es decir,
la persona que esta usando la computadora lo haga. Por ejemplo, para enviar
el texto Visual, se escribe: SendKeys "Visual
Los signos ms(+), intercalacin(A), porcentaje(%), tilde(~), los parntesisO
y las teclas especiales deben de estar entre llaves ({}). Debe utilizar el
nombre correcto de las teclas especiales en maysculas o minsculas.
TECLA

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 )


Dim K A s I n t e g e r
K = A s e (U C a se (C h r (K e y A s c i i ) ) )
I f N o t (K = 83 Or K = 78 Or K = 2 7 Or K = 13 Or K = 8) Then
K e y A s c i i = 0 'I n g n o r a e l c a r a c t e r i n g r e s a d o
E nd I f
E nd S u b

Instrucciones de las Cajas de Texto


Al ubicar el cursor en una caja de textos la variable Caja indica dnde de
hizo Click y selecciona lo que contienen.
P r i v a t e S u b T e x t2 _ G o tF o c u s ()
CAJA=2 'H i z o c l i c k e n T e x t 2
T e x t2 . S e lS ta r t = 0
T e x t2 . S e lL e n g th
=
L e n ( T e x t2)
T e x t2 = T e x t2 . S elT exc
End Sub

P r i v a t e S u b T e x t 4 _ G o t F o c u s ()
CAJA=4 ' H i z o c l i c k e n T e x t 4
T e x t4 .S e lS ta r t = 0
T e x t 4 . S e lL e n g th = L e n (T ext4 )
T ext4 = T e x t 4 . S e i T e x t
E nd S u b

P r i v a t e S u b T e x t 6 _ G o t F o c u s ()
CAJA=6 'H i z o c l i c k e n T e x t 6
T e x t6 .S e lS ta r t - 0
T e x t 6 . S e lL e n g th = L e n (T ext )
Text 6 = Text 6 .Sei Text
End Sub

P r i v a t e S u b T e x t 7 _ G o t F o c u s ()
T e x t7 . S e lS ta r t = 0
T e x t7 . S e lL e n g th = L en (T ext7 )
T ext 7 = Text 7 .S ei Text
End Sub

I n s t r u c c i o n e s d e l B o t n Nuevo
P r i v a t e S u b C o n m a n d 3 _ C l i c k ()
F o rm _ A c tiv a te
End Sub

ru po

d it o r ia l

NOMBRE
{BACKSPACE}, {BSJ
(BREAK)
CAPSLOCKj
(DELETE} o (DEL)
(DOWN}
(END)
{ENTER}o ~
{ESC}
{HELP}
(HOME)

TECLA

NOMBRE

{INSERT} o {INS}
INSERT
{LEFT}
FLECHA IZQ
{NUMLOCK}
BLOQ NM
{PGDN}
RE PAG
{PGUP}
AVPG
{PRTSC}
IMPR PANT
{RIGHT}
FLECHA DER
{SCROLLLOCK}
BLOQ DESPL
{TAB}
TAB
FLECHA ARRIBA {UP}

Las teclas de funcin Fl, F2, etc., tienen el mismo nombre.


Ejemplos:
Las siguientes instrucciones ubican el cursor en Textl y pulsan en
forma automtica la tecla TAB.
Textl.setfocus
Sendkeys "{TAB}"
Las siguientes instrucciones ubican el cursor en el Command2 y pulsan
en forma automtica la tecla ENTER que equivale a hacer click, por lo
tanto ejecutarn las instrucciones que se encuentran en dicho botn
de comandos.
Command2.SetFocus
SendKeys ''{enter}"
La siguiente instruccin pulsa en forma automticas las teclas 'AB y
ENTER:
SendKeys "{tab}{enter}"
Para combinar las teclas con CTRL, MAYS (SHIFT) y ALT, debe escribir
primero el cdigo de la tecla:
CTRL (CONTROL) A
MAYS (SHIFT) +
ALT %.
Y luego el nombre de la tecla que desea entre parntesis. Por
ejemplo, La siguiente instruccin pulsa en forma automtica F4,
manteniendo presionada la tecla ALT. S e n d K e y s "% ({F 4})
La siguiente instruccin mantiene presionada la tecla Shift, mientras
escribe la palabra trabajo. S e n d K e y s "+ ( t r a b a j o ) "
Se puede indicar tambin la cantidad de veces que desea que se pulse
la tecla. Por ejemplo, la siguiente instruccin pulsa 6 veces la
tecla BACKSPACE: S e n d K e y s "(B S 6} "

E l Botn salir debe tener la instruccin END.


256

RETROCESO
INTER
BLOQM AYS
SUPR
FLECHA ABAJO
FIN
ENTRAR
ESC
AYUDA
INICIO

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
Esta aplicacin permite ingresar datos, pero tiene un botn que hace una
demostracin de cmo ingresarlos.

Nombre
E d ad
D ireccin

(Demostracin

T elfoho

N u e vo

S a lir

PASO N 1: Dibujar los controles.


-IPI *1
Lab e ll

T e x tl

Label2

|T e x t2

Label3

|T e x t3

Labe!4

| f ext4

LabeIS

C om bol

Com m and!

Com m and3

" 3 ::
Com m and2

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


Definir las variables a nivel de formulario.
P u b l i c DATO, Y, N A s B y t e
P u b l i c NOMBRE, EDAD, D IR EC C IO N , TELEFONO A s S t r i n g

Procedimiento Cambio

Instrucciones del botn Nuevo

S u b CAMBIO ()
DATO = DATO + 1

P r v a t e S u b C o m m a n d l _ C l c k ()
F o rm _ A c tiv a te
End Sub

Y = 0

258

P r i v a t e S u b C o m m a n d 3 _ C lic k ()
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
T im e r 1 . I n t e r v a l = 10 0
End Sub

Instrucciones del-control T im erl

PASO N 2: Asignar las propiedades a los controles.


A las etiquetas y botones de comandos asgneles su propiedad Caption como
se muestra en la aplicacin a desarrollar.
El C om bol debe tener en su propiedad List, los valores: Prim aria,
Secundaria y Superior.

SendK eys
End Sub

P r i v a t e S u b F o r m _ A c t iv a t e ()
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
NOMBRE = "OLGA UBILLUS D. "
EDAD = "25 ANOS"
DIRECCION = "A v. IMELDA LOPEZ 2 8 5 "
TELEFONO = "2 2 2 3 2 4 "
DATO = 1
Y = 0
T e x tl =
: T e x t 2 = "" : T e x t3 = "" : T e x t4 =
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
End Sub

Instrucciones del botn Dem ostracin.

j Primaria

Estudios

Instrucciones del procedim iento Form _Activate

" { TAB }'

G r u p o E d it o r ia l

Megabyte*

P r i v a t e S u b T im e r l _ T im e r ()
Y = Y + 1
S e l e c t C a se DATO
C a se 1
S e n d K e y s M id (NOMBRE, Y, 1)
I f Y = L e n (NOMBRE) T h en CAMBIO
C a se 2
S e n d K e y s M id (EDAD, Y, 1)
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
S e n d K e y s M i d (TELEFONO, Y, 1)
I f Y = L e n (TELEFONO) T hen CAMBIO
C a se 5
T i m e r l . I n t e r v a l = 700 'A m p lia e l i n t e r v a l o d e tie m p o
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
DATO = DATO + 1
C a se 6
S e n d K e y s " ( { dow n })"
DATO = DATO + 1
C a se 7
S e n d K e y s " ( {dow n })"
DATO = DATO + 1
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
Command2. E n a b le d = T r u e
Command3.E n a b le d = T r u e
C om m andl. S e tF o c u s
End S e l e c t
End Sub

259

CAPTULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser..

ARRASTRAR Y COLOCAR
Para que usted pueda desarrollar programas donde se permita Arrastrar y
Colocar Objetos, primero debe saber siguiente:

A P L IC A C IO N D E SA R R O L L A D A N 39
Esta aplicacin consiste en el juego TRES EN RAYA para lo cual se
utiliza el proceso de Arrastrar y Colocar.
yjS*

EVENTO DRAGDROP
Es un evento cuyas instrucciones que contiene se ejecutan cuando se termina
el proceso de Arrastrar y Colocar.
Recibe normalmente tres valores en las siguientes variables:
SOURCE: Es una variable que representa al control que se esta arrastrando.
Puede utilizar esta variable para asignar valores a las propiedades de dicho
control.
X: Es una variable que representa la posicin Horizontal del puntero del mouse.
Y: Es una variable que representa la posicin Vertical del puntero del mouse.

? r

r~m r
ix : r

PROPIEDAD DRAGM ODE


Cuando un control tiene esta propiedad se utiliza para indicar cmo se debe
iniciar el proceso Arrastrar y Colocar.
Si se le asigna el valor 0 (Manual) se necesita utilizar el mtodo Drag para
iniciar el proceso.
Si se le asigna el valor 1 (Automtico) el proceso se inicia automticamente
cuando usted lo requiera.
M TODO DRAG
Este mtodo se utiliza para iniciar, term inar o cancelar un proceso de
Arrastrar y Colocar. Su sintaxis es:
Nom bre del Control.Drag Valor
El valor puede ser:
0 : Cancela el proceso de Arrastrar y Colocar.
1 : Inicia el proceso de Arrastrar y Colocar.
2 : Termina el proceso de Arrastrar y Colocar.
La siguiente aplicacin muestra un ejemplo de Arrastrar y Colocar:

260

G r u p o E d it o r ia l

Megabyte ^ ||i |||

fe

^
j & l i x a Muela

Si trabajamos con array de controles tambin devuelve un valor en la variable


INDEX que representa al N del control del array que se est utilizando.
EVENTO DRAGOVER
Es un evento cuyas instrucciones que contiene se ejecutan cuando el proceso
de Arrastrar y Colocar se esta realizando.
Recibe los mismos valores que el evento DragDrop, pero adems:
STATE: Es una variable que representa cul es la situacin del control que
se esta arrastrando en el control de destino. Devuelve los valores 1, 2 3.
0 : El control que se est arrastrando entra al control destino.
1 : El control que se est arrastrando sale del control destino.
2: El control que se est arrastrando se ha movido sobre el control destino.

***

... ..... .
B t m & x W 0 1 corneto

PASO N 1: Dibujar los controles.


Picturel Picture2 Array de Picture Picture3 Picture4
(de0a8)

mm

-Picture7

Hcture5
La be ll

Label3

Labe(2

LabeM
IT ext2

jT e x tl
Frame4
r

C he ck!

PASO N 2: Asignar las propiedades.


Coloque el Picture2 sobre el Picturel y el Picture4 sobre el Picture3.
Slo al Picture5 y Picture7 asigneles en su propiedad DragMode el valor I
(Automtico). Los grficos utilizados en la propiedad picture de algunos
controles son: Face03.ico (Alegre), Face04.ico (Triste), House.ico (Casa),
Match.ico (Fuego), TrffclOa.ico (Semforo), EraseOl .ico (Borrador). Si no
los tiene utilice cualquier otro.
A los otros controles asigneles las propiedades como se indica en la
aplicacin.

S ^

CAPTULO V: Ingreso Personalizado de Datos

VISUAL BASIC como debe ser. . .

PASO N 3: Escribir las instrucciones para los controles


Instrucciones del botn Nuevo Juego.
Private Sub Commandl_C lick()
Dim x A s Byte
Rem Oculta las figuras alegre y triste
Picture 1. Visible = False
Picture2.Visible = False
Picture3.Visible = False
Picture4.Visible = False
Rem Limpia el tablero del tres en raya
For x = 0 To 8
Picturefx) = LoadPicture("")
Next x
Rem Pregunta quin juega primero
I f Check2 Then
Frame .Enabled = True
Frame 3. Enabled = False
Else
Frame 1. Enabled = False
Frame3. Enabled - True
End I f
Rem Activa el tablero del tres en raya
Frame2. Enabled = True
End Sub

Instrucciones del Procedim iento GANADOR.

Instrucciones del botn Inicializar el Puntaje.


Private Sub Com m and!_Click()
Labell = 0
Label2 = 0
E nd Sub
Instrucciones del C h eck l
Private Sub C heckl jC lic k ()
I f Checkl Then
Labell .Visible = True
Label2.Visible = True
Else
Label .Visible = False
luibel2.Visible = False
End I f
End Sub

262

Instrucciones del Form _Activate


Prvate Sub Form_Activatef)
Checkl. Valu = 1
Check2. Valu - 1
C om m andl _Click
E nd Sub

G r u p o E d it o r ia l

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)
Rem Coloca la figura
Picturef Index) = Source
Rem Activa el jugador de turno
If Source = Picture5 Then
Frame .Enabled = False
Frame 3. Enabled = True
Else
Frame 1. Enabled - True
Frame3. Enabled = False
End If
Rem Pregunta si hubo un ganador (Tres en raya horizontal)
IfPicture(O) = Picturef 1) And Picture6( 1) = Picturef2) Then Call ganadorfO)
If Picturef3) = Picturef4) And Picturef4) = Picturef5) Then Call ganado rf3)
IfPicturef) = Picturef 7) And Picture(7) - Picture(8) Then Call ganadorf)
Rem Pregunta si hubo un ganador f Tres en raya vertical)
If Picturef0) = Picturef 3) And Picture(3) - Picturef) Then Call ganadorfO)
If Picturef 1) = Picturef4) And Picturef4) = Picturef 7) Then Call ganado rf I)
If Picturef 2) = Picturef5) And Picturef5) = Picturef8) Then Call ganado rf 2)
Rem Pregunta si hubo un ganador (Tres en raya diagonal)
IfPicture(O) = Picture(4) And Picture(4) = Picture(8) Then Call ganadorfO)
If Picturef 2) = Picturef4) And Picturef4) = Picturef6) Then Call ganado rf 2)
End Sub

Megabyte

Sub ganadorfcarta)
Rem Pregunta si gan el ju gar N 01
If Picturef carta) - Picture5 Then
Picturel. Visible = True
Picture4. Visible = True
MsgBox Gan el Jugador N 01 +Chr(13)+Chr(34)+Textl+Chr(34),4,
Felicitaciones
Labell = Labell + 10
Frame2. Enabled = False
End If
Rem Pregunta si gan el ju gar N 02
If Picturef carta) = Picture7 Then
Picture2. Visible = True
Picture3. Visible = True
MsgBox Gan el Jugador N 02 +Chr(13)+Chr(34)+Text2+Chr(34), 4,
Felicitaciones
Label2 = Label2 + 10
Frame2.Enabled = False
End If
End Sub

I VISUAL BASIC como debe ser...


AHORRE TIEM PO AL PROGRAMAR

IN STR U C C I N W IT H
Esta instruccin permite ahorrar tiempo al momento de programar, porque
evita referirnos varias veces al nombre de un control.
Su sintaxis en la siguiente:
With Nombre del Control
Instruccin (es)
End With
Dentro del bloque de instrucciones, usted puede referirse a cualquier
propiedad o mtodo del control indicado con slo escribir un punto (.) antes
de la propiedad o mtodo.
Ejemplo:
Las siguientes instrucciones:
C o m b o l.A d d lte m "Api i c a t i v o s "
C o m b o l. A d d l tem " P r o g r a m a d n "
C o m b o l.A d d lte m " O tr o s "
C o m b o l. L i s t l n d e x = 0

Se pueden escribir de la siguiente manera


Wi t h Com bo1
.A d d lte m " A p l i c a t i v o s "
. A d d lte m "P ro g ra m a ci n "
.A d d lte m "O tro s"
.L istln d e x = 0
E n d Wi t h

IM P O R T A N T E :
Cuando tengas que repetir instrucciones similares es un programa, utiliza las
herramientas de Copiar y Pegar, la cuales tambin permiten ahorrar tiempo
durante la programacin.
COPIAR -> Ctrl + C
PEGAR -> Ctrl + V

264

o
o

Edicin/Copiar
Edicin/Pegar

G r u p o E d it o r ia l

Megabyte

PREGUNTAS DE REPASO N 05
1. Cmo se pregunta si un control OptionButton est activado?
2. Qu instruccin o mtodo permite quitar un elemento del control
ComboBox y ListBox?
3. Cul es la diferencia entre las propiedades Format y Mask del control
MaskEdBox?
4. Cmo sabemos el elemento que el usuario a elegido de un control,
ComboBox o ListBox?
5. Cm o se puede verificar que la fecha ingresada en el control
MaskEdBox es correcta?
6. Cul es la diferencia entre en un OptionButton y CheckBox?
7. Qu ventaja tiene el control MaskEdBox sobre un TextBox?
8. Qu utilidad tiene la propiedad Warp en el control UpDown?
9. Qu teclas se deben pulsar por cada elemento que desea adicionar al
control ListBox o ComboBox?
10. Cmo se pregunta si un control Checkbox est activado?
11. Qu debe hacer si no desea visualizar el caracter de peticin en el
control MaskEdBox?
12. El Valor True se puede reemplazar por el nm ero____ y el valor False
por el nm ero____ .
13. Cul es la propiedad que permite saber si un control OptionButton o
CheckBox se encuentran activados o no?
14. Qu utilidad tiene la instruccin Sendkeys?
15. Cul sera el formato de la propiedad Mask del MaskEdBox para
ingresar una fecha apartir del ao 2000 (4 digitos)?
16. Con qu instruccin o mtodo se puede agregar elementos al control
ComboBox y ListBox?
17. Cmo se borra el contenido de un control MaskEdBox?
18. Qu utilidad tiene la propiedad Buddycontrol de un UpDown?
19. Qu evento se ejecuta en el control MaskEdBox cuando se ingresan
los que se cumple el formato establecido?
20. Cmo podemos hacer que se muestren los elementos de un ComboBox
en forma automatica con la instruccin SendKeys?
Es m uy importante que usted, se fo rm u le nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de
estudio y desarrollarlas con la finalidad de enriquecer sus
conocimientos.

BASIC como debe ser.. .

PREGUNTAS DE REPASO N 06
1. Cmo quita un formulario de sus aplicacin?
2. Qu debe hacer si desea evitar que se muestre la ventana de dilogo
cada vez que agrega un formulario a su aplicacin?
3. Se puede grabar dos formularios con el mismo nombre?
4. Cules son los pasos para agregar la calculadora de Visual Basic a una
aplicacin?
5. Es obligatorio ocultar un formulario para visualizar otro durante la
ejecucin de una aplicacin?
6. Se puede agregar a una aplicacin un formulario que en su propiedad
ame tenga el mismo nombre de uno de los formularios de dicha
aplicacin?
7. Cul es la diferencia entre Hide y Unload?
8. Qu debe hacer si en una aplicacin tiene varios formularios y desea
visualiza o modifcar uno de ellos?
9. Explique cmo se adiciona un formulario ya creado a una nueva aplicacin.
10. Cuando se ejecuta una aplicacin, Visual Basic en forma predeterminada
ejecuta el formulario N ___ .
11. Q u m ensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicacin y a qu se deben?
12. Cmo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
13. Cul es la diferencia entre Show y Load?
14. Explique la palabra clave Me.
15. Explique cmo se adiciona un formulario en blanco a una aplicacin.
16. Si tiene una aplicacin con 5 formularios. Cuando grabe la aplicacin
cuntos nombres debe ingresar.
17. Qu debe hacer para que Visual Basic ejecute primero un formulario
diferente al que ejecuta en forma predeterminada?
18. Cmo se declara una variable o procedimiento para poder usarlo en
cualquier formulario de una aplicacin?
19. Cul es la diferencia entre la calculadora del Visual Basic y la
calculadora del Windows?
20. Cuando quita un formulario de su aplicacin, se borra fsicamente del
disco de su computadora?
La creatividad es m uy importante, form lese nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de estudio
y desarrollarlas con la finalidad de enriquecer sus conocimientos.

266

G r u p o E d it o r ia l

Megabyte

CAPITULO VI
Aqirfior Inrmulino
N

u o to

I E is te n lt I

E M t M M t V B D a ta
F a rm

W\2ard

/ W fitfin t
e p a ra

f-rwfrvii
f o m id Jab.i<
ri

as de
d ata s . . .

Q- en a
A d d in O D B C

About
O a io g

o. a

Efro w s e r CvstaG rid

Loa In

L o g In
D ia lo g

Q u e ry s

O p t io n s
D ld a q

o.
A c e rc a

de

S p la s h
S cre e n

T ip O f
T h e D ew

en. &

Entelo d e

p e t o ...

sesin

A b rir
L -e n e e le i

jiuda
-08-98

BIENVENIDOS
AL
SISTEM A
"l D K lD l

Cancelar

MANEJO DE
VARIOS
FORMULARIOS

CAPTULO VI: Manejo de Varios Formularios


MANEJO DE VARIOS FORMULARIOS
RIOS
r-

Cada vez que ingresa al Visual Basic, muestra una aplicacin que tiene en
forma predeterminada un formulario (Form l). Pero puede agregar ms
formularios.
AGREGAR FORMULARIOS A UNA APLICACIN:
Existen 3 formas de agregar formularios:
1. De la opcin Project (Proyecto) de la Barra de Men elija Add Form
(Agregar Formulario).
2. Haga Click en el botn Add Form de la barra de Herramientas.
3. En la ventana de proyecto haga click con el botn derecho del Mouse y
elija la opcin Agregar, luego formulario.
3 -

BOTON ADD FORM

Segn como est configurado el Visual Basic puede visualizar la siguiente


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

V V

2 2 2 2 3 8 1 VB D a t a A s is te n t
F o rm e p a r a
W iz a rd fo rm u la n
os de
d a t o s ...

A ddiri

ODBC
L og In

Q
A bout
D ialog

B ro w s e r D a ta G rid

D
L og In
D ialog

O
Q u e ry s

Q
O p tio n s
D ialog

Q
A c e rc a
de

D
S p la s h
S c re e n

Q.
Tip Of
T he D ay

CJ '

Inicio d e O p c io ...
s e s i n

Abtir

Cancelar

Ayyda

>

N fi mostrar esfe cuadro de dilogo en el futuro

Si no desea visualizar esta ventana active la casilla:


No mostrar este cuadro de dilogo en elfuturo.
Si desea visualizarla: Active la opcin Tools (Herramientas), luego Options
(Opciones) y de la hoja Environment (Entorno) active la casilla Foms (Formularios).
En la hoja Nuevo, se muestra el icono formulario (Form), que permite agregar
un nuevo formulario en blanco a nuestra aplicacin. Para ello, seleccinelo
y haga click en el botn Abrir.

CAPTULO VI: Manejo de Varios Formularios

U l l b - VISUAL BASIC como debe ser: . .

En la hoja Existente, se muestran los formularios que Ud., a diseo y


permite agregarlos a su nueva aplicacin. Para que esto tenga xito debe
de tener cuidado que los nuevos formularios existentes que desea agregar
no tengan el mismo nombre (propiedad ame) de los formularios que tiene
en su aplicacin actual.
Por ejemplo, se desea agregar a la aplicacin actual un formulario que tiene en
su propiedad ame el nombre Forml, pero en la aplicacin actual ya existe un
formulario que en sus propiedad ame tiene dicho nombre. Entonces se visualizan
los siguientes mensajes de error:
Microsoft Visual Basic

&

Errores de carga. Consulte 'C:\Archivos de program a\DevStudio\VB\Form 1 log' para


obtener ms detalles
Aceptar

j|

N o se c a rg a r 'F o rm l* El nom bre y a e st e n uso.

I r ^ A c j^ c ir

QUITAR FORM ULARIOS DE UNA APLICACIN:


Para quitar un formulario de su aplicacin pude seguir cualquiera de los
siguientes pasos:
1. De la opcin Project (Proyecto) de la Barra de Men elija Remove
Form (Quitar Formulario).
2. En la ventana de proyecto haga click con el botn derecho del Mouse en
el nombre del formulario que desea quitar y elija la opcin Remove
Form.
NOTA:
Cuando Ud., quita formularios de su aplicacin que previamente a grabado,
Visual Basic no los borra de su computadora, slo los quita de la aplicacin
actual. Esto quiere decir que Ud., puede volver a agregar dicho formulario a su
aplicacin o en cualquier otra.

Ayuda

M icro so ft V isu a l B a sic


f \

<11111

)|

Ayuda

Para solucionar este problema cambie el nombre de la propiedad ame a cualquiera


de los formularios.
Para visualizar todos los formularios que tienen nuestra aplicacin podemos
acticar la ventana de proyectos. Por ejemplo, la siguiente ventana indica
que tenemos 4 formularios:

SELECCIONAR EL FORMULARIO A EJECUTARSE PRIMERO:


Visual Basic en forma predeterminada ejecuta el formulario N 1 cuando
Ud., ejecuta su aplicacin. Si desea indicarle que ejecute otro formulario
puede seguir cualquiera de los siguientes pasos:
1. De la opcin Project (Proyecto) de la Barra de Men elija Properties
Project (Propiedades del Proyecto)
2. En la ventana de proyecto haga click con el botn derecho del Mouse en
el nombre del proyecto y elija la opcin Propiedades del Proyecto.
Se visualiza la siguiente ventana:
G e n e r a l j G e n e r a r j C o m p ila r | C o m p o n e n t e |
T ip o d e p r o y e c t o :

O b j e t o in ic ia l:

N ont> f d p r o y e c t o :
j P ro y e c to 1

' CD

Id . d e c o n te x to
d e la A y u d a d e l
p ro y e c to :

h o m b re d e l a rc h iv o d e A y u d a :

C3
a
a
a

F o rm l
F o rm 2
F o rm 3
Fo rrn 4

(F o r m i)
(F o r m 2 )
(F o r m 3 )
(F o r m 4 )

i----------------------------------------- n '
d e s c rip c i n d e l p r o y e c to :

I----------------------------------------------------------------r~
A c tu a liz a r c o n t r o l e s A c tiv e X

Haga click en el signo ms (+) si no se visualizan los formularios.

I
A c e p ta r

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


su propiedad ame.
Para visualizar o modificar cualquier formulario, haga doble click en su
nombre o pulse SHIFT+F7.

270

Grupo Editorial Megabyte

C a n c e l a r __ |

A yuda

Haga click en la flecha hacia ahajo de Startup Object (Objeto Inicial) y seleccione
el formulario que desea que se ejecute primero.

^ I - VISUAL BASIC como debe ser. . .

CAPITULO VI:

M U Y IM PO R TA N TE
Si desea referirse a la propiedad de un control que se encuentra en
otro formulario, debe utiliza el signo de admiracin:
Nombre del Form ulario!Control. Propiedad = Valor
Ejemplo:
La siguiente instruccin m uestra en la etiqueta N 2 del form ulario
Form3 la palabra HOLA. Esto se puede realizar desde cualquier fo r
mulario.

io de Varios Formularios 'M,

A P L IC A C IO N D E SA R R O L L A D A N H40
Esta aplicacin es un ejemplo de cmo se manejan varios formulario en una
aplicacin.
PASO N 01
Agregue y dibuje los formularios siguientes:
FO R M I

FO RM 2

IN G R ES O LE DA
Centro de Estudios

Form3!Label2 = "Hola"
Los nombres de los formularios en forma predeterminada son: Form 1, Form2,
Form3, etc. segn la cantidad de formularios que adicione a su aplicacin.

Ciclo

Apodeiado(a)

J~

Turno

N* de Hermanos

Lugar de Origen

Tipo de Vivienda

Aula

INSTRUCCIONES PARA M ANEJAR FORM ULARIOS


LOAD :
Permite cargar un formulario en la memoria, pero no lo visualiza. Para tener
acceso a los controles y propiedades de un formulario, ste debe estar car
gado en memoria.
LOAD Nombre del Formulario
UNLOAD :
Permite descargar (cierra) un formulario de la memoria independientemen
te de que se est o no visualizando.
UNLOAD Nombre del Formulario
HIDE :
Permite ocultar un formulario.
Nombre del Formulario.HIDE
SHOW :
Permite visualizar un formulario.
Nombre del Formulario.SHOW

La palabra clave M E puede reemplazar al nombre del formulario actual.


UNLOAD ME Descarga el form ulario activo.
G rupo E ditorial

MUEVO

SAUR

NUEVO

FO RM 3

FO RM 4

INGRESO DE D A TO S:

DATOS EERSONALES |
DATOS ACADEMICOS j
DATO FAMILIARES

Nombre

J[~

Direccin

Telfono

|~

Fecha de Nac.

|~

Sexo

MUEVO

IR]|

FO RM 5

SALIR

FO RM 6
Sjxl
Hora: 4;30pm.
Fecha: 21-08-98

Ejemplos:
FORM2.SHOW
Muestra el form ulario N 2.
UNLOAD FORM2 Descarga el form ulario N 2.

272

X.

Especialidad

Megabvte

B IE N V E N ID O S
AL
S IS T E M A
I

Cancelar I

Ingiese los Datos Correctos :


Usuario

Jj

P a ssw o rd

CAPTULO VI: Manejo de Varios Formularios

PASO N 02
INSTRUCCIONES DEL FORM1
Las instrucciones del Commandl (OK) permiten ocultar el formulario N 1
y visualizar el formulario N 2 .
P r v a t e S u b C o m m a n d l _ C l i c k ()
F o r m l. H d e
F orm 2. Show
End Sub

Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicacin.


P r v a t e S u b C o m m and 2_ _C lick ()
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,
I f R = 6 Then End
End Sub

"C u id a d o ")

INSTRUCCIONES DEL FORM2


Las instrucciones del C om m andl (OK) verifica que se ha ingresado
correctamente el nombre del usuario y su password. El nombre del usuario
es JUAN JOSE y su password VISUAL.
La caja dE textos N 2 (Text2) debe tener en la propiedad Passwordchar el
asterisco (*) para que no se vea el password cuando es ingresado.
P r v a t e S u b C o m m a n d l_ C lic k ( )
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
F o r m 2 .H d e
F o rm 3 . Show
El se
M sgBox "DATOS INCORRECTOS", 1 6 , "ACCESO DENEGADO"
T e x t l = ""
T e x t 2 = ""
T e x t l . S etF o cu s
E nd I f
End S u b

Las instrucciones del Command2 (Cancelar) permiten finalizar la aplicacin.


P r v a t e S u b C o m m a n d 2 _ C lic k ()
Dim R A s I n t e g e r
R = M sgB ox( "E sta s e g u r o " , 36,
I f R = 6 T h e n End

"C u id a d o ")

^ |f ||

INSTRUCCIONES DEL FORM3


Las instrucciones del Commandl (Datos Personales) oculta el Form3 (Men
Principal) y visualiza el Form4 (Ingreso de datos Personales).
P r v a t e Sub C o m m a n d ita i c k ( )
F o rm 3 .H d e
F o rm 4 . Show
End Sub

Las instrucciones del Command2 (Datos Acadmicos) oculta ei Form3


(Men Principal) y visualiza el Form5 (Ingreso de datos Acadmicos).
P r i v a t e Su b C o m m a n d 2 _ C lick()
F orm 3. H d e
F orm 5. Show
End Sub

Las instrucciones del Command3 (Datos Familiares) oculta el Form3 (Men


Principal) y visualiza el Form (Ingreso de datos Personales).
P r v a t e S u b C o m m a n d 3 _ C l i c k ()
F orm 3. H d e
F o rm 6 . Show
End Sub

Las instrucciones del Command4 (Salir) permiten finalizar la aplicacin.


P r v a t e S u b C o m m a n d 4 _ C l i c k ()
R = M sgB ox( "E sta s e g u r o " , 36,
I f R = 6 Then End
End Sub

"C u id a d o ")

INSTRUCCIONES DEL FORM4


Instrucciones del botn Nuevo.
^ P r v a t e S u b C o m m a n d l _ C l i c k ()
T e x tl _
T e x t 2 _ n
T e x t 3 _ il n
T e x t4 = " "
T e x t5 = " "
T e x tl S e tF o c u s
End Sub

Instrucciones del botn Salir.


P r v a t e S u b C o m m a n d 2 _ C l i c k ()
F orm 4. H d e
F o rm 3 . Show
End Sub

275

CAPTULO VI: Manejo de Varios Formularios

w X fo VISUAL BASIC como debe ser..

T IPO S D E FO R M U L A R IO S

INSTRUCCIONES DEL FORM5


Instrucciones del botn Nuevo.

Formulario Modal:
Consiste en un formulario que NO permite continuar ejecutando la aplicacin
o pasar a otro formulario sin que se cierre correctamente. Para mostrar un
formulario y que funcione de tipo Modal slo debe escribir del mtodo Show
el nmero 1 o la palabra vbModal. Ejempo: FormS.Show 1
Formulario No Modal
Consiste en un formulario que SI permite continuar con la ejecucin de la
aplicacin o pasar a otro formulario sin necesidad que el formulario se cierre.
Para mostrar un formulario y que funcione de tipo No Modal se debe escribir
del mtodo Show sin ningn parmetro. Ejempo: Form3.Show

P r v a t e S u b C o m m a n d l _ C l c k ()
T e x tl
T e x t2
T e x t3

=
=
=

T e x t

T e x t5

T e x t l . S e tF o c u s
End Sub

Instrucciones del botn Salir.


P r v a t e S u b C o m m a n d 2 _ C lic k ()
F o r m 5 .H i d e
F o rm 3 . Show
End Sub

TIPO D E IN T ER FA Z
SDI (Interfaz de Documentos Simples)
Permiten crear aplicaciones con los formularios estndar o normales como
los utilizados en los ejemplos anteriores.
MDI (Interfaz de Documentos Mltiples)
Permiten crear aplicaciones que mantienen varios formularios (secundarios)
dentro de un formulario principal llamado MDI. Los MDI slo aceptan
controles que tengan la propiedad Align como StatusBar, ToolBar y Picture
(puede dibujar otros sobre este control) o aquellos que no se visualicen al
momento de ejecutarse el formulario como el control Timer.
DESARROLLAR UNA APLICACIN CON UN FORMULARIO MDI
Para desarrollar la aplicacin anterior con formularios MDI y secundarios
siga los siguientes pasos:
Elija la opcin Proyecto y luego Agregar Formulario MDI. En este formulario
MDI disee el Men Principal y al resto de formularios asgneles en su
propiedad MDIChild el valor TRUE.

INSTRUCCIONES DEL FORM


Instrucciones del botn Nuevo.
P r i v a t e S u b C o m m a n d l _ C l i c k ()
T e x t l = ""
T e x t 2 = ""
T e x t 3 = ""
T e x t 4 = ""
T e x t l . S e tF o c u s
E nd Sub

Instrucciones del botn Salir.


P r v a t e S u b C o m m a n d 2 _ C lic k ()
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

Qu instrucciones debe tener el botn OK si se quiere desarrollar la aplicac.


anterior con botones de opciones?
f

_ | | x |

In g ie r o d e D ato .(

.D a to s P e rs o n a le s

C'

D a to s A c a d m ic o s

Prvate Sub Timerl_Timer()

n
Timer 1. Intenal = 0
Forml.Show
End Sub

D a to s F am ilia re s
r

Sa lir

OK

276

Prvate Sub Main ()


Form7.Show
Fonn 7Timer. Interval = 3000
End Suh

IMPORTANTE: Cada aplicacin Slo acepta un formulario MDI y los formularios


secundarios no se pueden llamar de tipo Modal.

G r u p o E d it o r ia l

Si desea que su aplicacin ejecute primero un procedimiento, entonces en la


opcin Proyecto/Propiedades del Proyecto/Objeto Inicial, elija Sub Main. El
procedimiento Sub Main lo debe crear en un mdulo. Por ejemplo, en la aplicacin
anterior agregue un mdulo y un formulario (Form7) y disee en l una pantalla
de presentacin la cual se visualizar por 3 segundos antes de mostrar el formulario
N 1 (Bienvenida). En este formulario debe dibujar un control Timer.
Instrucciones del Timer
Instrucciones del procedimiento Main

Megabyte <

I p f i^

G r u p o E d it o r ia l

Megabyte

277

CAPTULO VI: Manejo de Varios Formularios

VISUAL BASIC como debe ser.. .

APLICACION DESARROLLADA N 41
Desarrolle una aplicacin que permita manejar y compartir informacin de
tres formularios.
El primer formulario debe permitir el ingreso o adicin de registros como se
muestra en la figura siguiente:
o
NOMBRE

EDAD

D IS T R IT O

A D IC IO N A R
V E R R E G IS T R O S

S E X O ( M /F )

S A L IR

Los botones MODIFICAR y ELIMINAR slo se deben activarse cuando


el usuario selecciona un registro.
El botn ADICIONAR debe permitir regresar al formulario N 1 para seguir
adicionando registros.
El botn VER ESTADISTICA debe permitir pasar al siguiente formulario
(N 3) para visualizar una estadstica de los registros que se van adicionando.
El botn MODIFICAR debe llevar los datos del registro seleccionado al
formularios N 1 y eliminarlo del formulario actual para poder modificarlos y
si despus de modificarlo se hace un click en el botn adicionar se vuelve a
adicionar el registro, con los datos ya modificados.
El botn ELIMINAR debe permitir eliminar el registro que el usuario a
seleccionado. Antes de eliminar el registro se debe pedir una confirmacin.
El formulario N 3 debe mostrar la estadstica de los registros adicionales como se
muestra en la siguiente figura.

El ingreso de datos debe tener las siguientes caractersticas:


1. El nombre, distrito y sexo se deben convertir autom ticam ente a
maysculas.
2. En la edad slo se debe permitir el ingreso de nmeros y con un mximo
de dos dgitos.
3. En el sexo slo se debe ingresar la letra M o la letra F.
4. Slo de debe activar el botn adicionar cuando se hallan ingresado los
cuatro datos.
5. Al hacer click en el botn A D IC IO N A R , los registros ingresados se
deben almacenar en la lista que se encuentran en el formulario N 2.
6. El botn VER R E G IST R O S, debe mostrar el formulario N2 para
visualizar los registros adicionados.
El segundo formulario debe permitir visualizar y manipular los registros que se
adicionaron en el formulario N 1.
- Ini xj
D IS T R IT O

NOMBRE
JU A N
RO DO LFO
M A R IA
L U IS
K A R IN A
LU K Y
A D R IA N A

A D IC IO N A R

278

:^

12

LAM BAYEQUE
C H IC L A Y O
REQUE
M ONSEFU
FERREAFE
C H IC L A Y O
O LM O S

56
23

22
14
90

V E R E S T A D IS T IC A

M O D IF IC A R

G r u p o E d it o r ia l

E S T A D IS T IC A

D E

L O S

R E G IS T R O S

M AYORES DE EDAD

[5

(6 2 .5 * )

M EN OR ES DE EDAD

I 3

(3 7 .5 * )

HOM BRES

|~4

(5 0 .0 * )

M UJER ES

[4

(5 0 .0 * )

HOM BRES M AYORES

I 3

(3 7 .5 * )

|l

(1 2 5 * )

M U JER ES M AYO R ES

|2

(2 5 .0 * )

M U JER ES M EN O R ES

fT~ (2 5 To * r

IN G R E S A D O S

M C T E 3

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

]|

A D IC IO N A R

T O T A L D E R E G IS TR O S
HOM BRES M EN OR ES

(1 0 0 5*)

SEXO
M
M
F
M
F
M
F

jd

El botn VER REGISTROS de mostrar el formulario N 2 para visualizar


los registros adicionados.
El botn ADICIONAR debe mostrar el formularios N 1 para poder ingresar
nuevos registros.

E L IM IN A R

Megabyte"

G rupo E ditorial

Megabyte

279 m m

VISUAL BASIC como debe ser...

CAPTULO VI: Manejo de Varios Formularios

DESARROLLO DE LA APLICACIN
PASO NH01: Debe adicionar a su proyecto 3 formularios y luego a cada
uno de ellos le debe dibujar sus controles y propiedades. As:

FORMULARIO N e 03
.o
L a b e ll

LabeIS

Label2

Labell O

Labell 1

FORMULARIO N 2 01

Commandl
Labe)4

Labell 2
Command2

Label5

L a b e ll

L abel2

|T e x t2

L abel3

]T e x t3

Labell 4

Label7

Labell 5

Lat>el8

Labell 6

Labell 7
Labell 8

G om m andl
Com m and2

L abel4
C om m and3

Asigne la propiedad Caption a los controles, como se muestra en la aplicacin


a desarrollar. El botn adicionar debe tener el valor False en su propiedad
Enabled y las etiquetes el valor True en su propiedad Autosize.
F O R M U L A R IO

Labell 3

LabelS

N2

02

Las etiquetas desde la N 9 hasta la N 16 y la N 18 deben quedar en


blanco y en su propiedad BorderStyle deben tener el valor 1 - Fixed Single.
PASO N" 02:Escribir las instrucciones para los controles.
Instrucciones de los controles del F O RM U LARIO N 1.
Debajo de cualquier instruccin END SUB escriba: SUB VERIFICA.
jF o rm

Loa d

Private Sub Form L o a d ()

a.

End Sub
SUB v e r i f i c a |

s j l LI

Y luego pulse la tecla ENTER para crear el procedimiento a nivel de


form ulario llamado VERIFICA:
j(General)

AL formulario, etiquetas y botones de comandos asgneles su propiedad


Caption como se muestra en la aplicacin. Los botones Adicionar y Eliminar
debe estar desactivados. Los List deben estar en blanco. Las propiedades
de las cajas de texto son:

Private Sub Form L o a d ()

280

TEXT
En Blanco
En Blanco
En Blanco
En Blanco

MAXLENGTH
0
2
0
1
G ru p o E d it o r ia l M e g a b y te <

End Sub
Sub V E R I F I C A ()
I

1
E n d

CONTROL
Textl
Text2
Text3
Text4

|VERIFICA

S ub

m < 11

Este procedimiento permite controlar que se halla escrito informacin en


las cuatro cajas de texto para poder activar el botn ADICIONAR, de lo
contrario lo desactiva.
ii I ^ G r u p o E d it o r ia l

Megabyte

281

CAPTULO VI: Manejo de Varios Formularios

VISUAL BASIC corno debe ser...


Las instrucciones que se deben escribir en este procedimiento Son:

Las instrucciones de la caja de texto N 1 que permiten convertir a maysculas


el texto que se ingresa, se deben escribir en el evento Keypress el cual
almacena en la variable Keyascii el valor ASCII de cada carcter que se
escribe en la caja de textos.

S u b v e r i f i c a ()
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 )
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
Las letras minsculas en el cdigo ASCII comienzan a partir del numero 97
E lse
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

En el evento CHANGE de cada Caja de Textos se debe llamar a este


procedimiento. As:
P r i v a t e S u b T e x t l _ C h a n g e ()
V e rific a
End S u b

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
End S u b

P r i v a t e S u b T e x t 2 _ C h a n g e ()
v e rific a
End S u b

P r v a t e S u b T e x t 4 _ C h a n g e ()
v e r i f i ca
End S u b

Instrucciones del botn ADICIONAR


Permite pasar los datos ingresados en las cajas de texto a sus respectivas
listas que se encuentran en el formularios N 02.
P r i v a t e S u b C o m m a n d l _ C l i c k ()
F orm 2!L i s t i . A d d lte m T e x 1 1
F orm 2!L i s t 2 . A d d lte m T e x t2
F orm 2!L i s t 3 . A d d l t e m T e x t3
F orm 2!L i s t 4 . A d d lte m T e x t4
T e x tl

""

T e x t 2 = ""
T e x t 3 = ""
T e x t 4 = ""
T e x t l . S e tF o c u s
End Sub

Las letras maysculas en el cdigo ASCII comienzan a partir del numero 65


hasta el 90 (A=65, B=66, etc.), por lo tanto, la diferencia entre maysculas
y minsculas es 32. Si se quiere convertir una letra minscula a mayscula,
entonces a su valor ASCII de dicha letra se le debe restar 32.
Otra forma de convertir cada carcter a maysculas es usando la siguiente
instruccin:
KeyAscii = A s e (UCase(Chr(KeyAscii)))

Instrucciones del evento Keypress de TEXTL


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 )
'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 .
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
'S i e s m in s c u la l e r e s t a 32.
K e y A s c i i = K e y A s c i i - 32
End I f
End Sub

Para que una caja de textos acepte slo valores numricos tambin se le
debe programa en el evento Keyascii.

Instrucciones del botn VER REGISTROS


Permite activar el formulario N 02 para visualizar los registros adicionados.
P r v a t e S u b C o m m a n d 2 _ C l i c k ()
F o rm 2 . Show
F o r m l. H id e
End Sub

El Valor ASCII de la tecla pulsada se convierte en el carcter ASCII


correspondiente y se pregunta si es menor a cero (0) o mayor a nueve (9),
si la respuesta es verdad significa que no se ingreso un numero, entonces
hacemos que Visual Basic ignore el carcter ingresado asignndole el valor
cero a la variable Keyascii. Tambin se debe ignorar la tecla pulsada cuando
el valor ASCII sea diferente de 8 que pertenece a la tecla de Retroceso
para que se pueda borrar lo que se escribe.

E l botn SA L IR debe tener la instruccin END

282

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

283

CAPTULO VI: Manejo de Varios Formularios

| l l l l I > VISUAL BASIC como debe ser...

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 )


Dim TECLA A s S t r i n g * 1
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
K e y A sc ii = 0
End I f
End S u b

Definir la variable NUM de tipo entero a nivel del formulario. Esto se hace
en el Objeto GENERAL y el Evento DECLARATIONS. D im N U M As
Integer
(General)

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 )
' S I SE INGRESA EN MINUSCULAS LO CONVIERTE A MAYUSCULAS
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
K e y A s c i i = K e y A s c i i - 32
End I f
End Sub

< 11
Crear un nuevo procedim iento llamado SELECCIONA, que permite
seleccionar todo el registro cuando el usuario hace click en cualquiera de las
listas adems permite activar los botones de comandos Command3 y
Command4.
Para ello en cualquier parte libre de la ventana de cdigo escriba: SUB
SELEC C IO N A y luego pulse la tecla EN TE R .
1 tW P r o i e c l l

Las instrucciones de la caja de texto N 4.

- F o rm 3 (C o d e )

F o r m

Permiten aceptar slo las letras F o M y si se ingresan en minsculas se


deben convertir a maysculas.
Primero se pregunta si el valor ASCII del carcter pulsado es 102 109 que
corresponden a las letras <f> o <m> en minsculas. Si la respuesta es
verdad se le resta 32 y si el valor ASCII es diferente de 70, 77 y 8 que
corresponden a las letras <F>, <M> en maysculas y a la tecla de Retroceso
(BackSpace <-), el carcter es ignorado, es decir no se visualiza, porque le
asignamos el valor cero (0) a la variable Keyascii.

(Declarations)

Dira MUM As Integer

Las instrucciones de la caja de textos N 3 son similares a las de la caja de


textos N 1.
Instrucciones del evento Keypress de TEXT3.

-r

[L o a d

P riv a te Sub
F o r m l. Show
F o rrn 3 . H ic ie
End Sub

C o rra n e in c i2 _ C 1 i c k ( )

P r iv a te

F o rm

End
SUB

Sub

H
^

A c t v a t e ()

Sub
S E L E C C IO N A

m 11 i

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

ru po

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...

CAPTULO VI: Manejo de Varios Formularios

Luego escriba dentro del procedimiento las instrucciones.


Estas instrucciones permiten seleccionar todo un registro cuando el usuario
hace click en cualquiera de las listas.

Prvate Sub Command2_Click()

L i s t l . L i s t l n d e x = NUM
L i s t 2 . L i s t l n d e x = NUM
L i s t 3 . L i s t l n d e x = NUM
L i s t 4 . L i s t l n d e x = NUM
Command3. E n a b l e d = T r u e
C om m an d4 . E n a b l e d = T r u e

La ventana de cdigo tendr el siguiente aspecto:


(General)

-*

SELECCIONA

Suta S E L E C C I O N A ()
L i s t 1.L istIndex = N U M
L i s t 2 .Listlndex = NU M
List3 .Listlndex = NU11
L i s t 4 .Listlndex = NU M
C o n m a n d 3 .Enabled = True
C o m m a n d 4 .Enabled = True
End Sub

hjl

zl

L!

Este procedimiento es invocado cuando el usuario hace click en cualquiera


de la lista, para ello se tiene que program ar en el evento Click de cada Lista.
P r v a t e S u b L i s t l _ C l i c k ()
NUM = L i s t l . L i s t l n d e x
SELECCIONA
End Sub

P r v a t e S u b L i s t 2 _ C l i c k ()
NUM = L i s t 2 . L i s t l n d e x
SELECCIONA
End Sub

P r v a t e S u b L i s t 3 _ C l i c k ()
NUM = L i s t 3 . L i s t l n d e x
SELECCIONA
End Sub

P r v a te Sub L is t4 _ C lic k ( )
NUM = L i s t 4 . L i s t l n d e x
SELECCIONA
End Sub

Instrucciones del Botn ADICIONAR.


Permiten mostrar el formulario N 1 para poder adicionar ms registros.
P r v a t e S u b C o m m a n d l _ C l i c k ()
F o r m l. Show
F orm 2. H id e
End Sub
286

G r u p o E d it o r ia l

Instrucciones del Botn VER ESTADISTICA.


Permiten pasar al Formulario N 3 para visualizar la estadstica de los regis
tros que se van adicionando.

Megabyte^

Dim N, EDAD, MAYORES, MENORES, HOMBRES As Intege r


Dim MUJERES,HOMMAY, HOMMEN, MUJMAY, MUJMENAs Integer
Dim SEXO A' String * 1
Cuenta la cantidad de registros adicionados.
N = Listl.ListCount
For X = 1 ToN
Activa en forma secuencial una edad ingresada.
List2. Listlndex = X - 1
Almacena en la variable EDAD, la edad activa.
EDAD = Val(List2.Text)
Activa en forma secuencial un sexo ingresado.
List4. Listlndex - X - 1
Almacena en la variable SEXO, el sexo activado.
SEXO - Trim(List4. Text)
Cuenta los mayores y menores de edad.
IfEDAD > = 18 Then
MAYORES = MAYORES + 1
Else
MENORES = MENORES + 1
E n d lf
Cuenta los hombres y las mujeres.
IfSEXO = "M" Then
HOMBRES = HOMBRES + 1
Else
MUJERES = MUJERES + 1
E n d lf
Cuenta los hombres mayores y menores de edad.
IfSEXO="M "AndEDAD>=18 Then HOMMAY = HOMMAY + 1
IfSEXO - "M"And EDAD< 18 Then HOMMEN = HOMMEN + 1
Cuenta las mujeres mayores y menores de edad.
IfSEXO= "F" And E D AD >=18 Then MUJMAY - MUJMAY + 1
IfSEXO= "F" And EDAD<18 Then MUJMEN = MUJMEN + 1
N extX

Obtiene los respectivos porcentajes.


PORCMAY = MAYORES * 100/ N
PORCMEN = MENORES * 100/ N
PORCHOM = HOMBRES * 100/ N
PORCMUJ = MUJERES * 1 0 0 /N
PORCHOMMAY = HOMMAY * 1 0 0 /N
PORCHOMMEN = HOMMEN * 1 0 0 /N
PORCMUJMAY = MUJMAY * 1 0 0 /N
PORCMUJMEN = MUJMEN * 1 0 0 /N

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
Form3!Label9=Str(MAYORES)+"("+Format(PORCMAY, "##0.0")+ "%)"
Form3!Label 10-Str(MENORES) + "("+Format(PORCMEN, "##0.0)+ "%)"
Form3!Labelll=Str(HOMBRES)+ "("+Format(PORCHOM, "##0.0")+ "%)"
Form3!Labell2=Str(MUJERES)+ "("+Format(PORCMUJ, "##0.0")+ "%)"
Form3!Labell3-Str(HOMMAY)+ "("+Format(PORCHOMMAY, "##0.0")+ "%)"
Form3!Label 14=StrHOMMEN)+ "("+Format(PORCHOMMEN, "##0.0")+ "%)"
Form3!Label 1 5 - Str(MUJMAY)+ "("+Format(PORCMUJMAY, "##0.0")+ "%)"
Form3!Labell6=Str(MUJMEN)+ "("+Fonnat(PORCMUJMEN, ##0.0")+ "%)"
Form3!Label 18 = Str(N) + " (100%)"
'Muestra el formulario N 3
Form3.Show

Form2.Hide
End Sub
Instrucciones del Botn M ODIFICAR.
Permiten pasar al Formulario N 1 los datos del registro seleccionado para
poder modificarlos y borra estos datos originales de las listas.
Prvate Sub Command3_Click()
Dim E A Integer
Forml ITextl = Listl.Text
Forml !Text2 = List2.Text
Forml !Text3 = List3.Text
Forml!Text4 - List4.Text
E - Listl.Listlndex
Listl.Removeltem (E)
List2.RemoveItem (E)
List3.RemoveItem (E)
List4.RemoveItem (E)
Forml .Show
Form2.Hide
End Sub

P r v a t e S u b F o r m _ A c t v a t e ()
L i s t l . L i s t l n d e x = -1
L i s t 2 . L s t l n d e x = -1
L i s t 3 . L i s t l n d e x = -1
L i s t 4 . L s t l n d e x = -1
C o m m a n d 3 .E n a b le d = F a l s e
C o m m a nd 4. E n a b l e d = F a l s e
End Sub

Instrucciones del Botn VER REGISTROS.


Permiten visualizar el formulario N 2 donde se encuentran todos los registros
adicionados.

Prvate Sub Command4_Click()


Dim E, R As Integer
R-M sgBox( "ESTA SEGURO DE ELIMINAR EL REGISTRO",3 6 ,"CUIDADO")
IfR = 6 Then
E = Listl.Listlndex
Listl.Removeltem (E)
List2.Removeltem (E)
List3.Removeltem (E)
List4.Removeltem (E)
End If
Command3. Enabled = False
Command4.Enabled = False
End Sub
G r u p o E d it o r ia l

Estas instrucciones se ejecutan cuando el formulario es activado y permiten


que no se encuentre seleccionado ningn registro y a dems desactiva los
botones MODIFICAR y ELIMINAR.

In strucciones de los con troles del F O R M U L A R IO N 3

Instrucciones del Botn ELIM INAR.


Borra de las listas el registro seleccionado, pidiendo una respuesta de con
firmacin.

288

Instrucciones del Evento ACTIVATE del Formulario.

Megabyte <

P r v a t e S u b C o m m a n d l _ C l c k ()
F orm 2. Show
F orm 3. H d e
End Sub

Instrucciones del Botn ADICIONAR.


Permiten visualizar el formulario N 1 para poder adicionar ms registros.
P r i v a t e S u b C o m m a n d 2 _ C lic k ()
F o r m l. Show
F o r w 3 . H id e
End Sub

G r u p o E d it o r ia l

Megabyte

289

CAPTULO VI: Manejo de Varios Formularios

VK vk/ VISUAL BASIC como debe ser. . .

ERRORES MAS COMUNES


Microsoft Visual Basic
Debe haber un formulario de inicio o un procedimiento Sub Man[)

Ayuda

Aceptar

PREGUNTAS DE REPASO N 06

Su aplicacin no tiene
especificado un formulario
para ejecutar primero.
Haga clic en el botn
Aceptar y seleccione un
formulario en Objeto
Inicial.

M icrosoft Visual Basic

Est tratando de utilizar un


formulario que no tiene en
su aplicacin o escribi
en forma incorrecta
su nombre.

Error '4 24' en tiernpo de ejecucin :


Se requiere un objeto

A yuda

Term inar

AI ejecutar el programa finaliza inmediatamente.


S eg u ram en te por 10 Proyecto! - Fornii (Cdigo)
casualidad escribi la
Load
Fo rm
instruccin END en el
Private Sub Form_Load()
evento Form Load o
End
en A ctiv ate del
End
Sub
fo rm u la rio que se
ejecuta primero.
Al llamar a un formulario, no se muestra ninguno.
Seguramente
escribi Hide en
lugar de Show.

m P ro y e c to l
jc o m m a n d l

290

- F o im l (C d ig o )
C lic k

Private Sub Commandl_Click ( )


Fo rml.Hide
Fo rm2.Hide
End Sub
ill
G r u p o E d it o r ia l

Megabyte"

Tj

1. Cmo quita un formulario de sus aplicacin?


2. Qu debe hacer si desea evitar que se muestre la ventana de dilogo
cada vez que agrega un formulario a su aplicacin?
3. Se puede grabar dos formularios con el mismo nombre? ,
4. Cules son los pasos para agregar la calculadora de Visual Basic a una
aplicacin?
5. Es obligatorio ocultar un formulario para visualizar otro durante la
ejecucin de una aplicacin?
6. Se puede agregar a una aplicacin un formulario que en su propiedad
ame tenga el mismo nombre de uno de los formularios de dicha
aplicacin?
7. Cul es la diferencia entre Hide y Unload?
8. Qu debe hacer si en una aplicacin tiene varios formularios y desea
visualiza o modificar uno de ellos?
9. Explique cmo se adiciona un formulario ya creado a una nueva aplicacin.
10. Cuando se ejecuta una aplicacin, Visual Basic en forma predeterminada
ejecuta el formulario N ___ .
11. Qu m ensajes de error se visualizan cuando no puede agregar
formularios existentes a su aplicacin y a qu se deben?
12. Cmo nos podemos referir a la propiedad de un control que se encuentra
en otro formulario?
13. Cul es la diferencia entre Show y Load?
14. Explique la palabra clave Me.
15. Explique cmo se adiciona un formulario en blanco a una aplicacin.
16. Si tiene una aplicacin con 5 formularios. Cuando grabe la aplicacin
cuntos nombres debe ingresar.
17. Qu debe hacer para que Visual Basic ejecute primero un formulario
diferente al que ejecuta en forma predeterminada?
18. Cmo se declara una variable o procedimiento para poder usarlo en
cualquier formulario de una aplicacin?
19. Cul es la diferencia entre la calculadora del Visual Basic y la
calculadora del Windows?
20. Cuando quita un formulario de su aplicacin, se borra fsicamente del
disco de su computadora?
La creatividad es m uy importante, form lese nuevas aplicaciones o
intercambie aplicaciones propuestas entre sus compaeros de
estudio y desarrollarlas con la finalidad de enriquecer sus
conocimientos.

_l T

I p ll^

G r u p o E d it o r ia l

Megabyte

291 m m

CAPITULO VII
Caclen;

Name:

CONGRESO
"Igresc T

Indes.:

tlPlP-CintextlD: J o
C h cke>d

T ? E Ln a bl& d

NeaotlatePccsIbciri

R? risible

SISTEMA

DISEO
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 opcin Tools (Herramientas) y luego Men
Editor.
2. Presionar las tecla <CRTL> + E.
3. Hacer un click en el botn de Diseo de Men.
H

BOTN DE DISEO DE MEN

El editor de men es:

CAPTION
Permite escribir la opcin que deseamos visualizar en el men.
Puede usar el & para subrayar una letra de una opcin.
AM E
Permite asignarle un nombre a cada opcin. Es obligatorio que toda opcin
tenga un nombre. Este nombre debe ser nico, es decir, no deben, existir dos
opciones con el mismo nombre y adems los nombres no pueden tener
espacios en blanco.
INDEX
Se utiliza en caso que queremos usar un array de opciones.
SHORTCUT
Permite asignar teclas de acceso rpido a cada opcin. No puede usarse
para las opciones principales.
CHECKED
Sirve para indicar con un aspa si una opcin est activa.
I p f l^

G r u p o E d it o r ia l

Megabyte

295

CAPITULO VII:

V4s?0k ', VISUAL BASIC como debe ser.


ENABLED
Permite desactivar una opcin para que no se pueda elegir.
V ISIB L E
Permite que una opcin se pueda visualizar o no.
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 opcin ms a la izquierda dentro del men con la finali
dad que se ubique en un nivel ms alto.
FL E C H A D ER EC H A
Mueve una opcin ms a la derecha con la finalidad que sea una subopcin
de la que se encuentra en la parte superior. Las opciones principales deben
estar bien a la izquierda y las subopciones ms a la derecha segn el nivel
que le corresponde.
.
.
. permjte mover una opcin hacia arriba.
FL E C H A ARRIBA
: Permite mover una opcin hacia abajo.
F L E C H A A B A JO
: Permite ir a la opcin siguiente.
NEX T (Siguiente)
: Permite insertar una nueva opcin.
IN SER T (In sertar)
D E L E T E (Elim inar) : Permite borrar una nueva opcin.
NOTA
Para crear una lnea de separacin entre grupos de opciones, escriba
slo un guin en el CAPTION y especificar cualquier nombre en AME.
La aplicacin desarrollada anterior puede tener tambin un men de opcio
nes. Por ejemplo en el formulario N 03 se puede escribir el men siguiente
menu.
C a Q tio n :

] S JN G R E S O

N am e:

j IN G R E S O |

In d e & :

|~

H e lp C o n te x tID :
r~

C hecked

jo
*7

C ancel

Shortcut: [(None)
NegotiatePosition:
fP Risible
f
E n a b le d
Next 1 insert j

D A T O S & P E R S O N A L E S
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
F I& N A L IZ A R
NO
SI

3
Jo -

N one

T 1

W in d o W L is t
D e le te

Diseo de Men

Al ejecutar la aplicacin se visualiza las ventanas siguientes. El grfico es


opcional y est diseado con un Picture Box.
IN G R E S O

F IN A L IZ A R

IN G R E S O

NO TA:
Cada opcin se considera un botn de comandos, esto quiere decir
que Ud. puede escribir instrucciones dentro de cada una de ellas, las
cuales se ejecutan cuando el usuario elige dicha opcin.
Las instrucciones de cada opcin en esta aplicacin son las mismas de los
botones de comandos del formulario N 03 de la aplicacin N 30.
Si no desea ocultar el formulario del men principal cuando se llame a un
formulario, no escriba la instruccin FORM3.HIDE

PrivaleSubDATOSPER_Click()
Fom.Hide
Fonn4.Show
EndSub

C trl+ P
C trl-t-A
C trl+ F

C trl+ Q

PrivateSiDATOSACA_Qkk()
Fom.Hide
Fom.Sliow
EjtdSub

PrivateSubDATOSFAR__Qi<M)
Forrn3.Hide
FomSIiow
EtidSub

La opcin Salir debe tener la instruccin 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

CAPITULO Vil:

VISUAL BASIC como debe ser...

mm

Diseo de Men

INSTRUCCIN PQPUPMENU
Detiene la ejecucin del programa y activa el men en el formulario. El
programa continua su ejecucin cuando deja de utilizar el men. Su sintaxis
es:
PopupM enu Nombre, Ubicacin,X, Y,Opcin,Negrita
Nombre
Es el nombre del men que desea activar.
Ubicacin
Para indicar en qu parte de la pantalla se va a ubicar el men en relacin
a la posicin del formulario donde hizo clic y qu comportamiento debe
tener. Sus valores pueden ser:
Para Ubicacin
0 (Predeterminado). El men a la derecha de donde hizo clic.
4 El men se muestra en el centro de donde hizo clic.
6 El men se muestra a la izquierda de donde hizo clic.
Para Comportamiento
0 Ignora la pulsacin del botn derecho del Mouse.
2 El men reconoce la pulsacin del botn derecho del Mouse.
Para cambiar la Ubicacin y el Comportamiento se utiliza la palabra OR.
Por ejemplo, la siguiente instruccin activa el men Ingreso en el centro de
donde hace Clic y reconoce el botn derecho del Mouse. PopupMenu In
greso 4 Or 3.
X, Y
Es la posicin horizontal (X) y vertical (Y) del formulario donde desea mos
trar el men.
Opcin_Negrita
Sirve para indicar el nombre de una de las opciones del men que desea
visualizar en negrita cuando se muestra el men.
Por ejemplo, La siguiente instruccin activa el men INGRESO en las co
ordenadas 5000, 6000 y pone en negrita la opcin DATOSPER.
No reconoce la pulsacin del botn derecho del Mouse (si un valor no se
indica, se deja una coma).
PopupM enu Ingreso5000.6000,D atosPer
NOTA:
Slo el nombre del men es obligatorio. Esta instruccin normalmente se
escribe en el evento MouseDown o MouseUp explicado en la pgina N 52.
Por ejemplo, la instruccin anterior se ejecua cuando el usuario hace clic
con el botn Derecho del Mouse en cualquier parte libre del formulario.

298

ru po

d it o r ia l

Megabyte ^

||| |f

CONTROL TOOLBAR
^J
Permite crear junto con el control Imagelist, barras de herramientas para
que acompaen a un men de opciones. La barra de herramientas son un
conjunto de botones con un texto y/o grfico que se utilizan para acceder de
una manera rpida a las opciones ms utilizadas de un men. Como por
ejemplo:

&

Nuevo

Abrir

s
Grabar

zl

Imprimir Ordenar Eliminar

f
Ayuda

Salir

Estos grficos Ud. los puede colocar en la barra de herramientas de cual


quier men, siempre y cuando existan en su computadora. Los nombres de
cada uno de ellos en el orden en que se visualizan son: New.bmp, Open.bmp,
Save.bmp, Print.bmo, Sortasc.bmp, Delete.bmp, Help.bmp. y Trffc 14.ico
Puede utilizar en la barra de herramientas cualquier otro grfico con la ex
tensin *.BMP o *.ICO.
Si este control no se encuentra en la caja de herramientas debe seguir cual
quiera de los siguientes pasos:
1. En la caja de herramientas haga click con el botn derecho y elija la
opcin COMPONENTES.
2. De la opcin Project de la barra de men elija COMPONENTES.
3. Pulse las teclas <CRTL> + <T>.
De la lista de componentes haga click en la casilla del control llamada:
Microsoft Windows Common Controls.
Tambin se puede llamar este control, si elegimos la opcin CONTROLAS
DE VB EDICION EMPRESARIAL, en el momento de ingresar a Visual
Basic o crear un nuevo proyecto.

ru po

d it o r ia l

Megabyte

299

CAPITULO Vil:

VISUAL BASIC como debe ser.. .


PRINCIPALES PROPIEDADES DEL CONTROL TOOLBAR:
Las propiedades principales del control se obtiene con slo elegir la propiedad
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas:
General, Botones e Imagen.
El contenido de la hoja General es:
v
G o n o ra l

: '

-v

'

<-

- ; ; .

.w >, ?

. "

JBotones | I m a g e n J
................

fc jo u s e P o inter:
im o ig e L is t

j < N in g u n o >

-i
-J

B o r d e irS ly l

] ti - c c N o n a

rJ

A ja p ta o ra n c ra :

j 1 -c c 3D

.zJ

Q L E P r o p M o c lo :

1 le J p C o n t e x t lD
D u tt o n tJ o ig h t.

1"
J2 6 4

B u tto n W id t h :

j ? 8 8 .0 0

c c O LE
ID r o p 1' J o o

jd

M l p le : |

\H

A c e p te

r ? A l lo w C u s t a t r iiz e
S h o w T ip s

C a n c e la r

W W ro p p a b le
Fs

E n a b le d

G r u p o E d it o r ia l

BUTTONW IDTH
Permite indicar el ancho de los botones.
HELPFILE
Aqu se indica la ruta de acceso y el nombre de un archivo de Ayuda de
M icrosoft W indows usado por la aplicacin para presentar Ayuda o
documentacin en pantalla.
ALLOW COSTOM IZE
Se utiliza para indicar si el usuario final puede personalizar un control Tool bar
con el cuadro de dilogo Personalizar barra de herramientas.
SHOWTIPS
Se utiliza para indicar si se debe visualizar el texto de ayuda asignado a
cada botn.
WRAPPABLE
Se utiliza para indicar si el tamao de los botones de la barra de herramientas
depende del tamao del formulario.
ENABLED
Permite activar o desactivar la barra de herramientas.

Ayude

M OUSEPOINTER
Se utiliza para indicar la forma que tendr el puntero del mouse cada vez
que lo ubiquemos dentro de la barra de herramientas. Si desea como puntero
del mouse un grfico seleccionado por Ud. Debe elegir la ltima opcin
(99-ccCustom). La seleccin del grfico los puede hacer en la pgina Imagen
como se ver ms adelante.
IMAGELIST
Se utiliza para seleccionar el control ImageList desde donde queremos
obtener los grficos para la barra de herramientas.
Ud., debe dibujar primero el control ImageList en el formulario y asignar los
grficos antes de comenzar a darle las propiedades al control ToolsBar
(Capitulo IV).
BORDERSTYLE
Selecciona el estilo del borde de la barra de herramientas.
APPEARANCE
Selecciona la apariencia de la barra de herramientas.
OLEDROPM ODE
Establece el modo en que un componente de destino realiza las operaciones
de colocacin.
HELPCONTEXTID
Permite indicar un nmero de contexto asociado a un objeto. Se utiliza para
proporciona Ayuda interactiva para la aplicacin.
BUTTONHEIGHT
Permite indicar la altura de los botones.

300

Diseo de Men

Megabyte ^ j|f|f

El contenido de la hoja Botones es:


G e n e ra l

B o to n e# j im a g e n j

In d e x :

-JT

C o p tiQ n

* | 1

In s e rta r b o t n

>lue
SM

jo tb rO e fe u lt

lag

T o o lT t p T e g t

Q u ito / b o t n

d e s c r ip tio n : |

'

[o tb r U n p r e s s e d '

V^idth ( P la c e h o ld e r )

J~

~^|

11

Im ag e.
F? V is ib le

&

fc n e b le d

f~ h jix e d S t a ie

INDEX
Visualiza o selecciona cualquiera de los paneles creados en la barra de
estado. Tambin sirve para identificar a cada uno de los botones.
CAPTION
Permite escribir un texto el cual se va a visualizar en el botn de la barra de
herramientas.
KEY
Permite asignar uno o ms caracteres que van a identificar a cada panel.
No acepta nmeros.
STYLE
Permite seleccionar estilo de cada botn.
G r u p o E d it o r ia l

Megabyte

301

il

VISUAL BASIC como debe ser.. .

Ejemplo de una aplicacin utilizando Men, ToolBar y StatusBar.


Sub M en de Ventas:

.^ .5 CAPTULO VII:

Borrar Usuarios
Cambiar Clave

Actualizar la Fecha y Hora


Copia de Seguridad

C L IE N T E S

V E N TA S

U T IL IT A R IO S

S A L IR

M W\ a

Nuevos Usuarios

BIENVE

< 1

Si la opcin VENTAS es la ms utilizada, podemos programar de tal mane


ra que el usuario la active haciendo un Click con el botn derecho del Mouse
en cualquier parte del formulario.
P R O D U C TO S

Calculadora

Diseo de Men

BIENVENIDOS

D..S.

AL
SISTEMA

AL
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:

PRODUCTOS

UTILITARIOS

CUENTES

Realizar

SALIR

Ctil+R

m ili 1,1') ' U . I.IMUMMWI


Presupuestos
Registro de Ventas

AL

Por Vendedor Qrl+V


Por Linea

Ctrl+L

Por Producto

Ctrl+P

Por Fecha

Ctil+F

Por Turno

Ctrl+T

SISTEMA

Private Sub FonnMouseUp(Button As Integer, ShiftAs Integer, XAs Single, YAs Single)
If Button = 2 Then
PopupMenu Ventas
End If
End Sub

PROGRAMAR DENTRO DEL TOOLBAR


Suponiendo que el primer botn est ligado a la opcin Nuevos Clientes
(Form7), el 2do a Realizar Ventas (Form 19), el 3ro al Cuentas Corrientes
(Form 13) y el 4to a la Calculadora. Entonces debe hacer doble clic en
cualquiera de los botones y programar:
Private Sub Toolbarl JButtonClick(ByVal Button As MSComctlLib.Button)

A .

2 9 /0 5 /9 9

C h ic la y o - P e r

If Button.Index = 1 Then Form7.Show


If Button. Index = 2 Then Forml9.Show
If Button.Index = 3 Then Forml3.Show
If Button.Index = 4 Then Shell C:\Windows\Calc.exe", 1

6 :4 4 A M

End Sub
302

G r u p o E d it o r ia l

Megabyte

|| |j ^

ru po

d it o r ia l

Megabyte

303

^ | ||l

CAPITULO Vil:

S S t ' VISUAL BASIC como debe ser...


Dentro de las propiedades de la Barra de Herramientas, en la hoja Botones
tambin se muestra el siguiente marco:
ButtonMenus
Index: [1
Text:

|
l>7 Enabled

Insertar ButtonMenu |
Keji:

Quitar ButtonMenu
Tag:

Diseo de Men

APLICACIN DESARROLLADA N 43
Esta aplicacin consiste en adicionar dos formularios ms al men anterior
(form2 y form3).

17 Visible

Esto permite agregar Sub Opciones a cualquier botn de la Barra de


Herramientas, como por ejemplo:

En el formulario N 2 se debe ingresar el nombre de un usuario y su respectiva


clave de acceso (password).
Son 3 usuarios los que acepta el sistema:
USUARIO
JULIO
PEDRO
ANA

PASSWORD
XYZ
ABCD
1234

El programa debe dar hasta tres oportunidades para ingresar.


Si se termina las oportunidades, se activa el formulario N 03 donde se
muestra un mensaje para cerrar la aplicacin llenndose de puntos de color
negros el formulario. Para salir de la aplicacin se debe presionar CTRL +
ALT + SUPR o apagar la computadora.
Para realizar esto, debe seleccionar en la hoja botones (Propiedad Index) el
botn al cual desea asignarles sub opciones y en su propiedad Style asignar
el valor 5 - tbrDropDown, luego dentro del marco ButtonMenus insertarle
(Insert ButtonMenu) las sub opciones que desea, usando la propiedad Text
para escribir el ttulo de cada opcin.
Para saber qu sub opcin ha elegido el usuario se debe programar
en el evento ButtonM enuClick usando la propiedad Text.
Prvate Sub Toolbarl_ButtonM enuClick(ByVal ButtonM enu As ...)
I f ButtonMenu.Text = Ordenado Then
Escriba aqu las instrucciones para la opcin Ordenados
MsgBox Ordenado, 64, Bienvenido
End I f
I f ButtonMenu.Text = Sin O rdenar Then
Escriba aqu las instrucciones para la opcin 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

El usuario JULIO es el dueo de la empresa, por lo tanto debe tener acceso


a todas las opciones del men.
El usuario PEDRO no debe ingresar a las opciones Actualizar los Precios
ni a Cuentas Corrientes (deben estar desactivadas), adems no debe
visualizar la opcin Usuarios.
El usuario ANA debe tener desactivadas las opciones M antenimiento que
se encuentra dentro de Productos e Internet que se encuentra dentro de
Utilitarios. Adems no debe visualizar la opcin VENTAS.

Grupo Editorial Megabyte

305

<>
| BASIC

como debe ser.

CAPTULO VII:

PASO N 01:
Agregar dos formularios ms a la aplicacin anterior que contiene el men.
El formulario N 02 debe tener dos etiquetas, dos cajas de texto y dos botones
de comandos.
El formulario N 03 no debe tener ningn control.

Diseo de Men

PASO N 03: Escribir las instrucciones para los controles.


Declarar la variable US en un mdulo para poder compartirla entre los
lormularios de la aplicacin. Para ello, de la opcin Proyecto elija Agregar
____________
Mdulo.
P ro y e c to l - M o d u le l (Cdigo)

(General)

i, Form3

.ACCESO AL SISTEMA

Public US As

USUARIO

(Declaraciones)

aa

String

CLAVE

OK

Instrucciones del procedimiento Form_Activate del Formulario N 01,


para que al activarse este formulario que contiene el men, se asignen las
restricciones de acuerdo al usuario que se ingres en el formulario N 02.

CANCELAR

NOTA;
Para llenar un formulario con puntos se debe utilizar la instruccin PSET,
cuya sintaxis es:
N om brejC ontrol.P set (x,y), (color)
Donde X, Y son las coordenadas del control donde desea escribir el punto y
COLOR, es un valor que indica el color del punto, puede utilizar la funcin
RGB o QBCOLOR.
Si no se especifica el nombre del control, el punto se dibuja en el formulario
activo.
Las propiedades DrawWidth se utiliza para indicar el grosor del punto.
Por ejemplo, las siguientes instrucciones muestran un punto de color celeste
en el formulario activo.
D raw W idth - 0
P s e t (2 0 0 0 ,6 0 0 0 ), Q b c o lo r (11)

PASO N 02: Asignar las propiedades a los controles


Al formulario N 02, a las etiquetas y botones de comandos asgneles la
propiedad Caption como se indica.
El formulario N 03 debe tener el valor FALSE en sus propiedades ControlBox
y ShowinTaskbar y en su propiedad WindowState el valor 2 (Maximizado).

@!{j? 306

G r u p o E d it o r ia l

Megabyte

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
C a s e "JU L IO "
Rem NO TIE N E NINGUNA R E ST R IC C I N
C a s e "PEDRO"
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
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
C a s e "ANA"
M a n te m ie n to .E n a b le d = F a ls e
I n t e r n e t . E n a b le d = F a ls e
V e n ta s . V is ib le = F a lse
End S e l e c t
End Sub
NOTA:
No olvide de utilizar el nombre correcto que asign en la propiedad AME a cada opcin.
Cuando grabe el mdulo creado obtiene la extensin *.BAS.

INSTRUCCIONES DEL FORM ULARIO N 02


Instrucciones del Procedimiento Form_Activate.
P r v a t e S u b F o r m _ _ A c t i v a t e ()
T e x t l = "
T e x t 2 = ""
T e x t l . S e tF o c u s
End Sub

illl l*

CAPITULO VII:

VISUAL BASIC como debe ser...

Instrucciones del Botn OK.


Verifican si se ingreso el usuario y su password correcto y brindar hasta tres opor
tunidades para ingresar.
Prvate Sub Command 1_Click()
Static OP As Byte
Dim PW As String
US = UCasefTextl)
P W TJ C n sp ( T e x t 2 )

l f U S - JULIO And PW = XYZ O rU S = PEDRO" And


PW = ABCD Or US = ANA And PW = 1234 Then
Unload Form2
Forml.Show
Else
OP = OP + 1
IfO P = 3 Then
MsgBox Datos Incorrectos" + Chr(13) + Chr(13) + Tiene _
+ Str(3 - OP) + oportunidades, 16, ACCESO DENEGADO
Form3.Show
Else
MsgBox Datos Incorrectos + Chr(13) + Chr(13) + Tiene _
+ Str(3 - OP) + oportunidades", 16, ACCESO DENEGADO
Form_Activate
End If
End If
End Sub

INSTRUCCIONES DEL FORMULARIO N 03


instrucciones del procedimiento Form_Activate
Prvate Sub Form_Activate()
Form3.Caption - Cierre la aplicacin, no tiene acceso
Mensaje
End Sub

Space(135)

instrucciones del Procedimiento MENSAJE


Sub Mensaje()
Dim x, y As Integer
DrawWidth = 10 Establece el grosor de los puntos a Imprimir
Do
Form3.Caption Mid(Form3.Caption, 2) + Left(Form3.Caption, 1)
F orx - lT o 35000
Ncxt x
PSet (Rnd * ScaleWidth, Rnd * SaleHeight), QBColor(O)
Loop
End Sub

Diseo de Men

C O N T R O L SSTAB
fSS,
Permite disear varias pginas en un solo formulario con lo cual podemos
tambin crear mens.
Si este control no se encuentra en la caja de herramientas active la lista de
componentes y haga clic en la casilla de Microsoft:
M icrosoft Tabbed Dialog Control

PRINCIPALES PROPIEDADES DE UN CONTROL SSTAB:


AM E
Permite asignarle un nombre. Por default el nombre es Sstabl, Sstab2, Sstab3,
etc.
CAPTION
Para escribir el ttulo de la pgina que est seleccionada.
ENABLED
Para indicar si el control debe estar activado o no.
FONT
Para indicar el tipo, tamao y estilo de letra.
FO RECO LO R
Para seleccionar el color de las letras.
TAB
Para indicar la pgina que debe estar activa.
TABORIENTATION
Para indicar la posicin del ttulo de las pginas..
TABS
Para indicar el nmero de pginas que debe tener el control.
TABSPERROW
Para indicar el nmero de pginas por fila.
VISIBLE
Para indicar si el control se del?e visualizar.

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:

Diseo de Men

ER R O RES MAS COM UNES

EJEM PLO:
Usando SSTAB, los formularios 03, 04, 05 y 06 de la aplicacin N 30 se
pueden desarrollar en un solo, como se puede observar a continuacin.

Microsoft Visual Basic


El co n tro l M e n u d e b e tener un nom bre

Las propiedades que debe asignar al control SSTAB es CAPTION:


PERSONALES

ACADMICOS

FAMILIARES

Aceptar

Dentro de cada hoja se deben dibujar las etiquetas, cajas de texto y botones
de comandos correspondiente.

Microsoft Visual Basic

Nose puede colocar aqu una marcade verificacin

JSL5I

fid isi

Ayuda

j|

INGRESO DE DATOS

Labell

PERSHL|s|T ACADEMICOS J

Aceptar ;

FAMILIARES

Ayuda

Se olvido de asignarle el
nombre (ame) a la opcin
que Visual Basic tiene
seleccionada.
Toda opcin debe tener un
nombre.
A las opciones principales
no se les puede asignar
Checked,
entonces
desactive esta casilla a la
opcin que Visual Basic tie
ne seleccionada.

Nombre

Microsoft Visual Basic

Direccin
Telfono
Fecha de Nac.

El elem ento de m en ha saltado un nivel

Sexo

SALIR

NUEVO

A c e p ta r J j |

A yu d a

Microsoft Visual Basic

fflI lllliifa iM

M
I INGRESO DE DATOS

| ING RESO DE DATOS

PERSONALES

; ACADEMICSfl

FAMILIARES

' PERSONALES

No se puede asignar una tecla de mtodo abreviado a un men de nivel superior

ACADEMICOS | f M ARsT

Aceptar
Centro de Esludios

Apoderado(a)

["

Especialidad p

Ayuda

|~

Microsoft Visual Basic

Lugar de Origen |~
Turno |
Aula |

Tipo deVivienda |

SALIR

0
[

NUEVO

SALIR

El elemento de la matriz de controles de men debe tener un ndice

310

A asignado una tecla rpida


(Shortcut) a una opcin prin
cipal.
Las opciones que tiene sub
opciones no pueden tener
Shortcut.

N! de hermanos [""

Gclo |

NUEVO

Puls dos o ms veces la fle


cha a la derecha saltando
uno o ms niveles. Pulse la
flecha a la izquierda en la
opcin seleccionada para
corregir este error.

G r u p o E d it o r ia l

Megabyte

Aceptar

G r u p o E d it o r ia l

Escribi dos opciones con el


mismo nombre (ame).
Dos opciones pueden tener
el mismo Caption, pero noel
mismo nombre.

Ayuda

Megabyte

311

lS ll!>

VISUAL BASIC como debe ser...

PREGUNTAS DE REPASO N 07
1. Con qu finalidad se puede crear utilizar un men?
2. Cuntas y cules con las formas de ingresar al Editor de
Men?
3. A qu opciones de un men se les puede asignar la propiedad Shortcut?
4. Cul es la diferencia entre la propiedad Caption y ame?
5. Qu requisitos debe cumplir la propiedad ame de una opcin?
6. Cmo se programa dentro de una opcin?
7. Cul es la importancia de un control ToolBar?
8. Con qu otros controles se puede crear un men?
9. Cmo se sabe la opcin que el usuario a elegido de un control ToolBar?
10. Para qu sirve y cmo funciona PopupMenu?
11. Cul es la ventaja y cmo funciona el control SSTAB?
12. Qu control permite asignar grficos al ToolBar?
13. Qu debe hacer si la opcin para ingresar al 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. Cul es la ventaja de usar un men en un aplicacin?
17. Dos opciones pueden tener el mismo nombre (ame)?
18. Se puede dejar espacios en blanco en la propiedad Caption y ame
de una opcin?
19. Qu propiedades de un control Tovar se consideran ms importantes?
20. Cul es la diferencia entre las propiedades Tabs y TabsPerRow del
control SSTAB?

La C REATIVID AD es m uy importante, form lese nuevas


aplicaciones o intercambie aplicaciones propuestas entre sus
compaeros de estudio y desarrllelas con la fin alidad de
enriquecer sus conocimientos.

312

G r u p o E d it o r ia l

Megabyte ^

| | |j j i

CAPITULO VIII

C h lo la y o

-*

R E S IS T R D

A C T U A L

T O P O S

MANEJO
DE
ARCHIVOS

Up

P u * r t D E la in
L rfi b r a q u a

A U R

>

CAPTULO VIII: Manejo de Archivos

< 8 1 ^

DRTVELISTBOX
O
Muestra las unidades de disco permitiendo seleccionar cualquiera de ellas.
Su principal propiedad es DRIVE que indica la unidad que se encuentra
ac tiva o que se desea activar. Slo se puede cambiar de unidad durante la
ejecucin del programa. Su nombre predeterminado es D rivel, Drive2, etc.
Al dibujarlo se visualiza
j

i c: [CETDI]

D IR LIST BO X

Muestra las carpetas, llamadas tambin directorios, de la unidad de disco


que se encuentra activa. Su principal propiedad es PATH que indica la ruta
que se encuentra activa o que se desea activar. Slo se puede cambiar de
unidad durante la ejecucin del programa. Su nombre predeterminado es
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 ejecucin 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
!
aplicacin sueldo neto, ene
aplicacin sueldo neto.vbp H

G r u p o E d it o r ia l

Megabyte

315

CAPITULO VIII: Manejo de Archivos

VISUAL BASIC como debe ser...


Las principales propiedades del control FileListBox son:
ARCHIVE
Para indicar si muestra los archivos con atributo de modificado.
FTLENAME
Obtiene el nombre del archivo seleccionado.
fflDDEN
Para indicar si muestra los archivos ocultos.
NORMAL
Para indicar si muestra los archivos con atributo de normal.
PATH
Indica la ruta del archivo seleccionado.
PATTERN
Acepta caracteres comodines (* y ?) para seleccionar los archivos que se desean
visualizar. El signo de interrogacin (?) reemplaza a un carcter y el asterisco (*) a
dos o mas.
READONLY
Para indicar si muestra los archivos de solo lectura.
SYSTEM
Para indicar si muestra los archivos de sistema.
A P L IC A C I N D E S A R R O L L A D A N 44
La siguiente aplicacin muestra las carpetas de la unidad selecciona y los archivos
de cada carpeta que se selecciona. Para seleccionar una carpeta haga Doble Click en
ella.

A P L IC A C IO N D E SA R R O L L A D A N 45
La siguiente aplicacin muestra las carpetas de la unidad selecciona y los
archivos de la carpeta que se selecciona, adems permite establecer el tipo
de archivos a visualizar (ingresando la extensin) y cuando se muestran
archivos *.EXE, los podemos ejecutar.

U N ID A D
I l e : |C. ] - I

C A R P ETA

A R C H IV O
*. 1

1 S lc A

W IN D O W S

""1
_ J
_ J
r~ l
i i

A rc h iv o s recibidos
COM M AND
C O N F IG
C o o k ie s
Crystal

j E X E

E x te n s i n

------1

Unidad

|c: [CUCHO]

Carpata

|c:\WINDOWS

Archivo

|CA4_CEXE

Ejecutar el program a

A C C S T A T .E X E
A R P .E X E

S i

C O N TR O L EXE
C S 3 K I T .E X E

-r J

alir

PASO N 01: DIBUJAR LOS CONTROLES.

MIRANDO ARCHIVOS
le : [CETDI]
_ J C :\
Archivos de prograr-

ADDSCCES.DLL
ADDSCCUS.DLL
aplicacin sueldo neto.exe
aplicacin sueldo neto.vbp
aplicacin sueldo neto.vbw

Para desarrollar esta aplicacin slo se debe programaren el evento Change de los
controles DriveListBox y DirListBox.
Instrucciones del control DriveListBox:
Prvate Sub Drivel_Change()
Dirl.Path = Drivel.Drive
End Sub
Instrucciones del control DirListBox:
Prvate Sub Dirl_Change()
Filel.Path = Dirl.Path

PASO N 02: ASIGNAR LAS PROPIEDADES.


Asigne las propiedades slo a las etiquetas y a los botones de comandos
como se indica en la aplicacin a desarrollar.
La caja de texto Textl, debe estar en blanco.
G r u p o E d it o r ia l

Megabyte

317 w m

VISUAL BASIC como debe ser.

CAPTULO VIII: Manejo de Archivos

PASO N 03: ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES.


Instrucciones evento Form_Load
Prvate Sub Form_Load()
D rivel jC hange
End Sub

C O N M O N D IA L O G

Presenta los cuadros de dilogo ms comunes del Windows. Su nombre


predeterminado es CommonDialogl, CommonDialog2, etc.
Sus principales propiedades son:

Instrucciones del control DriveListBox:


Prvate Sub D rivel_C hange()
D irl.P ath = Drivel.D rive
Label7 = Drivel.D rive
End Sub

ACTION
Se utiliza para indicar el cuadro de dilogo que deseamos activar. Los valores
que puede tener son:
0
Ningn cuadro
1
Activa el cuadro de dilogo Abrir.
2
Activa el cuadro de dilogo Guardar como.
3
Activa el cuadro de dilogo Color.
4
Activa el cuadro de dilogo Fuente.
5
Activa el cuadro de dilogo Imprimir.
6
Activa la ayuda del Windows.
Tambin se puede utilizar los mtodos para activar el cuadro de dilogo que
desea: ShowOpen (Abrir), ShowSave (Guardar como), ShowColor (Color),
ShowFont (Fuente), ShowPrinter (Imprimir) y ShowHelp (Ayuda)

Instrucciones del control DirListBox:


Prvate Sub D irl_C hange()
F ilel = D irl.Path
Label8 = D irl.Path
Commandl .Enabled = False
End Sub
Instrucciones del control FileListBox:
Prvate Sub F ilel_C lick()
Label9 = Filel.filenam e
I f Right(UCase(Label9), 3) = "EXE" Then
Commandl .Enabled = True
Else
Commandl .Enabled - False
End I f
E nd Sub

EJEMPLO DE CUADROS DE DIALOGO


. trpnr*'
3

_________ lue

Instrucciones del control Textl:


Prvate Sub Textl_Change()
Filel. Pattern = Textl
E nd Sub

Colores bsicos:

ir r r

i r

Imprimir en un archivo

Comas

r- Todo

Nmero de ps;

Aceptar. I

Cancelar |

Fijante:
Colores personalizados:

r~ r

IA n al N <mlo w

r mm b

"i b adi M T C o n d e m S d r l

rAiii

't1 Ai liti B lack

Definir colores personalizados


Aceptar

Cancelar

Dim N n v JntPQpr

Ta c ty r to

u l> i a y a d o

f ~ ... -------

N = Shell( D irl.Path + V + F ilel filenam e, 1)


End Sub

G r u p o E d it o r ia l

UOoadr)' LPT 1:
r nmnlqrio

r i E i i a i

r r R i i r i r

Instrucciones del botn Ejecutar el Programa.


Prvate Sub Com m andl _Click()

318

pecM<irorvidA. Liil
Arr*o La W iI i

Imprima -

r r r r i a s s

Prvate Sub Textl _KeyPress(KeyAscii As Integer)


c = Chr(KeyAscii)
I f c = "*" O r c = "." O r e = "?" Then
Textl JChange
End I f
End Sub

E 'la d o
T*k >

Megabyte ^

G r u p o E d it o r ia l

Megabyte

AaBbY y Z z

A lf a b e to :

jKassiHiMasw*wa -i

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
Antes de usar el mtodo ShowFont tiene que asignar a la propiedad Flags
una de tres valores:
&H3
Muestra los tipos de letra que acepta el monitor y la impresora.
&H2
Muestra slo los tipos de letra que acepta la impresora.
&H 1 Muestra slo los tipos de letra que acepta el monitor.
Si no establece Flags, aparecer el siguiente mensaje de error:

N o h a y fu e n te s in s ta la d a s .
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.

Tambin puede asignar a la propiedad Flags, entre otros, los siguientes valores:
&H200 Activa el botn Aplicar en el cuadro de dilogo.
&H 100 Especifica que el cuadro de dilogo permite los efectos de tachado,
subrayado y color.
&H2000 Especifica que el cuadro de dilogo selecciona slo tamaos de
fuente dentro del intervalo especificado por las propiedades Min y
Max.
NOTA:
Utilice el operador OR para asignar dos valores a la propiedad Flags, por
ejemplo, se puede escribir en un botn de comandos:
Com monD ialogl.Flags = &H2 Or &H100
C om m onD ialogl. ShowFont

320

G r u p o E d it o r ia l

P R O P IE D A D E S PARA EL C U A D R O C O L O R
CO LO R
( )btiene el color seleccionado.
I'LAGS
So
utiliza para configurar el cuadro de dilogo Color.
I .os valor que puede tener son:
&H2 Presenta el cuadro con los colores personalizados.
& 114 Desactiva el botn de comando Definir colores personalizado.
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
DEFAULTEXT
Indica la extensin predeterminada de los archivos.
KILENAME
Obtiene el nombre del archivo seleccionado.
FILTER
I establece los filtros para los tipos de archivos a visualizar.
La sintaxis apara establecer un filtro es:
Filter = descripcinl \filtrol \descripcin2 \filtro2...
Para separar cada descripcin y filtro debe utilizar el carcter N 124 (|).
Ejemplo, las instrucciones:
C'onimonDialogl.Flter = Documentos(*.Doc)|*.Doc|Grficos(*.Bmp)|*.Bmp|Todos|*.*
CommonDialogl.ShowOpen
Muestran la siguiente ventana de Abrir:
Abrir
Buscar en

CO LO R
Obtiene el color seleccionado para la letra.
FO NTBO LD
Indica si ha seleccionado negrita.
FONTITALIC
Indica si ha seleccionado cursiva.
FO NTSTRIK ETHRU
Indica si ha seleccionado tachado.
FO NTUNDERLINE
Indica si ha seleccionado subrayado.
FO NTNAM E
Obtiene el nombre del tipo de letra seleccionada.
FONTSIZE
Obtiene el tamao de letra seleccionada.

1
| _ j| Vfb

zJ

_ j Clisvr

_ J samples

L_j Winapi

_ ] Graphics

_ J Setup

_ j Wizards

_ J Help

__1setupkit

_J0dbc

_ J Tempiate

_ j report

C_1 Tsql

_ j Repostry

__1 vbortline

Nombre de archivo:

Archivos de tipo:

j Documentos^. Doc)
!Documenios(*.Doc1
Grficos( Bmp)
Todos

f t j f

|
_L
JMNIrilrittflHpMU

btlf

Cancelar
.......... .

J
I

1--------------------------

NOTA:
Sino especifica la propiedad Filter, el combo de Archivos de Tipo se muestra
en blanco, permitiendo ver todos los archivos.

M egabyte^

G r u p o E d it o r ia l

Megabyte

321

VISUAL BASIC como debe ser...


IIITERIMMX

Para indicar el filtro predeterminado de los que se ha colocado en la propiedad Filter.


Por ejemplo, la siguiente instruccin hace que se muestre el segundo filtro de los
establecidos:
CbmnlmDial(^lEltel=',DocuI^xa^tos(*I)c)c)(*.Doc|Graficos(*.Bn^p)|*.Brnpf^odos(*.*,'
CbmrnonDialogLFilterindex=2
CommonDialogLShowOpen
FLAGS
Se utiliza para configurar el cuadro de dilogo Abrir o Guardar.
Los valor que puede tener son:
&H1000 Especifica que el usuario slo puede introducir nombres de archivos
existentes en el cuadro de texto Nombre de archivo. Si este indicador est
activado y el usuario escribe un nombre de archivo no vlido, se mostrar
una advertencia.
&H4
Oculta la casilla de verificacin Slo lectura.
&H8
Hace que el cuadro de dilogo restablezca como directorio actual el que lo
era en el momento de abrirse el cuadro de dilogo.
&H8000 Especifica que el archivo devuelto no tendr establecido el atributo de
Slo lectura y no estar en un directorio protegido contra escritura.
&H2
Hace que el cuadro de dilogo Guardar como genere un cuadro de mensajes
si el archivo seleccionado ya existe. El usuario tiene que confirmar si desea
sobrescribir! archivo.
IMTDIK

Establece la ruta de la carpeta predetermina al para Abrir o Grabar un archivo. Por


ejemplo, la siguiente instruccin hace que se muestre la carpeta del Windows en
forma predeterminada.
CommonDialogl.InitDir - "c:\windows"
CommonDialog l.ShowOpen

CAPITULO VIII: Manejo de Archivos


A P L IC A C I N D E SA R R O L L A D A N 46
La siguiente aplicacin permite asignar un grfico, un color de fondo, un
tipo y color de letra utilizando las cajas de dilogo.

azi

CUADROS OE DILOGO

VISUAL BASIC

FUENTE

GRFICO

FONDO

LETRAS

PASO N 01: DIBUJAR LOS CONTROLES.


Dibuje una etiqueta, un PictureBox, cuatro botones de comandos y un control
CommonDialog como se muestra a continuacin:
i. Formi

LabeH

PROPIEDADES PARA EL CUADRO IMPRIMIR


COPIES El nmero de copias que se van a imprimir.
FROMPAGE
La pgina en la que se inicia la impresin.
TOPAGE
La pgina en la que se detiene la impresin.
Los principales valores de la propiedad Flags
&H80000 Desactiva la casilla para Imprimir en un archivo.
&H 100000 Oculta la casilla para Imprimir en un archivo.
&H40
Hace que el sistema presente el cuadro de dilogo Configurar impresora
en vez del cuadro de dilogo Imprimir.
&H20
Devuelve o establece el estado de la casilla de verificacin Imprimir en un
archivo.
&H400
Devuelve el nombre de la impresora predeterminada.

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

Commandl

Command2

UommandS

Command4

PASO N 02: ASIGNAR LAS PROPIEDADES A LOS CONTROLES.


Asigna la propiedad Caption a la etiqueta y a los botones de comandos. Al
control PictureBox asgnele el grfico indicado o cualquier otro. El control
CommonDialog no tiene ninguna propiedad.
| ||1 ^ G r u p o E d it o r ia l

Megabyte

323

B B k

VISUAL BASIC como debe ser...

CAPTULO VIII: Manejo de Archivos

USO DE LA IM PRESO R A

PASO N 03: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.


Instrucciones del botn FUENTE

Para manejar la impresora dentro de un programa se debe utilizar el objeto PRINTER.

Prvate Sub Commandl_Click()


CommonDialogl.FontName = "ARIAL" Tipo de letra predeterminada
CommonDialogl.Flags = &H3 Or &H100

PRINCIPALES PROPIEDADES DELOBJETO PRINTER:

CommonDialog 1.ShowFont
Labell. FontName = CommonDialogl .FontName
Labell .FontSize = CommonDialogl .FontSize
Labell. Fontltalic = CommonDialogl .Fontltalic
Labell. FontUnderline = CommonDialogl.FontUnderline
Labell.ForeColor = CommonDialogl .Color
End Sub

Instrucciones del botn GRFICO


Prvate Sub Command2_Click()
CommonDialogl.Filter = "WMF\*.wmf\ICO\*.ico\BMP\*.bmp\Todos\*. *"
CommonDialogl. ShowOpen
Picturel.Picture - LoadPicture(CommonDialogl.filename)
End Sub

Instrucciones del botn FONDO


Prvate Sub Command3_Click()
CommonDialogl.Flags - &H2
CommonDialogl.ShowColor
Picturel.BackColor - CommonDialogl.Color
Labell. BackColor = CommonDialogl .Color
End Sub

Instrucciones del botn LETRAS


Prvate Sub Command4_Click()
CommonDialogl .Flags - &H2
CommonDialogl.ShowColor
Labell.ForeColor = CommonDialogl.Color
End Sub

lilil

324

G r u p o E d it o r ia l

Megabyte <Ip l l

COLORMODE
Se utiliza slo para impresoras a color para indicar si va a imprimir en color o negro (escala de
grises). Si le asigna el valor uno (1) imprimir en negro y dos (2) imprime en color.
COPIES
Indica el nmero de copias a imprimir.
CURRENTX
Establece la posicin Horizontal donde deseamos imprimir.
CURRENTY
Establece la posicin Vertical donde deseamos imprimir.
DEVTCENAME
Obtiene el nombre del dispositivo.
DRIYERNAME
Obtiene el nombre del controlador.
FONTBOLD
Permite indicar si se imprime en negrita.
PONTITALIC
Permite indicar si se imprime en cursiva.
FONTSTTRIKErHRU

Permite indicar si se imprime con letras tachadas.


FONTUNDERLINE
Permite indicar si se imprime con subrayado.
FONTNAME
Permite establecer el tipo de letra para la impresin.
FONTSIZE
Permite establecer el tamao de letra para la impresin.
HEJGHT
Para indicar la altura del papel donde desea imprimir.
WIDTH
Para indicar el ancho del papel donde desea imprimir
ORIENTARON
Permite establecer si se imprime en forma horizontal o vertical. Asignndole el valor
I se imprime vertical y 0 Horizontal.
PAGE
Devuelve el nmero de la pgina que se esta imprimiendo.
PAPERBPM
Establece la forma de introducir el papel a la impresora. Los principales valores que
puede tener son:
1 Utilizar papel de la bandeja superior.
4 Esperar a la insercin manual de cada hoja.
7 (Predeterminado) Utilizar papel de la bandeja activa.
8 Utilizar papel del alimentador por traccin.
G r u p o E d it o r ia l

Megabyte

325 m m

! |>

VISUAL BASIC como debe ser...

PAPERSIZE

Establece el tamao del papel donde desea imprimir. Los valores principales son:
I
Carta, 216 x 279 mm
8
A3,297 x 420mm
9
A4,210 x 297mm
II
A5,148x210mm
12
B4,250 x 354mm
13
B5,182x257 mm
14
Folio, 216x330 mm
39
Continuo USA estndar, 310 x 280 mm
40
Continuo alemn estndar, 216 x 305 mm
41
Continuo alemn oficio, 216 x 330 mm
256
Definido por el usuario
Cuando le asigna el valor 256 el tamao del papel ser el indicado por la propiedades
Height y Width.
PORT
Devuelve el nombre del puerto por el que se enva los documentos a la impresora.
PRINTQIAI.ITY

Establece la calidad de impresin. Sus valores pueden ser:


CONTANTE

vbPRPQDraft
vbPRPQLow
vbPRPQMedium
vbPRPQHigh

VALOR

-1
-2
-3
-4

CALIDAD

Resolucin borrador
Resolucin baja
Resolucin media
Resolucin alta

SCALEMODE

Establecen la unidad de medida para el objeto Printer. Los valores que puede tener
son:
1 (Predeterminado). Establece la unidad de medida Twip.
2 Punto (72 puntos por pulgada lgica).
3 Pxel (resolucin del monitor o la impresora).
4 Carcter (horizontal= 120 twips por unidad; vertical=240 twips por unidad).
5 Pulgada.
6 Milmetro.
7 Centmetro.
ZOOM
Indica el porcentaje en que se amplia o reduce el resultado impreso.
PRINCIPALES M TODOS DEL OBJETO PRINTER:
ENDDOC
Inicia el enva la informacin a la impresora.
K IL L IX X

Finaliza el trabajo de impresin en ejecucin.


NEWPAGE

Avanza a la siguiente pgina e incrementa el valor de la propiedad Page en 1 (uno).

326

G r u p o E d it o r ia l

Megabyte

CAPTULO VIII: Manejo de Archivos

^ B

M E T O D O PR IN T
Es un mtodo que usado con el objeto Printer, permite imprimir informacin en la
impresora.
Su sintaxis para imprimir en la impresora es:
PRINTER.PRINT Expresin
Donde expresin es lo que deseamos imprimir. Si es un mensaje debe ir entre comillas
(") o apostrofes (). Ejemplos:
La siguiente instruccin imprime VISUAL BASIC en la impresora.
Printer.Print "VISUALBASIC
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., pero en dos lneas diferentes.
Printer.Print "VISUALBASIC"
Printer.Print "COMO DEBE SER... "
Despus de la expresin puede utilizar una coma (,) que permite imprimir el siguiente
mensaje en la misma lnea pero despus de ocho (8) espacios o puede utilizar un
punto y coma (;) que permite imprimir! siguiente mensaje en la misma lnea pero
junto a la anterior.
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., en la misma lnea pero separados por 8 espacios (hay una coma despus
de imprimir VISUAL BASIC).
Printer.Print "VISUALBASIC",
Printer.Print "COMO DEBE SER... "
Las siguientes instrucciones imprimen el texto VISUAL BASIC y el texto COMO
DEBE SER..., en la misma lnea pero juntos (hay un punto y coma despus de
imprimir VISUAL BASIC).
Printer.Print "VISUAL BASIC";
Printer.Print "COMO DEBE SER... "
Las siguientes instrucciones imprimen: SU EDAD ES: 31 AOS.
Dim E As Integer
E = 31
Print "SU EDAD ES:
Str(E); " AOS"
La instruccin Printer.Print sin ningn parmetro deja una linea en blanco.
IN ST R U C C I N TAB
La instruccin Tab se utiliza junto con Print para indicar el nmero de la columna de
la lnea actual donde desea imprimir la siguiente expresin. Por ejemplo:
I .a instruccin imprime en la columna 20 la palabra COMPUTACION.
Printer.Print Tab(20); "Computacin"
La siguiente instruccin imprime en la columna 10 el texto VISUAL BASIC y en la
columna 30 el texto COMO DEBE SER...
Print Tab(10); "VISUALBASIC"; Tab(30); "COMO DEBE SER.."

G r u p o E d it o r ia l

Megabyte

327 m m

'ZtS&m' VISUAL BASIC como debe ser.


IN ST R U C C I N SPC
Esta instruccin permite dejar espacios en blanco antes de imprimir.
La siguiente instruccin imprime los textos VISUAL BASIC y COMO DEBE SER...,
separados por 5 espacios en blanco.
Print "VISUAL BASIC"; Spc(5); "COMO DEBE SER..."
NOTA:
Es opcional escribir los punto y coma en las instrucciones TAB y SPC, porque se
escriben automticamente.
Cuando la columna donde trata de imprimir con la instruccin TAB est ocupada
por la expresin anterior, entonces se imprime en la columna indica pero en la
siguiente lnea.
P R IN T F O R M
Es un mtodo que pertenece a los formularios y permite imprimirlo incluyendo todos
los controles que contiene incluyendo grficos. Para ello asigne el valor TRUE a la
propiedad AUTOREDRAW del formulario que desea imprimir. Su sintaxis es:
Nombre_Del_Fonnulario.PRINTFORM
A P L IC A C IO N D E SA R R O L L A D A N 47
La siguiente aplicacin es un ejemplo del uso de laimpresora imprimiendo los datos
de una sola persona o un listado general.
USO DE LA IM PRE SO RA
-mixi
D a lo s P e r s o n a le s :

Nombre Cesar
Distrito

||_a Victoria

Edad

35

Anaximandro
Ana Mara

Almacenar j
Cancelar

Labell

] Textl

Label2

(7ext2

Label3

-1

lie7 Fi't1'Jifflffli'wWnffT
Karina

jd

IM P R IM IR

Instrucciones del botn Nuevo o Almacenar.


P r i v a t e S u b C o m m a n d l _ C l i c k ()
I f C o m m a n d l . C a p t i o n = " & N u evo" T h e n
C o m m an d l. C a p t i o n

Command3 |

Command4

Inst, del FormActivate.

Inst, del botn Cancelar.

P r i v a t e S u b F o r m _ A c t i v a t e ()
C o m m a n d l. C a p t i o n = "&Nuevo
Command2. E n a b l e d = F a l s e
Fram e1 . E n a b le d = F a l s e
lim p ia
End Sub

P r iv a te Sub
C o m m a n d 2 _ C lick()
F o rm _ A c tiv a te
End Sub

PROCEDIMIENTO LIMPIA

PROCEDIMIENTO MUESTRA

S u b l i m p i a ()

S u b MUESTRA ()
T e x tl = L i s t l
T e x t2 = L i s t 2
T e x t3 = L i s t 3
End Sub

PASO N 02: ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.


Definir las variables a nivel de formulario.
Dim N As Byte
Instrucciones del botn Salir.
Prvate Sub CommandS_Click()
IfMsgBox("ESTA SEGURO DE SALIR", 36, "CUIDADO") = 6 Then End
End Sub

328

G r u p o E d it o r ia l

Megabyte^

= ""

T e x t 2 = ""
T ex tJ

PASO N" 01: DIBUJAR LOS CONTROLES.


Dibuje los controles y asgnele las propiedades como se muestra a continuacin.
Las listas deben quedar en blanco:

= " A lm a c e n a r"

Conunand2. E n a b l e d = T r u e
F ram e1 . E n a b le d = T ru e
lim p ia
T e x t l . S e tF o c u s
E lse
C o m m a n d l . C a p t i o n = "& N uevo"
Command2. E n a b l e d = F a l s e
Fram e1 . E n a b le d = F a ls e
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
L i s t l .A d d lte m T e x tl
L i s t 2 .A d d lte m T e x t2
vL i s t 3 .A d d lte m T ext3
End I f
End Sub

T e x tl
Frame2

REGISTRO ACTUAL

CAPTULO VIII: Manejo de Archivos

""

End Sub

INSTRUCCIONES DE LOS CONTROLES LIST


Private Sub Ustl_CUck( )
N = Listl.Listindex
List2.ListIndex - N
List3.ListIndex = N
End Sub

E d it o r ia l

Private Sub lJst2_Click()


N = List2.ListIndex
List 1.ListIndex=N
List3.ListIndex = N
MUESTRA
End Sub

Megabyte

Private Sub List3_Click()


N = List3.ListIndex
Listi. Ustlndex = N
List2.UstIndex = N
MUESTRA
End Sub

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


Sub ENCABEZADOO
Printer.FontName = "Arial"
Printer.FontSize - 8

Printer.Print Tab(33);"PGINA N" + Str(Printer.Page);Tab(80);


"Fecha y H o r a + Str(CVDate(Now))
Printer.CurrentY - 1 0
Printer.Print
Printer.FontName = "courier new"
Printer.FontSize = 22
Printer.Print Tab(12); "LISTADO DE REGISTROS"
Printer.FontSize = 10
Printer.Print
Printer.Print Tab(20);"NOMBRE"; Tab(40); "DISTRITO"; Tab(70); "EDAD"
Printer.Print Tab(20); String(55, "*")

End Sub
In strucciones del B otn R egistro A ctual.
Prvate Sub Command3jClick()
Printer.PrintQuality = -4
Printer.ScaleMode = 6

Printer.PaperSize = 9
Printer.CurrentY = 10
Printer.FontName = "courier new"
Printer.FontSize = 20
Printer.Print Tab(17); "DATOS PERSONALES"
Printer.FontSize - 14
Printer.Print
Printer.Print Tab(20); "Nombre................: " + Textl
Printer.Print Tab(20); "Distrito...............: " + Text2
Printer.Print Tab(20); "Edad.................... : " + Text3
Printer.EndDoc

COMANDOS DEL D.O.S.


Todas las tareas para manejar archivos o carpetas, se pueden realizar a travs del
Windows y con las cajas de dilogo (CommonDialog), pero Visual Basic tambin
acepta instrucciones que se usan en el D.O.S:
niR

Permite obtener el nombre de un archivo, el nombre de la carpeta actual o el nombre


de la etiqueta del disco.
Su sintaxis es: DIR (RUTA, VALOR)
Ruta es el ubicacin y el nombre del archivo que desea obtener. Se pueden utilizar
los caracteres comodn:
* Que representa dos o ms caracteres.
? Que representa un solo carcter.
Es un valor que indica el atributo del archivo.
Los valores pueden ser:
vbNormal
0
Normal
vbHidden
2
Oculto
vbSystem
4
Archivo de sistema
vbVolume
8
Etiqueta de volumen; si se especifica se ignoran todos
los atributos.
vbDirectory
16
Directorio o carpeta.
FTLECOPY

Copia un archivo. Por ejemplo, la siguiente instruccin copia el archivo


INFORME.DOC AL DISCO A: FileCopy "INFORME.DOC ", "A:"
KIIJ.

Borra un archivo. Por ejemplo, la siguiente instruccin borra el archivo


INFORME.DOC: KILL INFORME.DOC
AME

Cambia el nombre de un archivo, directorio o carpeta. Por ejemplo, las instruccin


cambia el nombre DATOS.DOC por HOY.DOC
ame DATOS.DOCAs HOY.DOC

End Sub

( URDIR

Instrucciones del procedim iento Todos.


Prvate Sub Command4_Click()
Printer.PrintQuality = -4
Printer.ScaleMode = 6:Printer.PaperSize=9:Printer.CurrentY = 10
ENCABEZADO
F orX - 1 To Listl.ListCount
Printer.FontName = "courier new"
Printer.FontSize - 1 0
Listl.Listlndex = X - 1:List2.Listlitdex = X - 1: List3.ListIndex = X - 1
Printer.Print Tab(20);Listl; Tab(40); List2; Tab(72); List3
IfX Mod 3 - 0 Then
Printer.NewPage
ENCABEZADO
E n d lf
Next X
Printer.EndDoc

Devuelve la unidad y ruta actual. La siguiente instruccin almacena en Label 1, la


unidad y ruta actual: Labell=CURDIR
CHDIR

Cambia la unidad y ruta actual. Por ejemplo, la instruccin cambia a una nueva
ruta: C:\Windows.
MKDIR

Crea una nueva carpeta. Por ejemplo la siguiente instruccin crea la carpeta Agenda:
MKDIR C:\AGENDA
RMDIR

Borra una carpeta, siempre y cuando se encuentre vaca. Por ejemplo: RMDIR
C:\AGENDDA. Boira la carpeta AGENDA.
CHDRIVE

Cambia de unidad de disco. Por ejemplo, la siguiente instruccin cambia a la unidad


A:. CHDRIVE A:.

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

CAPTULO VIII: Manejo de Archivos

VISUAL BASIC como debe ser...

A LGUN OS E R R O R E S IN T ER C EPTA B LES

CONTROL DE ERRORES
Nmero

La instruccin ON ERROR

Esta instruccin permite detectar errores durante la ejecucin de los programas.


Cada vez que hay un error se puede llamar a un grupo de instruccin para poder
controlarlo y evitar que nuestro programa deje de funcionar en un momento
inesperado.
Tiene 3 sintaxis:
On Error GoTo Nombre_deIaInea
Con esta sintaxis, cada vez que se produce un error se ejecutan las instrucciones
que estn despus del nombre de la lnea. El nombre de la lnea debe terminar con
dos puntos (:). Antes del nombre de la lnea debe escribir la instruccin EXIT SUB
On Error Resume Next
Con esta sintaxis, cada vez que se produce un error la computadora ejecuta la
siguiente instruccin despus de la lnea de ocurri el error.
On Error GoToO
Con esta sintaxis, se desactiva el control de errores.

7
9
11
13
20
35
47
52
53
54
55
57
58
61
62
63
67
71
74
75
92
94
321
380
381
382
383
385
387
393
400
402
422
423
424
438
449
450
451
459
482
483
484

EL OBJETO ERR
El objeto ERR contiene informacin acerca del error que se a producido. Su
propiedades ms importantes son:
DESCRIPTION.- Devuelve el mensaje que muestra el sistema por el error producido.
NUMBER.- Devuelve el nmero del error.
SOURCE.- Devuelve el nombre del objeto donde ocurri el error.
EJEMPLO DE CMO CONTROLAR LOS ERRORES
Prvate Sub Command l_Click()
Dim NUMERR, R As Integer
Rem ACTIVA EL CONTROL DE ERRORES
On Error GoTo VERIFICA
Instrucciones
ExitSub
VERIFICA:
NUMERR = Err.Number
Select Case NUMERR
Case 6: MsgBox "DEFINE CORRECTAMENTE TU VARIABLE", 16, "ERROR"
Case 11: MsgBox "NO SE PUEDE DIVIDIR ENTRE CERO", 16, "ERROR"
Case 61: MsgBox "EL DISCO NO TIENE ESPACIO LIBRE", 16. "ERROR"
Case 71: MsgBox "INSERTE CORRECTAMENTE EL DISCO", 16, "ERROR"
Case Else
MsgBox "HA OCURRIDO UN ERROR NO CONTROLADO EN:" _
+ Err.Source+Chr( 13)+"Nmero de Error:"+Str(Err.Number) _
+ Chr(I3)+"Descripcin :"+Err.Description + Chr(13)
End Select
End Sub
332

G r u p o E d i t o r i a l M e g a b v t e < || | |

485
485
520
521
735
744
31001
31027

Descripcin
El argumento o la llamada al procedimiento no son vlidos
Desbordamiento
Sin memoria
El subndice est fuera del intervalo
Divisin por cero
No coinciden los tipos
Resume sin Error
No se ha definido Sub, Function o Property
Hay demasiados clientes de la aplicacin DLL
Nombre o nmero de archivo incorrecto
Imposible encontrar el archivo especificado
Modo de archivo incorrecto
El archivo ya est abierto
Error de E/S de dispositivo
El archivo ya existe
Disco lleno
La entrada de datos ha sobrepasado el final del archivo
El nmero de registro es incorrecto
Hay demasiados archivos
El disco no est listo
Imposible cambiar el nombre con una unidad de disco diferente
Error de acceso a la ruta o al archivo
El bucle For no est inicializado
El uso de Nuil no es vlido
Formato de archivo no vlido
Valor de propiedad no vlido
El ndice de la matriz de propiedades no es vlido
Set no se admite en tiempo ae ejecucin
Set no se admite (propiedad de slo lectura)
Se necesita un ndice de matriz de propiedad
Set no est permitido
La propiedad no se puede leer en tiempo de ejecucin
El formulario ya est mostrado. Imposible mostrar en forma modal
Primero debe cerrar u ocultar el formulario modal superior
No se encontr la propiedad
No se ha encontrado la propiedad o el mtodo
Se requiere un objeto
El objeto no acepta esta propiedad o mtodo
El argumento no es opcional
Nmero de argumentos errneo o asignacin de propiedad no valida
El objeto no es una coleccin
Este componente no acepta eventos
Error de impresora
El controlador de im presora no admite la propiedad especificada
Problemas al obtener informacin de la impresora desde el
sistema; asegrese de que la impresora est configurada correctamente
El tipo de imagen no es vlido
No se puede imprimir la imagen de formulario en este tipo de
impresora
No se puede vaciar el Portapapeles
No se puede abrir el Portapapeles
Imposible guardar el archivo en TEM P
No se encontr el texto de bsqueda
Sin memoria
Imposible activar el objeto
G r u p o E d it o r ia l

Megabyte

333

VISUAL BASIC como debe ser.. .

CAPTULO VIII: Manejo de Archivos

MTODO LOADFILE

RICHTEXBOX

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
asignar un fo rm a to a todo o parte del texto y tiene otras caractersticas ms
avanzadas com o por ejem plo, perm ite a b rir y grabar archivos con fo rm a to
R T F y texto A S C II norm al usando los m todos L o a d F ile y SaveFile.

MTODO SAVEFILE

A parte de las propiedades de la caja de texto, tiene las siguientes:

^ ^ r c h vo s

Graba un a rch ivo R T F o texto. Su sintaxis es s im ila r a LoadF ile.

Aplicacin de Ejemplo
L a siguiente a p lica ci n que perm ita a b rir y grabar archivos.
H 0 E 3 I
|j

BULLETINDENT

BRR j |

GRABAR |

CONTENIDO DEL ARCHIVO

In dica la sangra con la que debe trabajar.

DISABLENOSCRO LL
Acepta un valor lgico que indica si estn activadas las barras de desplazamiento.

RIGHTM ARGIN
Perm ite in d ic a r el margen derecho.

SCROLLBARS
In dica si el co n tro l debe tener las barras de desplazam iento.

SELALIGNM ENT
A lin e a el texto asignndole los valores N u il (ninguna), 0 (izq uie rd a), 1
((derecha) y 3 (centro).

SELBOLD
A c tiv a o desactiva el estilo N e g rita al te xto seleccionado.

SELITALIC

EL SID A
SID A significa Sndrome de Inmuno Deficiencia Adquirida y es una enfermnedad que hasta
ahora no tie n e cura, por lo tanto, trae como consecuencia la muerte sin tomar en cuenta la edad,
el color, la raza, el sexo ni el nivel econmico de una persona.
El SIDA es la etapa m as avanzada de la infeccin 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
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
una persona infectada con este virus del VIH. La proteccin m as usada es el CONDN.
La persona que tiene el virus VIH que es el principio del SIDA no tiene ningn sntoma ni ninguna
forma de saber a simple vista (slo a travs de la prueba de Elisa) que tiene el virus, por eso es
muy importante, si vas a tener relaciones sexuales, el u so d e l C o n d n el cual tambin te protege
de las enfermedades de transmisin sexual (ETS) como Sfilis, Gonorrea, Herpes, Chancro
Blando, Candidiasis, Verruga, etc.
Muchas personas dicen que hacerlo con condn "no es igual, pero tu tienes que saber que una
v id a co n SID A tam p o co e s ig u al y es preferible, si no tienes un condn " p e r d e r " una relacin
sexual o una noche de placer, que perder la salud y sobre todo la VIDA.
"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
A c tiv a o desactiva el estilo Tachado al texto seleccionado.

SELUNDERLINE
A c tiv a o desactiva el e stilo Subrayado texto seleccionado.

DESARROLLO
D ib u je en un fo rm u la rio dos botones de com andos, una etiqueta, un co ntrol
R ichT extB o x y un co n tro l C om m ondialog

SELBULLET

INSTRUCCIONES DEL BOTN ABRIR.

A c tiv a o desactiva el e stilo con V i e ta te xto seleccionado.

Pri vate Sub Command l_Click()


On Error GoTo PRUEBA
CommonDialogl .Filter="RTF (*.RTF)|*.RTF |TEXTO (*.TXT)|*.TXT"
CommonDialogl .ShowOpen
RichTextBox 1.LoadFile CommonDialog 1.filename, CommonDialog 1.FilterI ndex-1
Exit Sub
PRUEBA:
MsgBox "NO SE PUEDE TENER ACCESO A L ARCHIVO", 64, "ERROR"
End Sub

SELCOLOR
A sig na un c o lo r al texto seleccionado.

SELFO NTNAM E
A sig na un tip o de letra al texto seleccionado.

SELFONTSIZE
A sig na un tam ao de letra al texto seleccionado.

SELPROTECTED
Acepta un v a lo r l g ic o que ind ica si el te xto seleccionado esta p rotegido, es
decir, no puede m odificarse.

334

G r u p o E d it o r ia l

Megabyte

Las instrucciones del botn Grabar son similares a la de Abrir, slo cambie la
propiedad ShowOpen por ShowSavey el mtodo LoadFilepor SaveFile.
H j ^ G r u p o E d it o r ia l

Megabyte

335

CAPTULO VIII: Manejo de Archivos

VISUAL BASIC como debe ser. . .

FUNCIONES API
A P I s ig n ific a In te rfa z de Program acin de A p lica cion es y son un co njun to
de funciones que tiene el W in do w s que nos ayudan a desarrollar aplicaciones
o tareas de una ms rpida y sencilla.
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
aplicacin. Para e llo siga los siguientes pasos:
1. De la o pcin C om plem entos e lija V is o r A P I.
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
C om plem entos y active la ca silla de V B A P I View er.
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
A rc h iv o y luego C argar A rc h iv o de Texto.
C om ptern e n t o s dis p o n ib le s :

C om plem entos
A d m inistrador visual de d a to s ...
D iseador de in fo rm e s ...
A d m inistra dor de com p le m e n to s.,
Visor API

A c e p ta r

: M ic ro s o ft D o la T o o li
: 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
tT-7.r
i VB A p p lic a tio n W iz a rd
j VB C lass Bui!dt 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
) vm T -SQ t. D e b u g g e r
: VB W iz a i d M an ag er

APAGAR LA COMPUTADORA AUTOMATICAMENTE


.........
Funcin ExitWindowsEx
Es una fu n ci n A P I que perm ite apagar en fo rm a autom tica la com putadora
a travs de una a plicacin. Su sintaxis es:

E x itW in d o w sE x (V A L O R 1 ,V A L O R 2 )
E l v a lo r2 siem pre es cero (0).
Los princip ale s valores que puede tener V a lo r I son 1,2,5 y 6 :
1 A paga la com putadora pero si tenemos un a rch ivo sin grabar, pregunta
si deseamos grabarlo.
2 R e in ic ia liz a la com putadora pero si tenemos un a rc h iv o sin grabar,
pregunta si deseamos grabarlo.
5 A paga la com putadora sin preguntar si deseamos grabar un a rchivo
que tenemos sin grabar.
6
R ein icia liza la com putadora sin preguntar si deseamos grabar un archivo
que tenemos sin grabar.

APLICACION DE EJEM PLO


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
uscaren:

A PAG AR LA C O M P U TA D O R A

| _ j Vb

__i Clisvr

C J samples

_ 1 Winapi

_ ] Graphics

i_ J Setup

_ J Wizards

_ J Help

__1setupkit

_ )0 d b c

C_] Template

_ J report

-J T s q l

_ j Repostry

__1vbonline

C rear una nueva a plica ci n y a d icion arle un m d u lo (P royecto A gregar


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
escriba en los botones de com andos las instrucciones correspondientes.

License
Redist

Botn Reinicializar la Computadora


Nombre de archivo:

f"

Archivos de tipo:

Texto

TXT)

hombre de archivo:

|f

Archivos de tipo:

[Texto ( TX T)

Prvate Sub C o m m a n d l_ C lic k ()


D im N A s Integer
N = E x itW in d o w s E x ( 6 , 0)
End Sub

Se m uestra una ventana con 5 botones de comandos:

BU SCA R
AGREGAR
QUITAR
CO PIAR
INSERTAR

:
:
:
:
:

Perm ite buscar a una fu n ci n .


A grega a la lista la fu n c i n seleccionada.
Q u ita una fu n c i n de la lista de funciones seleccionadas.
C op ia la fu n c i n seleccionada en el portapapeles.
Inserta la fu n c i n o funciones seleccionadas en la ventana
de declaraciones el fo rm u la rio activo o del m dulo.

Botn Apagar la Computadora


Prvate Sub C o m m a n d 2 _ C lic k ()
D im N As Integer
N = E x itW in d o w s E x (5 , 0)
End Sub

MUY IMPORTANTE

NOTA:

Estas funciones deben estar en el m d u lo de la aplicacin. Para e llo adicione


un m d ulo antes de rea liza r los pasos indicados.

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


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

CAPTULO VIII: Manejo de Archivos

f a VISUAL BASIC como debe ser.. .

En tip o de Em paquetado e lija Paquete de In sta la cin Estndar y en o p cio


nes de Cab. E lija M ltip le s A rc h iv o s Cab.

C R EA R D ISC O S DE IN ST A L A C IO N

4 Amtente de empaquetado y Sstrfcuctn - Opciones de cab

V isual Basic crea de una manera m uy f c il y rpida los discos de instalacin


de cualquier aplicacin que usted desarrolle con la fin a lid a d que la aplicacin
la instale y ejecute en cu alqu ier com putadora sin necesidad que sta tenga
el V isu a l Basic.
Para crear los discos de instalacin grabe correctamente su aplicacin y salga
del V isu a l Basic, luego de su ventana de acceso e lija : H erra m ie n ta s de

Ot> el t* ie paquete * * desea c*ear

>

A '
J

Jifa de empqRdo:

Opdones de .cab
Ur nico archivo .cab

j r j Microsoft Office Took

fTre

Microsoft Visual Studio SO

Herramientas de Microsoft Visual Studio S O

Microsoft Web Pubfcshing

L J Herramientas empresariales de Microsoft Visual SL..

Microsoft Visual Basic S O

^ > .3 Servicios en lnea

Microsoft Visual FoxPro 6.0

Ayuda

J3

Ejecutar..

Ayjda

- i j WinZip
j j

Explotador de Wndows

' i- Internet Explorer


*J* Apagar el sistema.

|!"!?r

MS-OOS

Cancefcr

<Antcror

| S qugte > |

1. Distribuir la Aplicacin

. T j The Hacker Antivirus

fiuscar

&

Microsoft Visual SourceSafe

Power 8 0

> - i j Sybase

Configuracin

archvcs .cat<
lanario de ardv/o .cab:

_Tj PLATINUM WotkView fot Internet Explorer

l _ j documentos

(*

-3

Paiola cpqn apropad.

Microsoft Ollice 2000 Profesional

_ jj favoritos

pars el paquee. Si va a itu k su apicacin en dwjjetes


b e oea mltiples c b vw ,:ab y especftcsr un tamao oe

M icro so ft Visual B a sic 6.0\A sistente p a ra E m paquetado y D istribucin.


JT J Internet txptorer

Outlook Express

3
-J

Se visu a liza la ventana de Asistente de


Em paquetado y D is trib u c i n donde se
debe hacer C lic en el botn E xa m in ar
para buscar y seleccionar el p royecto
al cual le va a crear los discos de insta
lacin.

Para e llo , haga c lic k en el botn Distribuir y siga las instrucciones del
A sistente.
En M todos de D is trib u c i n E lija D isquetes y en U nidades de D isco
e lija la unidad donde va a crear los discos de instalacin.
jpAsiitente de empaquetado y distribucin Unidad de duquete

Asistente de empaquetado y distribucin - Mtodo de distribucin


;

a?a unauneW de csruete er, labta de abafe

Eifa el tpe de dstrucin qjc desea reafc.

OM'*

.-J
Mtode de dstrouor :

Pufccacn en Web

El proceso de instalacin consiste en:

Fcmatear antes e coear

Qwscipdf.:
a J f r b j un paquete er varios djetes.

1.

Empaquetar la aplicacin.
Para e llo haga c lic en el botn Em paquetar. Si no ha creado el ejecutable
( * .E X E ) para la a plicacin se visu a liza el siguiente mensaje:
Asistente de empaquetado y d is tr ib u c i n

f) \

Para poder continuar, el Asistente requiere el archivo ejecutable 'Horarios.EXE'


para este proyecto. Haga clic en Examinar para buscar el archivo o en Compilar
para compilar el proyecto.

Ayuda

Cancela-

Compilar

j r<giighte > j {

Obelar j

<Antero-

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

Grupo E d itorial M egabyte^

iOjjjrte>|

E l

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.

Cancelar

H aga c lic k Compilar y siga las instrucciones del Asistente.

338

< Aerer

A l finalizar, V isual Basic le pedir que inserte los discos de usar


com o instaladores.

1
!

J
|

A c e p ta r

G r u p o E d it o r ia l

jj

Megabyte

C a n c e la r

339

<>

v ta m VISUAL BASIC como debe ser.


CONTROLACTIVEMOVIE

CAPTULO VIII: Manejo de Archivos

CREACION DE ARCHIVOS DE AYUDA

Permite ejecutar archivos de m ultim edia, com o por ejem plo los archivo * .A V I
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:

L x iste n bsicam ente dos tip os de a rchivos de ayuda. Los a rchivos sim ples,
que slo muestran el texto de ayuda en una sola ventana y los archivos con
ventanas vinculadas que consisten en llam ar a una ventana desde otra ventana.
i w. Si
_"
...I ... '.....
I':}'":
O P C IO N E S O K I. M I . N l P R IN C IP A !.

__ __
......... - i

I l'UODl'CTOS

W Miciosot Woid - TUTO R rtf


^

rchiv} cckin er Asertar Eproiao He/rnfeTtas tabla Ventana 1

: &y 4

* 12 *

M > v iM tf:r.r
im . -
( s s j -.

I.- , - i. il- y Vi

^ 1

k ti; t s

i- v r - : - :

H X

PR9PVT9S
MOVIMIENTOS
BEBBm

I l 11 ITARIOS

UTILIIASIoa

G I

In dica si despus de te rm ina r el vdeo retrocede al in ic io .

AUTOSTART
In dica si se visua liza autom ticam ente el vdeo cuando le asignamos el
nom bre del archivo.

FILENAM E
A cepta la ruta y el nom bre del a rch ivo de vdeo que deseamos visualizar.

FULLSCREENM O DE
In d ica si el a rch ivo debe ocupar toda la pantalla al ejecutarse.

PLAYCOUNT
APLICACIN DE EJEMPLO:
La siguiente a plicacin perm ite seleccionar un vdeo y visua liza rlo s. Para
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 botn de
comandos y con control C om m onD ialog. En el botn Seleccionar un archivo,
escriba lo siguiente:

Sfc. 1

____________________ I
1(5

fi :.9 on

ir. 6

OPCIONES DEL MENU PRINCIPAL


PRODUCTOS
MOVIMIENTOS
REPORTES
UTILITARIOS
PRODUCTOS
Esta opcin permit nininitrar toda la infamacin de lo; productos que fe
ccttnercialmn en la empresa.
Permite por ejemplo, ingresar productos nuevos, linar proiictos por laboratorio,
cambiar precios, etc.

% VISUALIZAR VIDEOS

Private Sub Commandl_Click()


C om m onD ialogl.Filter = Videos
(*.Avi)|*.avi|Todos (*.*)|*.*
CommonDialog 1.ShowOpen
Acti veM oviel .filename=CommonDialog 1.
Filename

End Sub

Megabyte<

lT

C d 12

Para el primer caso slo necesita crear un documento en Word con el texto que
clesea mostrar en la ayuda y guardarlo con un formato RTF (Archivo/Guardar Come >)
y luego compilar este documento con el programa M icrosoft H elp WorkSItop que
es un utilitario del Visual Basic que debe instalar en su computadora.
En segundo caso, debe rea liza r lo siguiente:
Las opciones que va a e x p lic a r y que van a lla m a r a las otras ventanas de
ayuda se deben de separar del resto del texto de ayuda p o r S a lto d e P g in a
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 bin
debe de estar en una pgina diferente.

In d ica la cantidad de veces que se debe visu a liz a r el a rchivo.

G r u p o E d it o r ia l

1=

O P C IO N E S DEL M E N I PR IN C IPA L

Mi ItlH K S
>
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:

AUTOREW IND

340

31 *

yj". a*

Sus p rincipales propiedades son:

SELECCIONAR UN ARCHIVO

.r.v.vitt ri-krt-: y

p|3 al I

- Iffl X|

4 * ffl E

MOVIMIENTOS
Esta opcii permite regiarar las carras que se realisan por cada producto,registrar
sus veitas, devoluciones, controlar y visualuar el stock inventariado y valoreado, etc.

REPORTES
Provee de la opciones que brindan iifonmcion til y oportuna al usuario como por
ejemplo D producto ms vendido, el producto menos venduto, el total de ventas
diarias, semanales,mensuales, etc.

UTILITARIO
Brinda al usuario las herramientas mas H itadas como por ejempb : Calculadora,
Configuraciones (Panel de Ccntrol), maitenimiento de usuarios, es decir, eliminarlos,
cambiar su clave, etc.

G r u p o E d it o r ia l

Megabyte

mi

CAPITULO VIII: Manejo de Archivos

VISUAL BASIC como debe ser. . .


Para crear el vn cu lo entre la o pcin elegida y el texto de ayuda a visualizar,
p rim e ro debe separarlas p o r ca m b io de pgina m anual (C O N T R O L +
E N T E R ), com o se muestra en la fig u ra anterior, luego a cada tema de ayuda
debe insertar una nota al pie de pgina con un carcter y un nom bre de
enlace para que pueda vincularse con las opciones de la p rim era pgina.
Por ejem plo:

ENLAZAR LA OPCIN PRODUCTOS CON EL TEMA PRODUCTOS


1.

U b ic a r el cursor inm ediatam ente despus del ttu lo del tema (segunda
pgina) y e le g ir In se rta r/N o ta a l P ie. Se m uestra una ventana donde
debe e sc rib ir el sm 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 opcin (Ira . pgina) 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)

V e rifiq u e que tenga instalado en su com putadora el u tilita rio W o rk Shop del
V isu al Basic. Cuando usted activa este program a se v is u a liza la siguiente
ventana in ic ia l. De la o p ci n F ile de esta ventana , e lija N ew y luego H elp
Project y pulse el botn O K . V isualizar una ventana de d i log o donde debe
e s c rib ir el nom bre de su a rch ivo de ayuda a crear. Despus de in d ic a r el
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
Tilo Y w J e * Tycrfs tJd p

P if il E3 I
j

<5, M ic r o s o ft H e lp W o ik s h o p - ( h o la h p i)
% g i Je Ycv* V/tkJow Tost Tyorfs Help

'g |q |> i _ J a r m
Help Fio: jhola hip

^1 1 l_ J ix J

IO P T IO N S 1
LCI-0x80<s 0x0 0x0 Esporto! M*xc.sno)
FiCPORT Y#

S ave and ConipJe I

o la s al pie y ola s al lin a l


Ready

CAP NUM

Insertar
< {iptaafpie

Por e jem plo, en la siguiente ventana se ha a dicionado un docum ento *.R T F


llam ado T U T O R .R T F en un a rch ivo de ayuda llam ado
tam bin T U T O R . H L P De esa ventana haga c lic k en el botn 5 a ve a n d
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 :------

Final de pgina

Nota al final

Final del documento

Numeracin
.utoriumeracin

1, 2 , 3, .

Marca personal:

|*

producto)

Pag. 2

Sec. 1

2/5

A2Scn Ih Pg. 2

5, 1

Z|5

A 25cm l

Haga el m ism o p ro ce d im ie n to para el resto de temas de ayuda.


2. Inm ediatam ente despus de cada o p ci n de la p rim era pgina asgnele
el m ism o nom bre asignado a cada tem a de N ota al Pie de Pgina (paso
anterior), luego asgneles el form ato de doble subrayado, y slo al nombre
asignado a cada opcin, asgneles el form ato oculto.
tW

,<*'>-rg n * .

its YeQiana t

n jiwft twmata

aP H ay-

1-7

&
W

OPCIONES DEL M E N T PRINC IPAL

REPQRXfiSRErOKTfS
I II I IIARK>SUTI Ll.TABIQS

- Ui,*!

a s :

Edicin

Contenido]

JE

Marcador

*e fc y w ^Klaw J:' Tyo*

*i a i

Help File: |TU T0 R .h lp

y iti

CreaU0 me b n ip Ute i u H W .M p . ~
Processing C:\JJVrUTOH.rtl

LCID0x280a 0x0 0x0 ; Espaol (Per)


R E P O R T -Y e s

Hr.unh/iiiij keywords...
Addjni) bitmaps...
Topics
.lump
Keywords

Created C:\JJ\tUTOH.hlp. l . O l bylcs


Compile time: 0 minute. 0 seconds
0 note a. II wairriflgii

H B T dTxI

Ayuda de Windows
Archivo

T * TU TO R .hpi

Opciones

Ayuda

Imprimir |

S ave and Compile I

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


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
W IN H E L P .E X E . Por eje m p lo, la siguiente instru cci n ejecuta el a rchivo de
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
se encuentra en C :\W IN D O W S .

PRODUCTOS
MOVIMIENTOS
REPORTES
UTILITARIOS

______________ ]

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 :

Despus de ejecutar el archivo de ayuda, cambie el formato de Doble


Subrayado por Subrayado Simple a las opciones, luego vuelva a compilar y ejecutar
el archivo de ayuda para observar el nuevo comportamiento de este archivo.

NOTA:

El nombre de cada opcin usted lo elige, pero slo utilice letras y sin espacios blanco.
Despus de estos pasos, grabe el documento con formato RTF y complelo.

342

G 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

FERNANDEZ'
FERREYROS
GRANADOS
INOAN
LIMO
.
LINARES
_ZJ

Nuevo

Modificar

Situacin
< Regular
r 1/2 Beca
C Beca
C Otro

Pensin
fil

2j

Eliminar
Fecha de Inscripcin

116/08/1999 -i-j

Otros
V Traslado
Observaciones

Grabar

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 especfica referente a un tema o p ropsito 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 inacin almacenada en una base de datos se organizada princip alm en te
m ediante tablas.

TABLA
I la unidad bsica de alm acenam iento de una base de datos y perm ite
tener la inform a cin 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

01
'2
03
04

05

NOMBRE

TURNO

CICLO

:: ,:
v __ _____
V
IV
II

Cdll
idles
Karina Rioia
Liliana Alarcn
Jorqe Ros
Tito Ramrez

M
T
M
N

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

03

| Liliana Alarcn

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 Alarcn
Jorge Ros_____
Tito Ramrez

ESTRUCURA DE UNA TABLA


I i estructura de una tabla consiste en los campos que contiene, su tipo y
l<ilic itu d de cada uno de ellos.
I I Tipo de Campo indica qu tip o de inform a cin se va a almacenar en cada
impo, por ejemplo: textos, nmeros, fechas, etc. La longitud se utilizan para
indicar cuntos 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

CREAR BASE DE DATOS USANDO VISUAL BASIC

M U Y IM PO R TA N TE
n un cen tro d e estu d io s n o rm a lm en te se indican las tablas estndares

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
c a s i sie m p re va ra n d e u na in stitu ci n a otra.

De la opcin A d d -In s (C om plem entos) de la Barra de M en, e lija Visual


Data M anager (A d m in is tra d o r V isu a l de D atos). Observar la siguiente
pantalla:

Si U d., es estudiante es m u y im p orta nte que se organice solo o con sus


com paeros de estudios para v is ita r a empresas o entrevistar a diferentes
profesionales para saber exactamente la in fo rm a c i n que m anejan y as
disear correctam ente las bases de datos y tablas.

Aiehivo

Ventana

Ayuda

S p i B j [ifjg lllJ

-I ~

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
m e jo r hacer una entrevista a un Q u m ic o Farm acutico, etc.

De la opcin F IL E (A rc h iv o ) de la pantalla anterior e lija N E W (Nueva),


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 slo se debe in ve stig a r los campos porque el tip o de cada
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.

V e n ta n a

Ayyda

M 'c o s o N A ce

* I

E o x P o
P a ra d o x

M D B V e rs i n -O...
M D B V e is i rt 2 0...

im p a c io d e trab ajo , .
f- rrQes

E L EX ITO D E L SISTEMA QUE DESARROLLES DEPENDE


D E L DISEO CORRECTO D E LA BASE D E DATOS

QDBC
A r c h iv o s d * te x to

C o m p a c ta r M D B .
F kparar 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. Si c h iv o s d e pro amaSD v S t diS 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
porque tienen el m ism o fo rm a to ( * .M D B ) :

U s to

U s u a rio : ad m ln

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

% VISUAL BASIC como debe ser.. .

Despus 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

MU
Borrar

________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 botn Cise (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
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.
M U Y IM P O R T A N T E

* * "i* \

D espus de h a c er c lic k en el botn C ise d eb e tam bin de h a c e r click


' n el botn 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

En la ventana Properties, haga c lic k con el botn derecho y e lija la opcin


N e w Table (nueva tabla), se vis u a liz a la p antalla:
Esliuctura de la tabla

" i , j

li

fjo m b re d e la ta b la :

r
r
r

Tipo:
Tam ao:
O rden:

Posicin:

A g re g a r cam po

' r ;V

Nom bre:

y s ta d e cam pos:

Eljminar cam po

T e x to d e valid a ci n :

Regla d e va lid a ci n :

P erm itir lo n g itu d cero

N ecesario

1 Valor p re d e te rm in a d o : I

L ista d e ndices:

r
Cam pos: |
A g re g a r ndice
C e rra r

Escriba el nom bre de la tabla (Table am e) que desea crear dentro de la


base de datos y para empezar a ingresar los campos haga c lic k en A d d
F ield (A g re g a r C am po), se visua liza la p an talla siguiente:

350

G r u p o E d it o r ia l

Megabyte ,|l>f||

I Ina vez construida la tabla, haga c lic k con el b otn 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
m .m tenim iento a los registros. La pan talla que vis u a liz a depende de los bo
iones de la barra Estndar (D ebajo del M en ) que tenga activados.
I I I er. Botn abre la tabla com o R ecordset tip o Tabla.
I I 2do. Botn abre la tabla com o R ecordset tip o Dynaset.
I I 3er. Botn abre la tabla com o R ecordset tip o Snapshot.
OH, 11' IX) RECORDSET DE TIPO HOJADE REPUESTADINAMICA
I ii objeto Recordset de tip o hoja de respuestas din m ica es una variedad
11> i ib jeto Recordset que puede u tiliza rse para m an ip u la r datos de una o ms
i ililas subyacentes. E l objeto consiste en un co njun to d in m ico de registros
iiiic puede contener campos 7de una o ms tablas o consultas de una base
di' datos y que puede ser actualizable.
< m i l 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
I ii i ibjeto Recordset de tip o instantnea es un co njun to esttico de registros
|in* puede u tiliz a r para e xam inar datos de una o ms tablas subyacentes.
I ii objeto Recordset de tip o instantnea puede contener campos de una o
m i. labias de una base de datos, pero no puede actualizarse.
< 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 representacin 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
<l< una labia. En la m em oria slo se carga el registro actual en cada momento.
I.u.i determ inar el orden de los registros del objeto Recordset se u tiliz a un
im lii c predefinido.

Grupo Editorial Megabyte

351

yam

fl

l> VISUAL BASIC como debe ser.

Por e je m p lo al a ctiva r (haciendo


C lic k ) el 1er. botn (Recordset tipo
Tabla) y el 5to., botn se muestra
la siguiente pantalla.

CAPTULO IX: Manejo de Base de Datos


_ |0|x |

I m Tabla AMIGOS

Agregar

ndice: |

I ILTRAR (FILTER)

Cerrar

| Eliminar | Buscar J Filtrar

Editar

Permite filtr a r (seleccionar) registros de la tabla.

CERRAR (CLOSE)

Nombre del campo:

Valor (F4=Zoom)

NOMBRE:

Permite cerrar la ventana.

DIRECCION:
DISTRITO:
TELEFONO:
EDAD:

k 1 < |CBOF)/'l

' > 1 >i

Agregar

AGREGAR (ADD)
Perm ite ingresar registros a la tabla. Debe hacer c lic k en esta o pcin por
cada reg istro que desea adicionar.
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 adicin del nuevo
registro.

rr n n

D ynasetiA M IG O S

A l activar el 2do. bo
l n (R e c o rd s e t tip o
D y n a s e t) y el 4 to .,
botn se m uestra la
siguiente pantalla:

Actualizar

Eliminar

Nombre del campo:


NOMBRE:

DIRECCION:

Campo

I Renovar

[[.C e rra r

Valor:

DISTRITO:

TELEFONO:

EDAD:

TTl

i< N lm

EDITAR (EDIT)
i'-l botn A g reg ar p erm ite ingresar un nuevo reg istro y el botn A ctua liza r,
graba el nuevo registro. Cada vez que hace c lic k en el botn A gregar, ste
se convierte en C ancelar

Perm ite m o d ific a r los datos de un registro.

ELIM INAR (DELETE)


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
C U R R E N T R E C O R D ?. Responda S I o N O .

A l activar el 2do. botn (Recordset tip o D ynaset) y el 6 to botn se m ues


tra la siguiente pantalla:

BUSCAR (SEEK)
Perm ite buscar un determ inado registro
m ediante un cam po p o r el cual la tabla
debe estar indexada. Se visua liza la pan
talla:

KS Parm etros do S e e k
Operador :
<- [..]

r~

H! DynaseLAMIGO S
>-

r-

<~ > r- <

Actualizar
NOMBRE

*alor :
r _

Ordenar
I DIRECCION

filtrar
[DISTRITO

Ceirai
ITELEFONO

EDAD

*
Aceptar

Cancelar

;
1

Para ind e xa r una tabla, haga c lic k con el bot n derecho en el nom bre de la
tabla y e lija la o pcin D esing (D isear). De esta manera U d puede m o d ifi
car la estructura de la tabla e indexarla.
Para indexar haga c lic k en el b otn ADD INDEX (A g re g a r In dice ), se
visualiza la pantalla siguiente, escriba el nom bre del indexado y seleccione el
cam po o campos que desea usar en el indexado.

L o s b o to n e s
perm iten G ra
bar, O rd e n a r,
Seleccionar re
gistros y cerrar
la ventana.

$7

n ic o

r*'

I o r im i a i n u lo s

BARRA DE DESPLAZAMIENTO

IC Primai io
O-arhpoS India-sido'

| H H i Haga clic con el botn secundario del mouse para ver las propiedades del control Dat.H

VW i

h R |i/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 bin 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.

CREARBASE DE DATOS USANDO MICROSOFTACCESS


Haga c lic k en el botn IN IC IO del W in d o w s y luego en Programas, luego
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 .

CAPITULO IX: Manejo de Base de Datos

Archivo nueva base de datos


Guardar en: | _J Mis documentos

yalumnos.mdb
yBASEBIBLIO.nidb

A l ingresar al Access se visua liza la siguiente ventana:


Microsoft A ccess
C rear u na nue va base de d a to s usando

Luego se visua liza la siguiente pantalla:

Vjadrrun.rridb

4 Microsoft Access

yBDALUMNOS.mdb

yCREDIT0S.mdb

Crear

DB5ISTEDU.mdb
Cancelar

^edwin.mdb
INFORME.mdb

ybdentdmdb

ywjPP.mdb

06CH.IBROS.mdb

yproductos.mdb

Q BIBU0TECA.mdb

yTAREA.mdb

^ control de crditos 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 !


Ms a rc h iv o s ...
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
CREDITOS
C A R C H IV -1\DEVSTU~ 1\VB\GOHAN

A ce p ta r

Cancelar

En esta pantalla seleccione la carpeta donde desea crear la nueva base de


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
escriba el nom bre de la nueva base de datos luego haga c lic k en el botn
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 ).
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 pcin para crear una nueva base
de datos y luego haga c lic k en el b otn aceptar.

NO TA:
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

Esta pantalla tiene 6 hojas o fichas. Haga c lic k en la hoja T A B L A S y luego


en el botn N U E V O para crear cada tabla de la base de datos.

G r u p o E d it o r ia l

Megabyte

355

CAPTULO IX: Manejo de Base de Datos

VISUAL BASIC como debe ser.

Cuando term ine de e scrib ir toda la estructura de la tabla haga un c lic k en hi


fig u ra del disco o pulse C T R L + G para grabar la estructura.
Una vez ingresado el nom bre de la tabla se v is u a liza la siguiente ventana:

Se visua liza la siguiente ventana.


Nueva tabla
Vista Diseo
Asistente para tablas
Importar tabla
[Vincular tabla

M icro so ft A ccess

Crear una nueva tabla en vista


Hoja de datos.

CE3

No hay ninguna cla ve principa l definida.

Cancelar

Aceptar

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


A C E P T A R para em pezar a e s c rib ir la estructura de la tabla.

Nombre del campo I Tipo de datos 1Descripcin]E

No

Cancelar

i- ~ lx

Tablai : Tabla

Tabla! : Tabla

A unque no es necesaria una clave principal, es recom endable que


exista. Una tabla debe tener una clave principal para que pueda
definir una relacin entre esta tabla y otras tablas de la base de datos.
Desea crear una clave principal?

tos j Descripcin |j
Nombre del campo I Tipo de datos

Si U d., desea haga c lic k en el botn S I para que la tabla tenga un campo
clave. Estos campos se emplean ms 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 botn A B R IR para ingresar los registros
o en el botn D IS E O para m o d ific a r la estructura de la tabla.
jd
General

j Bsqueda |

MUY BIEN

Propiedades del campo

Propiedades del campo


General

J Bsqueda |

Tamao del campo


Formato
Mscara de entrada
Ttulo
Valor predeterminado
Regla de validacin
Texto de validacin
Requerido
Permitir longitud cero
Indexado

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


m a n era la base de da to s ya est lista p a ra m a n eja rla con Visual Basic.

No
No
No

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


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, tamao y otras caracterstica
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
que p erm ita dar una e xp lica ci n acerca de cada campo.

U na vez creada la ba se de datos usando Visual B a sic o M icrosoft A ccess


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
c u a lq u ie r fo r m u la r io .
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
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.
Las tablas creadas en Visual B asic y M icro so ft A ccess con com patibles,
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
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

lllifl VISUAL BASIC como debe s er...

CONTROL DATA:
E l control Data perm ite manejar los registros de una o ms tablas en un fo rm u
lario. Ud. puede acceder a los registros para actualizarlos, im p rim irlo s, etc.
E l c o n tro l Data nos ayuda a crear de una fo rm a m uy sencilla aplicaciones
para poder acceder y a dm in istrar bases de datos sin e s c rib ir casi ninguna
in stru cci n . Cuando se m anejan bases de datos se u tiliz a siem pre el objeto
R ecordset.

OBJETO RECORDSET
U n objeto Recordset representa registros de una tabla. Estn form ados por
registros (fila s ) y campos (colum nas).

E xiste n tres tip o s de o b je to s R eco rd set:


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
O b je to R ecordset de tip o de respuesta Instantnea
O b je to Recordset tip o Tabla
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 :
AME
Perm ite asignarle un nom bre. Por defecto el nom bre es D a ta l, Data2, Data3
etc. Segn el nm ero de controles que se d ib u je n en el fo rm u la rio .
B O F A C T IO N
P erm ite in d ic a r la accin que se debe rea liza r cuando se encuentre al in ic io
de la tabla. L a accin puede ser:
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.
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.
CONNECT
Para in d ic a r el tip o de base de datos que se desea manejar. Por defecto es
A rrF s s
DATABASENAM E
Para in d ic a r el nom bre de la base de datos a manejar.
EN ABLED
Para in d ic a r si el co n tro l Data debe estar a ctivo o no.
E O F A C T IO N
P erm ite in d ic a r la accin que se debe rea liza r cuando se encuentre al fin a l
de la tabla. L a accin puede ser:
0 M O VE LAST
: se ubica despus del ltim o registro.
1 EOF
:
se ubica en el ltim o registro.
2 AD D NEW
:
adiciona un nuevo registro.

CAPTULO IX: Manejo de Base de Datos


E X C L U S IV E
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
v a lo r T rue in d ic a que es de tip o personal.
KEAD O N LY
Permite indicar si la base de datos es de slo lectura. Si es de slo lectura las
m odificaciones que se le haga a un registro no son reconocidas o grabadas.
KECORDSOURCE
Perm ite in d ic a r el n om bre de la tabla que se desea manejar.
V IS IB L E
Para in d ic a r si el c o n tro l se debe visualizar.

APLICACIN DESARROLLADA N 48
Siguiendo los pasos m encionados al in ic io de este captulo, crear una base
de datos llam ada A G E N D A que tenga una tabla llam ada A M IG O S y a di
cione algunos registros.
I .a tabla debe tener la siguiente estructura:
CAMPO
N om bre
D ireccin
D istrito
Telfono
Fecnac
Sexo
Peso

T IP O
Texto
Texto
Texto
Texto
F echa/H ora
Texto
Sencillo

T/
25
20
20
10
1

I I lo rm u la rio debe fu n c io n a r de la siguiente manera:

Su A C C E S O A U N A B A S E D E D A T O S

Nombre
Direccin
Distrito
T elfono
Fecha de Nac.

TITO R A M IR E Z
EL DO RADO 456

107/1V I 970

Sexo

|m

Peso

|S7

|j.L.O .
(236975

D a ta i

SALIR 1

I .os botones del control Data permiten ir al registro Primero, Anterior, Siguiente
y ltim o.
G r u p o E d it o r ia l

Megabyte

359

VISUAL BASIC como debe ser.. .

CAPTULO 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


un botn de Comandos.

< nando crea una base de datos en V isu a l Basic, sta se graba en form a
I'(determ ina la carpeta:

C:\Archivos de Programa\DevStudio\VB

U n ix ]

Si* Form i
L a b e ll

|T e *t1

Label2

Text2

L abel3

|T e xt3

LabeW

|T e xt4

Label5

|T e xt5

LabelG

|Tex(G

Label7

| Tex(7

uando crea una base de datos en Access, sta se graba en fo rm a predei. i m ina la carpeta: C:\Mis Documentos. Si no recuerda en qu carpeta se
i ab la base de datos, bsquela haciendo c lic k en: Botn Inicio, Buscar ;

1/ chivos o carpetas.
PROPIEDAD RECORDSOURCE, donde se selecciona el nom bre de la
labia que contiene los registros. En nuestro ejem plo la tabla se llam a Am igos.
RecordSource

| H | ^ | Pa>a1

| ! |

Jd

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.

C om m andl |

MUY IMPORTANTE
lro . A l c o n tro l D ata se le debe asignar 02 propiedades:

PROPIEDAD DATABASENAME, donde se selecciona el nom bre de


la base de datos con la que desea trabajar. En la aplicacin a desarrollar la
base de datos se lla m a AGENDA.

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
I )A IA B A S E N A M E . En este ltim o caso se muestra el siguiente mensaje
de error:
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


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
va r la ventana y seleccionar la base de datos.
L a ventana que se visua liza es la siguiente:
B u s c a re n :

| _> l V b

J Clisvr
I G raphics

;_ J Repostry
___ I samples

I H elp

I Setup

_ J setupkit

I N u e v a ca rp e ta
1O dbc

| T em piate

I report

Nom bre de archivo:


A rchivos de tipo:

T sql

T ]

fin |

est usando. En fo rm a predeterm inada es D A T A 1 .


DATAFIELD, donde se selecciona el cam po que desea v is u a liz a r en
cada caja de texto.

_ _ | vbonline
__J W in a p i
_J W izards
* ^ 1 AG EN D A
Biblio
N w ind

CONTROL
|

]]

A yud a

2do. A cada caja de texto se le debe asignar 02 propiedades:


DATASOURCE, donde se selecciona el nom bre del c o n tro l Data que se

gj< -| j i 3 : f f | f |

fBases de datos ( m db)

A c e p ta r

Abrir

Cancelar
A yuda

Es recom endable seleccionar el nom bre de la base de datos, porque s Ud.


lo escribe debe in d ic a r tam bin con m ucho cuidado la ruta exacta donde
est ubicada.

DATASOURCE
D a ta i
D a ta i
D a ta i
D a ta i
D a ta i
D a ta i
D a ta i

T e x tl
Text2
Text3
Text4
Text5
Text
Text7

DATAFIELD
N om bre
D ireccin
D istrito
Telfono
Fecnac
Sexo
Peso

I 11 botn S a lir debe tener la in s tru cci n E N D .


G

ru po

d it o r ia l

Megabyte

361

VISUAL BASIC como debe s e r ...

'v

A P L IC A C IO N D E SA R R O L L A D A N 49
D esa rro lla r la a plicacin a nterior usando botones de comandos.
Reg
N o m b re
D ir e c c i n
D is tr ito
T e l fo n o
F echa de N ac.

1003

| L IL IA N A A L A R C O N
jM A R IA IZ A G A

JcH I C L A V O
|2 2 7 1 91
J

20/ I

S exo

Jp

P eso

f5 3

0 /1 9 7 0

in te r io r

U ltim o

J g r im e r o

a lir

1.- DIBUJAR LOS CONTROLES.


D ib u je los controles com o se m uestran en la aplicacin.

2.- ASIGNAR LAS PROPIEDADES.


Las cajas de te xto y el c o n tro l Data deben tener las m ism as propiedades de
la a plicacin anterior.
Lab el7 debe tener en su propiedad C ap tion : Reg. N.
LabelS debe tener en su propiedad C ap tion : 0001.
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
se visualice.

NOTA:
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
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
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 .

d e te xto p u e d e
a la s c a ja s de

3.- PROGRAM ACIN DE LOS CONTROLES.


Se u tiliza n los siguientes mtodos:
M O V E F IR S T
: M uestra el p rim e r registros.
MOVENEXT
: M uestra el siguiente registro.
M O VELAST
: M uestra el ltim o registro.
M O V E P R E V IO U S : M uestra el reg istro anterior.
Y las siguientes propiedades:
EO F
: In d ica si estamos al fin a l de la tabla.
BOF
: In d ica si estamos al in ic io de la tabla.
R E C O R D C O U N T : Cuenta la cantidad de registros.
L a sintaxis de cada uno es:

C ontrol_D ata.R ecordset.M todo


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

362

CAPTULO IX: Manejo de Base de Datos

G r u p o E d it o r ia l

M egabyte^

U n io n P R IM E R O :

Botn LTIM O :

I'riv a le S u b C o m m a n d 4 _ C lic k ()
I )ata I . R eco rd set. M o v e F irst
( o m m a n d l. E n a b le d = True
( om m and3. E n a b le d = True
( <nnmand2. E n a b le d = F alse
C o m m a n d 4 .E n a b le d = F alse
NR = /
l.a b elS = F orm at$(N R , 0000")
I nd Sub

Private Sub Command3_Click()


Data 1.Recordset.Mo veLast
Command I.Enabled = False
Command3. Enabled = False
Command2. Enabled = True
Command4. Enabled = True
NR = Datal. Recordset. RecordCount
Label8 = Format$(NR, 0000")
End Sub

Instrucciones del botn SIGUIENTE:

Ir a l R e g i s t r o :
S ig u ie n te

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
I f D ata 1. R ecordset. E O F Then
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
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
Else
C o m m a n d l .E n a b le d = True
C o m m a n d s.E n a b le d = True
C om m and2. E n a b le d True
C o m m a n d 4 .E n a b led = True
N R = Val(Label8) + 1
L abel8 = F orm at$(N R , 0 0 0 0 )
End I f
l.n d S u b

Instrucciones del botn ANTERIOR:


P riva te S u b C o m m a n d 2 _ C lic k ()
D a ta l. R e c o rd se t. M o v e P re v io u s
I f D a ta l.R e c o r d s e t.B O F Then
M sg B o x P rim e r 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
C om m and4. E n a b le d = F alse
D ata 1. R ecordset. M o v eN e xt
E lse
C o m m a n d l .E n a b led = True
C om m and3. E n a b le d = True
N R = Val(Label8) - 1
L a b el8 = F o rm a t$ (N R , 0 0 0 0 )
End If
E nd Sub
El botn S A L I R d eb e te n e r la in stru cci n E N D .
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


de una tabla. En la lista de componentes, este co n tro l se llam a:
M ic ro s o ft Data B ound L is t C on trol.

N o m b ro

|S A L A V E R R Y 9 87

D is J r ito

|C H I C L A V O

T e l f o n o

12 0 9 8 7 5

Fecha de N ac

11 8 / 0 6 / 1 9 6 0

Sexo

PRINCIPALES PROPIEDADES DEL CONTROL DBLIST:

| M A N U E L C A R B A JA L

D ire c c i n

Poso

M
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
D ata que est lig a d o la tabla donde se encuentra el campo.

MATCHENTRY
Selecciona la fo rm a de acceder a los elementos la lista.
0. D B L B A S IC M A T C H IN G :
Selecciona a un elem ento p o r el p rim e r carcter que se d ig iten .
1. D B L E X T E N D E D M A T C H IN G :
Selecciona a un elem ento p o r los p rim eros caracteres que se digiten.

ROW SOURCE
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
antes de L IS T F IE L D .

CONSULTA DE REGISTROS

ASIGNAR LAS PROPIEDADES.


I a caja de texto N 1 (donde se ingresa el nom bre a consultar) NO debe
Icner ninguna propiedad. Las cajas de texto desde la N2 hasta la N 8 y el
co n tro l Data deben tener las mismas propiedades de la a plicacin anterior.
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,
i*n su propiedad L IS T F IE L D debe seleccionar el cam po N om bre y en la
propiedad M A T C H E N T R Y el va lo r N1 -D B L E X T E N D E D M A T H IN G para
poder seleccionar un reg istro d ig ita n d o sus prim eros caracteres.

NOTA
Para que los nombres se visualicen ordenados cree un ndice para el campo nombre.

MTODOS UTILIZADOS:
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 bsicas de co nsu ltar registros de una tabla.


1.
Ingresando el campo clave del registro que desea consultar. Por ejemplo
el cdigo, nombre o cualquier dato que puede identificar a un solo registro
dentro de la tabla.
2.
Seleccionando el campo del registro a consultar desde un control D B lis t
o desde un co n tro l D B com bo.

M U Y IM PO R TA N TE
Cuando en la estructura de una tabla, Ud., ha cre ado un
cam po cuyo nombre est com puesto con espacios en
blanco o caracteres especiale s com o por ejem plo el
guin(-), el signo nmero (s), etc., entonces, cada vez que
; se refiera a ellos dentro de un program a, los debe colocar
dentro de corchetes ([ ]). Por ejem plo:
[F E C H A DE INGRESO]
[A P E LLID O -P A T E R N O ]
[e RECIBO]

< 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 .


Se recom ienda que la co n d ic i n se alm acena en una variable.
Por e jem plo se tiene una tabla con el cam po N O M C L I y se desea buscar el
u-gistro cuyo nom bre es: J U L IO D E L G A D O .
I as instrucciones serp:
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
Si el nom bre se encuentra p o r e je m p lo en T e x tl, las instrucciones sern:
C = " N O M C L I = " + T e x tl +
D a ta l .R ecordset.F indfirst C

NOTA:
t os apostrofes slo se utilizan para buscar campos de tipo Texto y entre ellas y las
i lunillas NO debe dejar espacios en blanco.
Si el registro es encontrado, sus datos son mostrados automticamente en las cajas
le texto o etiquetas que se les a asignado la propiedad Datasource y Datafield.
G r u p o E d it o r ia l

Megabyte

365

|fllllll> VISUAL BASIC como debe se r...

CAPTULO IX: M anejo de Base de Datos

MANTENIMIENTO DE REGISTROS

NO M ATCH :
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.
S intaxis para preguntar si el registro fue encontrado:

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


S intaxis para preguntar si el regist. no fue encontrado:

I f C o n tro l D a ta .R e c o rd se t.N o m a tc h then


Ejemplo:

D im R A s String
R = N O M C L I = + T e x tl +
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
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
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

I I m antenim iento de registros consiste en re a liz a r program as para: A d ic io


nar, M o d ific a r y E lim in a r registros.
Mtodos U tilizados:
A D D N E W : Perm ite a d icio n a r un re g istro a una tabla.
I I ) IT : Perm ite m o d ific a r los datos de un re g istro de una tabla.
M L L E T E : Perm ite e lim in a r el re g istro actual de una tabla.
< 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
ic g is tro o la ejecucin de A D D N E W m ientras el reg istro no este grabado.
I a sintaxis de estos m todos es:

Control_Data.Recordset.Nombre_Mtodo
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 ()
D im R A s String
I f Trim ( T e x tl) =
Then
MsgBox DEBEINGRESARELNO M BREA CONSULTAR,48, "LOSIENTO"
T e x tl =
T extl. S e t F o cu s
E lse
R = N O M B R E = * + T extl +
D a ta l .R eco rd set. F in d F irst R
I f D a ta l .R e c o rd se t.N o M a tc h T h en
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
E lse
T e x tl =
T e x tl. S e tF o c u s
End If
End If
E nd Sub
Instrucciones del D b lis tl para que al e le g ir un registro se visualicen todos
sus datos.

P riv a te S u b D B L is tl _ C lic k ()
D im R A s S tring
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
E nd Sub

MC

MANTENIMIENTO DE RESGISTROS
D a to s P e rs o n a le s :
A m ig o s
CARINA RIOJA
j
CARLOS M ORALE
DANIEL ALARCO
IM A N U EL C A R B A JJ

Nombre

IDANIEL ALARCON

Direccin

|WIRACHORA315

Distrito

ILA VICTORIA

T elfono

I232689

.......

Fecha de Nac. 115/10/1966


Sexo

Peso

[S8

Cancelar

O p c io n e s d e M a n te n im ie n to

Adicionar

Modificar

M M

Datai

Cerrar

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


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
y a d ic io n a r n u e v o s re g is tro s .

M U Y IM PO R TA N TE
i slos son los program as bsicos para m anejar registros, por lo tanto es m uy
im portante que U d., los p ractique varias veces con diferentes tablas.

E l botn S A L IR debe tener la in stru cci n E N D .

G ru p o E d ito r ia l

Megabyte

CAPTULO IX: Manejo de Base de Datos

VISUAL BASIC como debe ser. . .

Escribir las instrucciones de los controles.

1. Dibujar los controles.


I I x |

a Fo rn ii
............................................

'

isll

L a b e l2

|T e n t1

Labo13

[Tr-TT

L a b e l4

|T e x t3

L a b e l5

: : : : : : : : : : :

Sub DESACTIVARO

F ram el.Enabled = True


Frame2. Enabled = False
D BListl. Enabled = False

End Sub

|T e x t4

L a b e lG

jT e x tS

L a b e l7

ffe x 6

L a b e ls

jText7

C om m and2

C om m and4

C om m and5

: : : : : : : : 1n | ^ ]Da>ai

C om m and6

Private Sub Command3_Click()


ACTIVAR
Data 1.Recordset. AddNew
Textl.SetFocus
End Sub

1m| :

Botn MODIFICAR

NOTA:
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.

2. Asignar las propiedades.


CONTROL
Datal

RECORDSOURCE
Amigos

Agenda

CONTROL
Textl
Text2
Text3
Text4
Text5
Text6
Text7

CAJAS D E TE X T O
DATASOURCE
Datal
Datal
Datal
Datal
Datal
Datal
Datal

DATAFIELD
Nombre
Direccin
D istrito
Telefono
Fecnac
Sexo
Peso

CONTROL
D blistl

D B L IS T
ROWSOURCE
Datal

LISTFIELD
Nombre

368

ru po

Private Sub Command4_Click()


ACTIVAR
D atal .Recordset.Edit
Textl.SetFocus
End Sub

Botn GRABAR
P rivate Sub C o m m a n d l _ C lic k()
D ESAC TIVAR
D a ta l.R e c o rd se t. U pdate
R em A ctualiza el D B listl
D B L istl.L istF ie ld - nom bre
E n d Sub

Botn CANCELAR
P rivate Su b C om m a n d 2 _ C lick()
D E SA C T IV A R
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

Instrucciones del botn ELIMINAR

CONTROL DATA
DATABASENAM E

A los botones de comandos y fram es, asgneles su propiedad C aption, com o


se muestra en la a plicacin a desarrollar.
I | | ^

F ra m el. E nabled = False


Frame2. E nabled = True
D B L istl .E nabled = True

End Sub

Botn ADICIONAR

C om m andl

F r a m e 2 ....................... ........................
C om m and3

C rear dos procedim ientos (A c tiv a r y D esactivar) y e s c rib ir las siguientes instrucciones:

SubACTIVAR()

F ra m e l

!*".

d it o r ia l

M e g a b y t e <^ ^ ^

Private Sub Command5_Click()


Dim R As Byte
R=MsgBox(Estsegurodeelninaresteregistro,36, CUIDADO)
IfR = 6 Then
D atal. Recordset. Delete
D atal.Refresh
End I f
End Sub

CONTROL DBLIST1

Instrucciones del Form_Load

Private Sub D BListl_Click()


Dim C A? String
C= "NOMBRE= +DBListl+
Datal.Recordset.FindFirst C
End Sub

Prvate Sub Form_Load()


Framel.Enabled - False
Datal. Visible - False
End Sub

Instrucciones del botn SALIR


Prvate Sub Command6_Click()
I f M sgBox(Est seguro de Sari ir ,36, CERRAR) = 6 Then End
End Sub

G r u p o E d it o r ia l

Megabyte

369

M.

% VISUAL BASIC como debe ser.. .

CAPTULO IX: Manejo de Base de Datos

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

Visual Basic tiene un asistente que permite desarrollar en forma automtica un for
mulario con los programas bsicos para manejar y dar mantenimiento a las tablas y
registros de una base de datos.
Para ello, de la opcin Complementos de la Barra de M e n elija Asistente para
Formulario de Datos.
,

NOTA:

I n la siguiente ventana debe seleccionar en Origen de D atos el nombre de


la tabla y en Campos Disponibles puede seleccionar los campos que desea
visualizar. Tambin puede seleccionar una columna (Campo) por el cual quiere
ordenar los registros. Cada uno de los botones de esta ventana muestra un
mensaje indicando su funcin con slo llevar el puntero del M ouse hasta l.
I.n la siguiente ventana, Visual Basic le pide seleccionar los botones que
ilesea tener en el formulario.
pe

Si no tiene la opcin Asistente para Formularios de Datos, ingrese a la opcion


Administrador de Complementos y active VB Data Form Wizard.

Cuando elige la opcin Asistente para Formularios de Datos, se puede visualizar


una ventana de introduccin y cuando hace Click en Siguiente se muestra la
ventana donde se elige el tipo de Base de Datos. El tipo predeterminado en V. Basic
es Access.

>r*jen de registros:

GsrrcKcaponles

Campesjesjcdcnaoos: ;

p BotanAgregar
FBo to n E b r

_J

; 17 otnEenovar
F Btntetusljai

nanaas

15 BotteCerrar
Orden* cok*iwaD:

Ayuda

dB
M
f IV
:;
d
A
'iE
JBfSE 5 0

Fo>Pro?<<

<if'fr pgmjyte > |

Despus de hacer click en el botn Siguiente de la ventana anterior, Visual Basic le


pide el nombre de la Base de Datos con la que desea trabajar y en la siguiente
ventana le pide la forma de visualizar los registros. La primera y segunda forma se
utilizan para una sola tabla y la tercera forma para dos tablas.

CnccSy

j* ]

: <&trfe. ;| f | j g g l 3 l :

C^?T3]

lermna- |

Iin la ltima ventana, le pide el nombre del formulario. E n forma predetermina


le asigna el nombre F R M seguido del nombre de la tabla. Para ver su
ejecucin, puede hacer que este formulario se ejecute primero (Proyecto/
Propiedades del Proyecto).
El formulario que se crea en forma automtica depende el tipo que eligi.
Por ejemplo, si ha elegido Un nico R egistro, se visualiza:
.AMIGOS

M 3\

NOMBRE:
DIRECCI N:'
DISTRITO :
TELEFONO:
FCNC:
SEXO:
PESO:
A gregar

Eliminar

Renovar

Actualizar

lIT fti

Cerrar

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

ru po

d it o r ia l

Megabyte

lilil* Grupo Editorial Megabyte

37,

DESARROLLO:

CONTROL DBCOMBO:
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
campo, pero adems puede m ostrar una caja de texto. En la lis ta de com p o
nentes, este c o n tro l tam bin se llam a: M ic ro s o ft Data B ound L is t C on trol.
Tiene las mismas propiedades del co n tro l D B lis t, pero adems se le puede
asignar la propiedad S T Y L E .
L a propiedad Style, in d ica la fo rm a cm o debe trabajar el D B co m b o. Los
valores que se le puede asignar son:
fc) - dbcD roD downC om boH

Style

0 - dbcDroodownCombo
1 - dbcSimpleCombo
2 - dbcDropdownList

0
1
2

CAPTULO IX: Manejo de Base de Datos

|>

S B k > VISUAL BASIC como debe ser.. .

: E l D B co m b o se m uestra con una caja de texto y una lista desplegable,


pudiendo seleccionar a un re g istro en cualquiera de ellas.
: M uestra una caja de texto y una lis ta que no se despliega, pudiendo
seleccionar a un reg istro en cu alqu iera de ellas.
: Slo m uestra y perm ite seleccionar cu alqu ier registro de la lista des
plegable.

A P L IC A C I N D E S A R R O L L A D A N 52

D ib u je todos los controles de la aplicacin de consulta a nterior y asgneles


las propiedades respectivas. Slo debe cam biar el co n tro l D B lis t p o r el con
trol D B com bo.
A l c o n tro l D bcom bo asgnele las propiedades R ow S ource Y L is tfie ld com o
se h izo para el D B lis t. Adem s debe asignar sus propiedades T ext y Style.
l il contenido de la propiedad T ext b rre lo para que quede en blanco y en su
propiedad Style, asgnele el v a lo r 2.
Debe program ar en los eventos Change y C lic k del D B C om b o:

Instrucciones del evento Change


P rv 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
D im L A s In teg er
L = L e n (D B C o m b o l)
C = "L E F T (N O M B R E ," + Str(L) +
D a ta l.R e c o rd se t.F in d F irst C
I f D a ta l.R e c o r d s e t.N o M a tc h T hen
F ra m e l. Visible = F alse
E lse
F ram e 1 .V isible = True
E nd I f
lu id S u b

+ D BCom bol +

Instrucciones del evento Click

D esa rro lla r el program a de consulta anterior, usando un D B co m b o, de tal


manera que a m edida que se va escribie nd o el nom bre de una persona, se
visua lice n sus datos en las cajas de texto.

P rvate 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 B C o m b o l jC h a n g e
E nd Sub

APLICACIN PROPUESTA
m. FORMAS

TTSl

DE CONSULTAR REGISTROS
N o m b re a C o n s u lta r

M o d ifiq u e la a plicacin a nte rio r de tal manera que perm ita co nsu ltar un
registro p o r el nom bre o telfono.
I H 'l ii; FiYi <1=1'1

H a g a c lic k e n e l N o m b re
o d g ite la s in ic ia le s

DA
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
M A N U E L C A R B A J^
T IT O R A M I R E Z
_ZJ

N o m b re

|D A N IE L A L A R C O N

D ir e c c i n

IW IR A C O C H A 3 1 5

D is tr ito

| L A V IC T O R I A

T e l f o n o
F e cha de N ac.

'

D a lo s P e rs o n a le s
| L IL IA N A A L A R C O N

|232689

D ir e c c i n

|M A R IA IZ A G A

| 1 5 /1 0 /1 9 6 6

D is tr ito

jC H I C L A V O

T e l fo n o

|2 2 7 1 9 1

P eso

68

Fecha de N ac

f2 0 T T 0 T l9 7 0

S exo

|p

P eso

[53

l'nj
I l< |

122 71 31

N o m b re

S exo

I H| < |Datai

372

i 143EDSIBMMMMBZ[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
N o m b re
T e l f o n o

D a lo s P e r s o n a le s

r u po

d it o r ia l

M e g a b y te ^

| |

r u po

E d it o r ia l

4 | D a ta l

Megabyte

| M i

373

CAPITULO IX: Manejo de Base de Datos

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

A PL IC A C I N D E SA R R O L L A D A N 53

C O N T R O L D B G R ID :

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 .
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
G rid C ontrol.

C on la tabla A m ig o s desarrolle la siguiente a plicacin que perm ite lista r


todos los registros:
jjn l

HOMBRE
{Ta RIN A
CARLOS
CARLOS
D ANIEL

PRINCIPALES PROPIEDADES DEL CONTROL DBGRID:

[d i r e c c i o h

RELACION DE AMIGOS
[d i s t r i t o

iHNIOa'al TTTlI

ALLOWADDNEW
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
registros.

ALLOWARROWS
P erm ite usar las teclas de m o v im ie n to del cursor para m overse p o r los
registros.

ALLOW DELETE
P erm ite in d ic a r si se puede e lim in a r registros.

feciiac [s e x c

20/10 / 1 9 7 0
20/10 / 1 9 7 0
18/07 / 1 9 6 9
1 6/12/1970

F
H
H
H

j______________________ _______ _______ ,_____ _ t a

A M E
Perm ite asignarle un nom bre. Por defecto el nom bre es D b g rid l, D bgrid2,
D b g rid 3 etc. Segn el nm ero de controles que se d ib u je n en el fo rm u la rio .

It e l e f o n c I

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
MORALES
;A R E Q U I P A N* 364
CHICLAY
2738S8
I N FANTE
:AV. LOS LAURES 234 iFERREAFE
^203347

Sala

Para disear esta aplicacin debe d ib uja r en un fo rm u la rio un control D B grid,


un control Data y un botn de comandos.
1ro. A l control Data se le debe asignar 02 propiedades:
DATABASENAME, donde se selecciona el nombre cela base de datos ( "Agenda").
RECORDSOURCE, donde seselecciona de la tabla que contiene los registros ( "Amigos").
2do. El control D B g rid debe tener en su propiedad DataSource el nombre del
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 .
El botn SALIR debe tener la instruccin END.

RECUPERAR LOS CAMPOS

ALLOW UPDATE
Perm ite in d ic a r se pueden m o d ific a r los registros.

Una vez que asign las propiedades al control Data y al D B g rid , haga C lic k con
el botn 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 ttu lo para el c o n tro l

Una vez que recuper los campos en el D bgrid, haga C lic k con el botn derecho
en ste y elija E D IC I N , luego, lleve el puntero a la lnea que divid e cada
campo y asgnele el ancho que desea.

CO LUM NH EADERS
Para in d ic a r si desea visu a liza r los encabezados de cada campo.

DATASOURCE
Para in d ica r el nom bre del c o n tro l D ata que contiene la tabla donde se
encuentran los registros que se desea visualizar.

ENABLED
Para in d ic a r si el c o n tro l debe estar activado.

HEADFO NT
Para seleccionar el tip o , tamao y e s tilo de letra para el encabezado de cada
cam po.

HEADLINES
P erm ite in d ic a r el nm ero de lneas que desea tener com o encabezado de
cada campo.

ROW DIVIDERSTYLE
Perm ite in d ica r el e stilo de la lnea que d iv id e cada registro

VISIBLE

ru po

Siga los pasos anteriores hasta elegir E D IC I N , luego haga c lic k en el ttulo del
campo a quitar, botn cjerecho y e lija D E L E T E .

MODIFICAR EL TITULO (ENCABEZADO)A LOS CAMPOS.


Para ello seleccione la propiedad PERSONALIDADO del D B g rid y active la
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
propiedad C A P T IO N asgnele el ttulo que desea. Adems puede asignarle un
form ato a cada campo.
En la hoja D IS E O puede activar la propiedad L O C K E D de las columnas que
desea para que no se pueda m o d ifica r su contenido, adems puede alinear el
contenido del 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
el valor TRUE. La propiedad A L L O W U P D A T E que permite modificar o no los
datos debe tener tambin el valor verdadero.

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.

374

QUITAR UN CAMPO DEL DBGRID

Para ello asigne a su propiedad A L L O W U P D A T E el valor FALSE.


E

d it o r ia l

M eg a b y te *

r u po

d it o r ia l

Megabyte

375

iS >

VISUAL BASIC como debe ser.. .


IN S T R U C C IO N E S S Q L

SQL significa Structured Query Language, es decir, Lenguaje Estructurado de


Consulta. Es un lenguaje orientado a Base de Datos que permite administrar y
manipular sus componentes (tablas, registros, etc.) de una manera fcil y rpida.
INSTRUCCIN SELECT
Selecciona los registros con los que deseamos trabajar o ver en un momento
determinado. Tambin los ordenarlos, une tablas, etc.
Esta instruccin se debe asignar a la propiedad R EC O R D SO U R C E del control
D ATA cuando la utilizamos en un formulario.

CAPTULO IX: Manejo de Base de Datos

'< 5

^ II IP

SELECCIONAR SLO ALGUNOS REGISTROS.


Con la instruccin WHERE del SELECT, se pueden seleccionar los registros con los
cuales deseamos trabajar o visualizar.
Su sintaxis es:
SE L E C T * F R O M N om bre_deJa_Tabla W H ERE Condicin
Ejemplo:
Seleccionar los que viven en el distrito La Victoria:
SF1ECT* FROMAMKOSWHEREDISTRITO=LA VICTORIA
Seleccionar las mujeres que pesan ms de 60 kilos:

SELECT*FROMAMIGOSWHERESEXO-F ANDPESO>60
B E T W E E N : Se puede utilizar junto con W HERE para seleccionar registros que
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.
Si desea seleccionar slo algunos campos debe escribirlos separados por una coma
(,). Ejemplo:
La siguiente instruccin selecciona todos los campos y todos los registros de la
tabla amigos: SE L E C T * F R O M A M IG O S
La siguiente instruccin selecciona slo el Nombre y Telfono de todos los regis
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
pondientes al control Data y al Dbgrid, luego en un botn de comandos se debe
escribir por ejemplo:

Datal.RecordSource = "Select nombre,telefono from amigos"


D a ta l .Refresh
CAMPOS CALCU LAD O S
Son campos que no se encuentran en una tabla, pero que se pueden obtener con los
campo que tiene la tabla. Por ejemplo, en la tabla Amigos, el campo EDAD se puede
considerar como campo calculado, porque se puede obtener con la fecha de naci
miento.
La sintaxis para obtener un campo calculado es:

Expresin A s Nombre
Donde E xpresin , es la operacin que se necesita realizar para obtener el campo
calculado y Nombre, es el nombre que le desea asignar al campo calculado. Ejemplo,
la siguiente instruccin muestra el nombre y la edad de todos los registros:
Datal .RecordSource = "Select nombre, year(now)-year(fecnac) as edad from amigos"
Datal.Refresh
M U Y IMPORTANTE
Cuando desee visualizar slo algunos campos o los campos calculados en el DBgrid,
no debe haber recuperado los campos. (Botn Derecho, Recuperar Campos). Si ha
recuperado los campos, haga click con el botn derecho del Mouse en cualquier
parte del DBgrid y elija B o rra r Campos.

IN : Se puede utilizar junto con W HERE para seleccionar registros que tienen un
campo cuyo valor es uno de los indicados.

WHERENOmjMIPOIN(VAWRl,VAWR2,VAWR3r VAWRii)
Ejemplo: Seleccionar las personas nacieron en el mes de Febrero, Abril, Agosto o
Diciembre.

SELECT*FR0MAMIG0SWHEREM0N1H(FECNAC)1N(24,8,12)
ORDENAR LOS REGISTROS.
Con la instruccin ORDER B Y del SELECT, se pueden ordenar los registros de una
tabla. Su sintaxis es:
SELECT * FROM Nombre_deJa_Tabia ORDER BY Nombre_del_Campo
Se puede utilizar el nmero del campo en lugar del nombre.
Si se quiere ordenar por varios campos, se deben separar por una coma sin importar
el tipo de cada campo.
Si se desea ordenar en forma descendente escriba la palabra DESC, despus del
nombre del campo. La palabra ASC, ordena en forma ascendente, pero es opcional
utilizarla. Ejemplos:
Para ordenar los registros por el distrito:

SELECT*FROMAMlGOSORDERBYDlSTRnD
Para ordenar por el campo sexo en forma descendente y por el nombre en forma
ascendente:

SELECT* FROMAM1GOS ORDERBYSEXO DESC,NOMBRE


SELECCIONAR REGISTROS Y ORDENARLOS.
Utilizando las instrucciones W HERE y ORDER B Y dentro de una instrucciones
SELECT, podemos seleccionar y ordenar registros.
Su sintaxis es:

SELECr*FROMNon_TablaWHEREConckinORDERBYNoinb CaiiX)

Ejemplo:
para seleccionar los que tiene sexo masculino y ordenarlos por su nombre:

SELECT* FROM AMIGOS WHERESEXO=' M


ORDER B YNOMBRH

ru po

d it o r ia l

Megabyte

377

s ,

'% VISUAL BASIC como debe se r...

CAPTULO IX: Manejo de Base de Datos

TOP
Es una palabra que se puede e s c rib ir despus de S E L E C T que perm ite
m ostrar los N prim eros registros ordenados.
Ejemplos:
L a siguiente in stru cci n muestra las 3 prim eras personas ms delgadas (de
m enor peso).

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

Si se desea las tres prim eras personas ms gordas, slo debe realizar la
ordenacin en fo rm a descendente.

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

NOTA:
Las siguientes personas que tiene el mismo peso de la tercera tambin se visualizan.
Despus del valor puede u tiliza r la palabra PERCENT para m ostrar un porcentaje
determinado de registros.

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?

Ias instrucciones S Q L vistasanteriormente sepueden utilizaro practicarlasen un formulario


con el control D A T A o en la ventana de administracin visual de datos (VISDATA).
1. EN UN F O R M U LA R IO CON E L C O N TR O L DATA.

Cuando quiera practicar o utilizar las instrucciones S Q L en un formulario, debe


asignar toda la instruccin 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).
I
or ejemplo, para visualizar todas las personas que viven en el distrito La Victoria y
ordenadas por su nombre, se escribe:
I )cital.ReconEoutce-Select *fivmcunigoswheivdisnito = La Victoriaorderbynombre
Datal.Refresh

A P L IC A C I N D E SA R R O L A D A N 54
I.a siguiente aplicacin permite seleccionar registros, ordenarlos y seleccionar cam
pos a visualizar utilizando instrucciones S Q L dentro de un formulario con el control
DATA.
i . I N S T R U C C I O N E S

L a siguiente in stru cci n muestra el 10% de las personas ms delgadas (de


m en or peso).

SQL

E N F O R M U L A R IO S

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

T T
60;

W IR A C O C M A 3 1 B

L A VIC TO R IA

TELEFO N O I
20 20 20
23P689

1 8 /0 7 /1 9 8 9 ;M

D A N IE L LA R C N

5 /1 Q /1 % 6 m

80 i

2 0 /1 2 /1 9 9 0 : F

50:
JSi

L ILIA N A ALA R C O N

M A R IA IZ AG A

C H I C LAVO

227131

M A N U E L C AR BA JAL

SA I A V I H R Y a t ) /
L L D O R A D O 46 6

C H IC LAY O
J .L 0 .

209870

T l f lb R A M IR E Z

23G976

pesg

8 / 0 6 / 1 3 6 0 !M
i

0 7 /1 / I 3 / 1

, S E L E C C IO N A R .
La V icto ria )

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

M en ores

H om bres

M m etes

O ctu b re

P e s o e n tre 5 0 y 73

S erie T elt 22 | :

V IS U A L IZ A R S O L U :
N om bre y A o d e N a cim iento

D IS T IN C T
Se puede u tiliz a r despus de S E L E C T y perm ite que no se visualicen registros
que estn duplicados en uno o ms cam pos determ inados.

N om bre . F e ch a de N acim ie nto y E d ad

O R D E N A R PO R:
N om bn-

F fr c li*

P o so

Pete

V IS U A L IZ A R

L a siguiente instruccin muestra la relacin de distritos sin duplicacin, donde


v iv e n las personas. Si dos o ms personas viv e n en un m ism o d is trito , el
nom bre de d ich o d is trito slo se v is u a liz a una vez.

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

iL ii

IO D O S

Sexo y P so

jT

DESARROLLO:

Dibuje los controles como se muestra en la aplicacin a desarrollar y asgnele las


propiedades correspondientes al control DBgrid y al Data.
Las instrucciones de cada botn de comandos en el orden que estn dibujados son:

D I S T IN C T R O W
Se puede u tiliz a r despus de S E L E C T y perm ite que no se visualicen registros
que estn duplicados en todos sus cam pos. Se u tiliz a cuando se trabaja con
dos o ms tablas.

Prvate Sub Com m andl_Click()


Datal.RecordSouice- SELECT*FROMAMIGOSWHEREDISIRITO= LA VICTORIA'
Datal.Refresh
End Sub

NOTA
Existen otras instrucciones SQ L, las cuales se explican ms adelante.

Prvate Sub Command2_Click()


Datal.RecordSowte = SELECT*FROMAMIGOSWHEREYEAR(NOW)- YEAR(FECNAC)<17"
D atal .Refresh
End Sub

378

ru po

d it o r ia l

Megabyte^

ru po

d it o r ia l

Megabyte

379

CAPITULO IX: Manejo de Base de Datos

VISUAL BASIC como debe ser.

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
(V IS D A T A ) .

PtwateSiConmmd3_Clkk()
DataLRecordSource= "SELECT*FROMAMGOSWHERESEXO=M
DataLRefresh
EndSub
Prh>ateSubComnand4_QicH)
DataLRecordSource = "SELECT*FROMAMIGOSWHERESEXO=F '
Datal.Refresh
E/idSub
PrivateSubCommand5_Click()
Datal.RecordSowce= "SELECT*FROM.AMIGOSWHEREMONIH(FECNAC)=10"
DataLRefresh
EidSub
PrhateSub Convtiand6_Qick()
DataLRecordSource = 'SELECT*FROMAMIGOSWHEREPESOBETWEEN50AND 73
DataLRefresh
EtdSub
PrivateSubConvnand7_Qick()
Datal.RecoidSowve= SELECT*FROMAMLGOSWHERETELEFONOUKE22*
DataLRefresh
EndSub
PrivateSubConvmjOlickO
DataLRecordSource- SELECrNOMBRE,YE\R(FECNAC)AS[AODENACIMIENTOIFROMAMIGOS
DataLRefresh
EndSub
PrivateSi Comnand9jOltk()
Datal.RecordSowce= "SELECTNOMBRE,FECNAC,YEAR(NOW)-YEAR(FECNAC)ASEDADFROMAMIGOS
Datai.Refresh
EidSub
PrivateSub ConviiandlO_Click()
Datal.RecordSowve- SELECT* FROMAMIGOSORDERBYNOMBRE
DataLRefresh
BidSi
PmateSi Command!l_Gick()
DataLRecordSource - SELECT* FROMAMIGOSORDERBYFECNAC"
DataLRefresh
EndSub
PrivateSub Commandl2_Click()
DataLRecordSource- SELECT* FROMAMIGOSORDERBYPESODESC
DataLRefresh
EdSi
PriwtteSi Convnandl3_Click()
DataLRecordSource= SELECT* FROMAMIGOSORDERBYSEXO,PESO
DataLRefresh
EjidSub
PrivateSubConmiandl4_CUck()
DataLRecordSoiuve=SELECT* FROMAMIGOS
DataLRefresh
FjxlSub

|||| || ^

380

ru po

d it o r ia l

Megabyte

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
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
tru c c io n e s S Q L .
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 l f i l B al B l l

A yu da

eHl -

($} [fff* P roperties


+ E 3 AMIGOS

Listo

U suario: admin

En esta ventana puede e s c rib ir las instrucciones S Q L (a p a rtir de S E LE C T ).


Para ver los resultados haga c lic k en el b otn E J E C U T A R . D e esta mane
ra se crean consultas (Q ue ry), las cuales las puede grabar haciendo c lic k
en el botn G U A R D A R y u tiliz a rla en cu a lq u ie r fo rm u la rio asignndole su
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
con c u alqu ier tabla.
Ejem plo, en la fig u ra siguiente se ha creado una consulta que consiste en la
ordenacin de los registros p o r el Peso y ha sido grabada con el nom bre
IN F O R M E .
V isD ata:C :\A rch ivos de pio giam aV D evS ludio\V B \A G E N D A .m db
Archivo

Utilidad

O F & I

S3
* fft?'
it; m
:+! @

Ventana

S H O ffil

I.P.|X |

Ayuda

&\

i i

_ li l i x

.=JJ3J.2Sl
Properties
a m ig o s

INFORME

Ejecutar
SELECT

go rrar

|;

guardar

FROM AMIGOS ORDER 8Y PESO

_J

Listo

Usuario; adirar,

Pruebe que esta consulta creada se puede u tiliz a r com o c u alqu ier tabla
haciendo un program a de listado. Para e llo , d ib u je en un fo rm u la rio un con
trol D b g rid y un co ntrol Data y asgneles las propiedades correspondientes.

Grupo Editorial Megabyte

381

m z

>r f i K -

VISUAL BASIC como debe s e r.. .

CAPTULO IX: Manejo de Base de Datos

D entro de la o pcin U T I L I D A D , esta ventana tiene las opciones:


1.

LISTADOS ORDENADOS YPOR CONDICION (FILTRADOS)

G enerador de C onsultas: Que consisten en un asistente para crear las


consultas con instrucciones SQ L.
[E l
r

131 F
g r e g a r a l c r it e r i o
T a b la s :

L is ta d p o s ib le s v a lo r e s

Q . p o r c r it e r i o

Consiste en crear program as que perm itan lis ta r los registros en fo rm a orde
nada y por una condicin; es decir, mostrar slo un grupo de registros, aquellos
que tienen una determinada caracterstica, por ejem plo: M ostrar slo los que
viven en Lambayeque, los que nacieron en un ao determinado, etc.

A g ru p a d o p o r :

C a m p o s a m o s tr a r :

r
|

O r d e n a d o p o r'

Ase

f~ "

Pese

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

A P L IC A C I N D E SA R R O L L A D A N 55

G u a rd a r

La siguiente a plicacin perm ite que el usuario escriba una c o n d ic i n y al


hacer c lic k en el botn O K , se deben v is u a liz a r los registros que cum plen
dicha co nd ici n, adems se deben ordenar de acuerdo al botn de com an
dos donde se haga C lic k .

" P o r c e n t a j e s u p e r io r

P r im e r o s N v a lo r e s :

B o rra r

D iseador de F orm ularios: Que consiste en un asistente para crear fo r


m ularios que adm inistren las tablas y registros.

C O N D IC IO N > ' |f

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 ) :

I----------------------------------------------------------------3
|
S e l e c c i o n e u n a l a b l a o c o n s u l t a d e 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
C a m p o s i n c l u id o s :

C a m p o s d i s p o n ib le s :

1 TO DO S 1

RELACION DE AMIGOS
HOMBRE
IDIRECCION
DISTRITO
CARLOS LA MADRID LOS INCAS N* 1020
LA VICTORIA
CARLOS MORALES
AREQUIPA N* 364
CHICLAYO
DANIEL INFANTE
!AV. LOS LAURES 234 CHICLAYO
DORIS PERALES
Av. BALTA 345
CHICLAYO
JORGE RIOS
LA LIBERTAD 123
CHICLAYO
JUAN JOSE
WIRACOCHA 335
LA VICTORIA
LILIANA CAMPOS
MARIA IZAGA 564
CHICLAYO
LUIS BALAREZO
ITACNA 765
LAMBAYEQUE

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

R e c o rd S o u rc e :

OK

1 1

S A L IR

TELEFONO
202020
273858
203347
232224
237143
205048
237890
287678

FECNAC 20/10/1970
18/07/1969
16/12/1970
01/05/1970
18/09/1976
01/05/1968
10/10/1972
05/03/1958 T

_. ......_l T
O R D E N A D O POR:
N o m b re |
D ire c c i n

D istrito

D istrito y N o m b re

T e l fo n o

F e c h a d e N ac. |

G e n e r a r e l fo rm u la rio

3.

S ustitucin G lo ba l: Que perm ite reem plazar el contenido de un campo


por un nuevo contenido.
E S u s t it u c i n g lo b a l

M " 11111 1

D IR E C C IO N
D IS T R IT O
FECNAC
NOM BRE
PESO
SEXO
TELEFO N O

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 botn derecho en el control
/ 'ibgrid, mientras lo est diseando y elegir la opcin editar.

C ancelar

382

IJd. debe ingresar las condiciones en fo rm a correcta. Por ejem plo, para
mostrar:
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 telfono es 20: T E L E F O N O L IK E "20*"
Los que nacieron en 1970: YE A R (F E C N A C ) - 1970
I .os que su nombre em pieza con la letra C: N O M B R E L IK E "C*"
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 =
"IA V IC TO R IA " A N D M O N T H (F E C N A C ) = 4
M ostrar los que tienen sexo m asculino: SE X O = "M"

ru po

d it o r ia l

Megabyte-

r u po

d it o r ia l

Megabyte

383

CAPTULO IX: Manejo de Base de Datos

| S 1 | ^ VISUAL BASIC como debe se r.. .


INSTRUCCIONES DE LOS CONTROLES:

Instrucciones de botn DISTRITO.

M UY IMPORTANTE
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.
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
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 .
S E L E C T * F R O M A M IG O S W H E R E

Instrucciones del botn OK.

P riv a te S u b C o m m a n d 6 _ C lic k ()
I f T rim (T extl) - "" Then
Datal. RecordSource= SELECT * FROM AMIGOS ORDER BY DISTRITO
E lse
Datal.ReconlSoiwe - ' SELECT*FROMAMIGOS WHERE' + Textl + ' ORDERBYDISTRI10 '
E nd I f
D a ta l .R efresh
E nd Sub

Private Sub Commandl_Click()


On Error GoTo MIRA
Datal.ReconlSource-SELECT*FROMAMlGOSWHERE +Textl
D a ta l.Refresh
If D a ta l.Recordset.RecordCount = 0 Then
MsgBox No existen registros con la condicin ingresada ,16, Lo siento
End If
Exit Sub
MIRA:
MsgBox LACONDICIONINGRESADAESINCORRECIA,64, VERIFIQUE"
Textl .SetFocus
End Sub

P riv a te Su b C o m m a n d ? _ C lic k ()
I f T rim (T extl) =
Then
Datal.RecordSource- "SELECT * FROM AMIGOS ORDER BY TELEFONO
E lse
Datal.ReconISowve= "SELECT*FROMAMIGOSWHERE +Textl+ ORDERBYTELEFONO
End I f
D a ta l.R e fr e s h
E nd Sub

Instrucciones de botn TODOS.

Instrucciones de botn FECHA DE NACIMIENTO.

P riv a te S u b C o m m a n d 2 _ C lic k ()
T e x tl =
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
D a ta l.R e fr e s h
E n d Sub

Instrucciones de botn NOM BRE.


P r iv a te S u b C o m m a n d 4 _ C lic k ()
I f T rim (T e x tl) =
Then
Datal.RecordSource = SELECT* FROM AMIGOS ORDER BY NOMBRE"
E lse
Datal.RecordSource^ "SELECT*FROMAM1GOSWHERE +Textl+ "ORDERBYNOMBRE"
End If
D a ta ! .R e fre sh
E n d Sub

Instrucciones de botn DIRECCION.


P r iv a te S u b C o m m a n d 5 _ C lic k ()
I fT r im ( T e x tl) =
T hen

Datal.RecordSource = SELECT * FROM AMIGOS ORDER BY DIRECCION
E lse
Datal RecoidSource= "SELECT*FROMAMIGOS WHERE +Textl+ ORDERBYDIRECCION"
End If
D a ta l .R efresh
E n d Sub

384

ru po

d it o r ia l

Megabyte

Instrucciones de botn TELEFONO.

P rv a te Su b C o m m a n d 8 _ C lic k ()
I fT r m ( T e x tl) =
Then
Datal.RecordSource = SELECT * FROM AMIGOS ORDER BY FECNAC
E lse
Datal.RecordSource^ SELECT*FROMAMIGOSWHERE+Textl + ORDERBYFECNAC
End I f
D a ta l.R efresh
E n d Su b

Instrucciones de botn DISTRITO Y NOMBRE.


P rv a te S u b C o m m a n d 9 _ C lic k ()
IfT r im (T e x tl) =
Then
Datal.ReconlSowre-SELECT*FROMAMIGOSORDERBYDISTRITO,NOMBRE"
E lse
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
+ T extl + O R D E R B Y D IS T R IT O ,N O M B R E
End I f
D a ta l.R efresh
E nd Sub

ru po

d it o r ia l

Megabyte

385

CAPTULO IX: Manejo de Base de Datos

H> VISUAL BASIC como debe ser..


V A R IA B L E S T IP O R E C O R D S E T

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


encuentra en la o pcin 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


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 .
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
registros de la tab la q u e se tiene activa d a .
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
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
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 slo tra b a
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
a la cual le hemos asignado Datal.Recordset, entonces si queremos ir al
siguiente registros slo bastar con e sc rib ir R.MoveNext. En lug ar de es
c r ib ir Datal.Recordset.FindFirst C, slo se escribira 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:

R.Fields(Nombre)R.Fields![nombre] R.Fields(Nmero)

( R e f e r e n c i a s d is p o n i b le s :
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
; M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
M ic r o s o f t
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

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
C o n n e c t i o n D e s i g n e r v 6 .0
D A O 2 .5 / 3 .5 1 C o m p a tib ility L ib r a r
DAO
D a ta
D a ta
D a ta
D a ta
D a ta
D a ta
D a ta

3 .6 O b j e c t L ib r a r y
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
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
E n v i r o n m e n t I n s t a n c e 1 .0
F o r m a t t i n g O b j e c t L ib r a r y
R e D o r t D e ^ io n e r v 6 .C

,0

A yyda

M ic r o s o ft D A O 3 .5 1 O b je c t L ib ra ry
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

Si no se activa esta c a s illa , se v is u a liza el siguiente mensaje de e rror al


ejecutar la aplicacin:
Microsoft Visual Basic

D onde Nombre, es el nom bre del cam po al cual se desea re fe rir y N m ero
es la posicin del cam po en la estructura de la tabla (el p rim e r cam po tiene
el nm ero cero).

Error de com pilacin:


N o se ha definido el tipo definido por el usuario
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 declaracin del fo rm u la rio o m dulo.

|(General)

Cada cam po se considera com o un objeto F IE L D que contiene propiedades


com o por ejem plo:

HHE2I

Proyeclol - Form! (Cdigo)

|(Declaraciones)

jrJ

PROPIEDAD VALUE

Dim R As Recordset

g SjjJ
2. A sig n a r D a ta l .Recordset a la va riab le en el evento F orm A ctvate usando
la instru cci n SET.

N OTA:
La coleccin FIELDS y la propiedad V A L UE , Visual Basic las asume en forma
predeterminada, esto quiere decir que es opcional escribirlas. Por ejemplo, las
instrucciones anteriores tambin se pueden escribir de la siguiente manera:
Label 1 = R ![telefono]
Label 1 = R(
telefono
)
Label 1 = R(3)

l - IO|x|

M P io yecto 1 - F o fm l (Cdigo)

"3
P r iv a t e Sub F o r m _ A c t iv a t e ()
S e t R = D a t a l.R e c o r d s e t
End Sub

~T
_j

fc j iij

386

ru po

d it o r ia l

D evuelve el contenido del campo, Por ejem plo, para m ostrar el nm ero
te lef nico del registro a ctivo de la tabla A m igo s en L a b e ll se puede escribir:
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
L a b e ll = R .F ields(3). Valu

M e g a b y te ^

ru po

d it o r ia l

Megabyte

387

dVA
,
% VISUAL BASIC corno debe ser..

CAPTULO IX: Manejo de Base de Datos

PROPIEDAD TYPE
D evuelve un nm 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:
TIPO DE C A M P O
OR
(L gico S i/N o)
Boolean
1
Byte
2
(Entero)
Integer
3
(Entero Largo)
Long
4
Currency (M onetario)
5
(Sencillo)
Single
6
(doble)
Double
7
(Fecha)
Date
8
(Texto)
Text
10
Binario
11
Memo
12

PASO N 01: Dibujar los Controles.

PASO N 02: Asignar las propiedades.

ETIQUETA

PROPIEDAD AME
D evuelve el nom bre del campo exactamente com o esta en la estructura de
la tabla.

PROPIEDAD COUNT DEL OBJETO FIELDS


D evuelve el nm ero de campos que tiene la tabla.

A P L IC A C I N DESARROLLADA N 56
M o d ific a r el program a anterior de tal manera que el usuario pueda fo rm a r la
c o n d ici n que desea que cumplan los registros para poder visualizarse.
Para desarrollar ste programa s e deben m ostrar en un L is tB o x los nom
bres de los campos y en otro los operadores para que el usuario pueda
seleccionarlos y luego en una cajade textos ingresar el valor. A s :
l l * l

Labell
Label2.
Label3
Label4

CAPTION
Campo
Operador
Valor
En Blanco

TEXTO
Textl

TEX T
En Blanco

COM ANDO
Command 1
Command2
Command3

C A P T IO N
Ok
Todos
& S alir

ENABLED
False
True
True

CO NTRO LDATA
D ATABASEN AM E RECORDSOURCE V IS IB LE
Agenda
Amigos
False

CONTRO L
D atai

C O N T R O L D B G R ID
NOM BRE
L U IS B A L A R E Z O
CAR LO S M O RALES
-------- J O R G E R I O S
JO SE C A S TA E D A
-------- T I T n R A M I R F 7
M A N U E L C A R B A JA L

CONTRO L
Dbgri 1

P O N P T if lN : S E X O .. M -------------------------- ---------------------------------------------------------[ iR T R IT O

1D I R E C C I O N
P U M A C A H U A 122
A R E Q U IP A 256
L A L I B E R T A D 123
W R C O C H A 3 35
1f i n n R A n n 4 Fr
S A L A V E R R Y 345

CHI C LA V O
CHI C L A V O
.1 i n

R E G I S T R O S MOSTRADOS

273858
237143
205048
? ^ R S 7 S
205897

>

18/07/69
1 8/09/76
5/01/68
7 /1 1 / 7 fl
18/06/60

M
M
M
M
M

60
70
65
F7
66

S A L IR

DATASOURCE
Datai

PASO N 03: Escribir las instrucciones de los controles.


Primero debe activar la casilla de M icrosoft D AO 3.51 Object Library luego definir
la variable R de tipo Recordset.
J Proyectol - Formi (Cdigo)
EJapa
I (General)

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

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
G

r u po

d it o r ia l

Megabyte

TJ

f(D eclaraciones)

Recordset

a i

389

|1 VISUAL BASIC como debe ser.. .

CAPTULO IX: Manejo de Base de Datos

Instrucciones del Evento Forni Actvate.

Instrucciones del Botn OK.

Estas instrucciones m uestran en L is t l los nom bres de los campos y en L is t2


los operadores lgicos, adems asigna a la variable R el D atal.R eco rdse t.

listas instrucciones perm ite vis u a liz a r los registros que cum plen la c o n d i
cin que el usuario a form ado.

D im N, X A s In teg er
S e t R = D a ta l.R e c o r d s e t
N = R .F ield s.C o u n t
R em M u estra los n o m b re de los cam pos en L is tl
F o r X = 1 To N
L is tl .A d d lte m (R (X ).N a m e)
N e x tX
R em M u estra lo s o p era d o res l g ico s en L is tl
L ist2 .A d d ltem =
L ist2 .A d d Item >
L is tl.A d d lte m <
L is tl.A d d lte m
L is tl.A d d lte m < =
L istl.A d d lte m < >
L is tl.A d d lte m L ike
T extl =
E nd Sub

Iriva te S u b C o m m a n d l_ C lic k ()
D im T IP O A i Byte
D im C A s String
On E rro r GoTo M IRA
TIP O - R (L istl.L istIn d e x).T yp e
S elect C ase TIPO
C ase 1
C = L is tl + S p a c e (l) + L is tl + S p a c e (l) + T extl
C ase 2 To 7
C = L is tl + Space( 1) + L is tl + S p ace( 1) + T extl
C ase 8
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 + ' )
C ase 10
C - L is tl+ S p a c e ( l) + L is tl + S p a c e (l) +
+ T extl +
E n d S elect
D B G r id l. C aption = C O N D IC I N : + C
Datal.RecordSource = "SELECT* FROM AMIGOS WHERE" + Space(I )+C
D a ta l.R e fr e s h
N R = D a ta l .R e c o rd se t.R e co rd C o u n t
I f N R = 0 Then
MsgBox NO HAY REGISTROS CON LA CONDICIN, 16, VERIFIQUE"
E lse
L a b el4 = R E G IS T R O S M O S T R A D O S > + Str(N R )
End I f
E xit Sub
M IR A :
M sg B o x N o fo r m la co ndicin c o rre c ta m e n te , 64, V E R IF IQ U E
E n d Su b

Instrucciones de la Cajas de Texto.


Estas instrucciones perm iten a ctiva r el botn O K cuando el usuario ingresa
el valor que fo rm a la co nd ici n. Se debe program ar en el Evento Change.

P r v a te S u b T e x tl_ C h a n g e ()
I f T rim (T e x tl) =
Then
C o m m a n d l .E n a b le d = F a lse
E lse
C o m m a n d l .E n a b le d = True
End I f
E nd Sub

E l b o tn S a lir d eb e ten e r la in stru cc i n E N D .

Instrucciones del Botn TODOS.


Estas instrucciones visualizan todos los registros.

P rv a te S u b C o m m a n d l _ C lic k ()
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 "
D a ta l .R efresh
T extl E nd Sub

390

G ru po E

d it o r ia l

Megabyte ^

NOTA

Para que la condicin se forme correctamente tenga cuidado al escribir los espacios
en blanco y los apostrofes ( ) que se utilizan en el botn de OK (Commandl).
En algunos casos se utiliza la funcin Space(l) para asegurar que se escriba im
espacio en blanco y la funcin Cdate, similar a CvDate para convertir un dato
tipo texto a fecha.
G

ru po

d it o r i\ i.

Megabyte

391

CAPITULO IX: Manejo de Base de Datos

VISUAL BASIC como debe ser.

D IB U J A R L O S C O N T R O L E S

A P L IC A C I N D E SA R R O L L A D A N57

IgE

La siguiente aplicacin permite ingresar datos utilizando diversos controles de en


trada como Option Buttom, Check, etc.
Adems se muestra el ejemplo de cmo utilizar una variable tipo Recordset para
programar de una manera ms fcil y rpida.

TI
fle x il
Label2

Labels
' f* Q ption2 ;
Label4
; "~ OplionS
Frame3
f~~ Option4 I
; r - o p tio n s i
: <" Option6
: <" Option?

d i a m
Apellidos

jfx

N o m b res

f u u JO

<*' M ar'iaria
C ' Varde

Text2

Frame2

M A N I I N IM II
;

ZL

C icto

El

jl

.P5T

_d

LabeIS
( ext3
Label6
1T exl4

Frame4
I
C heck1

jCombol
Combo2

; | t ex(5

(><)
I cha .te lr.tstipoi<i
.( G / 8/1 a a y -g-j

j H | 4 I D a ta i

I roslado
Cancelo

U b40IVOCIOI'5

NOTA

En la segunda ventana slo debe dibujar un Dbgridl.


I il

Base de Datos: Instituto.


Apellidos
Nombres
Tumo
Ciclo
Aula
Situacin
Pensin
Traslado
Trabaja
Fecha
Observaciones

ASIGNAR LAS PROPIEDADES

El control Datal, Dblistl y Dbgrid (pgina N2), deben tener las propiedades que
los ligan con la base de datos.

Tabla: Alumnos.
Text
25
Text
25
Text
1
Integer
Text
3
Text
1
Single
Boolean (Si/No)
Boolean (Si/No)
Date/Time
Memo

CONTROL

Datal
CONTROL

d it o r ia l

Datal

Dbgril

ngm

ru po

Amigos

C O N T R O L D B LIS T
ROW SOURCE
L IS T F IE L D

Apellidos

CONTROL DBGRID
CONTRO L
DATASOURCE

En la ventana de declaraciones del formulario, declare la variable R E G de tipo


Recordset y en Form Actvate asigne Datal.Recordset a la variable REG. Esto
permite reemplazar durante todo el programa Datal.Recordset por REG. Puede
utilizar cualquier otra variable y si desea utilizarla en varios formularios de una
aplicacin, debe declarar la variable en un mdulo.

Agenda

Dblistl

DESARROLLO:

392

C O N T R O LD A T A
DATABASENAM E RECORDSOURCE

Megabyte

Datal

El resto de controles deben tener las propiedades como se muestra en la aplicacin


a desarrollar.
El Combol debe tener en su propiedad LIST las palabras desde Primero hasta
Dcimo. El Combo2 debe tener en su propiedad LIST los nmeros desde 101 hasta
108. El control U p D o w n 1 debe tener:
Propiedad

Buddy Control
Increment
Max
Min
Value
Wrap

y g |r Grupo Editorial Megabyte

Valor

Text4
1
160
1
50
True

393

iS S l^

CAPTULO IX: Manejo de Base de Dalos

VISUAL BASIC como debe ser.. .

Instrucciones del Botn Eliminar

INSTRUCCIONES DE LOS CONTROLES

Crear los procedimientos: Activar, Desactivar y Pregunta.

Private Sub Command3_Click()


Dim RESP As Byte

Sub Activar()
Frame 1. Enabled = False
D B Listl .Enabled True
Command .Enabled = True
Com m and!.Enabled = True
Commands.Enabled = True
Command4.Enabled = False
Command5. Enabled = False
End Sub

KESP=MsgBax(ESlASEGURODEELIMINARESrEREGISrRO}36,"CUIDADO)

Sub Desactivar()
Frame 1.Enabled = True
DBListl.Enabled = False
Commandl. Enabled False
Command2. Enabled = False
Commands .Enabled = False
Command4. Enabled = True
Command5.Enabled = True
End Sub

Sub Pregunta()
Rem Pregunta si no hay registros
I f REG.RecordCount = 0 Then
D B Listl.E nabled False
Command2. Enabled = False
Command3. Enabled = False
End I f
E nd Sub

Instrucciones del Botn Grabar


Private Sub Command4_Click()
REG(O) = Textl APELLIDOS
REG( 1) = Text2 NOM BRES
Rem TURNO
IfO p tio n l Then REG(2) - M
I f Opt ion2 Then REG(2) = T"
I f Option3 Then REG(2) = N
REG(3) - Combo 1.Listlndex + 1 CICLO
REG(4) = Combo2. Text AULA
Rem SITUACION
lfO ption4 Then REG(5) = "R " REGULAR
I f OptionS Then REG(5) = M 1/2 BECHA
I f Option Then REG(S) = B " BECA
I f Option7 Then REG(S) = O " OTRO
REG(6) = Val(Text3)
PENSION
I f Check 1 Then REG(7) = True Else REG(7) = False
IfC heck2 Then REG(8) = True Else REG(8) = False
REG(9) = CVDate(Text4)
FECHA D E INGRESO
Rem SI NOMBRE OBSERVACIONES SE GRABA UN ESPACIO E N BLANCO
I f Text5 =
Then
REG(IO) =
Else
REG(IO) = TextS
End I f
REG Update
D BListl .ListField = APELLIDOS"
Activar
End Sub

Instrucciones del Form Activate


Private Sub Form_Activate()
Set REG = D atal.Recordset
Textl =
Text2 =
Text3 = 160"
Text4 - Date
Text5 =
Combo 1.Listlndex = 0
Combo2.ListIndex = 0
Option 1. Value = True
Option4. Value - True
Check 1.Value = False
Check2. Value = False
U pDownl. Visible - False
Frame 1.Enabled = False
Command4. Enabled = False
Com m ands.Enabled = False
Pregunta
End Sub

Instrucciones del Botn Nuevo


Private Sub Com m and!_Click()
REG AddNew
Form_Activate
Desactivar
Textl.SetFocus
E nd Sub

394

r u po

I f RESP = 6 Then
REG. Delete
REGM oveFirst
Form_Activate
D BListl.ListField = APELLID O S
End I f
Pregunta
End Sub

Instrucciones del Botn Modificar

Instrucciones del Botn Cancelar

Private Sub Command!_Click()


REG Edit
Desactivar
Textl.SetFocus
End Sub

Private Sub Command5_Click()


REG CancelUpdate
D atal.Refresh Primer Registro
D BListl jC lick
Activar
End Sub

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

395

9 3 ^

CAPTULO IX: Manejo de Base de Datos

VISUAL BASIC como debe s e r..

Instrucciones del Control Dblistl


Private Sub DBListl_Click()
Dim C As String
C = APELLIDOS =
+ DBListl +
D a ta l.Recordset.FindFirst C
Textl = REG(O) APELLIDOS
Text2 = REG( 1) NOMBRES
Rem TURNO
IfREG(2) = M Then Optionl = True
IfREG(2) = T" Then Option2 = True
IfREG(2) = N Then Option3 = True
Combol.Listlndex = REG(3) -1 CICLO
Combo2.Text = REG(4) AULA
Rem SITUACION
IfREG(5) = R Then Option4 = True REGULAR
IfREG(5) = M Then Option5 = True 1/2 BECA
IfREG(5) = B " Then Option - True BECA
IfREG(5) = O" Then Option7 = True OTRO
Text3 = REG(6) PENSION
lfREG (7) Then Checkl = 1 Else Checkl ~ 0
IfREG(8) Then Check2 = 1 Else Check2 = 0
Text4 = REG(9) FECHA DE INGRESO
TextS = REG(IO)
End Sub

MODIFICAR VARIOS REGISTROS A LA VEZ


Se puede hacer un program a para m o d ific a r o a d icio n a r varios registros al
m ism o tie m p o usando el c o n tro l D B g rid y los m todos de transacciones:
BeginTrans, C om m itT rans y R ollbackT rans.

BEGINTRANS
C om ienza una nueva transaccin.

CO M M ITTR ANS
F in a liz a la transaccin actual y guarda los cam bios.

RO LLBA CK TRA NS
F in a liz a la transaccin actual e ignora las m od ifica cio n e s realizadas. Res
taura las bases de datos al estado en que estaban cuando com enz la tran
saccin actual.

A P L IC A C IO N D E S A R R O L L A D A N 58
s. MODIFICACION DE REGISTROS
NOMBRE
C A R LO S M O R A LE S
D A N IE L A LA R C O N
L IL IA N A A L A R C O N
M A N U E L C A R B A JA L
M A R IA C A S T A E D A
T IT O R A M IR E Z

Prvate Sub Option_Click()


Text3 = 0
UpDownl.Visible = False
End Sub

Prvate Sub Option5_Click()


Text3 = 80
UpDownl.Visible = False
End Sub

Prvate Sub Option7_Click()


Text3 = 50
UpDownl.Visible = True
End Sub

Instrucciones del Control UpDown2 (Fechla de Inscripcin)


Prvate Sub UpDown2_DownClick()
Text4 = CVDate(Text4) - 1
End Sub

Prvate Sub UpDown2_UpClick()


Text4 = CVDate(Text4) + 1
End Sub

Instrucciones del Botn Salir


Prvate Sub Command_Click()
I f MsgBox( ESTA SEGURO DE SALIR , 36, CUIDADO ") = 6 Then End
End Sub

D IR E C C IO N
A R E Q U IP A 36 5
W IR A C O C H A 3 15
M A R IA IZ A G A
S A L A V E R R Y 9 87
W IR A C O C H A 3 2 5
E L D O R A D O 45G

D IS T R IT O
CH IC LA Y O
L A V IC T O R IA
C H IC LAY O
C H IC LAY O
L A V IC T O R IA
J.L.O .

T E LE F O N O
202020
232G 89
227191
209875
205048
236975

FECNAC
1 8 /0 7 /1 9 6 9
1 5 /1 0 /1 9 6 6
2 0 /1 2 /1 9 9 0
1 8 /0 6 /1 9 6 0
2 3 /1 2 /1 9 9 8
0 7 /1 1 /1 9 7 0

1 .......
i m pezaf tas M o d ific a c io n e s ~ ij

Instrucciones de los Option Button (Muestran la Pension)


Private Sub Option4_Click()
Text3 = 160
UpDownl. Visible = False
End Sub

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

M
1 D ib u je los controles y asgneles sus propiedades respectivas.
2 E scriba las siguientes instrucciones:

Instrucciones del Form^Load

Instrucciones Botn Em pezar

Prvate Sub Form_Load()


Command! .Enabled = True
Command2.Enabled = False
Command3. Enabled = False
DBGridl .AllowUpdate = False
DBG ridl .AllowAddNew = False
Datal.Refresh
End Sub

Private Sub Commandl_Click()


BeginTrans
DBG ridl .AllowUpdate = True
DBG ridl .AllowAddNew = True
Commandl .Enabled = False
Command2. Enabled = True
Command3. Enabled = True
End Sub

Instrucciones Botn Grabar

Instrucciones Botn Ignorar

Private Sub Command2_Click()


CommitTrans
Form_Load
End Sub

Private Sub Command3_Click()


Rollback
FormJLoad
End Sub

ru po

d it o r ia l

Megabyte

397

VISUAL BASIC como debe se r.. .

CAPITULO IX: Manejo de Base de Datos

'"-.y

^ H

C u a n d o se elige la opcin elim in a i; se muestra una ventana de advertencia:

MANEJO DE FOTOS

%EM
PLEADO
S

U sando V isu al Basic usted puede grabar fotos en sus tablas. Para e llo , debe
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
O b jeto O L E si la crea con Access.
Para m ostrar la fo to grabada en un reg istro puede u tiliz a r el c o n tro l Im age.
Este co n tro l tiene las propiedades D ataSource y D ataF ield ig u a l que las
cajas de texto para poder conectarse con el cam po que tiene la fo to . Las
fotos a u tiliz a r deben estar escaneadas y almacenas en una carpeta deter
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
E m p le a d o s cuya estructura tiene cuatro campos es:

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

A P L IC A C I N D E SA R R O L L A D A N 59

NO M B R E S

In fo rm a c i n d e lo s E m p lea d os

TE

FOTO

[TERRONES PALACIOS LOURDES


NOMBRE
ALARCON GARCIA LILIANA
CASTAEDA PACHECrg ri i j i .t
MEDINA CHISCUL CE!
PORRO INFANTES OS
RAMIREZ VASQUEZ T
ESTA SEGURO DE ELIMINAR A ESTE EMPLEADO
TERRONES PALACIOS

JJ

O p cio n e s D is p o n ib le s
ADICIONAR I

MODIFIc w i i n
GRABAR

CANCELAR

Seleccionar su Foto

Siojffto 1
C uando hace c lic k en el botn 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
das co m o *.B M P :

L a siguiente a plicacin 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.

-|Pl*l
Info rm a ci n de los Empleados
NOMBRE
IALARCON GARCIA LILIANA
CASTAEDA PACHECO JUAN
MEDINA CHISCUL CESAR
PORRO CHILLI MARCO
RAMIREZ VASQUEZ TITO
TERRONES PALACIOS LOURDES

DIRECCION |SANJ0SE 6786

MODIFICAR

Jgaj e | HST m l

C O R O N A D O V E N T U R A H E C T O R .b m p
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
L I Z A A R A U J O C A R L O S .b m p
M E D I N A C H I S C U L C E S 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
l^ r PO R R O CHULLI M ARCO
P O R TA LE S G R A N A D O S
d S R A M I R E Z S U A R E Z LILI/
R A M IR E Z V A S Q U E Z T IT

JLl_________________________________1

W ..

-J
A b r ir

A r c h i v o s d e tip o :

TELEFONO |a 21 24

fe * -

EM PLEADO S

.N o m b r e d e a r c h i v o :

O pciones D isponibles
ADICIONAR

jg f
JP f
45%
gg f

FOTO

|ALARC0N GARCIA LILIANA

^ C A S T A E D A P A C H E C O J U A N .b m p
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

ti L k

ELIMINAR

F o t o s D i s p o n ib l e s
I

"3

A b r ir c o m o 3 I0 le c t u r a

DESARROLLO DE LAAPLICACIN
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
para poder c u m p lir con dicha o pcin:

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 .
Labell

Frame2

Info rm a ci n de los Em pleados


PO
[ALARCON GARCIA LILIANA
CASTAEDA PACHECO JUAN
MEDINA CHISCUL CESAR
PORRO INFANTES OSCAR
RAMIREZ VASQUEZ TITO
TERRONES PALACIOS LOURDES
O pciones D isponibles
.ADICIONAR I

MODIFICAR I

NOMBRE

P IRRO INFANTES OSCAR

DIRECCION

Lab eC

tS J T

Label3

( f ex(2

L abel5

LabeM (r^T

456
Ram el
Com m and! !

TELEFONO 666968

Command2 1 Com m and31

Command4

Com mand5
CommandG

ELIk

| n | <|Pa(a1

Command?

T j I

.S in fo te ___ J

r u po

d it o r ia l

Megabyte

399

CAPTULO IX: Manejo de Base de Datos

|1111|> VISUAL BASIC como debe ser...


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 .

Al control Datal asgnele las propiedades Da taBaseName y RecordSource,


al D b c o m b o l las propiedades RowSource, Listfield y en su propiedad Style
asgnele el valor 1 y estire el control para visualizar varios registros. A las
cajas de texto y al control Image 1 asgneles en su propiedad DataSource y
DataField los campos correspondientes. A los botones de comandos, asg
neles en su propiedad Caption el texto c o m o se muestra en la aplicacin a
desarrollar.
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 .
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 .

O p tio n E x p lic it
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 E lim in a r

P rv a te S u b C o m m a n d 3 _ C lic k ()
IfMsgBox( "ESTA SEGURO DE ELIMINARA ESTE EMPLEADO",36, "CUIDADO ")=6 Then
R E G D e le te
D a ta l.R e fre sh
E nd I f
E nd Sub
In s tru c c io n e s d el b o t n G r a b a r

P rv a te S u b C o m m a n d 4 _ C lic k ()
REG. U pdate
D B C o m b o l .L istF ie ld = "N O M B R E "
D E SA C T IV A R
E nd Sub
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


Sub ACTIVARQ

Sub DESACTIVARO

F ra m e 1.E n a b le d = True
C om m and4. Visible = True
C om m and5. Visible = True
C o m m a n d .Visible = True
C om m and7. Visible = True
Im a g e 1.Stretch = True

F ra m e 1.E n a b le d = F alse
C o m m a n d 4 .V isib le = F alse
C o m m a n d s.V isib le = F alse
C o m m a n d .Visible = F alse
C om m a n d 7 .V isib le = F a lse
Im a g e 1.Stretch = True
Im a g e 1 .B o rd erS tyle = 1

End Sub

End Sub

P rv a te S u b C o m m a n d 5 _ C lic k ()
REG. C a n ce l U pdate
D E S A C T IV A R
E nd Sub
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
___________
P rv a te S u b C o m m a n d _ C lic k () ____________
R em C a r cter N A L T + 124

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| * . * "


C o m m o n D ia lo g l. S h o w O p e n
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 )
E nd Sub
In s tru c c io n e s d e l b o t n S in F o to

Instrucciones del Evento Form_Activate

P rv a te S u b C o m m a n d 7 _ C lic k ()
Im a g e 1 .P ictu re = L o a d P ic tu re("")
E nd Sub

P r iv a te S u b F o rm _ A c tiv a te ()
D E S A C T IV A R
D a ta l.V is ib le = F a lse
S e t R E G = D a ta l.R e c o r d s e t
E n d Sub

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

P rv 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
C = "N O M B R E L1KE
+ D BC om bol +
R E G F in d F irst C
I f R E G N o M a tc h Then
F ra m e l .V isible = F alse
E lse
F ram e 1 .V isible = True
End If
E nd Sub

In s tru c c io n e s d e l b o t n A d ic io n a r

P r iv a te S u b C o m m a n d 1 _ C lic k ()
A C T IV A R
R E G A ddN ew
T e x tl .S e t F o cu s
E nd Sub
In s tru c c io n e s d e l b o t n M o d if ic a r

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
REG. E d it
T e x tl. S e t F o cu s
E nd Sub

400

^11I^

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

P rv 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)
D B C om bolJC hange
E nd Sub
G

ru po

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

401

CAPITULO IX: Manejo de Base de Datos

VISUAL BASIC como debe ser.. .

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
DATOS D EL VEN D ED O R

VE N D E D O R E S

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
CODIGO
1004
FE C H A DE V E N T A
D IS T R IT O DE V E N T A

H|< IV EN D E D O R E S

Codigo
FechaVenta
M on to
D is trito V e n ta

T ext
3
Date
C urren cy
T ext
20

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


DistritoVenta es el nom bre del d is trito donde se rea liza la venta.
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
dor, reg istra r las ventas y listarlas en fo rm a general, p o r d is trito o p o r fecha.
Para una m a yo r com odidad, se debe rea liza r en un slo fo rm u la rio usando el
c o n tro l SsTab, com o se m uestra a co ntin ua ci n :

""

I..

| i)

CANCELAR

I h I < [V E N T A S

| H |

VENTAS

por

CODIGO

J U LIO D A V I LA
T E R E S A U B ILLU S
NOEM I M O NTAO
JO R G E C A S TR O

NOMBRE
TE L FO N O

1232426

VER SUS V E N TA S

R E G IS T R A R

001
001
001

402

h!

SAUF!

(*

D IS T R IT O

FEC H A

C O D IG O
001
001
001
0 02
0 02
0 02
0 02
0 02
0 04

h]

< [v e n t a s

| h ) | n |<

ru po

[i n f o r m e

d it o r ia l

[T<|<

[ h]

SA LIR

Megabyte"

L IS T A D O

_____________________________
In g re s e el D istrito

J U L IO D A V IL A
J U L IO D A V IL A
T E R E S A U B IL L U S

T E LE F O N O
232426
232426
232426
362166

T E R E S A U B IL L U S
T E R E S A U B IL L U S
T E R E S A U B IL L U S
T E R E S A U B IL L U S
JO R G E C A S T R O

362166
362166
362166
362166
201665

NOMBRE
J U L IO D A V IL A

V E r |

FEC H Al
0 3 /0 1 /0 0 !
1 0 / 0 2 /0 0
2 2 /0 2 /0 0 !
2 5 /1 2 / 9 9
0 6 / 0 1 /0 0 !
0 2 /0 2 /0 0 !
0 5 /0 2 / 0 0
2 2 /1 0 / 9 9
1 5 /0 2 /0 0

V E N D E D O R E S

TTl | l < | <

V E N T A S

|m |

TO DO S |

M O N T O l D IS T R IT O
50 ETEN
5 0 J.L.O .
600 TUM AN
2 5 0 L A V IC T O R IA
1 0 0 J .L O.
1 0 0 PO M A LC A
5 0 PO M A LC A
1 00 PCI M A LC A
2 0 0 LA V IC T O R IA

---------------

<|
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
5 0 ET E N
0 3 /0 1 /0 0
1 0 /0 2 /0 0
50 J.L.O
2 2 /0 2 /0 0
6 00 TU M AN

| H ]

rT n ra

POR :

R E G IS T R A R

JU

[v e n d e d o r e s

IN FO R M E

U S O D E V A R IA S T A B L A S

DATOS DEL VENDEDO R

VENDEDORES

Mi <

| l< H

En las dos primeras pginas cada tabla se m aneja con su respectivo control
Data, pero en la tercera se encuentran unidas y se u tiliz a un solo control Data.
En esta a plicacin se u tiliz a n 3 controles Data, e l D a ta i m aneja la in fo rm a
cin 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
encuentran unidas a travs de una in s tru c c i n S Q L en una consulta (Q uery)
llam ada IN F O R M E .

:TaP

U S O D E V A R IA S T A B L A S

(y
G R ABAR

11 4 /0 2 /0 2

VENTAS

VENDEDORES
C o d ig o
T ext
3
N om bre
T ext 30
T elefono
T ext 10

|20 1 66 5

TELFO NO

M O N TO

v e n t a s

O R G E CASTRO

NO M BR E

La siguiente a plica ci n muestra un e je m p lo de m anejar dos tablas con un


solo c o n tro l D ata para cada una de ellas y tam bin un solo c o n tro l D ata para
las dos.
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:

J4

CODIG O

Para m anejar dos o ms tablas de una base de datos se puede u tiliz a r un


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
c o n tro l Data. Esto depende del tip o de a p lica ci n que se desea desarrollar.

Il<[ 4 IIN F O R M E

>

h]

S A LIR

Antes de comenzar a desarrollar la aplicacin debe crear la base de datos y las


dos tablas, luego crear una consulta donde se unan las dos tablas anteriores.

ru po

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


Para u n ir dos o ms tablas se u tiliz a la instru cci n S Q L lla m a S E L E C T
e xplicada en la pgina N 343. Su sintaxis para u n ir tablas es:
SELECT * FROM Nomb_Tablal INNER JO IN Nomb_Tabla2 ON Condicin

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

Archivo

Utilidad Ventana Ayuda

iL a jw

_ Ld

me

JDJXJ
H In s tru c c i n SQL

SI f 1 Properties

.+: 1 0 V E N D E D O R E S

E l asterisco ( * ) ind ica que al unirse las tablas deben pasarse todos los cam
pos de ambas tablas.

1 0 V E N TA S

Si Usted, desea in d ic a r slo algunos campos debe e scrib irlo s en lug ar del
asterisco separados p o r una coma.
-J

Por ejem plo:


Para u n ir la tabla Vendedores con la tabla Ventas con todos sus campos se
debe e scrib ir lo siguiente:
Select * From Vendedores InnerJoin Ventas On Vendedores.Codigo=Ventas.Codigo

L is to

U s u a r io : a d m * n

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
autom ticam ente a la siguiente lnea (no pulse a tecla E N T E R ).

Para u n ir la tabla Vendedores con la tabla Ventas pero slo 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 lnea 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 estn unidas las dos anteriores la cual se puede u tiliz a r casi
com o cu a lq u ie r otra tabla, pero donde no puede adicionar, m o d ific a r, etc.,
porque es de slo lectura.
NOTA:
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
correctam ente, co m o se encuentran en la estructura. Por e je m p lo, si
escribe N om bres en lu g a r de N om bre , se m uestra el mensaje:
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

E l b o t n E je c u ta r (Excut), perm ite ejecutar las instrucciones SQ L. Debe


u tiliz a r este botn para p ro ba r la in s tru c c i n escrita.
El botn B o r r a r (C lear), borra la instruccin S Q L de la ventana para e scribir
una nueva.
El botn G u a r d a r (Save), pide el nom bre de la C onsulta a crear donde se
alm acenar el contenido de las dos tablas unidas.
Cuando un c lic k en el botn Guardar se muestra el siguiente mensaje, pidiendo
el nom bre de la consulta a crear:
VisData
Escriba el nombre del QueryDef:

C a n c e la r

A ceptar
Cancelar

2. A l u n ir las tablas puede aplicar todo lo explicado en el tema de instrucciones


S Q L (pgina N 343) com o por e jem plo Where, O rder By, etc.

404

r u po

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

405

VISUAL BASIC como debe ser.. .

CAPITULO IX: Manejo de Base de Datos

<

^rsrn

f H ? IM1 Ih

Despus 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 vs 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
el eje m p lo la consulta se lla m a In fo rm e .

F i a rn e 4
<* O p tio n l

C om m ands

C om m andC

EF
A rc h iv o

U tilid a d

V e n ta n a

l i gol I

EBS5mBH3ZEI

A^

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

lf.

(p

P IN F O R M E _____

E je c u ta r

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
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

| pta1

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
DATABASENAM E RECORDSOURCE C AP TIO N
Tienda
Vendedores
Vendedores
Tienda
Ventas
Ventas
Tienda
Informe
Infome
DECO M BO
CONTROL
ROWSOURCE
L IS T F IE L D S TY LE
DBcombol
D atai
Nombre
1
DBcombo2
Datai
Nombre
1
ETIQ U E TAS
CONTROL
DATASOURCE
DATAFIELD
Label5
Datai
Codigo
Label
Datai
Nombre
Label7
Datai
Telefono
Label 12
Datai
Codigo
Label 13
Datai
Nombre
Label 14
Datai
Telefono

:
L is to

C O N TRO L
Datai
Data2
Data3

U s u a r io : a d m in

D E S A R R O L L O D E L A A P L IC A C I N N 60
PASO N 01: DIBUJAR LOS CONTROLES
!Ti. o
Lot.ol

(DBConiol

L a b e l2
Label J

LaboM

Labol/

Commandl

B=

Im I < l oXTi

Ih I

I m'I I d <<..?

V 1!]

M i i rv.^-)1 il

Command?

jr
Lbl8
Jr .

........
I
Cornmand2

I.bel1 3

L aboli I

Loboli 4

fr'^rr
Label I6

Commands

|t i*

7
L aboll 0

Ij L jl],.

jtE a

406

liiliJ '

jtfl

U iL s J " * ^ '

ru po

d it o r ia l

.*J D ^

Megabyte-^

1-

El resto de Etiquetas y Comandos slo la propiedad Caption como se muestra en


la aplicacin
CAJAS D E T E X T O
CONTROL
DATASOURCE
DATAEIELD
Textl
Data2
Codigo
Text2
Data2
Fechaventa
Text3
Data2
Distritoventa
Text4
Data2
Monto
Text5
En Blanco
En Blanco
D B G R ID
CONTROL
DATASOURCE
DBgridl
Data3
G

r u po

d it o r ia l

Megabyte

407

d S S f e VISUAL BASIC como debe se r...


PASON"(ESCRIBIR LAS INSTRUCCIONES PARALOS CONTROLES.
Instr.. del evento FORM ACTIVATE
Instrucciones del botn SALIR
Prvate Sub Form_Activate()
Frame3. Visible = False
End Sub

Prvate Sub Command7_Chck()


End
End Sub

PA G IN A N 01 - VE N T A S
Instrucciones del botn VER SUS VENTAS
Prvate Sub Commandl_Click()
D BG ridl .Visible = True
DatcHRecoidSource= "SELECT*FROMVENIASWHERECODIGO "&Label5&
Data2.Refresh
If Data2.Recordset.RecordCount = 0 Then
MsgBox "El vendedor no ha realizado ninguna venta",64, "Lo siento"
E n d lf
DBCombol .SetFocus
End Sub

Instrucciones del Control DBcombol (eventos Changey Click)


Prvate Sub DBCombol_Change()
Dim DATOS As String
DATOS = "NOMBRELIKE & DBCombol &
Datal.Recordset.FindFirst DATOS
D BG ridl. Visible = False
If D a ta l .Recordset.NoMatch Then
Frame 1.Visible = False
Else
Framel.Visible = True
E n d lf
End Sub

PA G IN A N 02 - R E G IS T R A R
Instrucciones del Control Dbcombo2 (eventos Change y Click)
Prvate Sub DBCombo2_Change()
Dim DATOS As String
DATOS = "NOMBRE LIKE & DBCombo2 &
Data 1. Recordset. FindFirst DA TOS
If Datal.Recordset.NoM atch Then
Frame2. Visible = False : Command2.EnabIed = False
Else
Frame2. Visible = True : Command2.Enabled = True
E n d lf
End Sub

ru po

Instrucciones del botn GRABAR

Instrucciones del botn CANCELAR

P r v a t e S u b C o m m a n d 3 _ C lic k ( )
D a ta l.R e c o r d s e t. U p d a te
F ra m e 3 .V isib le = F a lse
D B C o m b o 2 . E n a b le d = T rue
C o m m a n d 2 .E n a b le d - T rue
D a ta 3 .R e fre sh
D a t a l .R e fr e s h
D a ta l. R e fre sh
E nd Sub

Private Sub Command4_Click()


Data2.Recordset. CancelUpdate
Frame3. Visible = False
DBCombo2.Enabled = True
Command2. Enabled = True
End Sub

P rivate Sub C om m and5_C lick()


I f O ption 1 Then
Data3.RecordSource= "SELECT*FROMINFORMEWHEREDISTRITOVENTA= "&Text5&
Else
I f IsD ate(Text5) Then
Data3.RecordSource= "SELECT * FROM INFORME WHERE FECHAVENTA=CDATE(
Text5 &'")"
Else
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 "
E n d lf
E n d lf
D ata3. R efresh
DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS
I f D a ta3.R ecordset.R ecordC ount = 0 Then
MsgBox "NO HAY REGISTROS QUE CUMPLEN LA CONDICIN",64, "LO SIENTO"
E nd I f
E n d Sub

Instrucciones del botn TODOS


P rivate Sub C om m and_C lic k ()
D ata3.R ecordSource = "S E L E C T * F R O M IN F O R M E "
D ata3. R efresh
DBGrid2.Caption=Str(Data3.Recordset.RecordCount)+" REGISTROS MOSTRADOS"
E n d Sub

Instrucciones del control OPTION1

Prvate Sub DBCombo2_Click(Area As Integer)


DBCombo2_Change
End Sub
G

Instrucciones del botn REGISTRAR SU VENTA


P rvate Sub C om m and2_C lick()
F ram e3. Visible = True
D B C om bo2. E nabled = F alse
C o m m a n d l.E n a b led = F alse
D ata2.R ecordset.A ddN ew
T e x tl = Label 12 : Texl2 = D ate
Text3. SetF ocus
E n d Sub

P A G IN A N 03 - L IST A D O
Instrucciones del botn VER

Prvate Sub D BCom bol_Click(Area As Integer)


DB Combo lJChange
End Sub

408

CAPTULO IX: Manejo de Base de Datos

Prvate Sub O ptionl_Click()


Labell9="Ingrese el Distrito"
End Sub
d it o r ia l

ru po

d it o r ia l

Megabyte

Instrucciones del control OPTION2

Prvate Sub Option2_Click()


Labell9 - "Ingrese la Fecha"
End Sub

40 9

CAPTULO IX: Manejo de Base de Datos

VISUAL BASIC como debe se r.. .

ERRORES MAS COMUNES

PREGUNTAS DE REPASO N 09

Microsoft Visual Basic


Error '3131' en tiempo de ejecucin :

Ha escrito en forma incorrecta


la instruccin Select. Por ejem
plo, no dej espacio despus
de la palabra WHERE.

Error de sintaxis en la clusula FROM.

1.

E x p liq u e los com ponentes de una base de datos.

2.
3.

Qu es la estructura de una tabla?


Qu propiedades com o m n im o se le deben asignar a una caja de textos
o etiquetas para m ostrar el contenido de un campo?

4.
lerminar

Ayuda

Depurar

I Microsoft Visual Basic

No ha ingresado informacin
en el campo indicado antes de
grabar.
Por cada campo creado se pue
de indicar que puede quedar
vaco o no, a c tiva n d o o
desactivando la siguiente ca
silla del campo:

Error '3315' en tiempo de ejecucin :


El campo 'ALUMNOS.OBSERVACIONES' no puede ser una cadena de
longitud cero.

..i--jf,L -,

Terminar

i K

Depurar

=J

"
Ayuda

Permitir longitud cero

E x p liq u e las p rincip ale s propiedades del c o n tro l Data.

5.

Cul es la d iferen cia entre los controles D B lis t y D B com bo?

6.

Cules son los m todos que perm ite n m anejar registros?

7.

Qu es un cam po calculado?. E x p liq u e cm o se pueden obtener

8.

E x p liq u e todo lo referente a la in s tru c c i n S Q L Select.

9.

Cul es la ventaja de u tiliz a r variables tip o Recordset?

10. E x p liq u e las propiedades del o bjeto F ield.


11. E x p liq u e los m todos BeginTrans, C om m itT ra ns y R ollbackT rans
12. E x p liq u e cm o se puede alm acenar una fo to g ra fa en un campo.
13. E x p liq u e la in s tru cci n In ne r Join.
14. Qu requisitos deben c u m p lir las tablas para que se unan?
15. Cules son los errores ms com unes cuando trabaja con base de datos

Microsoft Visual Basic

y cuales son las posibles causas.

Error '3426' en tiempo de ejecucin :

Le asign al D B list las propie


dades DataSource y Datafield.
En un programa de consulta el
control D B list debe tener slo
las propiedades Rowsource y
Listfield.

Esta accin fue cancelada por el objeto asociado.

Terminar

i Depurar

j]

Ayuda

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


A llo w A d d n e w del c o n tro l D B g rid ?
17. Cules son las propiedades bsicas que se le deben asignar al control
D ata?
18. Cul es la d ife re n c ia entre D B c o m b o y el C om bo?
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.
20. Cul es la d ife re n cia entre los controles D B lis t y L ist?

Microsoft Visual Basic


Error '3020' en tiempo de ejecucin :

No se puede grabar o cancelar


un nuevo registro o las m odifi
caciones realizadas sin antes
usar Addnew (botn adicionar)
o Edit (botn modificar).

Update o CancelUpdate sin AddNew o Edit.

Depurar

410

Es muy importante que usted, se form u le nuevas aplicaciones


o intercambie aplicaciones propuestas entre sus compaeros
de estudio y desarrollarlas con la fin a lid a d de enriquecer
sus conocim ientos

Ayuda

r u po

d it o r ia l

Megabyte'5

ru po

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.

10.000

m :m s

R r# o b d* C o m p ra

U t lid n d S /

F ttc i de Vento (PbJicol

TTSuC

PROGRAMACION

DAO

CAPTULO X:

Programacin DAO

En este ca ptulo se desarrollan entre otras, las siguientes a p lic a d

-es:

%
. MANTENIMIENTO DE REGISTROS OSANDO << D.A.O. >>
Datos del Producto

A
ACEITE
ALGODON
ARROZ

Nombre
Valor de Compra
Utilidad %
Fecha de Vencimiento

-1

|ARROZ
jlOO
j-jo
j 30-09-2001

I.G.V.
Precio de Compra
Utilidad S/.
Precio de Venta (Pblico)

&
d

Opciones Disponibles

Adicionar

grabar
Cancelar

Modificar I

35E 1

. 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

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
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
D IS T R IT O C O N M A Y O R V E N T A
M O N T O T O T A L V E N D ID O
C A N T ID A D T O T A L DE V E N T A S

\LIZADAS

J5
06-01 -2 0 0 0
06-01 -2 0 0 0
1 5 -0 2 -2 0 0 0

002

005
004

001

I k im im

I I I

SEGUN EL M O NTO
S E G U N L A C A N T ID A D

50

100
600

200

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

ru po

d it o r ia l

Megabyte

415 4 g $

m >

VISUAL BASIC como debe ser...

CAPITULO X:

Programacin DAO

P R O G R A M A C I N D A O

MTODOS PARA MANEJAR LAS BASE DE DATOS


L a program acin 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
p rogram acin la in fo rm a c i n se m aneja a travs de determ inados objetos
que tiene V isu al Basic.

OPENDATABASE
A b re una base de datos. Su sintaxis es:
SetVariable_BD=Opendatabase( Nomb_Base_Datos ,Exclusivo,Modo,Origen)

L os objetos de acceso a datos ms u tiliza d o s son:

Variable_BD
D BENGINE
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.
Es el o bjeto de n iv e l ms alto y contiene y co n tro la todos los dems de la
je ra rq u a de objetos de acceso a datos.

WORKSPACE

Es el nom bre de la v a riab le (O b je to ) que va a representar a la Base de


D atos en la aplicacin . Se debe declarar tip o D A T A B A S E a n iv e l de fo r
m u la rio (en la ventana de declaracin del fo rm u la rio ) si slo se va a u tiliz a r
en un fo rm u la rio , o a n iv e l de m d u lo (en la ventana de declaracin del
m d u lo ) si se va a u tiliz a r en varios fo rm u la rio s de una a plicacin .

U n objeto W orkspace representa una sesin de un usuario. L a sesin de un


usuario em pieza cuando ste se conecta a la base de datos y te rm ina cuando
c ierra la base de datos.

N om b_B ase_D atos

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


se abre en fo rm a e x c lu s iv a (para un slo usuario). E l v a lo r False in d ic a que
la base de datos se abre en fo rm a com p artida (para va rios usuarios).

RECO RDSET
Representa todos los registros de una tabla o los que resultan de una consulta
con la in stru cci n S E LE C T .

FIELD
Representa un cam po de una tabla.

FIELDS
Es una co le ccin de objetos F IE L D y representa a todos los campos de una
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 pgina
N 353 (Variables tip o Recordset).

NOTA
C uando inicia una aplicacin, Visual B a sic crea en fo r m a p re d eterm in a
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)).
E stos objetos se deben utilizar cuando n ecesite m a n ip u la r bases de datos
que tengan activada la seguridad o crear un alcance distinto de transaccin.
Todos los objetos Database abiertos en un o bjeto W orkspace com parten un
m ism o alcance de transaccin com n. Es decir, cuando se usa el m todo
B eginT rans en una base de datos, se a p lica a todas las dems bases de
datos abiertas en el o bjeto W orkspace. D e l m ism o m odo, el uso del m todo
C o m m itT ra n s contra una base de datos se a p lica al resto de las bases de
datos abiertas en el o b je to W orkspace.

416

ru po

d it o r ia l

M e g a b y te

Es el nom bre de la base de datos que desea abrir. S i esta en una carpeta
d iferen te a la actual, debe espe cifica r tam bin la ruta.

M odo
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
se abre en m odo slo de lectura, es decir, no se puede m o d ific a r. E l va lo r
False in d ic a que la base de datos se abre en m odo de lectura y escritura, es
d e c ir se puede m odificar.

Origen
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
base de datos, seguido de un punto y com a (;) y los parm etros opcionales.
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
indicarse en p rim e r lugar. Los argumentos opcionales van a continuacin sin
un orden especfico y separados p o r caracteres p unto y coma.

NOTA:
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
e s o p c io n a l.
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
va lo r p re d e te rm in a d o es FALSE.

ru po

E d it o r ia l M e g a b y t e

417

f r

VISUAL BASIC como debe ser.. .

CAPTULO X:

Programacin 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
d uplicarse y que slo adm iten el m todo M o v e N e x t para desplazarse por
los registros.

Set Variable_RS = Variable_DB.OpenRecordset( Nomb_Tabla ,Tipo,Restricciones)

Variable_RS

DbSQLPassThrough

Es la variable que va a representar a los registros de la tabla en la aplicacin.


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
de tip o D A T A B A S E .

Se e vita el procesador de consultas del m o to r de base de datos M ic ro s o ft


Jet. L a consulta especificada en el argum ento orige n de O penRecordset
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 jecucin si o tro usuario m o d ific a los datos


que se estn editando.

Nomb_Tabla
Es el nom bre de la tabla que desea abrir. Tam bin 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
ms puede e s c rib ir tam bin directam ente una in s tru cci n S Q L.

Tipo

CLOSE
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
tablas. Su sintaxis es :

Variable.Close

Es o pcion al y se puede u tiliz a r slo cuando abre una tabla, para in d ic a el tip o
de R ecordset con el que desea a brirla. Estos tipos pueden ser:
D bO penT able
D bO penD ynaset
D bO penS napshot

D onde Variable es el nom bre del objeto que desea cerrar.

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


m anejo de la tabla que esta abriendo.
Estas constantes son:

DbDenyW rite:
L o s dems usuarios no pueden m o d ific a r n i agregar registros.

DbDenyRead:
L o s dems usuarios no pueden ve r los registros (slo objetos R ecordset de
tip o tabla).

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
excluyentes. Puede u tiliz a r una o la otra, pero no ambas en la m ism a
instancia de O penRecordset.
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
editando o e lim in a n d o el m ism o registro.
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 ,
FindF irst, M ove N e xt, etc., tam bin se pueden u tiliz a r en la program acin
DAO.

dbReadOnly
S lo puede ve r los registros y los dems usuarios pueden m o d ific a rlo s .

DbAppendOnly
S lo puede agregar registros nuevos(slo objetos Recordset de tip o hojas de
respuestas din m ica).

d b lnconsistent
Se p erm ite n actualizaciones inconsistentes (slo objetos Recordset de tip o
hoja de respuestas d inm ica).

D bC onsistent
S lo se perm ite n actualizaciones consistentes (slo objetos Recordset de
tip o hoja de respuestas dinm ica).

ru po

d it o r ia l

Megabyte

419

b > VISUAL BASIC como debe ser. . .

< 3

Para m anejar la in fo rm a c i n de una base de datos usando D A O , debe rea


liz a r los siguientes pasos:
1. D eclarar las variables tip o DataBase y tip o RecordSet en la ventana de
declaracin del fo rm u la rio o del m dulo.
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
solo fo rm u la rio porque de declaran en la ventana de declaraciones del
form ulario.
| (G e n e r a l) -r |

D ir a
D im

I3 H E !

j ( D e c la ra c io n e s )

DB A s
RS A s

D a ta b a s e
R e c o rd se t

L a siguiente aplicacin perm ite dar m a n ten im ie nto a los registros de una
tabla llam ada P R O D U C T O S que pertenece a una base de datos llam ada
V E N T A S . L a estructura de la tabla es:
CAMPO
T IP O
TAM AO
N o m b r e d e l P ro d u c to
Text
25
V a lo r de C o m p ra
S in g le
( S e n c illo )
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 )
Por cada registro que se v is u a liz a se debe m ostrar el IG V que se obtiene
del V a lo r de C om pra (1 8 % ), el P re cio de C o m p ra ( IG V ms V a lo r de
C om pra), la U tilid a d en soles y el Precio de Venta (P recio de C om pra ms
la U tilid a d ).
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. >>

TT

h r njJJ
2.

Programacin DAO

A P L IC A C I N D E SA R R O L L A D A N 61

ANTES DE PROGRAMAR CON PAO

fP P ro y e c lo l - F o rm i (C d ig o_________
)

CAPITULO X:

D a lo s d e l P r o d u c t o
N o m b re

Ja r r o z

{Too

V a lo r d e C o m p ra

A b r ir la Base de Datos y la tabla o tablas en el evento F o rm _ A c tiv a te


del fo rm u la rio .
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 O D U C T O S de tipo Dynaset. Si la base de datos se encuentra en la
carpeta predeterm ina del V isual Basic, no es necesario in d ica r su ruta.

1*
[ a c e it e
ALG O D O N
(A R R O Z

U tilid a d %

j 10

H e c h a d e V e n c im ie n to

13 0 -0 9 -2 0 0 1

g ra b a r

C a n c e la r

Jl

P r e c io d e C o m p ra
U tilid a d S / .

P r e c io d e V e n t a ( P b lic o )

tty

129.81X1

Opciones I
A d ic io n a r

j Activate
3
.............. ............d
P riv a te Sub Form A c tiv a te ()
zl
Set DB = OpenDatabase ("C:\M IS DOCUMENTOS\ VENTAS" )
Set RS = DB.OpenRecordset("PRODUCTOS", dtoOpenPynaset)
End Sub
.... . -

jForm

a <I
3.

Verificar que se encuentre activada la casilla de M icrosoft D A O 3.5 Object


Lib ra iy (o similar) en la opcin Proyecto/Referencias (Ver pgina N 354).
Si no se encuentra activada esta ca silla se m ostrar el siguiente mensaje
al ejecutar la a plicacin :

P A S O N 01: D IB U J A R L O S C O N T R O L E S
En esta a plicacin ya no se u tiliz a el c o n tro l Data, entonces no se u tiliz a
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
de texto ya no se les asigna las propiedades D atasource n i D ataF ield.
EB2EQI
F re m e i
L a b e ll

jC o m b o l

11

iiii

i i

JfTexH

L a b e l2

j T e x t2

L a b e l3

]T e x t3

LabeM

JT e x t4

E rro r d e c o m p ila c i n :
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

L a b e l5

L a b e l9

L a b e l6

L a b e ll O

L a b e l7

L a b e ll 1

L a b e l8

L a b e ll 2

F ra m e 3
C om m and6

Com m and7 j

F ra m e 2

A c e p ta r

]|

Ayuda

C om m and3

C om m and4

C om m and5

j
C om m and! O

420

ru po

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

421

S k ' VISUAL BASIC como debe ser...

CAPTULO X:

PASO N 02: ASIGNAR LAS PROPIEDADESALOS CONTROLES.


Para desarrollar esta aplicacin , debe asignar la propiedad C ap tion a las
etiquetas, botones de comandos y Fram e com o se m uestra en la a plicacin
a desarrollar y adems:
Las etiquetas N 9, 10, 11 y 12 deben tener en su propiedad B o rde rS tyle el
v a lo r 1 - F ix e d S in g le .
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
cu a lq u ie r o tro que usted desee.
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
C o m b o para co nsu ltar a los registros escribiendo las in ic ia le s de su nom bre
y para visu a liz a r los nom bres de los productos ordenados alfabticam ente,
debe tener en su propiedad Sort el v a lo r T ru e.

PASON"03:ESCRIBIRLAS INSTRUCCIONES PARALOS CONTROLES.


D e fin ir las variables tip o Database y Recordset y otras variables que se
u tiliz a n en la a plica ci n en la ventana de d eclaracin d el fo rm u la rio .

H Proyectol - Form! (Cdigo)


[(General)

(Declaraciones)

1-lnH

Dim DB As Database
*
Dim RS As Recordset

Dim XNOHBRE, XVALOR, XUTILIDAD, XFECHA As String v|

H|

1
Jinn

Crear los siguientes procedim ientos:


Sub DESACTIVAR()
Combo 1.Enabled = False
Frame .Enabled - True
Frame2.Enabled = False
Frame 3. Enabled = False

End Sub
Sub ACTIVAR()
Combo 1.Enabled = True
Frame .Enabled - False
Frame2. Enabled = True
Frame 3. Enabled = True

End Sub

Sub ACTUALIZAR JJOMBOQ


Combo l.C lear
RS.MoveFirst
Do While Not RS.EOF
Combol.Addltem (RS(0))
RS.MoveNext
Loop
RS.MoveFirst

End Sub
SubMUESTRA()
Textl = RS(0)
Text2 = RS( 1)
Text3 = RS(2)
Text4 = RS(3)
CALCULAR

End Sub
El procedimiento ActualizarjCombo, borra el contenido del Combol y muestra
nuevamente todos los nombres de los productos. El procedimiento Muestra, visualiza
los datos del registro actual en las cajas de texto y llama al procedimiento Calcular.

422

Grupo Editorial Megabyte-^

Programacin DAO

Sub CALCULARO
Label9=Format(Val(Text2) *18/100, "###,##0.000")
lflsNioneric(Text2)TheiiLabell0=Fom\at{CDec{label9)+CDec(Text2), "###,##0.000")
fIsNianeric(Text3)Then Labelll=Fonnat(CDec(LabeU0)*CDec(Text3yi00, ###,##0.000")
Labell2=Fomiat(CDec(LabeU0)+CDec(labelll), ###,##0.000")
End Sub

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.

Instrucciones del evento Form_Load


Prvate Sub Form_Activate()
Set DB = OpenDatabase( C:\MIS DOCUMENTOSWENTAS )
Set RS = DB.OpenRecordset( PRODUCTOS, dbOpenDynaset)
ACTUALIZAR,COMBO
Frame l.Enabled = Falsea
MUESTRA
End Sub

Instrucciones del Botn Grabar

Instruc. del Botn Adicionar

Prvate Sub Command_Click()


On Error GoTo INFORMA
RS(0) = Textl
RS(1) = CDec(Text2)
RS(2) = CDec(Text3)
RS(3) = CDate(Text4)
RS. Update
A CTUALIZARJCOMBO
ACTIVAR
Exit Sub
NFORMA:
MsgBox No Se Pueden G rabar, 64,
Verifique
End Sub

Prvate Sub Command3_Click()


RS.AddNew
DESACTIVAR
XNOMBRE = Textl
XVALOR = Text2
XUTILIDAD = Text3
XFECHA = Text4
DESACTIVAR
Textl =
Text2 - 0
Text3 = 0
Text4 = Date
Textl.SetFocus
End Sub

Instruc. del Botn Cancelar

Instruc. del Botn Modificar

Prvate Sub Command2_Click()


Textl = XNOMBRE
Text2 = XVALOR
Text3 = XUTILIDAD
Text4 = XFECHA
ACTIVAR
End Sub

Prvate Sub Command4_Click()


RS.Edit
DESACTIVAR
XNOMBRE = Textl
XVALOR = Text2
XUTILIDAD = Text3
XFECHA = Text4
Textl.SetFocus
End Sub

Instrucciones del Botn Eliminar

Prvate Sub CommandS_Click()


IfMsgBox("ESTASEGURODEELIMINARESTEPRODUCTO", 36, "CUIDADO")- 6 Tlien
RS.Delete
CommandSjClick
E n d lf
ACTUALIZARJCOMBO
End Su
G

ru po

d it o r ia l

Megabyte

423

VISUAL BASIC como debe se r...

CAPTULO X:

Instruc. del Botn Siguiente

Instruc. del Botn Anterior

Prvate Sub Command6_Click()


RS.M oveNext
IfR S.E O F Then
M sgB oxUltimo registro, 64, C uidado
RS.MovePrevious
Else
M UESTRA
E n d lf
End Sub

Prvate Sub Command7_Click()


RS.MovePrevious
IfRS.B O F Then
MsgBox Primer registro , 64,
Cuidado"
RS.MoveNext
Else
MUESTRA
E n d lf
End Sub

Instruc. del Botn Primero

Instrucciones del Botn Ultimo

Prvate Sub Command8_Click()


RS.M oveFirst
MUESTRA
End Sub

Prvate Sub Command9_Click()


RS.MoveLast
MUESTRA
End Sub

Programacin DAO

* 1

C O N T R O L M SF L E X G R ID

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


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
el M s fle x g rid perm ite trabajar usando el c o n tro l Data y con la program acin
D A O , en cam bio el D B g rid slo trabaja con el c o n tro l Data. Si va a u tiliz a r
el M s fle x g rid con un c o n tro l Data, s lo le debe a signar la p ropiedad
DataSource. O tra d ife re n cia entre estos es que el M s fle x g rid no perm ite
m o d ific a r los registros que muestra (slo de lectura), pero perm ite ordenar
y rea liza r clculos con los datos. En la ventana de com ponentes este control
se llam a M ic ro s o ft F le x G rid C on trol.
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


todo su contenido.

Prvate Sub Com bol_Change()


Dim C A String
C = [NOM BRE DEL PRODUCTO] LIKE + Combol +
RS.FindFirst C
MUESTRA
End Sub

ALLOW USERRESIZING
In dica si el usuario puede m o d ific a r el tam ao de las fila s y /o colum nas. Los
valores que se le puede asignar son:
0
N o p erm ite m o d ific a r
1
Perm ite m o d ific a r el tam ao slo de las colum nas.
2
Perm ite
m o d ific a r el tam ao slo de las fila s .
3
Perm ite
m o d ific a r el tam ao de fila s y colum nas.

Instrucciones del Control Combol (Evento Click)


Prvate Sub Combo 1_Click()
C om bol jC hange
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.


Estas instrucciones llaman al procedimiento Calcular para que al ingresar o modificar
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

Prvate Sub Text2_Change()


CALCULAR
End Sub

BA CK CO LO RSEL
A sig n a el c o lo r de fo n d o para las celdas seleccionadas.

COL

Prvate Sub Text3_Change()


CALCULAR
End Sub

Selecciona la co lu m n a de una celda. Esto se rea liza dentro de un program a.

CO LALIG NM ENT
Establece cm o se deben alinear los datos en una colum na. Los valores que
puede tom ar son:
0
izqu ierda
1 A lin e a c i n derecha
2 C entrado
Por ejem plo, la siguiente instru cci n m uestra en el centro los datos de la
c o lum na N 2 .

Instrucciones del Botn Salir


Prvate Sub CommandlO_Click()
RS. Cise
DB. Cise
End
End Sub

424

BA C K C O LO R BK G
A s ig n a el c o lo r para el fo nd o del co n tro l.

M SFlexGridl .ColAlignment(2) = 3
G

r u po

d it o r ia l

Megabyte <

ru po

d it o r ia l

Megabyte

425

CAPTULO X:

VISUAL BASIC como debe ser. . .


C O L W ID T H
A sig na un ancho a una colum na. Por ejem plo la siguiente in stru cci n asigna
un ancho de 500 tw ip s a la co lum na nm ero 1.

MSFlexGridl. ColWidtli(1) = 2000


C O LS
In d ic a la cantidad de colum nas que debe tener el control.
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
cuyo contenido querem os m ostrar en este co ntrol.
F IX E D C O L S
n d ica la cantidad de colum nas fija s que debe tener este c o n tro l. E l va lo r
que se ind iqu e debe ser m enor que la cantidad de colum nas.
F IX E D R O W S
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
in d iq u e debe ser m enor que la cantidad de fila s.
FO RECO LO R
A s ig n a el c o lo r de las letras de todas las celdas no fijas.
F O R E C O L O R F IX E D
A s ig n a el c o lo r de las letras para las fila s y colum nas fija s
FO RECO LO RSEL
A s ig n a el c o lo r de las letras de las celdas seleccionadas.
F O R M A T S T R IN G
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
in d ic a r el tam ao de las celdas, su a lineacin y el texto que deben visualizar.
E l fo rm a to de cada co lu m n a se debe separar p o r el carcter A L T + 124 (|).
A l in ic io de cada fo rm a to puede e s c rib ir los caracteres de a lineacin <
(Izq u ie rd a ), A (C e ntro ) o > (D erecha). T am bin puede e s c rib ir un punto y
com a el cual in d ic a que el texto fo rm a to ser para las fila s , en stos casos
ya no se usan los caracteres de alineacin.
Ejemplo:
Las siguientes instrucciones asignan un fo rm a to para las colum nas. Los
nom bres se visua liza rn alineados por la izquierda, el te lfo no en el centro y
el sueldo a la derecha. Los espacios que se dejan en blando in d ica n el ancho
para cada colum na.
F = "<
NOM BRES
|A
TELEFONO
\>
SU ELD O "
M S F le x G r id l. F o n n a tS t n g = F
G R ID C O L O R
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
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.
M S F le x G r id l .G r id C o lo r = R G B (0 , 0, 25 5 )
G R ID C O L O R F IX E D
A s ig n a un c o lo r para las lneas fija s del co n tro l.

Programacin DAO

*111111^

M ER G EC ELLS
Perm ite que las celdas con el m ism o conte nid o se puedan agrupar. Para e llo
debe de ordenar las fila s o colum nas. Esta p ropiedad se u tih z a ju n to con las
propiedades M a rg e C o l y M ergeR ow .
Los valores que puede tener son:

T E X x l l ^ Y L E ^1'3re ^ Restrin2e ^ ^ as

3 Restringe las columnas

4 Restringe ambas

Establece el e s tilo de las letras de las celdas no fijas.


MERGECOL
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
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
M s fle x g rid 1 .C o l(2 ) = T ru e
MERGEROW
Perm ite in d ic a r qu fila se debe agrupar.
R O W H E IG H T
Establee la a ltura de una fila . Por e je m p lo la siguiente in s tru cci n asigna
una altura de 500 tw ip s a la fila nm ero 1
M S F le x G r id l .R o w H e ig h t( l) = 5 0 0
SC R O LLBAR S
Permite asignar una barra de desplazamitno que se visualizar cuando los datos no
alcancen en el tamao asignado al control. Los valores que se le pueden asignar son:
0 N in g u n a
1 H o riz o n ta l 2 V e rtica l 3 A m bas
SORT
Indica la form a de ordenar los datos mostrados en el control. Para indicar la
colum na por la cual se deben ordenar, debe u tiliz a r la propiedad C ol. Los valo
res que puede tom ar son:
0
Ninguna
0
G enrica ascendente
1
G enrica descendente
3
N um rica ascendente. C on vierte las cadenas a nm eros
4
N um rica descendente
5
Cadena ascendente. N o d istingue m aysculas y m insculas
6
Cadena descendente. N o distin gu e m aysculas y m insculas
7
Cadena ascendente. D isting ue m aysculas y m insculas
8
Cadena descendente. D isting ue m aysculas y m insculas
Por ejem plo, las siguientes instrucciones ordenan los datos p o r la segunda
co lu m n a en fo rm a ascendente.
M s F le x g r id l .C o l = 2
M s F le x e r id l.S o r t = I
TEXT
Perm ite obtener el co nte nid o de la celda activa o asignarle un valor. Por
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 .C o l = 2
M S F le x G r id l .R o w = 1
M S F le x G r id l .T ext = " In fo rm a c i n "
G

ru po

d it o r ia l

Megabyte

427

|>

VISUAL BASIC como debe ser.. .

CAPTULO X:

TEXTMATRIX
Perm ite obtener el contenido de una celda indicada p o r el num ero de fila y
colum na. Por ejem plo, la siguiente instruccin 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)

Programacin DAO

A P L IC A C I N D E SA R R O L L A D A N 62
C on la m ism a base de datos y tabla anterior, desarrollar el siguiente programa:

AO DE VENCIMIENTO

PORCENTAJE DE DESCUENTO 2

TEXTSTYLEFIXED
Establece el e stilo de las letras de las celdas fijas.
L os valores que se les puede asignar a las propiedades anteriores son: 0
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

In c ru s ta d o c o n so m b re a d o .

W ORDW RAP
Acepta un valor True o False que indica si el texto de una celda se puede truncar
entre dos palabras o si una palabra se extender pasado el borde de la celda.

N*

PRODUCTO
1 TRIGO
2 CAFE
__ 3 FRIJOLES
4 LECHE
5 ARROZ
6 AZUCAR
__ 7 ALGODON
8 ACEITE

1 V. COMPRAI UTILIDAD % VENCIMIENTO ll.G .V . | p COMPRA UTILIDAD SA P. VENTA


25.00
5.00 *
12-12-2001
4 50
29.50
1.48
30.98
15.00
65.00 *
10-10-2000
2.70
17.70
11.51
29.21
25 00
1 0 .0 0 *
31-12-2005
4.50
29.50
2.95
32.45
8.00
2.00 X
16-09-1999
1.44
9.44
0.19
9.63
100.00
1 0 .0 0 *
30-09-2001 18.00
118.00
11.80
129.8
86 00
50.00 *
16-08-2003 15.48
101.48
50.74
152.22
260.00
15.00 %
31-12-2005 46.80
306.80
46.02
352.82
36.00
1 0 .0 0 *
01-01-2001
6.48
42.48
4.25
46.73
PARA ORDENAR. HAGA CLICK EN LA COLUMNA QUE DESEA

MTODOS DEL CONTROL MSFLEXGRIP


AD DITEM
Perm ite a d icio n a r fila s al c o n tro l M s F le x g rid .
Su sintaxis es: M s F le x g r id .A d d ite m (T e x to ", P o sici n )
T exto es el te xto de desea alm acenar en la fila que adiciona. En fo rm a
predeterm inada, este te xto se coloca en la p rim e ra co lu m n a (Izqu ierda ). Si
deseamos a d icio n a r te xto a diferentes colum nas al m ism o tiem po, se debe
u tiliz a r el carcter de salto de colum na: V B T A B .
P o sic i n es un v a lo r o p cio n a l que in d ic a dnde se va a a d ic io n a r la nueva
fila . N i no lo in d ica , la nueva fila se ubica al fin a l del co ntrol.

CLEAR
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
colum nas que contiene. Por e je m p lo: M s F le x g rid .C le a r.

M OVE
M u e ve el co n tro l a una nueva p o sici n en la pantalla.
Su sintaxis es:
M s F le x g rid .M o v e C olum na, F ila , A n cho , A lto
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.
F ila : es un v a lo r que in d ica la p osicin v e rtic a l donde deseamos u bicar el
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.

Este programa muestra todos los campos de la tabla productos y los siguientes
campos calculados: IG V (18% del V alor de C om pra), Precio de C om pra (IG V
+ V a lor de Com pra), U tilid a d en Soles (Precio de Com pra por el Porcentaje de
U tilid a d entre 100) y el Precio de Venta (Precio de Com pra + U tilid a d en
soles). Tambin ordenar los registros por el campo donde se haga c lic k , adems
debe mostrar slo los productos que se vencen en un ao ingresado o los que
tienen un determ inado porcentaje de utilidad.
Esta aplicacin est desarrollada en una nueva aplicacin. Si usted, desea de
sarrollarla en la m ism a aplicacin anterior (Form 2), entonces debe de declarar
las variables D B y RS en un m dulo con la palabra P U B L IC y el evento Form
Actvate del fo rm u la rio vo lve r a abrir la base de datos y la tabla.
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
que cum pla una condicin. Es algo sim ilar a F indfirst, FindLast y FindPrevious
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
respectivam ente. T am bin se da ejem plos de cm o m a n ip u la r un objeto
Recordset.

PASO NH LD IBUJA R LOS CONTROLES.


Jex*1

Commendi |

La b e C

|Text2

Command2 |

R EM O V EITEM
Km

B o rra toda una fila del co ntrol.


Su S intaxis es:
M s F le xg rid .R e m o ve lte m V alor
D onde v a lo r in d ica qu nm ero de fila desea borra.

428

ru po

d it o r ia l

Label3
Command4

Megabvte

ru po

E d it o r ia l

Megabyte

429

^ i i l l * VISUAL BASIC como debe ser. . .

<E5

CAPTULO X:

Programacin DAO

PASO N 2:ASIGNAR LAS PROPIEDADES A LOS CONTROLES

Instrucciones del Primer botn O K

Asgneles la propiedad C a p tio n a las etiquetas y botones de com andos y


F o rm u la rio , com o se m uestra en la aplicacin a desarrollar.

Private Sub C om m and l_ C lic k ( )


I f Is N u m e ric (T e x tl) Then
Set RS = DB.OpenRecordset( SELECT * F R O M PRODUCTOS W H E R E
Y E A R ([F E C H A D E V E N C IM IE N T O ]) = + T e x tl)
I f R S .R ecordC ount > 0 Then
M S F le x G rid 1.V is ib le = True
LLEN AR
Else
M S F le x G rid l. V is ib le = False
End I f
End I f
End Sub

PASO N3:ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES


Primero declare las variables en la ventana de declaracin del formulario. Si va a
utilizar varios formularios, declrelas en la ventana de declaracin del Mdulo.

Public DB As Database
Public RS A i Recordset
Dim IGV, PCOMPRA, USOLES, PVENTAAs Single
Dim E As String
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
de la tabla productos en el c o n tro l M S F L E X G R ID 1 .

Sub LLENARO
M S F le x G rid l .C lear
M S F le x G rid 1.C ois = 1
M S F le x G rid l.R o w s = 1
R em E scriba la siguiente in stru cci n en una sola lnea.
M S F le x G rid 1.Form atString= NJ Productob V. Compra | Utilidad% | Vencimientol
I.G.V. I P.Compra I Utilidad S/. I P. Venta
R S .M o v e F irs t
E = vbTab A sig n a el carcter salto de co lum na a la variab le E
D o W h ile N o t R S .E O F
IG V = R S (1) * 1 8 / 1 0 0
P C O M P R A = R S (1) + IG V
U S O L E S = P C O M P R A * R S (2) / 100
P V E N T A = P C O M PR A + USOLES
IG V = F o rm a t(IG V , # ## ,## 0 .00 )
P C O M P R A = F o rm a t(P C O M P R A , ###,##0.00 )
U S O L E S = F o rm a t(U S O L E S , ### ,## 0 .00 )
P V E N T A = F o rm a t(P V E N T A , ### ,## 0 .00 )
R em E scriba la siguiente in stru cci n en una sola lnea.
MSFIexGridl.AddItem (MSFIexGridl.Rows & E & RS(0) & E &
Format(RS(l), ###,##0.00 ) & E & Format(RS(2), ###,##0.00 ) & % &
E & RS(3) & E & IGV & E & PCompra & E & Usles & E & Pventa)
R S .M o v e N e x t
Loop
R S .M o v e F irs t

End Sub
Instrucciones del evento Form Actvate
P r v a te S u b F o rm _ A c tiv a te ()
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 )
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)
R e m M u e stra n lo s d a to s en el M sF le x g rid
LLENAR
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 ||

Instrucciones del Segundo botn O K


P riv a te S u b C o m m a n d 2 _ C lic k ()
I f IsN u m e ric (T e x t2 ) Then
M S F le x G r id l .C le a r
M S F le x G r id l .C o ls = 1
M S F le x G r id l .R o w s - 1
R em E scrib a la sig u ie n te instruccin en una so la lnea.
M S F le x G rid l.F o m ia tS trin g - N\Producto |> V.Compra\Utilidad% \ Vencimiento\
I.GV. | P.Compra \ UtilidadS/. \ P. Venta"
R S .M o v e F irst
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
D o W hile N o t R S .E O F
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
I f N o t R S .N o M a tc h T h e n
IG V = R S (1 ) * 1 8 / 1 0 0
P C O M P R A = R S (1 ) + IG V
U S O L E S = P C O M P R A * R S(2) / 100
P V E N T A = P C O M P R A + U SO LES
IG V = F orm at(lG V , # # # ,# # 0 .0 0 ")
P C O M P R A = F orm at(P C O M P R A , # # # ,# # 0 .0 0 )
U S O L E S = F o n n a t( U SO LES, # # # ,# # 0 .0 0 )
P V E N TA = F orm atfP V E N T A , # # # ,# # 0 .0 0 )
R em E scrib a la sig u ien te instruccin en una sola lnea.
MSFlexGridl.Addltem (M SFIexGridl.Rows& E& R S(0)& E &
Fommt(RS(l), ###,##0.00) & E& Fonnat(RS(2), ###,##0.00)& %"&
E & RS(3) & E & IGV& E & PCompra & E & Usles & E& Pventa)
End l f
R S .M o v eN e xt
Loop
R S .M o v e F irst
End l f
E nd Sub
G

ru po

d it o r ia l

Megabyte

431 w m

^^ VISUAL BASIC como debe se r.. .

CAPITULO X:

Instrucciones del botn TODOS


P rv a te S u b C o m m a n d 3 _ C lic k ()
T extl =
M S F le x G r id l .V isible = True
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 )
LLENAR
E nd Sub

Instrucciones del control M sFlexG ridl


Estas instrucciones ordenan los registros por el campo donde el usuario hace
C lick. Cuando se elige el campo tipo fecha se u tiliza una instruccin SQL.

P r v a te S u b M S F le x G r id l j C l ic k ( )
I f M S F le x G r id l. C ol = 4 Then
S a ^M O [xM u rd ^SEUrr*mOMPIUXJCWS(MmBY[FECHADEVENCMENRjr)
LLENAR
E ls e
M S F le x G r d l .S o r t = 1
End If
E nd Sub

OTRAS INSTRUCCIONES SQL


L a instru cci n S E L E C T tam bin puede u tiliz a rs e con las palabras G roup
B y y H aving.

GROUP BY
Perm ite agrupar los registros p o r uno a ms campos de la tabla o consulta.
Se puede u tiliz a r con las funciones:
O btiene la m edia a ritm tica de los valores de un cam po.
AVG
SUM
O btiene la suma de los valores de un campo.
COUNT C uenta un co n ju n to de registros.
D evu elve el va lo r m xim o de un c o n ju n to de registros.
M AX
M IM
D evuelve el v a lo r m n im o de un c o n ju n to de registros.
Devuelve n estimaciones de la desviacin estndar de una muestra.
STDEV
STDEVP D evu elve n estim aciones de la desviacin estndar de una po
blacin.
VAR
D evu elve n estim aciones de la varianza de una muestra.
VARP
D evu elve n estim aciones de la varianza de una pob la cin .

HAVING

Instrucciones del botn SALIR

Perm ite seleccionar los registros agrupados que desea v is u a liz a r porque
en estos casos no se puede u tiliz a r la palabra W here.

P rv a te S u b C o m m a n d 4 _ C lic k ()
RS. C ise
D B. C ise
E nd
E n d Sub

Teniendo en cuenta la base de datos llamada TIENDA y sus tablas Vendedores y


Ventas cuyas estructuras se indicaron en el captulo anterior, se muestran los
siguientes ejemplos:

Contenido de la tabla Ventas

CREA TUS PROPIAS B A SE DE DATOS Y


ESCRIBE LOS PROGRAM AS PARA
MANEJAR S U INFORMACIN
E N C O M P U T A C I N , E L M EJOR
PR O F E SO R ES:

CODIGO
001

Contenido de la
tabla Vendedores
CODIGO
005
004
001
003
002

NOMBRE
TELEFONOI
DANTE MILLAN
^666364
JORGE CASTRO
201665
JULIO DAVILA
232426
NOEMI MONTANO 242126
TERESA UBILLUS
362166

LA PRCTICA
432

Programacin DAO

ru po

d it o r ia l

Megabyte "

ru po

d it o r ia l

FECHAVENTA
03-01-2000

MONTO IDISTRITOVENTA
50 TEN

001

10-02-2000

50 J.L.O.

001

22-02-2000

600 TUMAN

002

22-10-1999

100 POMALCA

002

25-12-1999

250 LA VICTORIA

002

06-01-2000

100 J.L.O.

002

02-02-2000

100 POMALCA

002

05-02-2000

004

22-10-1999

200 LA VICTORIA
100 J.L.O.

50 POMALCA

004

22-10-1999

004

22-10-1999

004

15-02-2000

004

22-10-1999

005

06-01-2000

600 REQUE

005

01-02-2000

200 MONSEFU

005

22-10-1999

250 REQUE

005

04-01-2000

150 POMALCA

Megabyte

20J.L.O .
200 LA VICTORIA
60 MONSEFU

433

CAPTULO X:

VISUAL BASIC como debe ser.. .


L a siguiente instru cci n une de las dos tablas:

3.

Select * From Vendedores Inner Join Ventas On Vendedores.Codigo= Ventas.Codigo


VENDED0RES.C0DIG0
001
001
001
002
002
002
002
002
004
004
004
004
004
005
005
005
005

1NOMBRE
JULIO DAVILA
JULIO DAVILA
JULIO DAVILA
TERESA U6ILLUS
TERESA UBILLUS
TERESA UBILLUS
TERESA UBILLUS
TERESA UBILLUS
JORGE CASTRO
JORGE CASTRO
JORGE CASTRO
JORGE CASTRO
JORGE CASTRO
DANTE MILLAN
DANTE MILLAN
DANTE MILLAN
DANTE MILLAN

1TELEFONO
232426
232426
232426
362166
362166
362166
362166
362166
201665
201665
201665
201665
201665
666364
666364
666364
666364

|VENTAS.C0DIG0| FECHAVEN TA
001
03-01-2000
10-02-2000
001
22-02-2000
001
002
05-02-2000
002
06-01-2000
002
25-12-1999
002
02-02-2000
22-10-1999
002
004
22-10-1999
004
22-10-1999
004
15-02-2000
004
22-10-1999
004
22-10-1999
005
22-10-1999
06-01-2000
005
005
04-01-2000
005
01-02-2000

MONTOlDISTRITOVENTA |
50ETEN
50 J.L.O.
600 TUMAN
50 POMALCA
100 J.L.O.
250 LA VICTORIA
100 POMALCA
100 POMALCA
100 J.L.O.
20 J.L.O.
200 LA VICTORIA
60 MONSEFU
200 LA VICTORIA
250 REQUE
600 REQUE
150 POMALCA
200 MONSEFU

M o s tra r el nm ero del mes, la cantidad de ventas y el to ta l en soles


vendidos en cada mes, pero slo del ao 2000 .
SEI^iCTMONIH(FECHAVENTA)ASMES,aDUNT(MONTH(FECmVENrrA))ASCANTIDAD,

S U M (MONTO) AS TOTAL FROM INFORME GROUPBYMONTH(FECHAVENTA),


YEAR(FECHAVENTA)HAVINGYEAR(FECHAVENTA)=2(XX)
Resultado
MES
1
2

4.

Mostrar el nombre y total vendido de los 2 vendedores que ms han vendido.

5.

NOMBRE
1200
DANTE MILLAN
700
JULIO DAVILA
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.

SELECTNOMBREDISrRITOVENIA3UM(MONTO)AS [TUIALVINDIDO],
COUNT(MONTO)ASCANT[DAD,FORMAr(AVG(MONTO),"###,##0.00")

ASPROMEDIOFROMINFORMEGROUPBYNOMBREJDISTRITOVENTA
Resultado
NOMBRE
DAN TE MILLAN
DAN TE MILLAN

SFli3CrlN(3MBRfiCDUNT(NOMBRE)ASCANTTDAD,SUMfMON'ID)AS'IrALJ

FROMINFORMEGROUPBYNOMBREORDERBY SUM(MONTO)

DAN TE MILLAN

Resultado

2.

1 CANTIDAD
5
5
3
4

TOTALI
580
600;
700
1200

M o s tra r el nom bre de cada vendedor, la cantidad de ventas realizadas y


el total vendido, ordenados alfabticam ente, pero slo los que vendieron
ms de 650 soles.

SELECTNOMBRECOUNT(NOMBRE)ASCANTIDAD,SUM(MONTO)ASTOTALFROM
INFORME G R OU PBYNOMBRE HAVINGSUM(MONTO)>650ORDERBYSUM(MONTO)
Resultado
NOMBRE

434

CANTIDAD 1

TOTAL!

JU LIO DAVILA

700

DANTE MILLAN

1200

ru po

d it o r ia l

Megabyte

TOTALI
900
1200;

SEUEOTOPNOMBRESUM(MONTO)AS[TOIALVENDIDO] FROM INFORME


G R O U P B Y N OM B RE ORDERBY SUM(MONTO)DESC

M o s tra r el nom bre de cada vendedor, la cantidad de ventas realizadas y


el to ta l vend id o ordenados alfabticam ente.

NOMBRE
JORGE CA5TRO
TERESA UBILLU5
JULIO DAVILA
DANTE MILLAN

CANTIDAD 1
4
6

Resultado
TOTAL VENDIDO 1

Desarrolle los siguientes ejercicios sabiendo que la consulta anterior


se llama INFORME.
1.

Programacin DAO

IDISTRITOVENTA

TO TA LV E N D ID O l CANTIDAD 1PROMEDIO

MONSEFU

200]

1 200.00

POMALCA

5 0

1 150.00

REQUE

850

2 425.00

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

JU LIO DAVILA

E TEN

50 ;

1 50.00

JU LIO DAVILA

J .L .O .

50

1 50.00

JU L IO DAVILA

TUMAN

600

TERESA UBILLUS

J .L .O .

100

1 100.00

TERESA UBILLUS

LA VICTO R IA

250

1 250.00

1 600.00

TERESA UBILLUS

POMALCA

250

3 83.33

6.

M o s tra r el nom bre del vendedor, ao de las ventas, to ta l v e n d id o


observacin, 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 slo del ao 2000 , una
observacin que indique cum pli o no la venta m nim a (650 soles), adems
debe, m ostrar la co m is i n en porcentaje y e soles que le corresponde.
SelectNombre,Year(Fechaventa)AsAo,Sum(Monlo)AsTotal,lifiTotal <650,"NoCumplioLaVenia
Minima'VSiCumpliLaVentaMinima")AsObservacin, Iif(Total<650,"0%"Jit(Total>=650AndTota!
<800,"5%","10^ "))As[ComLsion %!Jif(TotaI>=652AndTotal<800,Total*5/100,Total *l(V100)As
[ComisionEnSoles] FromInfoimeGroupByNombre,YeaitFechaventa)HavingYear(Fechaventa)=2000
Resultado
NOMBRE
1 AOl
2000
DANTE MILLAN
2000
JORGE CASTRO
JULIO DAVILA
2000
TERESA UBILLUS 2000

| |^

r u po

TOTALl OBSERVACION
950 SI CUMPLIO LA VENTA MINIMA
200 NO CUMPLIO LA VENTA MINIMA
700 SI CUMPLIO LA VENTA MINIMA
250 NO CUMPLIO LA VENTA MINIMA

d it o r ia l

Megabyte

1COMISION X
10%
0%
5%
0%

COMISION EN SOLES
95
20
35
25

435

S S N fr VISUAL BASIC como debe ser.

v - C A P T U L O X:

A P L IC A C I N D E SA R R O L L A D A N 63
C o n la m i s m a base de
datos y tabla anterior, <*, PROGRAMAS DE USTADO Y ESTADISTICA
desarrollar
un i 1E3HE1 E S T A D IS TIC A
VEN D E D O R E S
programa de listado y
VEN TA S
>E LAS VENTAS REALIZADAS
VE N D E D O R E S Y V E N T A S
estadstica para los
C O M ISIONES
1FE CHAVEN T A
| M O N TO
vendedores y sus
25-12-1999
002
1
04-01 -2000
005
ventas realizadas. Los
2
03-01-2000
001
3
programas se deben
002
06-01 -2000
4
06-01 -2000
00c
5
llamar mediante un
004
15-02-2000
6
m e n de opciones:
10-02-2000
7
001

l ASO N 2: ESC RIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.

Definir las variables DataBase y Recordset en la ventana de declaracin del


formulario.
Dim DB A Database
Dim RS A s Recordset
|- |
250 _ J

150
50
100
600
200

L lU

CANTIDADDEREGISTROS MOSTRADOS
fe PROGRAMAS DE USTADO Y ESTADISTICA
LISTADO S

ESTADISTICA

TOTAL POR VENDEDOR


TOTAL POR DISTRITO
\LIZADAS
TOTAL POR VENDEDOR Y DISTRITO
N VENDEDORES CON MAS VENTAS
I IU f l M T D
I .I
SEGUN EL MONTO
I DISTRITO CON MAYOR VENTA i n o
SEGUN LA CANTIDAD
MONTO TOTAL VENDIDO
CANTIDAD TOTAL DE VENTAS
bco
50
4
002
06-01-2000:
100
005
06-01-2000
600
5
004
200
6
15-02-2000
7
001
10-02-2000

L lU

Programacin DAO

CANTIDADDEREGISTROSMOSTRADOS
P A S O N 1: D IB U J A R L O S C O N T R O L E S .

Instrucciones deI evento Form Actvate


Prvate Sub Form_Activate()
Set DB=OpenDctabase( C!sARCHIVOSDEPROGRAMA\DEVSTUDIO\VIMENDA)
End Sub
Instrucciones del procedimiento LL E N A R
Sub LLENAR()
Rem Este procedimiento llena el MsFlexgridl con los registros de la tabla activa
Dim FORMATO, DATOS As String
Dim NCAMPOS, X A s Byte
NCAMPOS = RS. Fields. Count
RS.MoveFirst
MS FlexGridl.Rows = 1
MSFlexGridl .Cois = 1
Rem ASIGNA EL ENCABEZADO AL CONTROL MSFLEXGRID
FORMATO = /W
For X = 1 To NCAMPOS
FORMATO = FORMATO & Space(15) & vbTab & RS(X - lj.Nam e
N extX
MSFlexGridl .FormatString = FORMATO
Do While Not RS.EOF
DATOS = MSFlexGrid l.Rows
For X = 1 To NCAMPOS
DATOS = DATOS & vbTab & RS(X - 1)
N extX
MSFlexGridl.Addltem (DATOS)
RS.MoveNext
Loop
RS.MoveFirst
Label3 = RS.RecordCount
End Sub
Instrucciones de la opcin Vendedores.
Prvate Sub VENDEDORES_Click()
Labell = LISTADO DE VENDEDORES"
Set RS = DB. OpenRecordset( VENDEDORES )
LLENAR
End Sub

Slo debe dibujar tres etiquetas y un MsFlexGrid. Slo asigne propiedades a


las etiquetas y disee un m e n c o m o se indica en la aplicacin a desarrollar.

436

ru po

d it o r ia l

Megabyte

Instrucciones de la opcin Ventas.


Prvate Sub VENTAS Clickf)
Labell = RELACIN DE LAS VENTAS REALIZADAS
Set RS = DB. OpenRecordsetf VENTAS )
LLENAR
End Sub
G

r u po

d it o r ia l

Megabyte

437

VISUAL BASIC como debe ser.. .

In s tr u c c io n e s d e la o p ci n V endedores y Ventas.
Prvate Sub VENDEDORES_VENTAS_Click()
Labe 11 = "LISTADO DE VENDEDORES Y SUS VENTAS"
Set RS = DB. OpenRecordset( "SELECT * FROM VENDEDORES INNER JOIN
VENTAS ON VENDEDORES.CODIGO = VENTAS.CODIGO )
LLENAR
End Sub
In s tr u c c io n e s de la o p ci n C o m isio n es.
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
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
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 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
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.

Prvate Sub COMISIONES_Click()


La be 11 = LISTADO DE VENDEDORES CON SUS COMISIONES"
SetRS=DB.OpenRecordset(SelectNombrv,Year(Fechaventa)AsAo, SuniMonto)As
Total, lifiTotal <650, No CumpliLa VentaMinima, Si CumpliLa VentaMnima)As
Observacin, IifiTotal<650, 0% ,Iij(Total >=650AndTotal< 800, '5%, 10%))As
[Comision %],IifiTotal<650,0JifiTotal>=652AndTotal < 800,Total *5/100,Total *10/100))
As [ComisionEnSoles] FromInformeGroupByNonre, Year(Fechaventa) Having
Year(Fechaventa) = 2000")
LLENAR
End Sub
In s tr u c c io n e s d e la o p ci n Total p o r Vendedor.
Prvate Sub TOTAL_VENDEDOR_Click()
Label 1 = TOTAL VENDIDO POR CADA VENDEDOR
SetRS= DB.OpaiReco>zlset('SELECTNOMBRE,COUNVDISTRIOVENTAJAS'
CANTIDAD,SUM(MONTO)AST(JIALFROM1NFORMEGROUPBYNOMBRE)
LLENA
End Sub
In s tr u c c io n e s de la o p ci n Total p o r D istrito.
Prvate Sub TOTAL_DISTRITO_Click()
Labell = TOTAL VENDIDO POR DISTRITO
SetRS-DBOpaiRecoidset( ' SELFCW1SIKIIO\rENIACOUNIDISIWIOVENIA)
ASCANTIDAD, SUM(MONTO)ASTOIALFROMINFORMEGROUPBYD1STRTTOVENIA )
LLENAR
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.
Prvate Sub VENDEDOR_DISTRITO_Click()
LABEL1 = TOTAL VENDIDO POR CADA DE VENDEDOR Y DISTRITO

SETRS=DB.OPENRECORDSEIJSELECTNOMBREDISTRrrOVENTASUM(MONrO)ASTOTAL

FROMINFORMEGROUPBYNOMBREDISIRirOVENTA )
LLENAR
Erul Sub

CAPTULO X:

Programacin DAO

^ 1

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.


Prvate Sub VENDEDORES_MAS_VENTAS_Click()
Dim R As Integer
Mbell = "LISTADO DE LOS VENDEDORES CON MAYOR VENTA"
R - InputBox("Valor para N ", "Cantidad de Vendedores con mayor venta", 2)
lf V a l( R ) > 0 T h e n

Set RS = DB.OpenRecordset(SELECT TOP & R & NOMBRE,


COUNT(NOMBRE) AS CANTIDAD,SUM(MONTO)AS [TOTAL VENDIDO]
FROM INFORME GROUP BY NOMBRE ORDER BYSUM(MONTO) DESC)
LLENAR
E n d lf
End Sub
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 .
Prvate Sub SEGUNMONTO_Click()
Labell = DISTRITO(S) CON MAYOR VENTA SEGN EL MONTO VENDIDO
SetRS = DB. OpenRecordset( SELECTTOP1 DISTRITOVENTA, SUM(MONTO)AS
[TOTAL VENDIDO] FROM INFORME GROUP BY DISTRITOVENTA ORDER BY
SUM(MONTO) DESC)
LLENAR
End Sub
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.
Prvate Sub SEGUNCANTIDAD_Click()
Labell = DISTRITO(S) CON MAYOR VENTA SEGN LA CANTIDAD VENDIDA
Set RS = DB.OpenRecordset(SELECT TOP 1 DISTRITOVENTA, COUNT
(DISTRITOVENTA) AS CANTIDAD FROM INFORME GROUP BY DISTRITOVEN1A
ORDER BYCOUNT(DISTRITOVENTA) DESC)
LLENAR
End Sub
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
Prvate Sub MONTOTOTAL_Click()
SetRS = DB.OpenRecordset( SELECT SUM(MONTO) FROM INFORME)
MsgBox LA SUMA TOTAL E S : S/. & RS(0), 64, MONTO TOTAL VENDIDO
End Sub
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
Prvate Sub CANTlDADTOTAL_Click()
Set RS = DB. OpenRecordsetf SELECT COUNTf MONTO) FROM INFORME )
Msgbox Se Han Realizado & Rs(0) & Ventas En Total,64 Cantidad De Ventas
End Sub

^jjj^

G ru p o E d it o r ia l

M egabyte

439

^ i || ||

CAPITULO X:

VISUAL BASIC como debe se r.. .

Programacin DAO

Para desarrollar esta aplicacin adicione un nuevo form ulario a la aplicacin y


dibujar en l un botn de comandos y control SSTAB con slo dos pgina con un
control Mschart cada una.

C O N T R O L M SC H A R T

Este c o n tro l perm ite m ostrar in fo rm a c i n a travs de grficos. 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 grfico.

CO LU M NCO UN T
In d ica la cantidad de colum nas que debe tener el g rfico.

CO LU M NLA BEL
A sig n a un ttu lo para una colum na. Se m uestra en la leyenda.

DATA
A lm ace na el va lo r que se desea representar en fo rm a grfica.

FOOTNOTETEXT
A sig n a un texto para el pie de pgina del g r fico.

RA ND O M FILL
In d ic a si los valores a representar se llenan al azar.

ROW
A c tiv a una fila d el g r fico .

ROW COUNT
In d ica la cantidad de fila s que debe tener el g r fico.

ROW LABEL
In d ica un ttu lo para cada fila del g r fico.

SHOW LEGEND
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.

TITLETEXT
A s ig n a el ttu lo p rin c ip a l para el g r fico.

A P L IC A C I N D E SA R R O L L A D A N 64
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 otn de
com andos para que cuando se muestre la cantidad vendida p o r Vendedor po
p o r D is trito se tenga la opcin de m ira r la in fo rm a c i n a travs de un grfico.
L IS T A D O S

E S T A D IS T IC A
h rO T A L V E D I

P O R

C A D A V E N D E D O R

N O M B R E _____________I C A N T I D A D
D A N T E M IL L A N
|
JO R G E C A S TR
J U L IO D A V IL A
T E R E S A U B I L L U S ___________________

4
5
3
5

1200
580
700
600

E ls e

MsgBox ELGRFICONOESrDISPONIBLEFARAESTAINFORMACIN,64, DISCULPE


End I f
End With
End Sub

CA N TID AD DE R E G IS T R O S M O S T R A D O S
V E R G F IC O

440

ru po

INSTRUCCIONES D EL BOTON VER GRAFICO D E L FO R M U LA R IO N1.

Prvate Sub Commandl_C lick()


Dim X A s Integer
With Form2
I f L a b e l s "TOTAL VENDIDO POR CADA VENDEDOR" O rLabell= "TOTAL
VENDIDO POR DISTRITO Then
.Show
!M SChart l.RowCount = RS.RecordCount
!MSChart l.ColumnCount = 1
!MSChart2.RowCount - RS.RecordCount
!MSChart2.ColumnCount = 1
I f Label I = TOTAL VENDIDO POR CADA VENDEDOR Then
!MSChart 1. TitleText = CANTIDAD DE VENTAS POR VENDEDOR
!MSChart2. TitleText = TOTAL DE VENTAS POR VENDEDOR
End I f
I f Label 1 = TOTAL VENDIDO POR DISTRITO Then
!MSChartI. TitleText = CANTIDAD DE VENTAS POR DISTRITO
!MSChart2. TitleText = TOTAL DE VENTAS POR DISTRITO
End I f
RS.MoveFirst
For X = 1 To Form2!MSChart 1.RowCount
!MSChart I. Row = X
!MSChart 1.Column = 1
MSChart I.Data = RS(1)
!MSChart l.RowLabel = RS(O)
!MSChart2. Row = X
!MSChart2. Column = 1
!MSChart2. Data = RS(2)
!MSChart2.RowLabel = RS(O)
RS.MoveNext
N ex tX

d it o r ia l

Megabyte'

r u po

d it o r ia l

Megabyte

441

a s J VISUAL BASIC como debe ser. .

CAPITULO X:

Ejemplo de resultados de la aplicacin anterior.

Programacin DAO

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.

Cul es la d iferen cia entre la p rogram acin 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
N9
1
2
3
4

NOM BRE
1C A N T ID A D
D A N T E M IL L A N
!
JO R G E CAS TR O
JU L IO D A V IL A
T E R E S A U B IL L U S

DATA.

2 . Cul es la caracterstica de cada, tip o de Recordset?

TO TAL

4
5
3
5

1 200
580
700
600

3.

E xp liq u e las principales propiedades del co ntrol M s F le x G rid .

4.

Cules son los pasos a seguir para program ar con D A O ?

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 ?

6. E x p liq u e las p rincip ale s propiedades del c o n tro l M sC hart.

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
V E R G F IC O

7.

S A L IR

OB

J H lS l
{C A N T ID A D

Qu mensaje de e rror se visua liza cuando ejecutas tu a p lica ci n sin


a ctiva r la ca silla D A O ?
Cul es la d iferen cia entre O rder B y y G roup B y?

9. Cul 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

MONTOS

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 cuntos tipos de g rficos se puede representar la in fo rm a c i n con

4
3

iPUl

2 1 -

i g l i i l
D A N T E M ILLAN

JORGE CASTRO

JU LIO DAVILA

- jf

TERESA UBILLUS

el co n tro l M sC hart.

- 2

12. E xp liq u e los m todos del control M s F le x G rid .

- 1

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 aplicacin 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. Cul 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. Cm o se pueden u n ir tres tablas?

O
-

442

ru po

No olvides que para pasar al siguiente captulo, debes obtener


un 20 en esta autoevaluacin.

I R EGR ESAR !

O '

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

443

CAPITULO XI
J Fie E di [nsert Foimat Dalabase Repoit Window

e |@

B j

Hdp

x|

- |ff|

Design Preview

Today 0G:34 | CloseI T O

l of i

[ F i T T ir ^

--------------------- l;,

------ -Choose an Expeil:


IIHUli

f<TT7

'

Dr:

.ZZJEL
Standard

Listino

r
r r t
!; !
Cross-Tab

3 1
r s i
Mail Label

E
Another Report
Cancel

Recct:

Help
Summary

Graph

TopN

Drill Down

CREACIN
DE
REPORTES

mam h m

C ustom )

CAPTULO XI: Creacin de Reportes

Visual Basic permite disear reportes de una manera fcil y rpida. A con
tinuacin se explica el programa Cristal Report que es el generador de
reportes predeterminado de la versin 5.0 de VB. Si usted tiene la versin
6.0 utilice el DATAREPORT que se explica a partir de la pgina N 461.
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 opcin Complementos (Add-Ins) de la barra de men elija Diseador
de Informes (Report Designer), observar la pantalla siguiente:

-"J
File Edit Insert

D E?

Format

Database

Report Window

#4

f poi] & 8^ m

a #

i n

i
Help

m &

i r

ZEZ

Crystal Reports Pro

2 . De la pantalla anterior elija la opcin File y luego New, que permite


crear un nuevo reporte, observar la pantalla siguiente, donde tiene los
tipos de reporte que puede crear. En cada botn que permite seleccionar
un tipo de reporte se muestra una figura que indica la forma de visualizar
los datos, inicialmente se recomienda seleccionar el tipo Standard.
^ I

Or:

C h o o se an E xpert:

S ta n d a rd

L istin g

Cross-T ah

M a il L a b e l

C a n ce l

=7^
2

H e lp

S um m ary

ru po

G ra ph

d it o r ia l

T op N

Megabyte

A n o th e r R e p o rt

Drill D o w n

C u stom >>>

447

p m

w M ' VISUAL BASIC como debe ser...

CAPTULO XI:

Una vez seleccionado el tipo de reporte que desea disear, debe elegir el
tipo de base de datos a utilizar. Haga click en Archivo (DATA FILE).
*1

Creacin de Reportes

Una vez seleccionada la base de datos haciendo doble click en su nombre o


con el botn Agregar (Add), haga click en el botn Terminar (Done) para
salir de la ventana.

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 botn 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


o tablas que se van a usar en el reporte.

Permite quitar del reporte el campo seleccionado.


A LL

Permite quitar del reporte todos los campos.


File Name:

B R O W SE DATA

Directories:

Add

Permite mostrar los datos del campo seleccionado.

C: W c h iv o s de progra..AVB
AG ENDA, mdb
biblio.mdb
h.rndb
j.mdb
nwind.mdb
pasajes.mdb

List Files of Type:

_Jc:\
f j A rchivos de progra
D evS tudio
_ j vb

SQL Table...

Clisvr

Red.

_ ! Help

FO RM U LA

Permite adicionar una formula al reporte; es decir un campo calculado. Por


ejemplo si se tiene una tabla llamada amigos con el campo fecha de nacimiento
(fecnac) y Ud. desea mostrar tambin la edad sin tener este campo en la
tabla, entonces la formula ser:

Drives:

User Default

448

D one

1 c: gogo

ru po

d it o r ia l

Megabyte

ru po

d it o r ia l

Megabyte

449

CAPTULO XI:

VISUAL BASIC como debe ser.. .

2Sl
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

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

< 1 1

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|
o |,J) #4 3 M S i H ] ] f i #
D e? y m. s f s
Design Preview
Today 06:34 | Close | |

] 1 of 1 f ] |||

year( today )-year( amigos.fecnac )


S te p 1: T a b le s

Creacin de Reportes

----------------------------

| #| ; |

A d d ->

D a ta b a s e Fields:
- - A M I G O S ......

A ll -
1

D IR E C C IO N
D IS T R IT O
J F l F F lN f l

<- R em o ve
A ll

B ro w s e D a ta ...

iF o rm u a ...i|

1
Records:

<< B a c k

Next

>> j

Cancel

N O TA :
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
c rea r (F orm ula am e).
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
b ir o seleccion ar.
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.

J1
JIC
U
L
Jn
9

n r \ m

iu:

100%

O R D EN AC IO N DE LOS REGISTROS PARA LOS REPORTES


Despus de seleccionar los campos que desea mostrar en el reporte, Ud.
puede indicar el campo por el cual deben salir ordenados los registros, para
ello haga click en el botn N E X T o en 3.SORT, visualizar la pantalla
siguiente.
A D D->
Elige el campo por el cual se desea ordenar los registros en el reporte.
< -R E M, O V E
i Step 1: Tables 12: Fields 3: Sort 14: Total 15: Select | 6: Style I
Quita el campo seleccio1
1 1
1 1
Step: Choose fields to sort and group by, such as Country and then State.
nado para la ordenacin.
You can also define custom groups, such as Western Region.

x|

/-v

C O L U M N H E A D IN G
Permite indicar el encabezado de cada campo que por defecto es el nombre
del campo.
F E L IC IT A C IO N E S
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
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
cion ales, p a r a ello h aga click en e l botn P R E V IE W REPORT, o b se r
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
d e la B arra E st n d a r perm iten tam bin d ise a r y m ejo ra r os reportes.

ORDER
Se visualiza despus de
elegir un campo y permi
te indicar la forma de or
denar: Ascendente, Des
cendente, En la form a
Origina o por grupos.

Report Fields:

am inns

niRFrnnt'j
<-Remove

<< Sack j

ru po

d it o r ia l

a n

Add >

Browse Data... [

Group Fields

Report Fields:

Group/Total Tip... |

Next>> |

Mega b y 1 c

Cancel j

| Preview Report |

451

Preview S ampi* j

CAPTULO XI: Creacin de Reportes

^ | y |> VISUAL BASIC como debe ser...

TOTALIZAR O CONTAR GRUPOS DE REGISTROS


Despus de indicar el campo o campos para la ordenacin, Ud. puede indi
car que los campos sean sumados, contados, promediados u obtener el va
lor mximo o mnimo
J
registros. Estos gru
pos de registros de
penden del campo
por el cual los regis
tro estn ordenados.

S tep 1: Tables 12: Fields 13: Sort

SEL EC C IO N A R EL E ST IL O DEL R E PO R T E
Ud. puede mejor el aspecto del reporte, para ello haga click en la opcin
6.STYLE, observar las siguiente pantalla. Elija el estilo de reporte que
mejor le parezca. Por cada estilo de reporte se muestra un ejemplo de cmo
se visualiza.

.....

Subtotals printed on any cha n ge of

A M IG O S .N O M B R E

n
, r n
Report Fields:

T otal Fields:

Report Fields:

Haga click en el bo
tn N E X T o en
4 . T O T A L ,
visualizar la panta
lla siguiente:

_ J

A M IG O S .D IR E C C IO N
A M IG O S .D IS T R IT O
A M IG O S .T E L E F O N O

A D D ->
Permite indicar el campo por el cual va a seleccionar a los registros que
desea visualizar en el reporte.
Luego debe formar la condicin que deben cumplir los registros para que se
muestren en el reporte. La condicin se forma con los operadores y con los
valores que Ud. puede elegir.

4: Total |5: Select 16: Style |

Step: Choose fields to subtotal, count etc. E a ch tab is a group (or subtotal break).
A M IG O S .N O M B R E

A d d ->.

I
S te p 1: Ta b le s | 2: Fields j 3: Sort 14: T o ta l | 5: Sele ct

6: Style |

I
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.

zl

Browse Data... I

Title:

A d d Grand Totals

B a ck

Next

Cancel

preview Report |

Style:

Preview Sample |

_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

_
_
_
I
J
,*J

Slf*p I

?at>les \

helrts |3 Soit |4

Total

0 Select |b S'yle J

Step Choose fields o selec (or filter) records in report

Important for <jp**>d

A d d picture,
s u c h as
co m pa n y logo:

L e a d in g Break
Trailing Break
Ta b le
D ro p Ta b le
E x e cu tiv e , Le a d in g Break
E x e cu tiv e , Trailing Break
S ha din g
R e d / B lu e Border
M a ro o n / Te a l Box

ADD GRAND TOTAL


Indica si al final del reporte se debe visualizar el total general.

Ud. puede seleccionar


los registros que desea
visualizar en los repor
tes. Para ello haga
c lic k en la opcin
5.SELECT, visualizar
la pantalla siguiente:

P re vie w Tip...

Pre vie w Report |

P re vie w Sam ple

NO TA:
Una vez creado el reporte debe grabarlo para que de sta manera lo
pueda utilizar o activar desde cualquier form ulario utilizando el con
trol CRYSTAL REPORT.

Report Field.
AMIiiOS I'lRfc LI IUN

AMIGOS DISTRITO

Add >

CRYSTAL REPORT
[ 3 euuaUo

vI |l

-T.j

CHICLAYO
LA VICTORIA
LAMBAVEQUC_______________________________________

Drowse Data . |

fciack I

fW

>> I

Cancel

| Preview Beport |

Speed Tip .-

Preview Sample j

Es un control que se utiliza para activar desde un formulario cualquier re


porte diseado. Lo puede dibujar en cualquier parte del formulario porque
no se visualiza cuando se ejecuta la aplicacin. En la lista de componentes
se encuentra con el nombre: Crystal Report Control.
Sus principales propiedades son:
G

ru po

d it o r ia l

Megabyte

453

CAPTULO XI: Creacin de Reportes

VISUAL BASIC como debe ser...

CU STO M (Personalizado)
Tiene las opciones que permiten personalizar el reporte.
Pginas de propiedades
Base de datos
General

Seleccin

Base de datos

Informe enlazado a datos

j Ventana de impresin | Impresor a | Imprimir a un archivo

RepoitFHeNafne: |j

lo p

(* A una ventana

A una impresora

Seleccin

Informe enlazado a datos

Ventana de impresin ] impresora ] Imprimi a un archivo

Wl: p ---- !W fS----

[estination

General

rrsr H ^iar- rK'

,-------------------- -------
Title jEJEMPLO DE REPORTE

C A un archivo

P CfintroIBox

A la MAPI

P (dinButton

: ( Srabie
.

FixedQouble

MasBulton

I Aceptar ~ |

Aceptar ~]

El

Pginas de piopiedadet
General 1 Ventana de impresin | Impresora Imprimir a un archivo
[
Base de datos
ji
Seleccin
1
Informe enlazado a datos

Base de datos
|
Seleccin

Informe enlazado a datos


General | Ventana de impresin | Impresora )
u

yserName: J~"

Piintrtejiame:

Cgnneci

PrintFteTupe.

I
t

~3

I Registro

Cancelar I

D A TA SO U RCE
Su uso en reportes es opcional y permite indicar el nombre del control data
que est ligado a la tabla de la cual se desea obtener el reporte.
R E P O R T F IL E N A M E
Permite indicar el nombre del reporte que desea imprimir, adems usted
tam bin puede seleccionar el destino del reporte que por defecto es
WINDOWS (A una Ventana).
Con la opcin A la V entana, el reporte se mostrar en la pantalla como una
presentacin preliminar. Si ya tiene una impresora conectada y lista para
imprimir puede elegir la opcin Printer (A un Impresora).
General J
feportFileNarne: |

: destination

A una ventana

A una impresora

A un archivo

Haga click aqui para


buscar el archivo de
Reporte.

< A la MAPI

Acepta ~|

Cancela'

Aplicar

Su desea indicar el archivo de reporte a imprimir dentro de un programa,


entonces su nombre debe estar entre comillas e incluir la ruta del archivo.
La opcin File (A un Archivo) graba en un archivo el reporte para su uso
posterior. La opcin A MAPI enva el reporte a otra persona en un mensaje
de correo electrnico el formato especificado por la propiedad PrintFileType.
REPORTSOU RCE
Para indicar la fuente de los registros para el reporte.
O-CRPTREPORT: Muestra en el reporte todos los especificados al disear
el reporte.
3-CRPTDATACONTROL:Los registros que muestra dependen de los que
contiene el control Data. Se utiliza junto con la propiedad Datasource y
normalmente cuando se filtran registros con la instruccin SELECT.
A C T IO N
Activar el reporte asignndole el valor 1. Por Ejemplo, para activar el reporte
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 condicin que selecciona los registros a visualizar en el
reporte. Los nombres de los campos deben estar entre llaves. Por ejemplo:
Si tenemos un reporte con la tabla Amigos y queremos mostrar slo los que
viven en Chiclayo, entonces debemos asignar a esta propiedad la siguiente
condicin: {DISTRITO} = "C H IC L A Y O "
Cundo hemos realizado un reporte con dos o ms tablas, cada campo debe
estar acompaado del nombre de la tabla a la que pertenece. Por ejemplo:
Si tenemos un reporte con la base de datos Tienda (tablas Vendedores y
Ventas) y queremos mostrar todas las ventas cuyo monto esta entre 50 y
100, esta propiedad debe tener: {V E N T A S.M O N T O } >=50 AND
{VENTA S.M ON TO} <=100
PRINTFILETYPE

Especifica el tipo de archivo va a imprimir cuando utiliza como destino del reporte un
Archivo (File).
Los principales valores que puede tener son:
0 Registro: Es la propiedad predeterminada y muestra la informacin columnas, no
utiliza comas ni separadores. Muestra todos los registros con una anchura fija de
campo.
1 Separado por tabuladores: Presenta los datos en forma tabular. Encierra los datos
de campos alfanumricos entre comillas y separa los campos con tabuladores.
2 Texto: Guarda los datos en formato de texto ASCII con todos los valores separados
por espacios. Este estilo se parece mucho a una pgina impresa.

Ayuda

ru po

d it o r ia l

Megabyte

455

< | |||

S S k > VISUAL BASIC como debe ser...


3 DIF: Guarda los datos en formato DIF (formato de intercambio de datos). Este
formato se usa a menudo para transferir datos entre diferentes programas de hoja
de clculo.
4 CSV:Valores separados por comas. Encierra los datos de campos alfanumricos
entre comillas y separa los campos con comas.
7 RPT de Crystal Reports: Se utiliza el formato estndar RPT de Crystal Reports, la
mayora de las veces para mandar el informe a otro usuario mediante correo
electrnico.
10 XLS de Excel 4.0: Exportael informe como una hojade clculode Microsoft Excel 4.0.
13 WKS de Lotus 123: Exporta el informe como una hoj a de clculo de formato WKS
de Lotus 123.
14 WB1de Quattro Pro 5.0: Exporta el informe como un archivo de formato WB1de
Quattro Pro 5.0.
15 RTF: Guarda los datos en Formato de texto enriquecido.
16 Word para DOS: Usa el formato de Microsoft Word para DOS para guardar los
datos del informe.
17 Word para Windows: Utiliza el formato de Microsoft Word para Windows para
guardar los datos del informe.
18 WordPerfect: Usa el formato de WordPerfect para guardar los datos del informe.

^ 5

CAPTULO XI:

Creacin de Reportes

A C T IV A R E L R E P O R TE

Para activar un reporte desde una aplicacin, primero debe de dibujar


en dicha aplicacin el control Crystal Report que en la ventana de
componentes se llama: C rystal R eport C on trol y asignarle en su
propiedad R ep o rtF ileN a m e el nombre del archivo de reporte
previamente creado y que usted desea imprimir. Este control tiene un
slo tamao y al ejecutar la aplicacin no se visualiza en el formulario.
El resto de controles dependen de la aplicacin que desea crear.
IT E L E F O N O "

T5T>n

PRINTFILENAMF,
CODIGO
005
010
007
004
009
001
006
008
003

Especifica el nombre del archivo donde va a guardar el reporte cuando ha seleccionado


el destino a un archivo. Acepta tambin una ruta para el archivo.
WIMX)WSiATE

Se utiliza cuando el destino del reporte es Windows (A la ventana - Presentacin


Preliminar) para indicarci tamao de dicha ventana:
0=Normal
La ventana Vista previa no aparece ni minimizada ni maximizada. Aparece con un
tamao y posicin definidos anteriormente por su aplicacin o por Windows.
1= Minimizada
La ventana Vista previa aparece minimizada como un icono junto a la esquina
inferior izquierda de la pantalla. Se puede restaurar para presentar la ventana en
estado normal.
2 - Maximizada
La ventana Vista previa est maximizada si cuando est abierta ocupa toda la
pantalla.

NOMBRE
DANTE MILLAN
GREGORIO DARIO
JORGE ARMANDO
JORGE CASTRO
JUAN ANIBAL
JULIO DAVI LA
ILUZ ANGELICA
MARIA JULIA
NOEMl MONTAO

1 n : .......................................

TELEFONO
666364
265485
162548
201665
696963
232426
205056
366987
242126

. . ....................................

------

^
|

3?
IM P R IM IR

Si desea que al hacer un click en el botn IMPRIMIR, se active el reporte,


entonces debe escribir en el botn las siguiente instruccin:
CrystalReportl.Action = 1
n

Jn[EJ

E JE M P LO D E R E P O R T E

LISTA D O O E

f*LEA D O S

zJ

COt>l O f CT1 Efll


I
JULIO D A V L *

TER ES.-VfjBXl-CjS

MOTA fTO
J
JC-E CASTRO
S
DAKTE tATLL-4V

IHj'ZAfAJELKA
?
JOprJEARMANDO
S
MARV. JC/LV4

WINDOWSUTLE

Indica el ttulo que debe tener el reporte cuando se muestre en una ventana.
WINDOWCONTROLS

Especifica si los controles de impresin van a aparecer o no en la ventana de Impresin


cuando se muestre el informe en una ventana.

y g g jl' G

r po

d it o r ia l

OftEOCCOCWRKi

Megabyte

457

CAPITULO XII

o
u

I
<&
O
O

P
z -

A:

- - **-s. . '

<!

r
CAPITULO XII:

Programacin ADO

PROGRAMACION ADO

La mayora de los nuevos controles de la versin 6.0 de Visual Basic nos


ayudan a conectarnos a diferentes tipos de bases de datos de manera muy
sencilla. Por ejemplo, si tiene una base de datos creada en Visual FoxPro,
Power Builder, SQL Server, etc, usted puede manejarla en el Visual Basic
como si la hubiese creado en este mismo programa y cualquier modificacin
que haga a estas bases de datos se visualizarn cuando las abra en su
programa original de creacin.
Los nuevos controles se llaman Objetos de Datos ActiveX (ADO) que
tienen adems la ventaja de realizar conexiones Locales o conexiones
Remotas muy fcilmente.
La C onexin L ocal se realiza cuando la aplicacin (program a) que
desarrollas y la base de datos que maneja se encuentran en la misma
computadora.
La Conexin Rem ota se realiza cuando la aplicacin que desarrollas y la
base de datos se encuentran en computadoras diferentes.
Para poder acceder a una base de datos desde el Visual Basic con los
controles ADO, primero se debe preparar o configurar la conexin, la cual
se puede realizar con:
ODBC:
Significa Conexin de Base de Datos Abierta y nos ayuda a conectarnos a
una gran variedad de base de datos. El Windows tiene su controlador de
Base de datos ODBC.
A R C H IV O DE VN CU LO DE DATOS - O L E DB:
Perm ite alm acenar en un archivo con la extensin (*.UDL) toda la
informacin de conexin a una base de datos. En estos archivos podemos
crear vnculos de datos para cualquier proveedor de 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

d it o r ia l

Megabyte

461

CAPTULO XII:

W&m VISUAL BASIC como debe ser...

CONFIGURAR LA CONEXIN DESDE EL WINDOWS


ODBC

1. Ingrese al Panel de Control (Inicio, Configuracin, Panel de Control) y


haga doble click en el icono Fuente de Datos ODBC. Se visualiza la
ventana de Administracin de Orgenes de Datos ODBC con todos los
orgenes de datos ya creados.
yTI

II 9

K&
W '

"i
__i

'

La siguiente ventana que se visualiza, depende del tipo de base de datos


elegido. Por ejemplo, al elegir Microsoft Access Driver (*.MDB) y hacer
click en el botn Finalizar. Se visualiza la ventana de instalacin de ODBC
para Microsoft Access.

#4
^ 1
* a r 's s *
tO
sa
M J
, L

3. La eleccin del controlador depende del tipo de base de datos a la cual


le desea crear el origen de datos. Por ejemplo. Si a creado la base de
datos en Microsoft Access o en el mismo Visual Basic debe elegir
Microsoft Access Driver (*.MDB). Si a creado la base de datos en
Visual FoxPro debe elegir Microsoft Visual Foxpro (*.DBF). Si a creado
la base de datos en Power Builder debe elegir Microsoft SQ1 Any Were,
si la base de datos esta en SQL Server elija el control SQL Server, etc.

I' I
Mi' .~3B

Ewvarfo.* Ayu<ij

f_________ L

Programacin ADO

'3P

t?

Instalacin de ODBC para Microsoft Access

L ili

Nombre d<?l rigen do dalos


Dcciipciti

Ba.odcdotu,

M. PC

Se puede crear tres tipos de orgenes de datos:


O rgenes de Datos de U suarios (DSN de Usuarios)
Los cuales se pueden ver y utilizar slo en el equipo donde los crea y por el
usuario que los crea.
O rgenes de Datos de Sistem a (DSN de Sistema)
Los cuales se pueden ver y utilizar por todos los usuarios de la computadora
donde se crea.
O rgenes de D atos de A rchivo (DSN de Archivo)
Los cuales permiten conectarse a un proveedor de usuarios y por lo tanto se
pueden utilizar por todos los usuarios que tengan instalado el mismo contro
lador. Estos orgenes de datos no necesitan estar dedicados a un usuario ni
ser locales en un equipo.
2. Seleccione el tipo de origen de datos que desea crear y haga clic en
botn Agregar. Se visualiza la ventana para seleccionar el controlador
del origen de datos.

Base de dalos;
Seleccionar. I

Ayuda

Compactai

eai...

; Bas d datos del sistema


Nr>giirv=i
C

g g c cfcs dato::

OpcionesI

Escriba el nombre que le desea asignar a su origen de datos que esta creando
y opcionalmente una descripcin. Este nombre que usted escriba, se utilizar
en los programas que desarrolle en Visual Basic para referirse a la base de
datos. Luego haga click en el botn Seleccionar para buscar la base de
datos para la cual esta creando el origen de datos.

EJ

S eleccionar b ase d e datos


Nom bre de base de datos

Directorios:

r.rn d b

c :\

Aceptar
Cancelar

r~l Archivos de progra


Q

C O N T A B IL ID A D

Q
Q

HH
IB M V J ava

_^J

3D B 2
j

J
L
J
NOTA: Para empezar a trabajar con los orgenes de datos se recomienda seleccionar
el origen de datos de Usuario.
462

ru po

d it o r ia l

M e g a b y te ^

Avanzado.. |

r u po

Enum erar archivos de tipo:

Unidades:

1Bases de datos A ccess ^ |

d it o r ia l

Megabyte

c: C E T D I

T ]

A yuda
P

Slo lectura

Exclusivo

R ed...

463

<1

S t ik ' VISUAL BASIC como debe ser. . .

CAPITULO XII:

Una vez que encuentra la base de datos, haga click en su nombre y luego en
el botn Aceptar. Regresar a la ventana de Instalacin donde debe hacer
click tambin en el botn Aceptar para regresar a la ventada de administracin
de orgenes de datos donde visualizar el nombre de su nuevo origen de
datos que ha creado.
o

I
Conmuto de condKorMt
1

SN de ratania
)
DSN do <

Otfghs de dalo^ do u iu a iio

Cmiliolddui

MS A c c e ;: Onlab.
Syba-^o
Svbat*
SyLvj
Sybase
Svbnso
yl:-

rivci I rrdfcJ
SQL Ai iywl icio 0.0
SQL Arn'whei 5 0
*501 Anvwt.<;re 5 O
SQL Anywl ieie S.O
SQL Anvwhere 5.0
ItA c ie s Olive r.rndb)
SQ1. Ariywt'

Programacin ADO

ARCHIVO DE VNCULO DE DATOS


Para crear un archivo de vnculo de datos haga click con el botn derecho
del mouse en cualquier parte libre del Escritorio o dentro de una carpeta en
el Explorador de Windows. Visual Basic busca en forma predeterminada
los archivos de vnculo de datos en la carpeta:
C:\Archivos de Programa\Archivos Comunes\SYSTEM\ole db\Data Link
Por lo tanto se recomienda hacer click con el botn derecho del Mouse
dentro de esta carpeta.
Se visualiza un men donde debe elegir la opcin Nuevo y luego la opcin
Microsoft Data Link.
_J Capeta
^

Un OI i r jr - n dr> dnlm Hn Honorio ODBC almi*7'en.s* nfoimacin ncmoa Hr>


cniu corloctato til piovoodoi do dalos indicado. Un Oiijjoo do dato* do
usuario sOlo so puede ver y utilizar en el eduipo otual.

Acceso directo

" ] 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
Basic.
Le recomiendo que practique nuevamente la creacin de los orgenes de
datos ODBC. Ver que cada vez es mucho ms fcil. Si desea borrar uno
que a creado, haga un clic en su nombre y luego en el botn Quitar.
MUY IMPORTANTE.
No es necesario que usted cree el origen de datos cada vez que necesita manejar la
base de datos. Estos orgenes de datos slo se crean una vez y quedan grabados en
su computadora.
Para visualizar los controladores que tiene instalados en su computadora,
seleccione la hoja Controladores:
rw i
DSN do usuai io
Controldoioi.......jj

Hoja de clculo de Microsoft Excel


t ] Presentacin de Microsoft PowerPoint
Microsoft Data Link

Se crear en form a autom tica el archivo: N u e v o M ic ro so ft Data


Link.U D L. Usted puede asignarle otro nombre si lo desea, pero respetando
la extensin UDL. Este nom bre que usted asigne se utilizar en los
programas que desarrolle en Visual Basic para referirse a la base de datos.
Luego haga click con el botn derecho de Mouse en el nombre de este
archivo y elija Propiedades para visualizar la ventana de configuracin de la
conexion.
mm
P r o p ie d a d * d e T i e n d a .U u L

G e n e r a l | P ro v e e rlo J . <

SN do arcl iivo

I
DSN do sitoina
SeQuiri nenio
]
Conjunto

Tipo:

Acerca de

Los contiuladoio- QDtlC instalado s on au si*loiVia so

Microsoft Data Link

I Ibir.-iciii

C.-\WINDOWS\Min IrHr.ir.

TcJinaPo:

166 bytes (166 bytes), 32,768 bytev utado:.-

I Orgafiigaci^ri

Version
3-/'.
,i 3711. OO
D3711.08
D8428.00
13711.
3.42S. 00
371 I OO
i 3/1 I 08
i 3/1 1 08
)8 4 2 8 . 0 0

ola.loi ODBC de Mu io w.
*oi. Aece.v* Pive I indi
soft dB aso D.voi ( dL.fl
'oil dBosoVFP Diivei f dbf)
isoft Excol Diivoi (K.xlsj
Iftoft FoxPro V I P Driver I* dtalj
oft ODBC lor O riolo
sol P.arado Driver (" db
soft Text Driver I iXI 1 c
io ff V iiu a l f oxPio Driver

>I Avoraci.. I t odo-, j

I iend*.UDl

Nombre MS DOS: TIENDA UDL


ooft Corpoicilit
oof I Cor poi<atic
o-iofl Coi por at ic

l ie->.:l..

J u i-v e s 1 d e .li ii .i.. Ic- /IJ IIII 1;* 31 . I A M

Modificado:

Jueves I dJunio do 2000 12:31:54 AM

$ o k > lot. tur *

O cu lto

* 7 M o d ilic jd u
LJn controlador ODBC permit. a lo." programan habilitado; de OD 13L.
obrpner inlorrnaciri 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

464

A .-~ e r' a i

ru po

d it o r ia l

Megabyte

ru po

d it o r ia l

Aceptar

Cancelar

Megabyte

465

w J i

CAPTULO XII:

mk.< '% VISUAL BASIC como debe ser.


En la hoja Proveedor se debe seleccionar un proveedor para el tipo de base
de datos que desea manejar en Visual Basic. Por ejemplo para una base de
datos creada en Access o en el mismo Visual Basic, debe elegir M icrosoft
J e t 3.51 4.0 O L E DB Provider. Si tiene creado un ODBC, utilice la
opcin M icrosoft O L E DB P rovider for ODBC D rivers.

Programacin ADO

C O N TR O LA D O :

Este control es muy similar al control data y permite conectarnos a una gran
variedad de tipos de base de datos a travs de los Archivos de Vnculo de
datos o de los ODBC. Cuando se dibuja en el formulario, tiene la misma
apariencia que el control Data, pero su nombre predeterminado es Adodc 1,
Adodc2, etc. dependiendo de la cantidad de controles que dibuje.
A dodd

Una vez que ha seleccionado el proveedor, active la hoja conexin cuya


pantalla depende del tipo de Proveedor elegido. Por ejemplo la siguiente
pantalla se visualiza cuando se ha elegido Microsoft Jet OLE DB Provider.
.0rwl j Provorlot

CotwxtM ) Avr>7.ado 1 T okos 1

,1infoim.-.o'inf

Para desarrollar una aplicacin que maneje una base de datos usando este
control slo 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
en su propiedad R EC O R D SO U R C E, donde se indica el origen de los
registros que normalmente es el nombre de una tabla o un texto que consiste
en una instruccin SQL.
Para visualizar en el cuadro de herramientas el control ADO y sus controles
compatibles, cree un nuevo proyecto en el modo C ontroles de VB
Edicin E m p resarial .
N u e vo p ro y e c to

IB
^3

<sv
Asistente para Administrador
aplicaciones... de asistent...
I A .'

SI
Addin

En esta ventana haga click en el botn Buscar (...) para seleccionar la base
de datos que desea utilizar en el archivo de vnculo y luego haga click en el
botn Probar Conexin. Se debe visualizar el mensaje:

SI
Proyecto de

St

Aplicacin US

datos

Sb

SI

DII de
docume...

Aceptar

Exe de
docume...

Ayuda

St

Aplicacin
DHTML

O
Controles de
VB Edicin...

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

]|

Esto indica que el archivo se ha creado correctamente y esta listo para


utilizarlo en Visual Basic y poder manipular la base de datos indicada.

Otra forma de tenerlos en el cuadro de herramientas es, abriendo la ventana


de componentes (Control+T) y activando la casilla respectiva. La casilla
del control ADO es: M icrosoft AD O data control 6.0 (OLEDB).

ru po

d it o r ia l

Megabyte

467

m m

CAPTULO XII:

VISUAL BASIC como debe ser...

USO DE LA PROPIEDAD CONNECTIONSTRING


1. SI YA C R E EL O R IG E N DE DATOS.
1.1 A R C H IV O DE V NCULO S
Si ya creaste una conexin usando un archivo de vnculos, en la
propiedad ConnectionString debes escribir: F IL E NAM E=Ruta y
nombre del Archivo.UDL
Por ejemplo: Si has creado un archivo de vnculos llamado VENTAS
en la unidad C:\SISTEM A, debes escribir: F IL E NAM E=C:\
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

ID S N =AG E N D A

< 1

2. SI NO HA CREAD O E L O R IG E N DE DATOS.
Para crear un origen de datos usando Visual Basic, haga click en el botn
con tres puntos que tiene la propiedad ConnectionString (... |). Se visualiza
la ventana anterior donde debe indicar el tipo de conexin a crear.
2.1 C R EA R UN A R CH IV O DE VNCULO S
Para crear un archivo de vnculos, seleccione Usar Archivo de
Vnculo de Datos y haga clic en el botn Examinar. Se visualiza la
siguiente ventana:
I...h

J M nJ Iri OJ

1.2 OD BC
Si ya creaste una conexin a tu base de datos usando ODBC, en la
propiedad ConnectionString debes escribir: D SN=Nom bre del
Origen de datos
Por ejemplo: Si has creado un origen de datos ODBC llamado
AGENDA, debes escribir: DSN=AGENDA
ConnectionString

Programacin ADO

MUY IMPORTANTE:
No debe haber espacios ni antes ni despus del signo igual (=) y si utiliza archivo
de vnculo, debe indicar tambin la extensin del archivo (.UDL).
Otra forma de indicar el origen de datos es haciendo Click en el botn con
tres puntos que tiene la propiedad ConnectionString ( ... |), se visualiza la
siguiente ventana:
[GwiM' :J
Oigen de conexin

1 Abrir 1

tJombro de ochivo f
lipa de archivo*:

Archivo" de Micro*oft Data Link (' "udij"

'

Cncola!

Pla cteai un aichivo <1vinculo de iWos tunvu tiaga clic con H botn
ecuridaiio del mouse en cualquier paire de Ia lis* de Archivo y, despuv.
seleccione Microsolt Data Lmk en el men Nuevo
Paia modificai I aichivo de vnculo de datos, hag$ doble clic ri I archiv.

En esta ventana haga clic con el botn derecho del Mouse, elija la opcin
Nuevo y luego la opcin Microsoft Data Link y siga los mismos pasos
indicados en la creacin de un archivo de vnculos desde el Windows.
Una vez creado el archivo, seleccinelo y haga click en el botn Abrir y
luego en el botn Aceptar.
2.2 C R E A R UN ODBC
Para crear un origen de datos ODBC, seleccione Usar Nombre de
Origen de Datos ODBC y haga click en el botn Nuevo. Se visualiza
la ventana:
ni i min ii n i b

____

Usar archivo de vnculo a datos

Sster..ckMvw un tipo d e origen d e da to s

t~ '

f* Q iijjen d e d a lo s d e arch iv o (equ ipo ind ep en den le}

Usai nombre de origen de datos ORBC

Origen d e d a to * d a u su a rio (< a p lic a ilo a a s te equipe-)

f"
Usar cadena de conexin

P jfl n d e d a to s d e siyiem (s e p lic a t lo a e v t* equipo)

______________

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 vnculo o un ODBC.


Si a creado un archivo de vnculo, haga clic en el botn Examinar para
buscar la carpeta y el nombre del archivo.
Si ha creado un ODBC, haga click en la flecha hacia a bajo del Combo para
seleccionar el ODBC.

468

ru po

d it o r ia l

M egabyte^

Siguiente

>j

Lancolar

En esta ventana seleccione el tipo de origen de datos a crear, y siga los


mismos pasos indicado en la creacin de ODBC desde el Windows.
| ||i |^

ru po

d it o r ia l

Megabyte

469

( l

% VISUAL BASIC como debe se r...

CAPITULO XII:

USO DE LA PROPIEDAD RECORDSOURCE

Programacin ADO

ERRORES MS COMUNES

La propiedad RecordSource se debe utilizar despus de ConnectionString y


se utiliza para indicar el origen de los registros. Cuando se ingresa a esta
propiedad, se visualiza la siguiente pantalla:

Cuando no se a escrito o seleccionado correctamente el origen de datos o


de los registros se visualizan varios mensajes de error, los cuales se indican
.1 continuacin con la finalidad de poder corregirlos en forma fcil y rpida.

ES3

GE
( 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


no se especific ningn controlador predeterminado

T ip o d e c o m a n d o
| 8 - adC m dU nknow n

Aceptar

T bla o nombre de procedim iento alm acenado

lil mensaje anterior se visualiza cuando el origen de datos indicado en la


propiedad ConnectionString no est creado, es decir, no existe en la
computadora donde se desea manejar la base de datos o escribi en forma
incorrecta la cadena de conexin. Por ejemplo, dej espacio antes o de
despus del signo igual (=).

Texto del coniando (SQL)

A yuda

En esta ventana, primero se indica el tipo de comando, es decir, cmo se


obtendrn los registros.
Tipo de com ando

|S - adCrndUnknown
8
1
2
4

- adC m diJnknow n
adCmdT ext
adCmdT able
- adCrndStoredProc

.................................

zJ

N o se p u e d e e n co n tra r XA.
c a p ta r j|

lil mensaje anterior se visualiza cuando el nombre del archivo de vnculo


indicado en la propiedad ConnectionString no existe.

Los tipos de comandos ms usados son:


[Microsoft][Controlador ODBC Micro soit Access] Instruccin SQL no vlida; se esperaba 'DELETE',
'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

* 1 -ad C m d T ex t,
Para que los registros se obtengan desde una instruccin SQL.
* 2-adC m dT able
Para que los registros se obtengan de una tabla.

Aceptar

La opcin 4-adC m dS toredProc se usa cuando se tiene un procedimiento


almacenado en el servidor y 8-adC m dU nknow n cuando el tipo de comando
es desconocido.
NOTA
Una vez que asign el origen de los registros; su base de datos, tablas y registros
estn listos para utilizarlos en cualquier aplicacin usando los controles
compatibles del control ADO, como por ejemplo: DataGrid, DataCombo, DataList,
TextBox, Label, etc.

l i l mensaje anterior se visualiza cuando en tipo de comando se eligi la


opcin 1-adCmdText y no se escribi correctamente la instruccin SQL.

[ADODC]: no se ha especificado ningn RecordSource. [AD0]:No se configur un comando para el


objeto comando

lil mensaje anterior se visualiza cuando no ha indicado el origen de los


registros, es decir, no se llen la propiedad RecordSource.

KM

470

r u po

d it o r ia l

Megabyte ^|

ru po

d it o r ia l

Megabyte

471

I M

CAPTULO XII:

VISUAL BASIC como debe ser.. .

OTRAS PROPIEDADES DEL CONTROLADO


El control ADO tiene muchas propiedades similares al control Data. Las
nuevas propiedades de este control son:
PE R SO N A L IZ A D O
Esta propiedad permite tambin asignar todos los valores necesarios para
que se realice la conexin a una base de datos. Se puede activar tambin
haciendo un click con el botn derecho del Mouse sobre el control ADO y
eligiendo la opcin Propiedades de ADODC. La pantalla que visualiza es
la siguiente: i-jj.im r u
E sa
KZ1
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 |

Origen de conexin

f~~ Usar archivo de vinculo a datos

Usar nombre de origen de datos 0>BC

1
Usar cadena de conexin

Otros atributos:

A c e p ta r

C a n c e la r

La forma de realizar una conexin en esta ventana se realiza de la misma


forma como se explic en las propiedades ConnectionString y RecordSource.
C U R SO R TY PE
Indica el tipo de cursor que se usa en un objeto recordset. Un cursor, es un
conjunto de registros que se obtienen como resultado de una consulta a una
base de datos. Los tipos de cursores disponibles son:
A doO penForw areO nly: Es el tipo de cursor predeterminado y es igual
que el cursor esttico, se diferencia porque slo permite desplazarse
hacia delante de los registros.
AdoOpenKeyset: (Conjunto de claves). Es igual que un cursos dinmico,
se diferencia porque no se pueden ver los registros que agregan otros
usuarios.
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
incorporaciones, cambios y eliminaciones que hacen otros usuarios
permanecen visibles y se admiten todo tipo de movimiento entre registros.
A doO penStatic: (Cursor Esttico). Consiste en una copia esttica de
un conjunto de registros que se puede usar slo para buscar datos o
crear reportes. Los cambios que hacen otros usuarios no son visibles.
472

ru po

d it o r ia l

M e g a b y t e ^

Programacin ADO

^ l

C U R S O R L O C A T IO N
Indica desde dnde se van a utilizar los cursores. Se puede elegir desde el
cliente (computadora de trabajo) o desde el servidor.
COM M ANDTYPE
Indica el tipo de comando para acceder a los registros. Se pueden seleccionar
las mismas opciones que se utilizan en la propiedad RecordSource.
LO CKTYPE
Permite establecer el tipo de bloqueo que deben tener los registros al
momento de acceder a ellos para modificarlos.
AdLockReadOnly:(Slo de lectura). Es el predeterminado y se caracteriza
porque no se pueden modificar los registros.
AdLockPessimistic: (Pesimista). Se caracteriza porque el programa hace
lo necesario para lograr la m odificacin correcta de los registros,
generalmente bloqueando registros en el origen de datos durante el proceso
de modificacin.
AdLockOptimistic: (Optimista). Se caracteriza porque el bloque se realiza
slo cuando se graba un registro con el mtodo Update.
AdLockBatchOptimistic: (Por lotes). Se caracteriza porque el bloque se
rea liz a slo cuando se graban varios reg istro s con el m todo
UpdateBatch.
U SE R N A M E
Indica el valor que representa a un usuario de un objeto recordset de Ado.
Cuando se proporcionan valores para UserName y la propiedad Password,
el control los utiliza para crear una cadena de conexin.
MODE
Indica los permisos disponibles que se tienen cuando se realiza una conexin.
C O M M A N D T IM E O U T
Se utiliza para indicar el tiempo que se debe esperar como mximo para un
comando de acceso a base de datos. Si transcurre dicho tiempo, se produce
un error. Las demoras pueden ser en el trfico de la red.
C O N N E C T IO N T IM E O U T
Indica el tiempo de espera para que se realice la conexin. El valor
predeterminado es 15 segundo. Si transcurre el tiempo indicado, se produce
un error.
M A X R EC O R D S
Indica el nmero mximo de registros que se pueden obtener al abrir la
conexin. El valor predeterminado es cero (0) que indica un nmero sin
lmite de registros.
G

r u po

d it o r ia l

Megabyte

473

< 1

VISUAL BASIC como debe ser...

CAPTULO XII:

CONTROLES COMPATIBLES CON ADO


Los controles compatibles con el control Data: DbList, DbCombo y DbGrid
no son compatibles con el control ADO, esto quiere decir que no se pueden
utilizar para mostrar la informacin de la base de datos que el control ADO
tiene conectada. En lugar de estos controles se utilizan DataList, DataCombo
y Datagrid. La ventaja es que sus propiedades RowSource, ListField y
DataSource si se utilizan y de la misma forma. Tambin se puede utilizar el
control TextBox, Label y otros. Cuando trates de utilizar un control
incompatible con el control ADO, se muestra el siguiente mensaje:

Programacin ADO

A PLIC A C IO N D ESA R RO LLA D A N 65


La siguiente aplicacin es un ejemplo del manejo de una base de datos,
tablas y registros usando la programacin ADO.
HHHHSBHHHSLioii

1 i i . M e n u P r in c ip a l
A rtc u lo s

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


control D a ta in trn 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
A c e p ta r

jj

Para trabajar con estos controles, cree un nuevo proyecto en el modo de Controles
de VB Edicin Empresarial o abra la ventana de componentes (Control + T) y
active la casilla del control que desea utilizar.

Esta aplicacin permite administrar una tabla llamada Artculos que se


encuentra en una base de datos llamada Tienda y esta grada en la unidad
I

M enu P rincipal
Artculos
Listado

Qrl+L

Mantenimiento Ctrl+M
Consulta
Ctrl+C

C O N TR O L D ATAG R ID

Salir

Este control es muy similar control DbGrid y permite mostrar varios registros
a la vez, para ello, slo le debe asignar su propiedad DataSource donde se
indica el nombre del control ADO.
Si no se encuentra en el cuadro de herram ientas, abra la ventana de
componentes y active la casilla de:
M icrosoft DataGrid Control 6.0 (OLEDB).

CONTROLES D A TA LIS T y D A TAC O M B O

Son similares a los control DbList y DbCombo y permiten mostrar el contenido


de un campo de varios registros. Para ello, debe asignarles como mnimo la
propiedad RowSource, donde se indica el nombre del control ADO y la
propiedad ListField, donde se indica el nombre del campo cuyo contenido se
desea visualizar.
Si no se encuentran en el cuadro de herramientas, abra la ventana de
componentes y active la casilla de:
M icrosoft DataLists Control 6.0 (OLEDB).

474

11! ! l

Ayuda

ru po

d it o r ia l

Megabyte

Qrl+S

1 9 /0 6 /0 0

10:18 a.m.

Visual Basic. Como debe s e r.

TFT! I

Las opciones se pueden elegir desde el men principal o desde la barra de


herramientas.
En la barra de estado se muestra la fecha actual, hora actual, nombre del
libro y un acceso a la calculadora.
La estructura de la tabla Artculos es:
Codigo
Nombre
Presentacin
ValorCompra
Vencimiento
G

ru po

d it o r ia l

Texto
Texto
Texto
Currency
Data/Time

Megabyte

5
30
20

475

CAPITULO XII:

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

Programacin ADO

FORMULARIO N g 0 2

D ESAR R O LLO DE L A A P L IC A C I N N 65
Cree un nuevo proyecto en el modo Controles de VB Edicin Em presa
rial para tener en el cuadro de herramientas los controles ADO. En este
proyecto debe estar compuesto por cuatro (4) formularios y un mdulo don
de se deben definir las variables que se usan en ms de un formulario:

En el formulario N 02 slo dibuje un control DataGrid, una etiqueta, un


botn de comandos y un control ADO.
mn

. L is ia d o d e A r t c u lo s

mam
|

j(General)

| (Declaraciones)

Public XCODIGO, XHOMBRE, XPRE3ENTACION As String


Puto1ic XVALOR As Currency
Puto1ic XFECHA As Date

1
^|

FORMULARIO N s 01
En el form ulario N 01 debe disear el men, la barra de herramientas y la
barra de estado, como se muestra en la pgina anterior. La creacin de
men se explica en la Pgina N 264, las barra de herramientas en la pgina
N268 (ToolBar) y las barras de estado en la pgina N181 (StatusBar). En
las barras puede utilizar cualquier grfico de su computadora. En la pgina
N 168 se explica cmo buscar grficos.
Instrucciones del F orm u lario N 01
Rem Opcin Listado
Rem Opcin Consulta
Prvate Sub Listado_Click()
Prvate Sub Consulta_Click()
Form2.Show 1 Listado
Form4.Show 1 Consulta
End Sub
End Sub
Rem Opcin M antenimiento
Prvate Sub M antenimiento_Click()
Form3.Show 1 M antenimiento
End Sub
Rem Instrucciones del control StatusBar
Prvate Sub StatusBar1_PanelClick(By Val Panel As MSComctlLib.Panel)
I f Panel.Index = 4 Then Shell c:\windows\calc.exe", 1
End Sub
Rem Instrucciones del control ToolBar
Prvate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLib.Button)
I f Button.Index 1Then Form2.Show 1 'Listado
I f Button. Index = 2Then Form3.Show 1 Mantenimiento
I f Button.Index = 3Then Form4.Show 1 Consulta
I f Button.Index = 4 Then End Salir
End Sub
NOTA:
El valor 1 (uno) despus de la palabra Show indica el formulario slo debe cerrarse
haciendo click en el botn respectivo.

476

r u po

d it o r ia l

M e g a b y te ^ ^ ^

Labell

|nl -I jA d o d c l

| r

1-

En la propiedad ConnectionString del control ADO escriba el nombre del


origen de datos creado para la base de datos TIENDA o cree uno nuevo y
en su propiedad RecordSource seleccione la tabla Articulos.
Al control DataGrid asigne en su propiedad DataSource el nombre del control
ADO, tambin puede asignarle otras propiedades como si se tratar del
control DbGrid.
IN STR U C C IO N ES D E L FO R M U L A R IO N 02
Instrucciones del botn C e rra r
Prvate Sub C om m andl_C lick()
Hide
End Sub
Instrucciones del F orm _A ctivate
Estas instrucciones permiten que al ingresar a este formulario el control
ADO se actualice y visualice las modificaciones realizadas a los registros
en otros formularios.
Tambin se muestra en la etiqueta N 01 la cantidad de artculos mostrados.
Prvate Sub Form_Activate()
A d o d cl .Refresh
Labell = Nde Artculo mostrados: & Adodcl.Recordset.RecordCount
End Sub
G

ru po

d it o r ia l

Megabyte

477

CAPITULO XII:

VISUAL BASIC como debe ser...


F O R M U L A R IO N 2

Programacin ADO

Al ejecutar el formulario debe tener el siguiente aspecto.

03

1) atoi dnl l'inducl

non El Articulo

En este formulario dibuje un control ADO, 2 DataCombo, 3 frame, 7 Label,


6 CommandButton y un control Calendar. Si el control Calendar no se
encuentra en el cuadro de herramientas, active su casilla en la ventana de
componentes cuyo nombre es: Microsoft Calendar Control y para dibujarlo
haga click primero en cualquier parte libre del formulario.

N ornt'.r

OSdijjo

Vokji -J Con h

J
I no nn i

in l I

lnnno4
Iononr.

~J

'

s iRiHmibles
,. . . .
Ambulo
A'-<uali*<w k>a doto dol Aitcuio

rrrr.

Lbl4

Labl'.
l.abnK.
!...at>ial7

~E 12000

jtJ

Commandl

Cornrr>arid2

I U JloComt
Conimand3
Cmmand4
Commands
Commands

03ZP

PR O PIED A D E S DE LO S C O N TR O LE S
RecordSource
ConnectionString
Artculos
Nombre del Origen de Datos

Control
Adodcl

RowSource
Control
DataCombo 1 Adodc1
Adodcl
DataCombo2

Enabled

Control
Frame 1
Frame2
Frame3
Control
Calendari

True

False
True
ShowTitle
False

Visible
False

A los otros controles asgneles las propiedades como se indica en el


formulario.

478

r u po

d it o r ia l

IMPORTANTE
Cuando se manejan base de datos con ADO, no se necesita usar el mtodo EDIT para
modificar registros porque un registros cambia automticamente al modo de edicin
cuando se empieza a modificar.
La programacin con ADO ya no utiliza el mtodo FINDFIRST. El nuevo mtodo es FIND.
M TO D O FIN D
Este mtodo permite buscar registros cuando se trabaja con ADO. Su sintaxis
es la siguiente.
Control_Ado.Recordset.Find Condicin, Valor1, Valor2, Valor3
Valor 1: Indica el nmero de registros que se debe saltar antes que se inicie
la bsqueda. Si se omite no salta ningn registro.
Valor2: Indica la direccin de la bsqueda que puede ser hacia delante
(adS earchF orw ard) o hacia atrs (adSearchB ackw ard). Si se omite, la
busqueda se realiza hacia delante.
Valor3: Indica la posicin inicial de la bsqueda. Escriba el nmero 1 (uno)
para empezar desde el primer registo.
Ejem plo: La siguiente instruccin busca el artculo llamado Panadol.
A d o d c l.R e c o rd se t.F in d N om bre = P anadoI , l

ListField
Codigo
Nombre
Presentacin
ValorCompra
Vencimiento

DataSource
Adodcl
Adodc 1
Adodcl
Adodc1
Adodc1

Control
Textl
Text2
Text3
Text4
Text5

Style
1-dbcSimpleCombo
1-dbcSimpleCombo

ListField
Nombre
Codigo

C A R A C T E R S T IC A D E L F O R M U L A R IO .
1. Este formulario permite dar mantenimiento a los registros, esto quiere
decir que se puede agregar nuevos artculos, actualizar sus datos o eliminar
cualquiera de ellos.
2. Se puede consultar un artculo por su nombre o su cdigo.
3. Cuando no existen registros el botn Eliminar y Actualizar se desactivan.
4. El control Calendar 1 se visualiza cuando se desea ingresar o modificar
la fecha de vencimiento.

Megabyte<

NOTA: Si el registro no se encuentra se activa el final (EOF) o inicio (BOF) de la


tabla dependiendo de la direccin de la bsqueda.
G

ru po

d it o r ia l

Megabyte

479

CAPTULO XII:

J1 1 I I> VISUAL BASIC como debe ser...

INSTRUCCIONES DEL FORMULARIO N"03


Definicin de variables en General Declaraciones
Dim r As String
Dim NUEVO As Boolean

Instrucciones del Form_Activate


Prvate Sub Form_Activate()
Actualiza el control Adocdl
A d o d cl.Refresh
Si no hay registros, desactiva los botones Actualizar
y Eliminar y no permite seleccionar registros.
If A dodcl. Recordset.RecordCount = 0 Then
Command4. Enabled - False
Commands.Enabled = False
Framel. Enabled = False
Else
Command4. Enabled = True
Commands .Enabled = True
Framel.Enabled = True
End If
End Sub

Private Sub DataCombol_Click(Area


D ataCom bol jC hange
End Sub

,16,"Puedeadiciomrlo"

As'

Integer)

Instrucciones del Botn Nuevo

Instrucciones del Botn Grabar

Private Sub Command3_Click()


Frame .Enabled = False
Frame2. Enabled = True
Frame3. Enabled = False
Adodcl.Recordset. AddNew
Indica Nuevo Artculo
NUEVO = True
Textl .SetFocus
End Sub

Private Sub Command I _Click()


Frame 1.Enabled = True
Frame 2. Enabled = False
Frame 3. Enabled = True
Adodcl.Recordset. Update
Command4. Enabled - True
Commands.Enabled = True
Framel.Enabled = True
End Sub

Private Sub Command2_Click()


Frame .Enabled = True
Frame2. Enabled = False
Frame3.Enabled = True
If NUEVO Then
Adodcl.Recordset. CancelUpdate
Else
Se devuelven los datos originales
Textl = XCODIGO
Text2 = XNOMBRE
Text3 = XPRESENTACION
Text4 = XVALOR
TextS = XFECHA
End If
Despus de cancelar se ubica en el Artculo
que estaba en pantalla.
A dodcl .Recordset. AbsolutePosition=Adodcl .Recordset.Bookmark
End Sub

Instrucciones del Botn Actualizar

Instrucciones del DataCombo2


Private Sub DataCombo2_Change()
I f DataCombo2 - Then Exit Sub
r - Codigo Like
+ DataCom bol +
A dodcl .Recordset.Find r, , , 1
If Adodcl.Recordset.EOF Then
MsgBox NoexisteelArticuloconelcdigo + DataCombo2 +
A dodcl. Recordset. MoveFirst
End If
End Sub

, 16,

Puedeadiciomrlo

Private Sub DataCombo2_Click(Area As Integer)


DataCombo2 JChange
End Sub
480

Instrucciones del Botn Cancelar

Instrucciones del DataCombol


Private Sub DataCombol_Change()
If DataCombol =
Then Exit Sub
r = Nombre Like
+ D ataCombol +
Adodcl.Recordset.Find r ,, , 1
If A dodcl .Recordset.EOF Then
MsgBox No existeelArticulo + DataCombol +
A d o d cl. Recordset. Move First
End If
End Sub

Programacin ADO

r u po

d it o r ia l

Megabyte

Prvate Sub Command4_Click()


NUEVO = False
Fram el.Enabled = False
Frame2. Enabled = True
Frame 3. Enabled = False
Se almacenan los valores originales en variables
XCODIGO = Textl
XNOMBRE = Text2
XPRESENTACION = Text3
XVALOR = Val(Text4)
If IsDate(TextS) Then XFECHA = CDate(TextS)
Textl.SetFocus
End Sub

|||^

ru po

d it o r ia l

Megabyte

481

CAPITULO XII:

Instrucciones del Botn Eliminar


Private Sub Com mands_Click()
Dim Mensaje As String
I f Adodcl. Recordset.RecordCount - 0 Then
MsgBox No hay productos", 16, No se puede eliminar"
Else
Mensaje = Est seguro de eliminar el artculo + Chr(13) + Textl +
+ Text2
I f MsgBox(Mensaje, 36, CUIDADO) = 6 Then
Adodcl. Recordset. Delete
A dodcl.Recordset. MovePrevious
I f Adodcl.Recordset.BOF Then
Adodc 1. Recordset. Move Next
End I f
Pregunta si quedan registros
I f Adodcl.Recordset.RecordCount = 0 Then
Si no hay registros desactiva los botones Actualizar y Eliminar y la consulta
Command4.Enabled = False
Commands.Enabled = False
Frame I. Enabled = False
End I f
End I f
End I f
End Sub
Instrucciones del Botn Salir
Private Sub Command6_Click()
Hide
End Sub
Instrucciones de Text5
Visualiza el calendario cuando se ubica el cursor en Text5.
Private Sub Text5_GotFocus()
Calendar .Visible = True
End Sub
Oculta el formulario si se pulsa ESC
Private Sub Text5_KeyPress( Key Ascii As Integer)
I f Key Ascii = 27 Then
Calendar 1.Visible = False
End I f
End Sub
Instrucciones del Control calendarl
Cuando se selecciona una fecha se oculta el Calendario.
Private Sub C alendarl_C lick()
Text5 = Calendarl .Value
Calendarl .Visible = False
End Sub
p lp l>

482

ru po

d it o r ia l

Megabyte <1 1 1 1 1 1

Programacin ADO

FORMULARIO N s 04
En este formulario dibuje un control ADO, 2 DataCombo, 2 frame, 21
Label, 2 CommandButton y un control Calendar.
H - lc i| x |
Label!

jtToxl..

fil taCombol

n~-

L-aboM
LobolS

L oboli 7

Jun

L aboli O

L Aboil a

L oboli1

Lobelia

J l* uut

CommKl2 I

LoboCO
L abel13

...

1 2 . XA
ZL

"
.

- WI- K
i rr*

S B k > VISUAL BASIC como debe ser...

L Abeti 4
Z1.

PROPIEDADES DE LOS CONTROLES


Control
Adodcl

ConnectionString
Nombre del Origen de Datos

Control

RowSource
Adodcl
Adodc 1

DataCombo 1
DataCombo2

Control
Textl
Text2
Text3
Text4
Text5

RecordSource
Artculos

ListField

Style

Nombre
Codigo

1-dbcSimpleCombo
1-dbcSimpleCombo

DataSource

ListField

Adodcl
Adodc1
Adodc1
Adodcl
Adodcl

Codigo
Nombre
Presentacin
ValorCompra
Vencimiento

Control
Frame 1
Frame2
Control
Calendarl

Enabled
True
False
Visible
False

ShowTitle
False

A las etiquetas desde la N 15 hasta la N 21, asgneles en su propiedad


BorderStyle el valor 1-Fixed Single y en su propiedad Alignment el valor 1Right Justify.
A los otros controles asgneles las propiedades como se indica en el
formulario.
G

ru po

d it o r ia l

Megabyte

483

w M

vj^vM

' VISUAL BASIC como debe ser...

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 :

Doto dol P i oduc

Joooo.^

Presentacin
Val de Compra
l(5V (183K)
Preoio d o Compra
Utihd*d (29X1

IOOOOJ

P*cio uleVenta

00004
O
O

C
P
S

[.<!< l AdcKioi

Deacumito (105;)

I'VJmI

tcha do Vencimiento

;j|3/07/03

Actualizar lo* Dalot

CARACTERSTICA DEL FORMULARIO.


1. Este formulario permite visualizar los datos de cualquier artculo in
cluyendo campos calculados:
IGV: 18% del Valor de Compra.
Precio de Compra: Valor de Compra + IGV
Utilidad: 25% del Precio de Compra
Precio de Venta: Precio de Compra + Utilidad
Descuento: 10% del Precio de Venta
Precio al Publico: Precio de Venta - Descuento
Nmero de das para el artculo este vencido.
2 Si faltan menos de 30 das para que el artculo venza, se deben visualizar
en color rojo y si ya est vencido, debe visualizar la palabra Venci
do tambin con letras rojas.
3 Este formulario permite buscar al un artculo por su cdigo o nombre
y tiene la posibilidad de actualizarlo.
INSTRUCCIONES DEL FORM ULARIO N 03
Instrucciones del Form_Activate
Prvate Sub Form_Activate()
A dodcl. Refresh
I f Adodcl.Recordset.RecordCount = 0 Then
Command3.Enabled - False
Fram el .Enabled - False
El se
CommandJ. Enabled = True
Fram el .Enabled True
End I f

CAPTULO XII:

Programacin ADO
Instrucc. del botn Grabar

(nstrucc. del botn Actualizar

Private Sub Command 1_Clck()


Frame .Enabled = True
Frame2. Enabled = False
Command 1.Visible - False
Command2. Visible = False
Command^ .Enabled = True
Command4. Enabled = True
A dodcl.Recordset. Update
calcular
End Sub

Private Sub Command3_Click()


Command1.Visible = True
Command2. Visible = True
Command3. Enabled = False
Command4. Enabled = False
Frame.Enabled = False
Frame2.Enabled = True
XCOD1GO = Textl
X,NOMBRE = Text2
XPRESENTACION = Text3
XVALOR = Val(Text4)
If Not Texl5 = Then
XFECHA = CDate(Text5)
End If
Textl.SetFocus
End Sub
Instrucciones del botn Cancelar

Private Sub Command2_Click()


Framel.Enabled = True
Frame2.Enabled = False
Commandl .Visible = False
Command2. Visible = False
Command3. Enabled = True
Command4. Enabled = True
Se devuelven los datos originales
Textl = XCODIGO
Text2 = ANOMBRE
Text3 = XPRESENTACION
Text4 = XVALOR
Text5 = XFECHA
Adodcl. Recordset.AbsolutePosition =A dodcl. Recordset. Bookmark
calcular
End Sub
Instrucciones del DataCombol

Private Sub DataCombol_Change()


If DataCombol =
Then Exit Sub
r = Nombre Like + DataCombol +
Adodcl .Recordset.Find r,,, 1
IfAdodcl.Recordset. EOF Then
MsgBox "No existe el Articulo + DataCombol
Adodcl .Recordset. MoveFirst
End If
calcular
End Sub
Private Sub DataCombol_Click(Area As Integer)
DataCombol jChange
End Sub
G r u p o E d it o r ia l

Megabyte

16. Puede adicionarlo"

485

lllll

VISUAL BASIC como debe ser. . .

CAPITULO XII:

Instrucciones del DataCombo2

Programacin ADO

A P L IC A C I N D E S A R R O LLA D A N 66

Private Sub DataCombo2_Change()


If DataCombo2 = Then Exit Sub
r = Codigo Like
+ DataCombo2 +
A dodcl. Recordset. Find r, , , 1
If Adodc 1.Recordset.EOF Then
MsgBoxNoexisteelArtci(locoiielcdigo +DataCombo2+ ... ,16, Puedeadicionado"
A dodcl. Recordset. MoveFirst
End If
calcular
End Sub
Private Sub DataCombo2_Click(Area As Integer)
DataCombo2_Change
End Sub

Instrucciones del procedimiento Calcular


Sub calcular()
Dim f A s String
Dim dias As Long
/ = Formatf###.####,##0.00, (###,####,##0.00)")
valor = Val(Text4)
igv = valor * 1 8 /1 0 0
pcompra = valor + igv
utilidad - pcompra * 25 /1 0 0
pventa = pcompra + utilidad
descuento pventa * 1 0 /1 0 0
ppublico = pventa - descuento
Label 15 = Formatf igv, f)
Labell = Formatfpcompra, f)
Label 17 = Fo rmatfutilidad,f)
L abell8 - Formatfpventa, f)
Label 19 = Formatf descuento,f)
Label20 = Format(ppublico, f)
If IsDate(Text5) Then
dias = CDate(Text5) - Date
lfd ia s < = 0 Then L a b e l2 1 -"Vencido Else Label21 -CDate(Text5)- Date
if dias< ~ 30 Then
Label21.ForeColor = QBColor( 12)
Else
Label21.ForeColor = QBColor(O)
End If
Else
NOTA
Label21 =
End If
Las in stru ccion es de text5. C alendad
End Sub
y d el Botn Cerrar so n iguales al

i*. Men Principal


Art culos

Configuracin
Sistema
Presentaciones

Esta aplicacin es simi


lar a la anterior.
Funcio.
,
. i |
21/06/00
15:58
Visual Basic, Como debe ser... l
na con dos tablas mas:
Configuracin y Presentaciones.
La tabla Configuracin contiene slo un registro donde se encuentran los
datos que la aplicacin necesita para un buen funcionamiento y para un mante
nimiento ms rpido y fcil. Los datos que contiene son los siguientes:

ULTIM O CODIGO
Que indica cul es el ultimo cdigo generado y permite asignar en forma
automtica el cdigo que le corresponde a cada nuevo producto. La aplica
cin anterior permite que se ingrese manualmente el codigo para cada nue
vo artculo lo que puede ocasionar que se ingresen cdigo repetidos.
IGV
En este campo se indica cul es el porcentaje que la aplicacin debe utilizar
para calcular el IGV. La ventaja que tiene este campo es que si algn da se
cambia el porcentaje de IGV, slo se tendra que escribir el nuevo valor en
la tabla y la aplicacin trabajar con este nuevo valor sin necesidad de
modificar el programa.
U T ILID A D
En este campo se indica con qu porcentaje de utilidad debe trabajar la
aplicacin.
DESCUENTO
En este campo se indica con qu porcentaje de descuento debe trabajar la
________________________________
aplicacin.
En este formulario se confi
gura los datos del sistema.

Ddlui Aclu n l m
Ultimo CMigo

Im puesto Genei al a la s Venias 3


Utilidad A c tu a l A.
D o s t 'ionto Actual A

formulario anterior.

Instrucciones de Text4

Aceptar los Cambios

Private Sub Text4_Change()


calcular
End Sub

486

iQnorar los Cambios

<ctjtaiz;ar ios GOatos

ru po

d it o r ia l

Megabyte

r u po

d it o r ia l

Megabyte

487

tk>- VISUAL BASIC como debe ser.


La tabla Presentaciones es muy importante porque contiene todas las

CAPTULO XII: Programacin ADO


DESARROLLO DE LA APLICACIN N 66

presentaciones que se pueden asignar a los artculos. Esto permite que el


usuario ya no las escriba sino que las pueda seleccionar en forma rpida.
En este formulario se pueden agregar o quitar presentaciones.

Agregue a la aplicacin anterior el formulario N 5 (Configuracin), el formulario N6


(Clave para actualizar la tabla Configuracin) y el formulario N 7 (Presentaciones).

En el formulario N 1 (Men Principal) agregue la opcin Configuracin con dos


subopciones: Sistema y Presentaciones. Tambin debe dibujar en el centro de este
formulario un control Calendar y en su propiedad Visible asgnele el valor False,
slo se debe visualizar cuando se haga click en la fecha.

P o te
T ubo
B o ls a
T a b le t a s
A m p o ll a s
P a s tilla s

Instrucciones del Men Principal


Son similares a la aplicacin anterior

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
P r e s e n t a c i n

f-

Prvate Sub Consulta_Click()


Form4.Show 1
End Sub

ESTRUCTURA DE LAS TABLAS


Configuracin
UltimoCodigo
Long
Igv
Single
Utilidad
Single
Descuento
Single

Presentaciones
Presentacin Texto 20

OTRAS CARACTERISTICAS DE ESTA APLICACIN

Se pone a disposicin del usuario un calendario, el cual se activa cuando hace click
en la fecha de la Barra de Estado.
El programa de listado muestra tambin los campos calculado usando los valores
de la tabla Configuracin.
Se debe ingresar una clave para modificar los datos de la tabla configuracin.
El ingrese de nuevos artculos es consecutivo, es decir, cuando se graba un artculo
la computadora queda lista para ingresar uno nuevo, generndose automticamente
su codigo.
Cuando ubica el cursor en el DataCombo3 se muestra las presentaciones
automticamente.
Cuando ubica el cursor en el DTPickcr I se muestra el calendario automticamente.

488

Prvate Sub Listado_Click()


Form2.Show 1
End Sub
Prvate Sub Mantenimiento_Click()
Form3.Show 1
End Sub
Prvate Sub Presentaciones_Click()
Form7.Show 1
End Sub

MUY IMPORTANTE
En la tabla Configuracin adicione un slo registro con los valores que desea que
la aplicacin trabaje.
En la tabla presentaciones adicione todas las presentaciones que desea estn dis
ponibles para asignar a los artculos.

FORMULARIO N s 01

TT^l

fiv Presentaciones

< 1 ^

ru po

d it o r ia l

Megabyte

Prvate Sub Sistema_Click()


Form5.Show 1
End Sub

Prvate Sub StatusBarl_PanelClck(ByVal Panel As MSComctlLb.Panel)


If Panel.Index
If Panel. Index
End Sub

=
=

1 Then Calendar 1.Visible - True


4 Then Shell c:\windows\calc.exe, I

Prvate Sub Toolbarl_ButtonClick(ByVal Button As MSComctlLb.Button)


If Button. Index = 1 Then Form2.Show 1
If Button. Index = 2 Then Form3.Show 1
If Button.lndex = 3 Then Form4.Show 1
If Button. Index = 4 Then End
End Sub

Cuando se pulsa ESC en el calendario, este se oculta


Prvate Sub Calendar 1_KeyPress(KeyAscii As Integer)
If KeyAscii - 2 7 Then Calendar .Visible = False
End Sub
G

ru po

d it o r ia l

Megabyte

489

^ l l l l l l * VISUAL BASIC como debe ser...

CAPTULO XII:

Programacin ADO

^ P

FORMULARIO N s 02

FORMULARIO N g 03

En el formulario N 02, agregue un control ADO (Adodc2) y conctelo a la tabla


Configuracin para que los datos calculados se obtengan de los valores que contie
ne esta tabla.
Tambin agregue un control Frame con 6 etiquetas. Para que en Label3 se muestre el
Igv de la tabla Configuracin, en Label5 la Utilidad y en label7 el Descuento.

El diseo del formulario N 03 (Mantenimiento), es similar al de la aplica


cin anterior. Slo debe cambiar en la presentacin el control Text3 por el
control DataCombo3 para que el usuario pueda seleccionar la presentacin
del artculo y en la fecha de vencimiento, debe cambiar Text5 por el control
DTPickerl. Text3 debe usarlo para ingresar el Valor de Compra. Text4 y
Text5 se deben borrar. Al botn Cancelar cmbiele su propiedad Caption
por Salir. Los botones Grabar y Salir se visualizan cuando se agregan nue
vos artculos. Debe dibujar dos botones ms: Aceptar Cambios (Command7)
y Cancelar Cambios (Command8) los cuales se visualizarn cuando actua
lice los datos de un artculo. Esta parte del formulario N 03 debe quedar de
la siguiente manera:

IGV

------------- ^ ...................,

........ -

tNMad

- 3

Acaricida Crema >: P0 gr i Pole


Acancida Locin x E.0 mi fiasco
perniili X 20 Compnmido? i Caa
P i .a Cola'. 20 mi
i Fiasco
Paiwdol Aritigwal x M.i tafo i Cat*
<

Dwcuerto

5 00 o a
10.00 0 20

1020

13W 026
23.00 0 4G
4 i .i 0.08

13-26!
23.4G
4 00

510

6.33
12 75

1.29
2.55
3 32
5.87

1 02

064:
1 23

i$.5a

2133
510

2V
0.51!

5.7 30/ 06/02


11 4907/ 01/03
14.9219/ 01/02
26 3$ 16/ 10/02
4.58 30/ 12/01

Tpi
i 73P.

i 327
i 574
i 844
:*/.u

............................... i .....: ..................

N* d A ll (culo axb ad o i: 78

[h|<|m~h >|i|u|jiJ.i.t-' [>JmJ

Prvate Sub Forrn_Activate()


Dim texto, f A s String
f = Formatf###,####,##0.00, (###,####,##0.00)'')
Adodc2.Refresh
Cambia el tipo de Comando para poder utilizar instrucciones SQL
Adodcl.Command.Type = adCmdText
Almacena en las etiquetas los valores de configuracin
Label3 - Adodc2.Recordset!lGV& %
Labe 15 = Adodc2.Recordset!UTILIDAD & %
Label7 = Adodc2.Recordset!DESCUENTO & %"
Almacenaenvariables los valoresde la tablaconfiguracinpara realizarlosclculos.
I = Adodc2.Recordset!IGV /1 0 0
U = Adodc2. Recordset! UTILIDAD /1 0 0
D = Adodc2. Recordset!DESCUENTO /1 0 0
InstruccinSQLparaloscamposcalculados. Escribatodoenunasolaltea
Adodcl.RecoidSowee= selectCodigo,no>ribnj,pmerttacion,vaorcompra,valoivompra* &I& asIGV
vaIorconipm+igvas[PreeioCompra],[PrecioCompra]*&U& asUtilidad,[PrecioCompraJ+Utilkbd
as [Precio Venta], [Precio Venta] * &d& as Descuento, [Precio Venta] -Descuentoas [PiecioPublico],
Vencimiento, vencimiento-#&Dale &' #as Diasfromartculos "
A dodcl .Refresh
Asignaunformatoy alineacina laderechapara las columnasquecontienenmeros
For X = 2 To 8
DataGridl.Columns(X).NumberFormat = f
DataGrid1.Colurnns(X).Alignment = dbgRight
Next X
DataGrid1.Caption = Listado de artculos al & Now
L abell = N de Artculo mostrados: & Adodcl.Recordset.RecordCount
End Sub

490

|T e xt2

N o m b re

Instrucciones del Formulario N 02

|| || ^

| t eKtl

C d ig o

ru po

d it o r ia l

Megabvte

1 D a ta C o m b o 3

P re s e n ta c i n

jT e xt3

V a lo r d e C o m p ra

F e c h a d e V e n c im ie n to

G rabar

1 2 0 /0 6 /0 0

A c e p ta r C am bios

S alir

C a n c e la r C am bios

A los cuatro botones asgneles en su propiedad Visible el valor False porque


slo se deben visualizar cuando se agreguen nuevos artculo o se actualicen
sus datos.

C O N TR O L D TP IC K E R

Este control permite tambin ingresar una fecha de manera personalizada.


Para visualizarlo en el cuadro de herramientas debe crear un proyecto en el
modo C ontroles de VB E dicin E m presarial o en la ventana de Compo
nentes activar la casilla: M icrosoft Windows Common Controls-2 6.0.
Cuando lo dibuja en el formulario toma la forma de un Combo y muestra la
fecha. Si desea ingresar la hora, asgnele en su propiedad Format el valor 2dtp Time.

ru po

120/06/00

"]

d it o r ia l

Megabyte

j 02:35:41

p.m.

-p

491

|>

VISUAL BASIC como debe ser. . .

Cuando ejecute la aplicacin debe hacer un click en la flecha para m irar el


calendario y si desea cam biar el mes, haga click sobre el nom bre del mes
y para cam biar el ao, haga click en el ao.
J u n io 2 0 0 0

28
4
11
18
25
2
D H

23
5
12
19
26
3
o y

30
6
13
20
27
4

31
7
14
21
28
5

1
8
15
22
29
8

- J

3
10
17
24
1
8

2
9
16
30
7

23/06/00

La fecha que selecciona se muestra en el control y se almacena en su propiedad Valu.


En este form ulario d e m anten im ien to tam bin d eb e d e agregar d o s con troles A D O . E l control
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 racin .
A l control D a ta C o m b o3 le d eb e asignar las propiedades:

RowSource ListField
A dodc2
P resentacin

DataSource D ataList
A dodcl
P resentacin

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 presentacin,


esta se grabe en la tabla A rtculos.
AI con trol D T P ic k e r l le d eb e asign ar las propiedades:

DataSource
A dodcl

D ataList
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 rtcu lo.


A l control T e x tl a sg n e le en su propiedad L ock e l valor True para q u e no s e perm ita ingresar
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 racin .

IN ST R U C C IO N E S D E L F O R M U L A R IO N 03
La programacin de este formulario slo vara en los siguiente controles:

Instrucciones del Botn Ingresar Nuevo A rtcu lo


Prvate Sub Command.3_Click()
Framel.Enabled = False
Frame2.Enabled = True
Frame3.Enabled = False
Command1.Visible = True
Command2. Visible = True
Adodcl .Recordset.AddNew
NuevoCodigo = Adodc3.Recordset!ultimocodigo + 1
Textl = Format(NuevoCodigo, 00000)
Text2.SetFocus
End Sub

492

ru po

d it o r ia l

Megabvte

CAPTULO XII: Programacin ADO


Instrucciones del Botn Actualizar

^ IP

Private Sub Command4_Click()


Framel.Enabled = False
Frame2.Enabled = True
Frame 3.Enabled = False
Command7. Visible = True
Command8. Visible = True
'Se almacenan los valores originales en variables
XCODIGO = Textl
XNOMBRE = Textl
XPRESENTACION = DataCombo3
XVALOR = Val(Text3)
XFECHA = DTPickerl
Text2. SetFocus
End Sub

Instrucciones del Botn Grabar


Private Sub Commandl _Click()
Graba el nuevo Artculo
A dodcl.Recordset. Update
Actualiza el campo "UltimoCodigo" de la tabla Configuracin
Adodc3. Recordset!ultimocodigo = NuevoCodigo
Adodc3.Recordset. Update
Prepara un nuevo registro
Adodcl.Recordset.AddNew
NuevoCodigo = Adodc3. Recordset!ultimocodigo + 1
Textl = Format(NuevoCodigo, 00000)
Text2. SetFocus
End Sub

Instrucciones del Botn Salir


Private Sub Commcind2_Click()
Frame 1.Enabled = True
Frame2. Enabled = False
Frame3. Enabled = True
Commandl. Visible - False
Command2. Visible = False
A dodcl. Recordset. Cancel Update
If Adodcl. Recordset. RecordCount
Command4. Enabled = False
Command5. Enabled = False
Frame 1.Enabled = False
Else
Command4. Enabled = True
Commands. Enabled = True
Framel.Enabled = True
End If
End Sub

ip

! ^

ru po

d it o r ia l

0 Then

Megabyte

493

CAPTULO XII: Programacin ADO


FORMULARIO N 2 0 5

VISUAL BASIC como debe ser...


Instrucciones del Botn Aceptar Cambios
Private Sub Command7_Click()
Frame!.Enabled - True
Frame2. Enabled = False
Frame3. Enabled = True
Command7. Visible - False
Command8. Visible - False
Adodcl.Recordset.Absolut ePosition- Adodcl.Recordset.Bookmark
End Sub

41111

Este formulario permite actualizar los datos del sistema. Su diseo es muy sencillo,
slo debe dibujar 4 etiquetas, 4 Cajas, 4 botones de comandos, un control Frame y
un control ADO. Al control ADO conctelo con la tabla Configuracin y a las cajas
de texto con el campo respectivo. Asigne el valor False a la propiedad ControlBox
del formulario y a propiedad Enabled del control Frame 1 para que no se pueda
modificar los datos hasta que se ingresa correctamente la clave. El aspecto final del
formulario debe ser:

Instrucciones del Botn Cancelar Cambios


Private Sub Command8_Click{)
Si cancela, se devuelven los datos originales
Textl = XCODIGO
Text2 = XNOMBRE
DataCombo3 = XPRESENTACION
Text3 = XVALOR
DTPickerl = XFECHA
Frame .Enabled = True
Frame2.Enabled = False
Frame 3. Enabled = True
Command7. Visible False
Command8. Visible = False
End Sub

O a lo * A c tu a le s
Ultimo Cdigo
Impuesto General e les Ventas
Utilidad Actual

A ceptar los Cambios

I 1-^ I ^

Ignorar los Cambios

I A d o d c l

Instrucciones del Botn Actualizar los Datos.

Private Sub DTPickerl_CloseUp()


Despues de seleccionar la fecha seenfoca el botn Grabar
Command. SetFocus
End Sub
Private Sub DTPickerl_GotFocus()
Cuando se ubica el cursor en DTPickerl se muestra el calendario
SendKeys IF4
End Sub

Instrucciones del Control Text3


Slo permite el ingreso de nmeros
Private Sub Text3_KeyPress(KeyAscii A s Integer)
lf(Chr(KeyAscii)< 0OrChr(Keyscii)> 9")AndKeyAscii O 8Then KeyAscii=0
End Sub
NOTA
Las instrucciones de los otros controles son igu ales a los d e la ap licacin anterior.
Las instrucciones del F o rm u la rio N" 04 (C onsulta) se desarrolla de la m ism a forma que el
Formulario N03, s lo debe de mostrar los cam pos calculados y permitir actualizar de los artculos.

Prvate Sub Form_Activate()


A dodcl .Refresh
End Sub

Instrucciones del Control DTPicker

ru po

2
3

Instrucciones del Form Actvate

Private Sub DataCombo3_GotFocus()


CucavoseubicaelcursorenDataConibo3se muestranlaspresentaciones
SendKeys "F4}"
End Sub

|Text

D escuento Actual

Instrucciones del Control DataCombo3

494

JTe xt

d it o r ia l

Megabyte-1

Prvate Sub Command3_Click()


Llama al formulario N6 para ingresar primero la clave
Form.Show
End Sub

Instrucciones del Botn Aceptar Cambios


Prvate Sub Command_Click()
A dodcl .Recordset. Update
Frame .Enabled = False
End Sub

Instrucciones del Botn Ignorar Cambios


Prvate Sub Command2_Click()
A dodcl. Recordset. CancelUpdate
A dodcl .Recordset. MoveFirst
Frame .Enabled = False
End Sub

Instrucciones del Botn Cerrar


Prvate Sub Command4_Click()
Hide
End Sub

ru po

d it o r ia l

Megabyte

495

l i l i l

VISUAL BASIC como debe ser...

CAPITULO XII:

Como se indica en las instrucciones del botn Actualizar los Datos, cuando
el usuario haga click en este botn se visualiza el formulario N 06 para
ingresar la clave. Su diseo consiste en un control Picture con el grfico que
usted desee, una etiqueta, una caja de texto y un botn de comando. Al
formulario asgnele en su propiedad BorderStyle el valor 0-None.

Programacin ADO

El control Command 1 permite borrar una presentacin, tiene en su propiedad Style


el valor 1-Graphical, en su propiedad Picture un grfico y en su propiedad Enabled
el valor False porque slo se active cuando se seleccione una presentacin.
Para adicionar una nueva presentacin escrbala en la caja de texto y pulse ENTER
para que se grabe.

Instrucciones del Form Actvate


Private Sub Form_Actvate()
'Si no hay nunguna presentacin se desactvate DataList 1
If A dodcl.Recordset.RecordCount = 0 Then
DataList .Enabled - False
E n d lf
End Sub

C lave de A c c e s o

Ok

Instrucciones del Control DataListl


Busca la presentacin seleccionada y activa el Commandl.

Instrucciones del Botn OK (Formulario N6)


En este ejemplo la clave es VISUAL.
Prvate Sub Com m andl_Click()
I f UCase(Textl) = VISUAL Then
Form5!Framel.Enabled = True
Else
Form5!Framel .Enabled = False
End I f
Textl =
Hide
E nd Sub

Private Sub DataList l_Click()


r = Presentacin = + DataList 1.Text +
Adodcl. Recordset. Find r ,, , 1
Commandl .Enabled = True
End Sub

Instrucciones del botn Borrar Presentacin (Grfico)


Private Sub Commandl_CIick()
A dodcl.Recordset.Delete
DataListl .ListField = presentacin
Commandl.Enabled = False
If A dodcl .Recordset.RecordCount = 0 Then
D ataListl .Enabled = False
E n d lf
End Sub

FORMULARIO N g 07
Este formulario permite ingresar o eliminar presentaciones para asignar a
los productos. Su diseo consiste en un control DataList, un Frame, una
etiqueta, dos botones de comandos y un control ADO. Al control ADO
conctelo con la tabla Presentaciones y el control DataList 1 debe tener en
su propiedad RowSource el nombre del control ADO y en su propiedad
ListField el cambo Presentacin.

-j.gi .sj
DataListl

Ingresar Nuevas Presentaciones


Presentacin

j Textl

Instrucciones del Control Textl


Permiten grabar la presentacin al presionar ENTER
Prvate Sub Textl_KeyPress(KeyAscii As Integer)
IfKeyAscii - 13 Then
If Textl <>
Then
DataListl .Enabled - True
A dodcl.Recordset. AddNew
Adodcl .Recordsetpresentacion = Textl.Text
A dodcl .Recordset. Update
Textl =
End If
E n d lf
End Sub

Instrucciones del botn Salir


::::::::: \

496

<| Adodd
G

Private Sub Commandl_Click()


Hide
End Sub

11
| : : : : : : : : :
r u po

d it o r ia l

Megabyte <

ru po

d it o r ia l

Megabyte

497

fM

CAPTULO XII:

f r VISUAL BASIC como debe ser.

El DataReport inicialmente esta compuesto por 5 secciones que se utilizan


para disear el Reporte.

EL DATAREPORT
El Visual Basic 6.0 tiene un nuevo control para crear reportes. Este control
se llama DataReport.
Para trabajar con el DataReport debe de adicionarlo
EraY0Cto
a su 4proyecto, para ello, haga click en la opcin
3 Agregar formulario
_
",
.
*
,
7
.
.
Agregar formulario m di
Proyecto de la barra de men y luego en Agregar
Agregar mdulo

D c ltc l

R c p O ft.

Agregar mdulo de dase


J f Agregar control de usuario
i a Agregar pgina de propiedades

i
Agregar DHTML Page
Agregar Data R eport

_________

Agregar WebClass
Agregar Data Environment
Agregar archivo,..

C trl+ D

Quitar F o rm i
^ R e fe re n c ia s ...
Com ponentes...

Programacin ADO

Seccin N 01 - DETALLE
Es la seccin principal porque aqu se indican los datos que se desea mostrar
en el reporte. Estos datos normalmente se obtienen de una o mas tablas
usando el control RptTextBox.
Seccin N 02 - ENCABEZADO DE PAGINA
Es la seccin que contiene el texto que se imprimir al inicio de cada pgina
del reporte. La informacin que se muestra en esta seccin es: Encabezado
de cada campo, N de pgina, etc.
Seccin N 03 - PIE DE PGINA
Es la seccin que contiene el texto que se imprimir al final de cada pgina
del reporte. Aqu tambin se puede mostrar el nmero de cada pgina, la
fecha y hora de impresin, etc.
Seccin N 04 - ENCABEZADO DE INFORME
Es la seccin que contiene el texto que se imprimir slo al inicio del Reporte.
Aqu puede mostrar el nombre de la empresa y comentarios sobre el reporte.
Seccin N 05 - PIE DE INFORME
Es la seccin que contiene el texto que se imprimir slo al final del Reporte.
Aqu puede mostrar por ejemplo algn resumen del reporte.
MUY IMPORTANTE
Al momento de crear el reporte no es obligatorio que utilice todas las secciones.

C trl+ T

Propiedades de Proyecto 1 ...

Si no visualiza la opcin Agregar DataReport, activa la ventana


de Componentes y en la hoja Diseadores active la casilla del
DataReport
Se visualiza la ventana para crear el reporte y en el cuadro de
herramientas se agrega una nueva seccin con los controles
que puede insertar en el reporte.

CONFIGURAR LA VENTANA DE DISEO DEL REPORTE


General
DataReport

Cuando agrega un DataReport a su proyecto puede asignarle el tamao


que usted desee y configurar su
N o - t
. Cl/H-H
ventana de diseo. Para ello haga
5
Otif V
click con el botn derecho en
cualquier parte de la ventana. Se

in s e rta r c o n tro l
mostrar un men contextual con
1-.fw tifi# ti'^'tbcfr'do r. :f - =_.e j ziupi
las siguientes opciones:
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
M ostrar e n c a b e z a d o o pie de p g in a

Si activa la ventana de Proyecto se visualiza el DataReport el cual al momento


de grabarse tiene la extensin *.DSR.
Proyecto - Proyectol

Fl

NOTA
Si regresa al formulario y no visualiza los
controles en el cuadrode Herramientas, haga
clicen lafichaGeneral.

a
' Proyecto 1 (Proyecto 1)
Formi (Formi)

498

V M ostrar c u a d rc u la
M ostrar reglas
> Forzar a la c u a d rc u la

ru po

d it o r ia l

Megabyte-1

O b te n e r e stru ctura
B orrar e stru ctura

Por ejemplo, si desactiva la opcin Forzar a la cuadrcula, los controles


se dibujarn con el tamao que usted desee. Tambin puede oculta o
visualizar secciones e insertar controles.
G

ru po

d it o r ia l

Megabyte

499

CAPTULO XII:

^ IIII^ VISUAL BASIC como debe ser...

CONTROLES DEL DATAREPORT


Los controles para crear reportes son muy similares a los controles que se
dibujan en un formulario incluyendo sus propiedades.
RptLabel: Permite insertar mensajes en el Reporte.
RptTextBox: Permite indicar los campos a mostrar en el reporte.
Rptlmage: Permite insertar imgenes en el reporte.
RptLine: Permite insertar lneas en el Reporte.
RptShape: Permite insertar figuras geomtricas en el Reporte.
RptFunction: Permite insertar funciones en el reporte.
Cuando dibuja en el reporte el control RptFunction en forma predetermina
da se muestra la funcin SUM que permite sumar campos numricos den
tro del reporte. Si desea usar otra funcin active su propiedad FunctionType
donde podr seleccionar adems las siguiente funciones:
1-RptFuncAve.- Para obtener el Praomedio.
2-RptFuncMin.- Para Obtener el valor Mnimo.
3-RptFuncMax.- Para obtener el valor Mximo.
4-RptFuncRCnt.-Para obtener la cantidad de registros.
5-RptFuncVCnt.-Para obtener la cantidad de registros en blanco
6-RptFuncSDEV.-Para obtener la desviacin estndar.
7-RptFuncSERR.-Para obtener el error estndar.
NOTA
Los controles se puede insertar en el DataReport desde el
cuadro de Herramientas o haciendo click derecho en la
ventana de diseo y eligiendo la opcin Insertar Control.
Los controles que estn disponibles depende de la sec
cin donde hizo click derecho.

Etiqueta
C uadro d e texto
Im age
L n e a
Forma

Nm ero actual d e pgina


Nm ero total de pginas
F ech a actual (formato corto)
F ech a actual (formato largo)
H o ra actual (formato corto)
H o ra actual (formato largo)
T tulo del informe

500

ru po

d it o r ia l

Megabyte<

Programacin ADO

^ ^

Tambin puede insertar o escribir cdigos predefinidos dentro del reporte


usando el control RptLabel:
%p : Muestra el nmero de pgina actual.
%P : Muestra el nmero de pginas que tiene el reporte.
%d : Muestra la fecha actual con formato corto.
%D : Muestra la fecha actual con formato largo.
%t : Muestra la hora actual con formato corto.
%T : Muestra la hora actual con formato largo.
%i : Muestra el ttulo del informe.

PROPIEDADES BSICAS PARA CREAR UN REPORTE


Las propiedades que necesita asignar para crear el reporte depende del
origen de los datos que quiera utilizar para el DataReport. Por ejemplo, si
desea utilizar un control ADO para que el DataReport muestre los registros
que contiene, slo necesita asignarle a travs una instruccin en su propiedad
DataSource del DataReport el nombre del control ADO y en cada control
RptTextBox que se use en la Seccin de Detalle escribir (no seleccionar)
en su propiedad DataField el nombre de cada campo cuyo contenido se
desea mostrar en el reporte.
Para cam biar los m rgenes del D ataReport utilice sus propiedades:
RightMargin(Derecho) LeftMargin (Izquierdo), BottomMargin (Inferior) y
TopMargin (Superior).
Para indicar el tamao inicial de la ventana del DataReport use su propiedad
WindowState.

MTODOS DEL DATAREPORT


SHOW
Muestra slo en pantalla el reporte (Vista Previa), pero contiene dos botones
en la esquina superior derecha que permiten enviar a la impresora el reporte
o exportarlo como tipo HTML para enviarlo a travs de Internet o de tipo
texto para leerlo desde otro programa.
PRINTREPORT
Permite enviar el reporte directamente a la impresora.
REFRESH
Permite actualizar el reporte.
EXPORTREPORT
Permite exportar el reporte como HTTML o texto.
HIDE
Permite ocultar el reporte,
l i l i l G rupo E d ito ria l Megabyte

501

CAPTULO XII:

VISUAL BASIC como debe ser. J f l j j j H H H A

# m

APLICACIN 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 aplicacin anterior agregue un nuevo formulario. Este formulario muestra


en un Datagrid los artculos, pudindolos seleccionar mediante una condi
cin que Ud, forme. Esta condicin puede ser mltiple, es decir, el usuario
puede hacer uso del operador AND (Y) o del operador OR (O) las veces
que desee y al hacer click en el botn IM P R IM IR todos los artculos que
se encuentran en el DataGrid se muestran tambin en el reporte.
. R e p o r te d e A r tc u lo s

Iniisi

I presentacin

Condicin
p r e s e n t a c i n = *F
Mostrar Todos

Mostrar con la Condicin

codioo
00006
00007
00002
00009
00010
00004

~1
AB-Broncol 300 IM
AB -Broncol 600 1M
Acaricida Locin x 60 mi.
Fenist Gotas Frasco 20 mi
Finistil Jarabe Frasco 100 mi
Pilka Gotas 20 mi

valorpmp.ra
9.5
12
10
13

Frasco
Frasco
Frasco
Frasco
Frasco
Frasco

Programacin ADO

io.
23

vencimiento
15/06/00
01/05/02
07/01/03
29/06/00
28/06/00
16/10/02

Los nombre de los campos se llenan automticamente en el Combo.


Cuando se selecciona el campo Vencimiento y ubica el cursor en
Textl para ingresar el valor, se visualiza el calendario.
Si elige el ValorCompra no se permite el ingreso de letras.
Al hacer click en el botn Aceptar, la condicin que el usuario forma se
almacena en una caja de texto para que se pueda editarla si lo desea.
Al hacer doble click en un campo los artculos se ordenan por dicho
campo.
Al mostrar los registros se muestra la cantidad total de artculos, la can
tidad de artculos mostrados y el porcentaje que representa del total.
El contenido de algunas etiquetas del formulario se pasan al reporte
(DataReport).
Si no se forma una condicin correcta se visualiza el respectivo mensaje.
D E SA R R O L LO DE LA A P L IC A C I N
1. D ib u jar los controles

EneoLJoM

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

Cem

I3 B 3 I

jjt DataReportl
Zoom U o o x

, ~E

MWBB?au

REPORTE DE ARTC U LO S A L 28/06/00


Condicin

P g in a N 1 d e 1

p re s e n ta c i n = 'F ra s c o '

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

00002

A c a ric id a L o ci n x 6 0 mi

F ra sco

1 0 .0 0

0 7 /0 1 /0 3

1 3 .0 0

2 9 /0 6 /0 0

Fenistil G o ta s F r a s c o 2 0

F ra sco

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

00004

Pilka G o ta s 2 0 mi

F ra sco

2 3 .0 0

16 /1 0 /0 2

00009

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 % )

P g in a s:

Hj<fP

502

lHj
G

ru po

d it o r ia l

Megabyte

2. Asignar las propiedades.


Al control Adocd 1 conctelo con la tabla artculos y al DataGrid 1 selec
cione el Adodcl en su propiedad DataSource.
Al los controles Adodcl y Calendar 1 asgneles en su propiedad Visible
el valor False.
Al resto de controles asgneles sus propiedades como se indica en la
aplicacin a desarrollar.
G

ru po

d it o r ia l

Megabyte

503

VISU AL BASIC como debe ser.

CAPTULO XII: Programacin ADO


INSTRUCCIONES D E L F O R M U L A R IO

DISEO DEL DATAREPORT


Agregue a la aplicacin un DataReport e inserte los controles y sus
propiedades para que tenga el siguiente aspecto:
| D a ta R e p o rt!
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

f Encabezado de inform e (Seccin4)


Encabezado de pgina (Seccin2)

R E P O R T E D E A R T IC U L O S A L % d
.Condicin : &qUetal

Pgina N- %p de %P

Presentacin

Cdigo

Valor de Compra

Codigo

Fecha de Vencimiento

P5S

4 Detalle (Seccin 1)
Presentacin

! Nombre

VlorCompra

_
Vencimiento

4- Pie de pgina (5eccin3)

--------

4 Pie de informe (Seccin5)

Instruccin del Botn Aceptar

E tiq u ta lo

En la seccin de encabezado de Pgina dibuje 9 etiquetas para los ttulos del


reporte. Por ejemplo, la Etiqueta 1 tiene en su propiedad Caption: REPORTE
DE ARTCULOS AL %d para que se muestre tambin la fecha. La etiqueta4
tiene en su propiedad Caption: Pgina N %p de %P, para que se muestre el
nmero de la pgina actual y la cantidad total de pginas.
La Etiqueta3 debe estar vaca para m ostrar all el contenido de Text2
(Condicin) del formulario.
La Etiqutalo tambin debe estar vaca para mostrar all el contenido del
Label2 del formulario.
En la seccin de Detalle dibuje 5 cajas de texto y escriba (no seleccione) el
nombre exacto de cada campo de la tabla cuyo contenido se desea mostrar
en el reporte.
Al control Text4 asgnele en su propiedad Alignment el valor 1-RptJustifyRight
porque los valores numricos se deben alinear por la derecha. Adems debe
asignarle en su propiedad DataFormat el Formato Currency con 2 decimales
y en Smbolo el valor None.

NOTA
Si desea mostrar campos calculados en el reporte, utilice el nombre que le asigna
en la instruccin SQL despus de la palabra AS.

^ ||||| ^

504

G rupo E ditorial

Instruccin del Forma Activate


Prvate Sub Form_Activate()
Llena el Combol con los nombre de los campos de la tabla Artculos
C om bol.Clear
F o rX = 0 To A dodcl.Recordset.Fields.Count - 1
Combol.Addltem Adodcl.Recordset(X).Name
N extX
Combol.Listlndex - -1 Deja en blanco el Com bol
'LlenaelCombo2conlosoperadoreslgicos. Dejeespacioantesydespusdel Operador
Combo2.Clear
Combo2.Addltem = : Combo2.Addltem <
Combol.Addltem > : Combo2.Addltem < =
Combo2.Addltem > = : Combol.Addltem < >
Combo2. Addltem like : Textl : Text2 =
A dodcl. Refresh
TR = Adodcl. Recordset. RecordCount
Label2=Deu>itotalde &TR& artculos, semuestran &TR& que representad100.00%"
End Sub

Megahvte <l l l i |

Private Sub Command 1JClickf)


Pregunta si el campo seleccionado es tipo Text
If Adodcl. Recordset(Combol.Listlndex).Type = 202 Then
'Pregunta si se eligi el operador LIKE
If Combo2. Listlndex = 6 Then
condicion - Combol + Combo2 +
+ Textl +
Else
condicion - Combol + Combo2 +
+ Textl +
End lf
End If
Pregunta si el campo seleccionado es tipo Date
lf Adodcl. Recordsetf Combol. ListIndex).Type = 7 Then
condicion = Combol + Combo2 + CDATE(' + Textl +
End l f
Pregunta si el campo seleccionado es tipo Currency (ValorCompra)
l f A dodcl .Recordset( Combo! .Listlndex). Type = 6 Then
Pregunta si el valor ingresado es un nmero
IflsNumeric(Textl) Then
condicion = Combo1 + Combo2 + Textl
Else
MsgBox Debe ingresarslonmeros 16, Haseleccionadoelcampo: &
Adodcl.Recordsetf Combo 1. Listlndex). Name
Textl = : Textl.SetFocus
End If
End If
Text2 - Text2 + condicion
End Sub

s lll* G rupo E ditorial

Megabyte

505

mm

CAPTULO XII:

^- VISUAL BASIC como debe ser.

Instruccin del Control DataGrid

Instruccin del Botn Y

Prvate Sub DataGridl_DblClick()


Permite que al hacer Click en un campo se ordene p o r dicho campo
Adodc 1.CommandType = adCmdText
IfText2 = Then
Adodc .RecordSource = select *from artculos orderby & Adodcl .Recordset
(DataGrid .Col ).Name
Else
Adodc .RecordSource = select *from artculos where & Text2 & orderby &
Adodc 1. Recordsetf DataG rd l. Col). ame
E n d lf
A dodc 1. Refresh
End Sub

Prvate Sub Command2_Click()


Text2 = Text2 + "AND " Espacio antes y despus
End Sub

Instruccin del Botn O


Prvate Sub Command3_Click()
Text2 = Text2 + " OR " 'Espacio antes y despus
End Sub

Instruccin del Botn Borrar


Prvate Sub Command6_Click()
Text2 End Sub

Instruccin del Control Textl

Instruccin del Botn Mostrar con la Condicin


Prvate Sub Command4_Click()
On Error GoTo Mensaje
TR = Adodcl.Recordset.RecordCount
Indica que se va a utilizar una instruccin SQL
Adodc 1.CommandType = adCmdText
Adodc I .RecordSource - select * from artculos where + Text2
Adodc l.Refresh
RM Adodcl.Recordset.RecordCount
P = R M * 100/T R
Label2- Dewitotalde" &TR& artculos, semuestran &RM& querepresentan el
( & Round(P, 2)& %)"
Exit Sub
Mensaje:
MsgBox No ha indica una condicin correcta", 16, P orfavor verifique
End Sub

Instruccin del Botn Mostrar Todos


Prvate Sub CommandS._Click()
Indica que se va a utilizar una instruccin SQL
A dodcl .CommandType = adCmdText
Adodc 1.RecordSource = select * from artculos"
A do de I.Refresh
TR = A dodcl .Recordset.RecordCount
Label2- Dewitotalde &TR& artculos, semuestran &TR& que representa el100.00%
End Sub

Instruccin del Control Calendarl


Prvate Sub Calendarl_Click()
Textl - Calendarl. Valu
Calendarl .Visible = False
End Sub
506

Programacin ADO

ru po

d it o r ia l

M e g a b y t e < |j | |

Prvate Sub Text jGotFocus()


Pregunta si no se ha seleccionado el operador lgico
IfCombo2 =
Then
MsgBox Indique el operador para la condicin, 6, E rror
Text.Locked = True
Exit Sub
Else
Textl. Locked = False
E n d lf
Pregiaitasielcanposeleccionadocontiaieunafecluipara mostrarel Calendario
If sDate(Adodc.RecordsetfCombo.Listlndex)) Then
Calendar .Visible = True
End f
End Sub

Instruccin del Botn Im prim ir


Prvate Sub Command7_Click()
Asigna la propiedad DataSource del DataGrid a la propiedad DataSource de!
DataReport para mostrar en el reporte lo que se muestra en el DataGrid
Set DataReport.DataSource = DataGrid].DataSource
DataReport 1.Sections{2). Controlsf 3). Caption = Text2
DataReport l.Sectionsf 5).Controlsf l).Caption = Label2
Muestra el Reporte
DataReport 1.Show
End Sub
NOTA

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
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 ecfica m en te al control. La se ccio n es se enumeran de arriba hacia abajo. El en cab ezad o del
Reporte e s la prim era se cci n .
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
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
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.
Puede usar tam bin el nom bre d e cada control.

r u po

d it o r ia l

Megabyte

507

Ztt

CAPTULO XII:

VISUAL BASIC como debe se r.. .

El Data Environment (Entorno de Datos) es otra de las nuevas formas que


tiene Visual Basic para conectarse a una base de datos y permitir administrarla
mediante objetos ActiveX.
Si desea conectarse a una base de datos mediante el Data Environment,
debe de agregarlo a su aplicacin, para ello seleccione la opcin Proyecto
de la Barra de Men y luego Agregar Data Environm ent. Si no la visualiza
ingrese a la opcin Ms Diseadores A ctiveX o activa la ventana de
Componentes y en la hoja Diseadores active la casilla Data Environment.
Cuando agrega el Data Environment se visualiza la siguiente ventana:
P ro y ec to l - D ataE n viro n m en tl (D ataE n vironm ent)

> ,ld o |

1 1 1 1J M M

H L llE

fl k

2k

Agrega una nueva conexin

Agrega un nuevo Comando.

M.
M

Connection!

[1 ] o b je to s

Cuando se agrega el Data Environment se mostrar tambin en la ventana


del explorador de proyecto:
m

u m

. !x |

j B J2$ P ro y e c to 1 (P ro y e c to 1)
i l I B a E m l F o >f u i r1
C j F o rm i ( F o r m i)
N D isea dores

Inserta Procedimientos Almacenados


Agrega un Comando Secundario.

Elimina un Objeto de Data Environment

m
jki

Actualiza el Data Environment

J.

Muestra la Ventana de Propiedades

Muestra las Instrucciones

ill

Muestra la Ventana de Configuracin

Ibi

Organiza por conexiones

jk

Organiza por Objetos

?Hy] D a ta E n v iro n m e n tl

\%j P ro y e c to - P ro y e c to l

^ S

BOTONES DEL DATA ENVIRONMENT

DATA ENVIRONMENT

t |;

Programacin ADO

Muestra la Ventana de Diseo de instrucciones SQL

La conexin se realiza mediante el objeto Connection el cual representa la


conexin a una base de datos y se utiliza como un origen de datos.
Un comando se representa por un objeto Command y contiene las instruc
cin que realizan consultas a una base de datos para obtener los registros
que deseamos los cuales se almacenan en un objeto Recordset.
Los Procedimiento Almacenados son un conjunto de instrucciones SQL
precompiladas almacenadas con un nombre en una base de datos y se pue
den ejecutar con una llamada desde una aplicacin.
Un Comando Secundario forma Comandos Jerrquicos que consisten en
un comando que se encuentra dentro de otro. Al comando principal se le
llama Comando Primario y al otro Secundario y permiten mostrar conteni
dos de una tabla separados por grupos usando un campo determinado o
mostrar el contenido de varias tablas relacionadas.

D a ta E n v iro n m e n tl (D a ta E n v iro n m e n tl)

Cuando graba el Data Environment utiliza la extensin *.Dsr (Diseador).


508

G ru p o E d ito r ia l

M eg ab y te <l ||f |j j

NOTA:
Otra forma de acceder a las opciones anterior es haciendo click derecho sobre
cualquier objeto del Data Environment
lilil*

ru po

d it o r ia l

Megabyte

509

CAPTULO XII:

Wii Ufo VISUAL BASIC como debe ser...


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

Para desarrollar una aplicacin usando Data Environment tiene que utilizar
y asignarle propiedades por lo menos dos objetos de este diseador: El objeto
Connection y el Objeto Command.
En el objeto Connection se configura la conexin a la base de datos. Para
ello seleccione el objeto Connection y haga click en el botn Propiedades.
Se visualiza la siguiente ventana:
L-m-.'-n !- -.'-rriss

Programacin ADO

En el objeto Command se configura el origen de los registros. Seleccione


este objeto y haga click en el botn propiedades. Se visualiza la siguiente
ventana.
G ra x s s ia s m m e e e e e e e e e e e e e e e e
General | Parmetros ] Relacin ) Agrupar | Agregados ) Avanzadas j
Hombre do comando |Commari>.'l

Conejui'i: j Connection I

OiKjen de datos
*' Objoto do ase <1 datos: j PiocuUimit ii
Nombre de obiet-. |
: f

Intlnicctn SOI;

L.

Proveedoi J Conexin } Avanmdn ) 1odoi |

Cancelar

Seteccions los dato a Io que des c o n e l*te

Visual Basic asigna un nombre predeterm inado al objeto Command


(Command 1) y al Connection (Connectionl), si usted desea puede cambiarles
de nombre.

Proveedor(esJ de OLE OB
Microsoft Jet 3.Q1 OLE OB Provider
Microsoft Jet 4,0 OLE OB Provider
Microsoft OLE DB Ptovidai foi Internet Publbhhw
Microsoft OLE DB Piovidor foi OLAP Scivicoi
Microsoft OLE OB Provider for Oracle
Microsoft OLE DB Provider for SQL Sorvcr
Microsoft OLE OB Simple Provider
MS Remoto
MSDataS liape
Proveedor de Microsoft OLE DB para paquete-; DTS
SOL Server DTS Fiat File OLE DB Provide.

Siguiente >> )

Aceptar

Cancelar

Ayuda

Los pasos que siguen se explicaron en la pgina N 428 (Conexin mediante


Archivos de Vnculos - OLE DB).
Si ya tiene una conexin ODBC creada debe elegir la opcin Microsoft
OLE DB Provider For ODBC Drivers.
Una vez que estableci la conexin a la base de datos debe agregar un
objeto Command al objeto Connection. Para ello seleccinelo y haga click
en el botn Agregar Comando. Visualiza la siguiente ventana:
g Project! - DataEnvironmentl (D...

'! !

Infi

H0E3|
n|

u 1

En el cuadro Origen de Datos configure el origen de los registros. Por


ejemplo: En objeto de base de datos elija Tabla y en Nombre de objeto
seleccione el nombre de la tabla, o seleccione Instruccin SQ L y escriba la
instruccin SQL correspondiente para seleccionar los registros deseados.
Una vez que configur el origen de los registros, el Data Environment queda
listo para usarlo como origen de datos en cualquier objeto ActiveX incluyendo
DataReport.
En los c o n tro le s donde n e c e site in d ic a r la base de d ato s use
D ataEnvironm entl y donde necesite indicar la tabla use Cornmandl.

Por ejemplo:
Para desarrollar el siguiente listado , dibuje un D ataG rid y en su propiedad
DataSource indique DataEnvironmentl y en DataMember indique Cornmandl.
u L is ta d o d e A r tc u lo s c o n D a ta E n v iio n m e n t

ll DataEnvironmentl
-

3? Connectionl
0

Cornmandl

T - ! ! X ||

c o d iq o
0 0001

n o m b re
1 p re s e n ta c i n
A c a r ic id a C re m a x 6 0 gr : P o te

00002

A c a r ic id a L o c i n x 6 0 rrt F ra s c o

10

0 7 /0 1 /0 3

00003
00004

F e n is til x 2 0 C o m p rim id o C aja

13

1 9 /0 1 /0 2

P ilk a G o ta s 2 0 m i

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 aa

3 0 / 1 2 /0 1

00006

F ra s c o

1 v a lo rc o m p ra
5

A B -B ro n c o l 3 0 0 IM

F ra s c o

00007

A B -B ro n c o l 6 0 0 1M

F ra s c o

9 5 ................................
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

.............j

ru po

d it o r ia l

Megabyte *^1111

ru po

............................................................................

d it o r ia l

Megabyte

1 5 /0 6 /0 0

Comando: Cornmandl desde Connectionl

510

v e n c im ie n to
3 0 /0 6 /0 2

511

fa VISUAL BASIC como debe ser..

CAPTULO XII:

VENTANA D E D IS E O D E IN S T R U C C IO N E S SQ L
Si en el cuadro Origen de Datos elige la opcin Instruccin SQL, puede
escribirla en ese mismo cuadro, pero tiene la posibilidad tambin de hacer
click en el botn Generador SQL para ingresar a la ventana de diseo de
instrucciones SQL la cual permite escribir de manera personalidad las
instrucciones que necesita.

rea para las Tablas

Ventana de Vista de Datos

im .
ta si
J Vnculos d e datos
1 Conexiones del Entorno d e datos
.Ijifl Connection 1

Columna

Alias

1Tabla

jResul ad-l Tipo d e ord e n

1O r d e n

]Criterios

Area para los Campos rea de Instrucciones SQL

USO DEL DATA REPORT CON DATA ENVIRONMENT


Para crear un reporte usando el Data Environment debe agregarlo a su
aplicacin junto con el Data Report.
En el Data Environment debe de configurar la conexin a la base de datos
que desea utilizar en el reporte.
Despus de configurar la conexin debe asignarle al Data Report dos
propiedades : DataSource y DataMember.
En DataSource debe seleccionar el nombre del DataEnviroment que en
forma predeterminada es DataEnvironment 1.
En su propiedad DataMember debe seleccionar el nombre del comando
que en forma predeterminada es Com m andl.
Luego a cada caja de textos (RptTextBox) que dibuje en la seccin de
Detalle para mostrar el contenido de los campos debe asignarles como mnimo
dos propiedades: DataMember y DataField.
En su propiedad DataMember debe seleccionar el nombre del Comando y
en su propiedad DataField debe seleccionar el nombre del campo respectivo.
Una de las ventajas que tiene en el DataReport al usar DataEnviroment es
que usted puede pegar los campos desde este control al DataReport. Slo
necesita asignar un tamao y posicin a cada ventana de tal manera que se
puedan visualizar ambas al mismo tiempo:

r^a de Resultados
rea
CS

Las tablas que va a utilizar en la consulta las puede pegar desde la ventana
de Vista de datos. Haga clic en el signo + del objeto Connection y luego en
tablas para visualizarlas y poder pegarlas.
Los campos que desea mostrar los puede dibujar desde la tabla o tablas que
pega en el rea de tablas hacia el rea de los campos.
El rea de los campos permite tambin ordenar los registros y seleccionarlos
usando las columnas Tipo de Orden y Criterios respectivamente.
En el rea de Instrucciones SQL se va escribiendo autom ticam ente lo
que va diseado. Si usted desea puede m odificarla o escribir una nueva
instruccin SQL.
Para mirar los resultados de la instruccin SQL generada puede hacer click
derecho y elegir la opcin Ejecutar.
Si pega varias tablas puede relacionarlas arrastrando el campo clave de una
tabla a la otra.

512

ru po

Programacin ADO

d it o r ia l

Megabyte <|| ||

"i* "Sk %

1-j.laL.J i1-iiai

i1;*)

..ini

Cuando tenga ambas ventanas arrastre cada campo del objeto Command a la Seccin
de Detalle del DataReport. Cada campo se muestra con sus propiedades DataMember
y DataFiel ya configuradas y acompaada de una etiqueta a su izquierda que muestra
el ttulo del campo. Si desea puede mover esta etiqueta a la seccin Encabezado de
Pgina o borrarla.
Para ejecutar el DataReport slo necesita escribirDATAREPORT1.SHOW.
G

ru po

d it o r ia l

Megabyte

513

VISUAL BASIC como debe ser...

CAPITULO XII:

Programacin ADO

J P

EL CONTROL MSHFLEXGRID
USO DE COMANDOS JERRQUICOS EN MSHFLEXGRID
1. Mostrar los artculos agrupados por su Presentacin
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:
M icrosoft Hierarchical Flexgrid.
Para que el control MSHFlexGrid pueda mostrar informacin de un Data
Environment, debe asignarle en su propiedad DataSource el nombre del
DataEnvironment y en su propiedad DataMember el nombre del Command.
Para que el control MSHFlexGrid pueda mostrar informacin de un control
ADO, debe asignarle slo en su propiedad DataSource el nombre del control
ADO.
La ventaja de este control es que permite mostrar informacin de una manera
personalizada. Por ejemplo, puede m ostrar el contenido de Comandos
Jerrq u ico s (Pg.472) alm acenados en objetos R ecordset del Data
Environment.

Agregue a su aplicacin un DataEnvironment y a su objeto Connection 1


conctelo la base de datos Tienda (Pag N 438), luego agrguele un
objeto Command 1 y en su ventana de propiedades seleccione Instruccin
SQL para escribir la instruccin SQL que agrupe los artculos por su
Presentacin.
P ro p ie d a d e s d e C o m m a n d l
G en e ial

d e A r tc u lo A g r u p a d o s

~*]

Conexin: | C o n ne ctionl

Origen de datos

O bjeto de b ase d e datos: j

"3

N om bre d e objeto: [~

(* Instruccin 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
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

tt^ i

p o r P R E S E N T A C IO N

R elacin | Agrupar | A greg ad o s | A va n za d a s |

Nom bre de com ando: |C o m m andl

Por ejemplo: El contenido de la tabla Artculos lo puede mostrar agrupadas por la


presentacin, el ao de vencimiento, etc.:
m . L is ta d o

jParm etros |

1 2 /3 0 /0 1
6 / 3 0 /0 0

00 0 0 8

00011

Im portal x 6 S h a c h is
1/ 7 / 0 3

Frasco

000 04
000 06
00 0 0 7
00 0 0 9
00010

P ilka G otas 2 0 mi
A cep tar

A B -B fo n c o l 6 0 0 IM
Fenistil G otas F rasco 20 mi.
Finisti! Ja ra b e F rasco 1 00 rnl

00012

00 0 1 3

5 / 8 /0 2
9/1 6 /0 0

Fluida sa iny x 2 mi

C ancelar

Aplig

A yuda

Luego seleccione el objeto Commandl y haga click en el botn Agregar


Comando Secundario. Se visualiza la siguiente ventana:

00001

. Listado de A rtcu lo s Agrupados por AO DE VENCIMIENTO

A O CODIGO
00006
00008
2000 00009
00010

B
B

0 0013
2001 00005
00001

2002

NOMBRE
AB -B roncol 300 IM

Frasco

V enoruton Forle x 12 Comp.


Fenistil Gotas Frasco 20 ml.
FinistilJatabe Frasco 1 00 mi.

Frasco

Fluidasa iny x 2 mi
P anadol Antiqripal x GO tab

00003
00004

A caricida Crema x 60 gr.


Fenistil x 2 0 Comprimidos
P ilka G otas 20 mi

00007

A B -B roncol 6 00 IM

00011

Importal x 6 S hachets
Panalgin amp. x 2 mi

00012
2003 00002

A caricid a Locin x 60 mi.

PRESENTACIO N

VA LO R C O M P R A VEN C IM IEN TO
9.5 6 /1 5 /0 0

Caja
Frasco

13 6 /3 0 /0 0
13 6 /2 9 /0 0
10 6 /2 8 /0 0

Frasco
Caja
Pote

13 9 /1 6 /0 0
4 12 /3 0 /0 1

Caja

13 1 /1 9 /0 2

Frasco

23 1 0 /1 6 /0 2

5 6 /3 0 /0 2

Frasco
Caja

12 5 /1 /0 2
20 1 /1 9 /0 2
54 5 /8 /0 2

Frasco
Frasco

10 1 /7 /0 3

Comando: Command2 desde Connectionl

M.

514

ru po

d it o r ia l

M e g a b y te ^

||| |

ru po

d it o r ia l

M e g a b y te

515 T O

% VISUAL BASIC como debe ser...

CAPITULO XII:

Ingrese a la ventana de propiedades del Command2 y seleccione la


tabla Artculos, luego en la hoja R elacin agregue una relacin entre el
Com m andl y el Command2 por el campo Presentacin y al final haga
click en A ceptar.
Propiedades de Command2

2. M o stra r los artculos agrupados po r el Ao de Vencim.


Para que la agrupacin se muestre por el ao de vencimiento de cada Artculo
debe cambiar la propiedad del comando primario y secundario:
Propiedades de Commandl

Propiedades de Command2

Programacin ADO

Propiedades de Command2

General Parmetros Relacin ] Agrupar | Agregados Avanzadas |

General | Parmetros Relacin | A g r ia r ) Agregados ] Avanzadas |

Genefal Parmetros | Relacin | Agrupar | Agregados | Avanzadas

Nombre de comando: |Command2

F f jefacionat con un comando primaria

Nombre de comando: Commandl

Conexin: |

~*\

Comando primario: | Commandl

Origen de datos
Objeto de base de datos: Tabla

Campos primarios

Campos secundarios y
parmetros

General Parmetros | Relacin | Agupar | Agregados | Avanzadas


Nombre de comando: |Command2

---------------

C Objeto de base de datos: I


Nombre de objeto:

Nombre de objeto: [

C Instruccin SQL:

Aceptar

Ayuda

Ayuda

De esta manera el Comando Jerrquico (Commandl) queda listo para mostrarlo en


el control M SHFIexGrid. Para ello asigne en la propiedad D ataSource del
MSHFlexGrid el nombre del Data Environment y en su propiedad DataMember el
nombre del comando primario (Commandl). Para ver el listado ejecute su aplicacin.

En forma predeterm ina los grupos de registros se muestran en forma


Horizontal como se indica en la Pgina N 477. Si desea visualizarlos en
forma vertical, haga click derecho dentro de este control y en la hoja General
cambie su propiedad BandDisplay a Vertical.
Cuando utiliza el modo Vertical puede hacer uso de la propiedad Bandlndent
para indicar a partir de qu columna se debe visualizar los registros del
Comando Secundario. Para ello ingrese a la hoja Bandas y seleccione
primero en Band la Banda 1 (Command2) y luego en la propiedad Bandlndex
indique el N de la columna.
En la hoja Bandas tambin puede seleccionar los campos del Comando
Secundario que desea visualizar:

Aplicar

! Aceptar

SELECT
CODIGO.NOMBREPRESENTACION.VALORCOMPRA,VENCIMI
ENTO,YEAR(VENMIENTO) AS AO FROM ARTICULOS
ORDER BY VENCIMIENTO

Aplicar

Aceptar

Ayuda

INSTRUCCINSQLDELC0MMAND2
SELECT CODIGO, NOMBRE, PRESENTACION, VALORCOMPRA, VENCIMIENTO,
YEAR(VENCIMIENTO) AS AO FROM ARTICULOS ORDER BY VENCIMIENTO
La relacin se debe realizar por el campo calculado Ao:
P ropiedades d e Com m and2
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 )

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

C o m a n d o p rim a rio : j C o m m a n d l
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
p a r m e tro s

oorliqo J/iombre
Fenjlil x 20 Cornpiimidoi
I
I- .1.A.,! mimi . .1 x 1.(1 i ,|.
V e r . O H j I o n For t e x 1
Comp

1/ I 9/02
I . V :i j A11

G/3/00

T / T V / o ;?....

A c e p ta r

516

r u po

d it o r ia l

M e g a b y te " ^

Ayuda

INSTRUCaNSQLDELCOMMANDl
SELECT YEAR(VENCIMIENTO) AS AO FROM ARTICULOS GROUP BY
YEAR(VENCIMIENTO) ORDER BY YEAR(VENCIMIENTO)

C a m p o s p r im a r io s

PH ES EN TACIO N

. (* Instruccin SQL

< Instruccin SQL:


SELECT YEAR(VENCIMIENTO) AS AO FROM ARTICULOS
GROUP BYYEAR (VENCIMIENTO) ORDER BY
YEAR(VENQMIENTO)

Aceptar |

Concn: j

: Origen de datos.............

Origen de datos

C Objeto de base de datos [

Definicin de relacin

Nombre de objeto: Artculos

Conexin: |Connectn1

ru po

d it o r ia l

C a n c e la r

Megabyte

Ayuda

517

' VISUAL BASIC como debe ser...

CAPTULO XII:

Programacin ADO

Para crear el reporte anterior, puede disearlo de la siguiente manera:

REPORTE DE COMANDOS JERRQUICOS

% 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


Jerrquicos, slo tiene que agregar una nueva seccin mas al DataReport.
Esta seccin se llama GRUPO y para adicionarla debe puede hacer click
derecho en el DataReport y elegir la opcin Insertar Encabezado o Pie de
Grupo o una vez que asign las propiedades Datasource y DataMember al
DataReport hacer click derecho en l y elegir la opcin Obtener Estructura.
El encabezado de grupo lo debe configurar para que muestre la informacin
del Comando Primario (Com andl) y la seccin de detalle para que muestre
la informacin del comando secundario (Command2).
La seccin Pie de Grupo la puede configurar para mostrar un resumen de
cada grupo, por ejemplo, la cantidad de registros mostrados, la suma de
campos numricos, etc.
ifc D a t a R e p o i t l
jH

11

_b J

Zoom [loo*

il
................

Reporte de Artculos por Ao de Vencim iento

Ao de Vencimiento
2000

a-

Cdigo

Valor de Compra

Artculo
A B -Broncol 3 0 0 IM

9.50

1 5/06/00

F inisti J a r a b e F r a s c o 1 0 0 mi.

1 0 00

28/06I0

00009

Fenistil G o ta s F r a s c o 2 0 mi.

13.00

2 9/06 /00

00008

V en o ru to n F o rte x 1 2 Com p.

13.00

30/06/00

00013

Fluidas iny x 2 mi

13.00

16)09/00

Cantidad de Artculos:
2001

Cdigo
00005

5
Valor de Compra

Artculo
Pan ad o l Antigripal x 6 0 ta b

4.00

Cantidad de Artculos:
2002

Fecha de Vencimiento

00006
00010

Cdigo

Fecha de Vencimiento
30/12/01

1
Valor de Compra

Artculo

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

00007

A B -Broncol 6 0 0 IM

1 2.00

0 1/05/02

00012

P analgin a m p . x 2 mi

5 4.00

0 8/05/02

00001

A caricid a C rem a x 6 0 gr.

00004

Pilka G o ta s 2 0 mi

Cantidad de Artculos:

5 .00

30/06/02

2 3 .0 0

1 6/10/02

4 Encabezado de informe (ReportHeader?


4 Encabezado de pgina (PageHeader)

Reporte de Artculos por Ao de Vencimiento


A o de V en c im ie n to

4 Encabezado de grupo (Command 1Header)


AHO [C o m m a n d i]

Valor de Compra

Cdigo

4 Petate (Command2_DetaiQ________
CODIGO[Comrrianc] j

NOMBRE[Commanc]

VAl0f?C0MPRA [Commanc]

Cantidad de Artculos:

Fecha de Vencim iento

VENCMENT [Command2]

j RCNT ICommand21

4 Pie de pgina (PageFooterj


4 Pie de informe (ReportFooter

Seccin de Encabezado de Pgina


Esta seccin tiene dos Etiquetas una con el ttulo principal y la segunda con
el ttulo Ao de Vencimiento.

Seccin Encabezado de Grupo


Esta seccin tiene un control RptTextBox que m uestra cada ao de
vencimiento. En su propiedad DataMember seleccione Commandl y en su
propiedad DataField el campo calculado AO. El resto de controles son
Etiquetas con el ttulo para cada campo del Command2.
Seccin de Detalle
Esta seccin tiene cuatro controles RptTextBox que muestran el contenido
de los campos del Command2. En la propiedad DataMember de cada uno
de ellos seleccione el Command2 y en DataField el campo respectivo.
Seccin Pie de Grupo
Esta seccin tiene un control (RptLabel) con el ttulo Cantidad de Artculos
y un control RptFunction que muestra la cantidad de productos que se vencen
en cada ao. En su propiedad FunctionType seleccione 4-rptFuncRCnt, y
en su propiedad DataMember seleccione Command2.
NOTA
Usted puede cambiar el diseo de este reporte de acuerdo a lo que necesita y para
visualizarlo puede escribir dentro de un botn de Comandos del formulario la
siguiente instruccin: DataReportl.Show
Tambin puede hacer que semuestre automticamente cuando ejecute el proyecto,
configurndolo como objeto inicial (Proyecto/Propiedades del proyecto).

Pginas: H 4 |T ~

518

r u po

d it o r ia l

Megabyte 5|

f ^ j j ^

ru po

d it o r ia l

Megabyte

519

CAPTULO XII:

VISUAL BASIC como debe ser..

llill*

DESARROLLO DE LA APLICACIN

APLICACIN DESARROLLADA N 68
La siguiente aplicacin permite mostrar en un reporte el contenido de Co
mandos Jerrquicos que se forman de dos tablas: Vendedores y Ventas que
se encuentran en la base de datos llamada CONTROL y cuyas estructuras
son:
Vendedores
Codigo
Text 3
Nombre Text 30
Telefono
Text

Ventas
Codigo
Fecha Venta
Monto
Distrito Ven ta

10

Programacin ADO

Para desarrollar esta aplicacin agregue a su formulario un DataEnvironment


y un DataReport.
Al objeto Connectionl del DataEnvironment conctelo a la base de datos
CONTROL, luego agregue un comando (Commandl) e ingrese a su ventana
de propiedades donde se escribe una instruccin SQL que obtiene los datos
de los vendedores ordenados por su nombre:

SELECTCodigo,Nombre,TelefonoFROMVendedores ORDERBYNombre

Text
3
Date
Currency
Text
20

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 )

N o m b re d e c o m a n d o : | Commandl
j
1

Este reporte muestra tambin de cada vendedor la cantidad de ventas rea


lizadas, el monto total vendido y su promedio de ventas.

C o n e jji n :

| Connectionl

O rig e n d e d a to s
O b je to d e fease d e datos: j
N fim b ro d e o bje to : j
In s tiu c c i n S Q L :

fie n e r a d o r SQ L..

t t . D a ta e p o rtl
H J

e f]

1^

Z M m J jjlO O *
^

. 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
Codigo
003

Jos Portilla

228844
Fecha
15/01/00
16/02/00
20/02/00
10/03/00
22/03/00

N de Ventas

Total S/.

Distrito
Ferreafe
La Victoria
Chiclayo
Zana
Etem

Monto
200.00
300.00
150.00
500.00
450.00
1,600.00

Luego al C om m andl agrguele un com ando secundario donde debe


seleccionar Tabla en Objeto de base de datos y en Nombre de objeto
seleccione la tabla Ventas

Promedio S/.

G e n e ra l ] P a rm 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

LJom bre d e c o m a n d o : j C o rr.m w d 2

C onexin: }7

C rip e n d o d a lo s

[Tabla

~3

N o m b re d e o bjeto: VENTAS

320.00

In s tr u c c i n S Q L :

Codigo
004

Nombre
Liliana Carbonel

N de Ventas

Codigo
002

--------------------------------

Distrito

Fecha
21/01/00
01 /01 /OO

Monto
600.00
300.00

Reque
Motupe

900.00

Promedio S/.

Total S/.

Nombre
Hoemi Montano

M 'I

........

i .

224488

Fecha
12/01/00
14/01 /00
18/02/00
20/02/00

Aginas:HIT

- J .:u ffifc a

Telfono

450.00

A c e p ta r

C a n c e la r

Telfono
234878

Tambin puede seleccionar Instruccin SQL para obtener por ejemplo todos
los registros de la tabla Ventas ordenados por la fecha de ventas.
En el Comando Secundario ingrese a la pgina RELA C I N y agregue
una relacin con el Commandl por medio del campo Cdigo.
Para activar el Reporte escriba en el formulario D ataR eportLShow .

Distrito

Monto
50.00
150.00
500.00
200.00

Reque
La Victoria
Pimentel
Lambayeque

.........
G

ru po

d it o r ia l

Megabyte"

r u po

d it o r ia l

Megabyte

521

CONEXIN A UNA BASE DE DATOS


M E D AN TE INSTRUCCIONES
Para conectarse a una base de datos sin usar el control ADO ni el diseador
DataEnvironment, debe seguir los siguientes pasos:
1. Configurar al Visual Basic para que acepte la manipulacin los Objetos
de D atos A ctiv eX
mediante instrucciones. Referencias - Proyectol
Esto se realiza activando
Referencias disponibles:
la c a silla M icrosoft

ActiveX Data Objects


x .x
Library
en
P royecto /R eferen cias.

Intel Procedural Effect Library


JET Expression Service Type Library
LayoutDTC 1.0 Type Library
LM Library
Li Macromedia Shockwave Director Control 1
Microsoft Access 9.0 Object Library
Microsoft Active Server Pages Object Librar
Microsoft ActiveMovie Control
Microsoft ActiveX Data Objects (Multi-dimer
B Microsoft ActiveX Data Objects 2,1 Library
Microsoft ActiveX Data Objects 2.0 Library
Microsoft ActiveX Data Objects Recordset ;
Microsoft ActiveX Plugin
.
: p e r osoft Add-In Desianej

^ 1

CAPTULO X II: Programacin A B O


R E A L IZ A R L A C O N EXI N

: VISUAL BASIC como debe ser.

Prioridad
+

Para realizar la conexin se utiliza el objeto tipo Connection con la propiedad


ConnectionString y la forma de conectarse depende del origen de datos que
ha creado.
Por ejemplo:
1. Si tenemos un ODBC llamado Agenda y hemos definido el objeto DB tipo
Connection, las instrucciones para conectarse son: DB.ConnectionString

= D SN =A genda
2. Si tenemos un Archivo de Vnculo OLEDB llamado Ventas en la carpeta
C:\Sistema, y hemos definido el objeto DB tipo Connection las instrucciones
para conectarse son:
DB.ConnectionString = File Name=C:\Sistema\Ventas.UDL
Si no ha creado ningn origen de datos, tambin puede realizar la conexin
mediante una cadena de conexin. Por ejemplo, la siguiente instruccin se
conecta a una base de datos Microsoft Access llamada Practica.mdb.
DB.ConnedonString="Provider=Microsoft.Jet.OLEDB.4.0;DataSourcc=C:\I,radinuiull>"

A B R IR U NA C O N E X I N
Despus de realizar la conexin como se indic en el paso anterior, sta so
mantiene cerrada, si usted trata de utilizarla se visualizar el siguiente mensaje
Microsoft Visual Basic

2. Definir un objeto tipo Connection. Sintaxis:

Error 3709 en tiempo de ejecucin :

Ditti N om bre d el Objeto A s N ew A D O D B . Connection

La aplicacin solicit una operacin en un objeto con una referencia a


un objeto Connection cerrado o no vlido.

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 aplicacin,


estos objetos se pueden definir tambin a nivel de Mdulo usando la palabra
Public.
El objeto tipo Connection se utiliza para administrar la conexin a la base
de datos.
El objeto tipo Recordset almacena los registros que se obtiene de las tablas
de la base de datos donde nos conectamos para poder manipularlos en nuestra
aplicacin.
La palabra ADODB es un prefijo que contiene todos los objetos de datos
ActiveX. Se debe visualizar automticamente despus de escribir la palabra
New al definir los objetos. Si no se visualiza seguramente no activ la casilla
M icrosoft ActiveX Data Objects x.x Library en la opcin Proyecto/
Referencias.

522

r u po

d it o r ia l

Megabvte<|f|^

lerm inar

f epurar

Esto significa que antes de utilizarla, la debe abrir.


El mtodo OPEN permite abrir una conexin. Sintaxis:
O bjeto_T ipojC on n ection . Open

Por ejemplo para abrir la conexin almacenada en el objeto DB se debe


escribir: D B.O pen
Tambin se puede abrir e indicar el origen de datos o la cadena de conexin
al mismo tiempo segn el origen de datos que ha creado:
DB.Open "DSN=Agenda"
DB.Open File Name=C:\Sistema\Ventas.UDL
DB.Open Providei^Microsoft.Jet.OLEDB.4.0;DataSource=C:\Practica.mdb
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

CAPTULO XII:

ACCEDER A LOS REGISTROS

------------ ...
Para acceder y manipular los registros se puede utilizar el objeto definido de
tipo Recordset con sus propiedades mtodos que se explican a continuacin.
Otras de sus propiedades y mtodos se explicaron con el control ADO.
A C T IV E C O N N E C T IO N
Permite indicar al objeto Recordset la conexin desde donde se van a obtener
los registros. Por ejemplo, la siguiente instruccin le indica al Visual Basic
que los registros se van a obtener de la conexin configurada en el objeto
DB: RS.A ctiveC onnection = D B
SO U R C E
Esta propiedad se utiliza en lugar de Recordsource y permite acceder a los
registros a travs de una instruccin SQL o indicando el nombre de la tabla:

RS.Source= "select*fromartculoswhere year(vencimiento) = 2002"


RS.Source = artculos
OPEN
Es un mtodo que permite abrir el acceso a los registros
R S.O pen

En este mtodo tambin se puede indicar el origen de los registros, la


conexin desde donde se van a obtener los registros, el tipo de cursor
(CursorType) y el tipo de bloqueo (LockType). Por ejemplo, las instrucciones:
RS.ActiveConnection = DB
RS.Source = artculos
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic
RS.Open
Se pueden reemplazar por:
RS.Open artculos, DB, adOpenKeyset, adLockOptimistic

Programacin ADO

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.
N om bre del O bjeto R ecordset.C lose

SAVE

Permite grabar un Recordset en el disco. Si desea abrir posteriormente el


objeto use tambin el mtodo Open.
N om bre d el Objeto R ecordset.Save N om bre

Ejemplo: Las siguientes instrucciones muestran en un DataGrid el contenido


de un Recordset grabado con el nombre copia. Dibuje un DataGrid en su
formulario.
Dim DB As New ADODB.Connection
Dim RS As New ADODB.Recordset
DB.Open D SN =IN FO RM E
RS.Open SELECT * FROM Artculos WHERE ValorCompra<50",
DB, adOpenKeyset, adLockOptimistic
I f Len(Dir(COPIA, 0)) o 0 Then
I f M sgBox(Desea reemplazarlo, 36, Ya existe el
Recordset llamado COPIA) = 6 Then
Kill CO PIA
Else
Exit Sub
End I f
End I f
RS.Save C O PIA
RS. Cise
Set RS = Nothing
RS.Open C O PIA
Set DataGrid 1.DataSource = RS

CLONE

RE Q U E R Y
Permite actualizar los registros de un objeto Recordset.

Permite crear copia de un Recordset. La siguiente instruccin hace una


copia de RS en RS2:
Set RS2= RS. Clone

CLO SE
Permite cerrar un objeto Recordset liberando los recursos del sistema.
Cuando usted ciea el objeto Recordset o cualquier otro objeto, no lo elimina
de la memoria, para ello tiene que utilizar NOTHING..

Filtar los registros de un RecordSet. La siguiente instruccin filtra slo los


artculos que valen menos de 50 nuevos soles:
RS.Filter = ValorCompra < 5 0

N O T H IN G
Es una palabra clave que borra un objeto de la memoria. Sintaxis: Set Nombre
d el Objeto = N othing

524

ru po

d it o r ia l

Megabyte^

FILTER
SORT

Ordena los registros de un Recordset. Ejemplo:


RS.CursorLocation = adUseClient
RS.Open A rtculos, DB, adOpenKeyset, adLockOptimistic
RS.Sort = ValorCompra
Set DataGridl.D ataSource = RS
G

ru po

d it o r ia l

Megabyte

525

wm

VISUAL BASIC como debe ser...

CAPITULO XII:

INSTRUCCIONES DE LAAPLICACION

APLICACIN DESARROLLADA N 69
Esta aplicacin consiste en una consulta, listado y reporte para la tabla
artculos sin usar el control ADO, ni el diseador Data Environment.

listado

CZ
D a lo s d e l A r t ic u la
Cdigo

|A B -B o n c o l3 0 0 IM

Nombre

iFfasco

Pie:eriacin

V a b r de Com pia

Fecha de Venomieno

I 1 5 /0 6 /0 0

. Aplicacin tin el control ADO ni Data Erwuonment


C o n stila

c o dw o
00006

I nombre
' A B-Broncol 300 IM

00007

A B -Bronco! Fn IM

001X11

00002

00009

I V fii." bo?a: ' i a : . 0 2 J f

0 00 33

00010
00013
00011
nnnnS

l presentacin
i Frasco

Ivatorcom ora
9.5

i vencim iento
1 5 /0 6 /0 0

.......1 2 .........

0 1 /0 5 /0 2

- - ida Cremai k BO j r P qle

3 0 /0 6 /0 2

; ai*: >da _oc :n oU - sFrasco

10

0 7 /0 1 /0 3

13

2 8 /0 6 /0 0

f " ili !

F- :

JJ L m| r rnid

iz.co

!.. : i

Fri-I 1 i h f ' f . i
l^ r m c r
rsy
mi
Fiasco
1mportal 6 Shachets C sa
i P. ia /V i I AnlinrmA! v (-.l 1(" .*
F ^id a s a

y.2.

Definir los objetos en la General Declaraciones


Dim DB A New ADODB. Connection
Dim RS A s New ADODB.Recordset

Instrucciones del Form_Activate

i. Aplicacin sin el c o ntici ADO ni Data Environnent

A B-Bronci 300 !M
AB-Bioncol 600 IM
Acaricida Crema x 6 0 gi
Acaricida Locin x 60 m,
FemsW Gotas Frasco 20 mi
jFenisH x 20 Comprimido
Fn*stil Jarcbe Fiasco 1 00 mi
Ftadasa ir$ x 2 mi
Importal x$Shache*s
,
Panado! An#igr>al k SO tab J j

Programacin ADO

...... 13
in
13

r20
4

__

Instrucciones del control DataCombol

ist/ l M
2 8 /0 6 /0 0 .......
16/0 9/00
9 /0 1 /0 2
1 /1 VfH
_ J

l<

Prvate Sub Form_Activate()


Realiza la conexin
DB.Open DSN=VENTAS
RS.Open select *Jmmartculosorderbynombre",DB, adOpenKeyset, adLockOptimistic
Asigna las propiedades al Datacombol
DataCombo 1. Text =
Set DataCombol.RowSource = RS
DataCombo LListField = RS(l).Name
Asigna las propiedades a las cajas de texto
Set Textl .DataSource = RS
Set Text2. DataSource = RS
Set Text3. DataSource = RS
Set Text4. DataSource = RS
Set Text5.DataSource = RS
Textl.DataField = RS(0).Name
Textl.DataField - RS( 1 ).Name
Text3. DataField = RS(l).Name
Text4.DataField = RS(3).Name
TextS.DataField = RS(4).Name
Asigna las propiedades al D ataG ridl
Set DataGridl. DataSource = RS
End Sub

R e p o rte

En la primera hoja del control SsTab dibuje el control Frame, las etiquetas y
un control DataCombo y cinco cajas de texto. Al control DataCombol slo
asgnele el valor 1-dbcSimpleCombo en su propiedad Style.
En la segunda hoja del SsTab slo dibuje un control DataGrid y no le asigne
ninguna propiedad.
El Reporte diselo como se indica en la pgina N 467, pero slo con el
ttulo principal y las cajas de texto donde se indican los campos a visualizar
y sus respectivo ttulos.

Prvate Sub DataCombol_Change()


Dim R As String
R = NOMBRELIKE
+ DataCombol
If DataCombol < >
Then
RS.Find R ,, , 1
IfRS.EOF Then
Frame 1.Visible = False
RS.MoveFirst
Else
Frame 1.Visible = True
E n d lf
E n d lf
End Sub

Instruciones del SsTab_Click

Instruc. botn Reporte


Prvate Sub Commandl _Click()
Set DataReportl.DataSource=RS
DataReport 1.Show
DataReportl .Refresh
End Sub
G

ru po

d it o r ia l

+ **

Prvate Sub SSTabl_Click(PreviousTabAs Integer)


If PreviousTab = 1 Then
RS.MoveFirst
DataCombol =
E n d lf
End Sub

Megabyte

527

, fK W .

VISUAL BASIC como debe ser. . .

CAPTULO XII:

Programacin ADO

^ 1

EL METODO EXECUTE DEL OBJETO CONNECTION

INSTRUCCIONES SQL PARA CONSULTAS DE ACCIN

Este mtodo permite ejecutar instrucciones SQL sobre una conexin para
obtener y darles mantenimiento a los registros o a las tablas y crear Cursores.

D ELETE FROM
Esta instruccin permite borrar todos o slo un grupo de registros de una tabla.
Sintaxis para borrar todos los registros de una tabla:
D elete From Nombre de la Tabla

Puede ejecutar cualquiera de las instrucciones SQL ya explicadas y espe


cialmente instrucciones SQL para Consultas de Accin o Instrucciones DDL.
CONSULTAS DE A C CI N
La consultas de accin son un conjunto de instrucciones SQL que permiten
dar mantenimiento a los registros de una tabla. Las principales acciones que
se pueden realizar son:
1.
2.
3.

D B .E x ecu te(D elete fr o m A rtc u lo s)

IN ST R U C C IO N E S DDL
Son un conjunto de instrucciones del Lenguaje de Definicin de Datos que
permiten dar mantenimiento a las tablas de una base de datos. Las principa
les acciones que puede realizar son:
1. Crear tablas.
2. Modificar la estructura de las tablas.
3. Borrar tablas.

Dim DB As New ADODB.Connection


Dim RS As New ADODB.Recordset
DB.Open D SN =IN FO RM E
RS.Open SELECT * FROM Artculos ORDER BY ValorCompra
Set M SH FlexG ridl.D ataSource = RS
RS. Cise
Set RS Nothing
G

ru po

La siguiente instruccin borra slo los artculos que se vencieron en el ao


1999.
DB.Execute(Delete from Artculos Where Year(Vencimiento) = 1999)

IN S E R T IN T O
Permite insertar registros a una tabla existente desde otra tabla. La tabla
donde se van a adicionar los registros debe existir porque si no existe se
produce un error con el tiene el nmero -2147217865. Su sintaxis es:
Inser luto TablaDestno Select Campol,Campo2,...CampoN From TablaOrigen

Si se obtienen registros con el mtodo EXECUTE, se pueden almacenar en


un objeto Recordset. Por ejemplo, las siguientes instrucciones muestran en
un control MSHFlexgrid los artculos ordenados por el Valor de Compra.
Despus de cerrar el Recordset los registros se siguen visualizando.

528

Tenga mucho cuidado al utilizar esta instruccin porque los registros que
borra ya no se pueden recuperar. Se recomienda hacer una copia de segu
ridad antes usarla.
Ejemplo: Si tenemos el objeto DB conectado a la base de datos Tienda que
tiene la tabla Artculos, entonces:
La siguiente instruccin borra todos los registros de la tabla artculos:

Actualizar los valores de los registros.


Adicionar nuevos regi stros.
Eliminar registros.

ty

Sintaxis para borrar slo un grupo de registros:


D elete From Nombre de la Tabla W here Condicin

d it o r ia l

Megabyte^

La sintaxis anterior adiciona todos los registros de la tabla Origen a la tabla


Destino. Si desea adicionar slo un grupo de registros, debe utilizar Where
con la condicin al final de la instruccin. Ejemplos:
La siguiente instruccin adiciona todos los registros a la tabla Artculos a la
tabla Respaldo.
DB.Execute(Insert Into Respaldo Select codigo,nombre, presentacin,valorcompra,
vencimiento from Artculos)
La siguiente instruccin adiciona los artculos que tienen presentacin Caja
de la tabla Artculos a Respaldo.
DB.Execute(Insert Into Respaldo Select codigo,nombre, presentacin,valorcompra.
vencimiento from Articulos Whre Presentacin = Caja)
||||j j ^

ru po

d it o r ia l

Megabyte

529

- ^ | | |l

. BASIC como debe se r.. .

CAPTULO XII:

S E L E C T IN T O
Esta instruccin permite crear una tabla y adicionarle registros de otra
tabla. La tabla destino no debe existir porque de lo contrario se produce
un error que tiene el nmero -2147217900. Su sintaxis es:
Select Campo1,Campo2,...CampoNInto TablaDestino From TablaOrigen

Si slo desea crear la tabla y adicionarle algunos registros, debe agregar


Where y la condicin. Ejemplos:
La siguiente instruccin crea la tabla Seguridad y le adiciona todos los regis
tros de la tabla artculos.
DB.Executef Select codigo,nombre,presentacin, valorcampra, vencimiento Into
Seguridad From Artculos )

La siguiente instruccin crea la tabla Seguridad y le adiciona slo los artcu


los cuyo valor de compra es mayor que S/. 250.00
DB. Execute( Select codigo,nombre,presentacin, valorcampra, vencimiento Into
Seguridad From Artculos Where valorcompra > 250 )

Programacin ADO

INSTRUCCIONES DDL
Las instrucciones DLL significan Instrucciones de Lenguaje de Definicin
de Datos y son importantes por que con ellas podemos crear tablas, modifi
car la estructura de una tabla o eliminar toda una tabla incluyendo los regis
tros que contiene y su estructura.

CREATE

TABLE

Esta instruccin, como su nombre lo indica permite crear una tabla. Su


sintaxis es la siguiente:
Create Table Nombre de la Tabla(Campol Tipo, Campo2 Tipo,... CampoNTipo)

Ejemplo:
La siguiente instruccin permite crear una tabla llamada Clientes dentro de la
base de datos que esta conectada al objeto DB con la siguiente estructura:
Codigo
Nombre
Ruc
Credito
Feeing

UPDATE
Permite reemplazar el contenido de un campo de todos o de un grupo de
registros por uno nuevo.
Sintaxis:

Text
5
Text
40
Text
8
Currency
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), Crdito Currency, Feclns Date))

Para un grupo de registros:


Update Nombre Tabla Set Nombre Del Campo= NuevoContenido Where Condicion

Ejemplos:
La siguiente instruccin incrementa al valor de compra de todos los artcu
los el 10%.
DB.Executef Update Artculos Set ValorCompra = ValorCompra * 1.10)

La siguiente instruccin cambia a los artculos que tienen su presentacin


Caja por Cajitas.
DB.Execute( 'Update Artculos Set Presentacin= Cajitas Where
Presentacin = Cajas')

0^4^

530

ru po

d it o r ia l

Megabyte

ALTER TABLE
Esta instruccin permite agregar o eliminar un campo de una tabla.
La sintaxis para agregar un campo a una tabla es:

Alter Table Nombre de la Tabla Add Column NombreCampo Tipo


Ejemplo:
La siguiente instruccin agrega a la tabla Clientes el campo Telfono de
tipo Texto con 10 caracteres.
DB.Execute (Alter Table Clientes Add Column Telefono Text( 10))
G

ru po

d it o r ia l

Megabyte

. :

531

<

||||||

iii>' VISUAL BASIC como debe ser. . .

CAPTULO XII: Programacin ADO


A P L IC A C I N D ES A R R O LLA D A N 70

La sintaxis para elim inar un campo a una tabla es:


A lter Table Nombre de la Tabla Drop Column NombreCampo

< 1 1

La siguiente aplicacin permite dar mantenimiento a los registros y a la


tabla Artculos:

Ejemplo:

m ora

i. Mantenimiento de la labia Artculos


Artculos

La siguiente instruccin elimina de la tabla Clientes el campo Telfono.


DB.Execute ("AlterTable Clientes Drop Column Telefono")

D R O P TABLE

Agregar artculos de prueba


Cambiar una presentacin por otra
Cambiar el Valor de Compra
Restaurar el valor de compra anterior
Borrar artculos
Recuperas los Ultimos Artculos Borrados
Borrar la Copia de Seguridad de los archivos borrados
Salir

Relacin de A rtculos

Esta instruccin permite eliminar toda una tabla incluyendo los registros que
contiene y su estructura.
La sintaxis es:
Drop Table Nombre de la Tabla

Codigo
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011

Ejemplo:
La siguiente instruccin elimina la tabla Clientes.

Nombre
Acaricida Cierna x 60 gr.
Acaricida Locin x 60 mi.
Fenistil x 20 Comprimidos
Pilka Gotas 20 mi
Panadol Antigripal x 60 tab
AB-Broncol 300 IM
AB-Broncol 600 IM
Venoruton Forte x 12 Cornp.
Fenistil Gotas Frasco 20 mi.
FinistilJ atabe Frasco 100 mi.
Importai x 6 Shachets

Presentacin
Pote
Frasco
Caja
Frasco
Caja
Frasco
Frasco
Caja
Frasco
Frasco
Caja

Valor de Compra
5.0000
10.0000
13.0000
23.0000
4.0000
9.5000
12.0000
13.0000
13.0000
10.0000
20.0000

Vencimiento
2002-06-30 00:00:0
2003-01-07 00:00:0
2002-01-19 00:00:0
2002-10-16 00:00:0
2001-12-30 00:00:0
2000-06-15 00:00:0
2002-05-01 00:00:0
2000-06-30 00:00:0
2000-06-29 00:00:0
2000-06-28 00:00:0
2002-01-19 00:00:0

............

L a""
DB.Execute ("Drop Table Clientes")

Al ejecutar la aplicacin y mientras dure la conexin a la base de datos se


muestra una pantalla de presentacin.
NOTA:
En la siguiente aplicacin se muestra ejemplos mas amplios sobre el uso de las
instrucciones SQL para consultas de Accin y sobre las instrucciones de Lenguaje
de Definicin de Datos (DLL).
La aplicacin siguiente tambin se encuentra en Disco de Aplicaciones que acom
paa a este libro para visualizar y comparar las instrucciones con mayor facilidad.

Program a de ejem plo

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 conexin esta pantalla se oculta automticamente y se


muestra el men principal.
lilil^

532

ru po

d it o r ia l

Megabyte

r u po

d it o r ia l

Megabyte

533

VISUAL BASIC como debe ser...

l ^

CAPTULO XII:

El M en Principal esta com puesta por las siguientes opciones:

AGREGAR ARTCULOS DE PRUEBA


Con esta opcin usted puede agregar la cantidad de artculos que desee a la
tabla y de esta manera probar la velocidad de la computadora para procesar
una gran cantidad de registros. Por ejemplo usted puede probar qu tan
rpida es su computadora y su programa con unos cinco mil o diez mil
artculos. Esta opcin presenta el siguiente formulario.
1

1751x1

A d ic io n a l a r t c u lo s d e P r u e b a
Actualmente hay 13 artculos. Cuanto desea agregar?

Aceptar

Programacin ADO

4SSB &

En el combo slo se visualizan las presentaciones de los artculos que


actualmente tiene la tabla. Despus de elegir una presentacin, el programa
le pide que escriba la nueva presentacin por la cual la desea cambiar. A
todos los artculos que tienen la presentacin seleccionada se le cambia por
la nueva presentacin al hacer click en el botn Cambiar Ahora.

CAM BIAR EL VALOR DE COMPRA


Esta es til cuando desee variar el valor de Compra de los artculos. El
formulario que se visualiza es:

1 . V a r i a c i n

m u _ In i x l

d e l V a lo r d e C o m p ra

.............
I n g r e s e e l m o n t o d e V a r ia c i n

Configuracin d e los n ue vo s A rtculos :


Los artculos empiezan con la palabra

JProducto

La presentacin de los artculos debe ser

jCaja

El valor de compra debe estar entre

jio.oo

La fecha de vencimiento debe estar entre el

|o i / o i / o i J

|j

L a V a r ia c i o n e s t a e n :

S o le s

V
y 1

jl 000 00

1ip u u c v d i i a u u n

31n 2/01 3 ]

C" D is m in u ir

In c r e m e n ta r
Cerrar

P o r c e n t a je

Aqu se indica la cantidad de artculos a agregar, el nombre para los artculos.


Al nombre que usted indique se le adiciona un nmero correlativo.
Tambin puede indicar la presentacin, el rango del valor de compra y de
las fechas de vencimiento que deben tener los artculos al momento de
agregarse.
Tanto el valor de compra como la fecha de vencimiento se calculan al azar
entre el rango establecido.

C a m b ia r A h o r a

J
C e r ra r

Primero debe ingresar el monto de variacin, luego elegir si lo ha ingresado


en soles o porcentaje y por ltimo debe indicar si se debe aumentar o disminuir
al valor de comprar. Si comete algn error al variar el valor de compra de
los artculos, utilice la siguiente opcin.

RESTAURAR EL VALOR DE COMPRA ANTERIOR.


CAM BIAR UNA PRESENTACIN POR OTRA
Esta opcin permite cambiar la presentacin de un grupo de artculos por
una nueva. El formulario que se muestra es:
-Tnn

Cam biar u n a P resentaci n por O tra


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

Cuando usted varia el valor de compra, se guarda en un campo el valor de


compra anterior y esta opcin permite recuperar dicho valor de compra.
Esta opcin es muy til cuando comete algn error en la variacin de los
valores.
Antes de restaurar el valor de compra le pide la confirmacin:

I CONFIRME

POR FAVOR

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

- V

Res

taurar el Valor de; Compra anterior d e los artculos

C am b ia r A h o ra

534

r u po

d it o r ia l

Megabyte <

ru po

d it o r ia l

Megabyte

No

535

CAPITULO XII:

VISUAL BASIC como debe ser.


Si ingresa a la opcin Restaurar El valor de Compra anterior sin haber variado
los valores se muestra un mensaje de aviso.

Programacin ADO

RESTAURAR LOS LTIMOS ARTCULOS BORRADOS


Cuando usted borra artculos en la opcin anterior, estos se guardar en
una tabla de seguridad con un campo adicional llamado Fecha el cual contiene
la fecha que borr el artculo. Esto es importante porque puede borrar por
accidente los artculos. Esta opcin permite recuperar todos los artculos
borrados un grupo de ellos. Los grupos de artculos se pueden recuperar la
fecha en la que se borraron. Visualiza el siguiente formulario.
iiM B iM iM iiiiiiiiiiiM iir iiiir in
Ver por fecha de borrado

115/07/00

1................m

Ver todos los borrados

|Estos son los artculos que ha borrado el da 15/07/00


Codigo

Nombre
Acaricida Locin x 60 mi.
G AB-Broncol 300 IM
00007 AB-Broncol 600 IM
00009 Fenistil Gotas Frasco 20 mi.
Finistil Jarabe Frasco 100 mi.
Panalain amp. x 2 mi
00013 Fluidasa iny x 2 mi
00004 Pilka Gotas 20 mi

00002
0000

BORRAR ARTCULOS
Esta opcin permite borrar todos o un grupo de artculos.
El formulario que presenta es el siguiente:
MED

. B o rra r A r t c u lo s
Cam po

00010
00012

-1

Presentacin
Frasco
Frasco
Frasco
Frasco
Frasco
Frasco
Frasco
Frasco

Fecha que se borr


Valor de Compra Vencimiento
49.5662 2003-01 -07 00:00:00 2000-07-15 00 00 00
49.5531
2000-06-15 00:00:00 2000-07-1 5 00 OO 00
49.61 81 2002-05-01 00:00:00 2000 07-1 5 00 00 00
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
50.7079 2002-05-08 00:00 00 2000-07-15 00:00:00
49.6442 2000-09-16 00:00:00 2000-07-15 00:00 OO
49.9035 2002-10-16 00:00:00 2000-07-15 00 00 00

1
Recuperarlos

O p e ra d o r

Cerrar

*l

wm

>

II A
A V

C O D IG O
NOMBRE
P R E S E N T A C IO N
VALO R COMPRA
| V E N C IM IE N T O

A c e p ta r

^1

C o n d ic io n

B o a , lo s A r t c u lo s q u e c u m p le n

BORRARLACOPIADESEGURIDADDELOSARTICULOS BORRADOS
Si est seguro de los artculos que ha borrado, entonces esta opcin
elimina definitivamente los artculos borrados. Visualiza el mismo formulario
anterior, pero con el botn Borrarlos Definitivamente.

B o [|a ( T o d o s te s A r t( c u |o s

Ver pot fecha de borrado

Ver todos los borrados

Estos son los artculos que ha borrado el da 15/07/00


Codigo

Usted puede formar la condicin que deben cumplir los artculos para
que se puedan borrar o hacer un click en el botn respectivo para borrar
todos los artculos.
Cuando se elige el campo Valor de Compra no se permite el ingreso de
letras y cuando se elige el campo Vencimiento se muestra automticamente
un control DTPicker.
Este ejemplo lo puede utilizar tambin en la opcin Cambiar el Valor de
Compra de tal manera que slo se pueda cambiar el Valor de algunos artculos.

536

r u po

d it o r ia l

M c g a b v te ^ ^ ^

00002

Nombre
Acaricida Locin x 60 mi.

Presentacin
Frasco

00006 AB-Broncol 300 IM


00007 AB-Broncol 600 IM

Frasco
Frasco

00009 Fenistil Gotas Frasco 20 mi

Frasco
Frasco

00010
00012

Finistil Jarabe Frasco 100 mi


Panalgin amp. x 2 mi

00013 Fluidasa iny x 2 mi


00004 Pilka Gotas 20 mi

Fecha que se borr


Valor de Compra Vencimiento
49.5662 2003-01 -07 00:00:00 2000-07-15 00:00:00
2000-06-15
00:00:00
2000-07-15
00:00:00
49.5531
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
2000-06-28 00:00:00 2000-07-15 00:00:00

Frasco

49.5662
50 7079

Frasco
Frasco

49.6442
49.9035

2002-05-08 00:00:00 2000-07-15 00:00 00


2000-09-16 00:00:00 2000-07-15 00:00:00
2002-10-16 00:00:00 2000-07-15 00:00:00

Borrarlos
Definitivamente

ru po

d it o r ia l

Megabyte

537

^^ VISUAL BASIC como debe ser...

CAPTULO XII:

Programacin ADO

DESARROLLO DE LA APLICACIN N 70
Instrucciones del Form_Activate
Como esta aplicacin est compuesta por varios formularios, debe agre
gar un mdulo y definir all los objetos Connection y Recorset y las variables
que se necesitan en la aplicacin.
Tambin debe crear en este mdulo el procedimiento MAIN en el cual
se realiza la conexin y se muestra la pantalla de presentacin. Este proce
dimiento se debe ejecutar primero, para ello configure al Visual Basic en la
opcin Proyecto/Propiedades del proyecto/Objeto Inicial.

Contenido del Mdulo de la aplicacin


DB As New ADODB. Connection
RS As New ADODB.Recordset
RS2 As New ADODB.Recordset
RP As Integer
EXISTE As Boolean

Form3.Show
End Sub

Instrucciones de la opcin Cambiar el Valor de Compra


Prvate Sub CambiarValor_Click()
Form5.Show 1
End Sub

FORMULARIO N 2 01
En el formulario N 01 debe disear la pantalla de Presentacin. En la aplicacin
de ejemplo, este formulario est compuesto por 3 etiquetas con los mensajes:
Visual Basic , Como debe ser... y Espere un momento Por Favor con sus
respectivas propiedades como poR ejemplo: Font, Forecolor, etc.

FORMULARIO N 2 02 (Men Principal)


En el formulario N 02 disee el Men Principal con las opciones indicadas. Este
formulario debe tener un control MSHFlexGrid donde se muestran todo los artcu
los de la tabla.
r u po

Prvate Sub Agregar_Click()

Prvate Sub Cambiar_Click()


Form4.Show 1
End Sub

Sub Main()
Muestra pantalla de presentacin
Form l.Show
F orm l .Refresh
Realiza la conexin
DB.Open DSN= VENTAS
RS.Open SELECT codigo,nombre,presentacin,valorcompra,vencimiento
FROM artculos ORDER B Y nombre , DB, adOpenStatic, adLockOptimistic
Cuando termina la conexin oculta la presentacin y muestra el men principal
Form l. Hide
Form l.Show
End Sub

Instrucciones de la opcin Agregar Artculos de Prueba

Instrucciones de la opcin Cambiar una Presentacin por Otra

Public
Public
Public
Public
Public

538

Prvate Sub Form_Activate()


MSHFlexGridl. Cois = 0
Set MSHFlexGridl.DataSource = RS
MSHFlexGridl.FonnatString = Codigo\ Nonm | Presentacin \V.deCompra\ Vencimiento
End Sub

d it o r ia l

Instrucciones de la opcin Restaurar el Valor de C. Anterior.

Prvate Sub RestaurarValor_Click()


RS. Cise
Abre la tabla artculos con todos los campos
RS.Open SELECT * FROM Artculos
'Verificasihayunacopiadebsvdomsdecompraanleriojes(Campo ValorAnterior)
EXISTE = False
F orX = 1 To RS.Fields.Count
IfRS(X- l).Name = ValorAnterior Then EXISTE = True
Next
RS.Cise
Abre la tabla artculos con los campos principales
RS. Open SELECT codigo, nombre,presentacin, valorcompra, vencimiento
FROM artculos ORDER BY nombre, DB, adOpenStatic,
adLockOptimistic
Si no existe el campo ValorAnteriorsignifica que no ha variado el vabrde compra
IfNot EXISTE Then
MsgBox No se ha variado el Valorde C. de losArtculos,64, "Nopuedo realizarlo
Else
IfMsgBox( Restaurarel Valorde C. anteriorde losArt. ", 36, ConfirmeporFavor") = 6 Then
DB.Execute UPDATE Artculos SET ValorCompra = ValorAnterior
Elimna el campo ValorAnterior
RS. Cise
DB.Execute ( ALTER TABLE Artculos Drop column ValorAnterior)
RS.Open
Actualiza la Consulta
RS.Requery
Set MSHFlexGridl.DataSource = RS
End If
End If
End Sub

ru po

d it o r ia l

Megabyte

539

- VISUAL BASIC como debe ser...

^ 5

Instrucciones de la opcin Borrar Artculos

Programacin ABO

IN STR U C C IO N ES

Prvate Sub Borrar Artculos_Click()


Form. Show 1
End Sub

DEL

FORMULARIO

'I I l P

Ne

03

Instrucciones del Form_Activate

Instrucciones de la opcin Recuperar Artculos Borrados


Prvate Sub RecuperarArtculos_Clck()
Form7!Command2. Visible = True
Form7!Command2.Enabled = True
Form7!Command3. Visible = False
Form7.Show 1
End Sub

Instrucciones de la opcin Borrar Copia de Seguridad


Private Sub BorrarCopia_Click()
Form7!Command2.Visible = False
Form7!Command3. Visible = True
Form7!Command3.Enabled = True
Form7.Sh.ow
End Sub

Prvate Sub Form__Activate()


'Valores predeterminados para agregar artculos
Textl = " "
Text2 = Producto
Text3 = C aja
Text4 = 10.00
Text5 = 1000.00"
DTPickerl.Value - CD ate(0 1-01-2001)
DTPicker2.Value - CD ate(31 -12-2001")
Labell = Actualmente hay & RS.RecordCount & artculos. Cuanto desea
agregar?
Textl. SetFocus
End Sub

Instrucciones del Botn Aceptar

Instrucciones del MSHFlexGrid para ordenar los artculos


Private Sub MSHFlexGridl_Click()
MSHFlexGridl .Sort = 1
End Sub

Instrucciones de la opcin Salir


Private Sub Salir_Click()
End
End Sub

FORMULARIO N e 03 (Agregar Artculos de Prueba)


EKE!
: Labeii

Aceptar ;

C o n fig u r a c i n d e lo s n u e v o s A r tc u lo s :
Los artculos empiezan con la palabra

Text2

La presentacin de los artculos debe ser


El valor de compra debe estar entre
La fecha de vencimiento debe estar entre el

j l 4 /0 7 /0 0

y el

j 14/07/00

En este formulario debe dibujar 5 cajas de texto, 1 ProgressBar, 2 DTPickei; 2


botones de comandos 1 Frcime y las etiquetas indicadas. Al ProgressBar asgnele
en su propiedad Visible el valor False.

540

CAPTULO XII:

ru po

d it o r ia l

Megabyte <

Private Sub Command!_Click()


Dim dias, NR As Long
Si no ingresa la cantidad de artculos sale del Procedimiento
If Val(Textl) = 0 Then Exit Sub
Commandl .Enabled = False
ProgressBarl. Visible = True
ProgressBarl .Min = 1
ProgressBarl.Max = Val(Textl)
NR = RS.RecordCount
dias = DTPicker2. Value - DTPickerl. Value
Randomize
For X = 1 To Val(Textl)
RS.AddNew
RSfcodigo = FormatfX + NR, 00000)
RSInombre = Text2 & X + NR
RSIpresentacion = Text3
RS.'valorcompra = Int((Val(Text5)-Val(Text4)+1)* Rnd + Val(Text4))
RSvencimiento DTPickerl .Value + Int((dias -1 + 1) * Rnd + 1)
ProgressBarl. Value = X
RS. Update
Next X
ProgressBarl. Visible = False
Commandl .Enabled = True
Actualiza la consulta
RS.Requery
Hide
End Sub

Instrucciones del Botn Cerrar


Private Sub Command2_Click()
Hide
End Sub
G

r u po

E d it o r ia l

Megabyte

541

l i VISUAL BASIC como debe ser.. .

.$<;

FORMULARIO N 2 04 (Caxrbia xana Presentacin por Otra)


rrn a rx ii

S . C am b iar u n a P r e s e n t a c i n p o i O tra
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

E scrib a la n u e v a p re s e n ta c i n
I T ex tl

CAPTULO XII:

Programacin ADO

Instrucciones del Botn Cambiar Ahora


Private Sub Commandl_Click()
Form4. Enabled = False
DB. Execute UPDATE Artculos SET Presentacin =
& Textl &
WHERE Presentacin =
& Combol &
RS.Requery
Form4. Enabled = True
Frame .Visible = False
Hide
End Sub

Instrucciones de Textl

C am biar A h o ra

C errar

En este formulario dibuje 2 etiquetas, 1 ComboBox, 1 Frame, y 2 botones de


comandos. Al Frame asgnele en su propiedad Visible el Valor False.

INSTRUCCIONES DEL FORMULARIO N 2 04


Instrucciones del Form_Activate
Prvate Sub Form_Activate()
'Obtiene slo una presentacin de cada grupo
RS2,Open "SELECTDistinct Presentacin FROM Artculos", DB,
adOpenStatic, adLockPessimistic
Muestra las presentaciones en el combo
RS2. Move First
Combo l.C lear
Do While Not RS2.EOF
Combol.Addltem RS2(0)
RS2.MoveNext
Loop
Combol. ListIndex = -1
RS2. Cise
End Sub

Private Sub Textl_GotFocus()


Selecciona el Texto de Textl para reemplazarlo por el que escribe
Textl.SelStart = 0
Textl. SelLength = Len( Textl)
Textl = Textl.SelText
End Sub

Instrucciones del Botn Cerrar


Private Sub Command2_Click()
Frame 1. Visible = False
Hide
End Sub

FORMULARIO N 2 05

(Cambiar el Valor de Compra)

V a r ia c i n d e l V a lo r d e C o m p r a
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

L a V a r ia c i n e s ta e n :
S o le s

C* P o rc e n ta je

In c re m e n ta r

D is m in u ir

Instrucciones del Combol


Prvate Sub Com bol_Click()
'Cuando se selecciona una presentacin, activa el Frame 1
Frame 1. Visible = Truc
Label2 - Escriba la presentacin que quiere cambiar por: & Combol
Textl = Combo1
Textl.SetFocus
End Sub

542

ru po

d it o r ia l

Megabyte < |j |||||

C a m b ia r A h o ra

I .......................
C e rra r

I .

En este formulario dibuje 1 etiqueta, 1 caja de texto, 2 Frame y dentro de


cada uno de ellos 2 botones de opciones y dos botones de comando.
G

ru po

d it o r ia l

Megabvte

543

^ | l! > VISUAL BASIC como debe ser...

INSTRUCCIONES DEL FORMULARIO N 2 05


Instrucciones del Form_Activate
Prvate Sub Form_Activate()
Limpia Textl y desactiva los botones de opciones
Textl = ""
Optionl = False
Option2 = False
OptionJ = False
Option4 = False
Textl.SetFocus
End Sub
Instrucciones del Procedimiento RealizarCopia
Sub RealizaCopiaO
Form5 .Enabled = False
'Abre la tabla artculos con todos los campos
RS.Open SELECT * from Artculos, DB
Verifica si hay una copia de los valores anterior
EXISTE = False
For X - 1 To RS.Fields.Count
I f RS(X - l).Nam e = ValorAnterior" Then EXISTE = True
Next
IfN o t EXISTE Then
Si no existe el campo ValorAnterior lo crea para adicionar una
copia de seguridad de los valores de Compra
RS. Cise
DB.Execute ( ALTER TABLE Artculos ADD COLUMN ValorAnterior Currency")

Realiza la copia de seguridad


DB.Execute UPDATE Artculos SET ValorAnterior = ValorCompra
Else
Slo realiza la copia de seguridad
DB.Execute UPDATEArtculos SET ValorAnterior = ValorCompra
RS. Cise
End I f
E nd Sub

Instrucciones del Botn Cerrar


Prvate Sub Command2_Click()
Hide
End Sub

544

ru po

d it o r ia l

Megabyte

CAPITULO XII: Programacin ADO


Instrucciones del Botn Cambiar Ahora
Private Sub Command 1_Click()
IfVal(Textl)=0 Then
Msg Box Ingrese el monto de Variacin, 64, Error
Exit Sub
E n d lf
RS. Close
If Optionl Then
If Option3 Then
lfM sgB ox(Est Incrementando el Valor de Compra en & Textl
& Soles, 65, Confirme la Variacin) = 1 Then
RealizaCopia
DB.Execute UPDATEArtculosSETValorCompra- ValorCompra+ VAU"& Textl A
E n d lf
E lself Option4 Then
IfMsgBox( Est Dismuyendo el Valor de Compra en & Textl &
Soles , 65, Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATEAi1iculosSETValorCompra= ValorCompra- VAlf" Inil .V
E n d lf
Else
MsgBox No ha seleccionado el Tipo de Incremento", 64, "Error"
Exit Sub
E n d lf
E lself Optionl Then
If Option3 Then
IfM sgBox(Est Incrementando el Valor de Compra en un &
Textl &
65, Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATE Artculos SET ValorCompra - ValorCompra t
ValorCompra * VAL( & Textl & )/IOO"
E n d lf
Elself Option4 Then
IfMsgBoxt "Est Disminuyendo el Valor de Compra en un &
Textl & % , 65, 'Confirme la Variacin ) = 1 Then
RealizaCopia
DB.Execute UPDATE Artculos SET ValorCompra - ValorCompra
ValorCompra * VALI" & Textl & y ! 00"
End If
Else
MsgBox No ha seleccionado el Tipo de Incremento", 64, Error"
Exit Sub
End if
Else
MsgBox No ha indicado la Variacin en Soles o Porcentaje, 64, "Error"
Exit Sub
End If
Abre la tabla artculos con los campos principales
RS.Open SELECTcodigo,non)rej)resenlacioii,vaorc(mipra,vencimeroFROMArticulas
ORDERBYnombre", DB, adOpenStatic, adLockOptimistic
RS. Requery
Form5.Enabled = True
Hide
End Sub
G

r u po

d it o r ia l

Megabyte

545

4 K

'/jtSi&M' VISUAL BASIC como debe ser.:.

CAPTULO XII:

FORMULARIO N e 06 (Borrar Artculos)


C am p o

O p e ra d o r

Valor

Li*t2

; JT e x tl

j 0 9 / 0 7 /8 8

S '

A c e p ta r

Borrar los A rtc u lo s q u e cu m p le n


la c o n d ic i n

INSTRUCCIONES DEL FORMULARIO N s 06


Instrucciones del Form_Activate
Private Sub Form_Activate()
Limpia las cajas de texto
Text1 = " "
Textl = ""
Muestra la fecha del sistema en el DTpicker
DTPicker 1. Value - Date
Adiciona los nombres de los campos en el Listl
List .Clear
For X - 1 To RS. Fields. Count
L istl.Addltem RS(X - l).Name
Next X
Adiciona los operadores en el L istl
Listl. Clear
Listl.Acldltem =
Listl.Addltem <
Listl.Addltem >
Listl.Addltem < -
Listl.Addltem > -
Listl.Addltem < >
Listl.Addltem Like
Listl.Listlndex - 0
Listl. ListIndex = 0
End Sub
G

r u po

d it o r ia l

Instrucciones del L is tl
Private Sub Listl jClicki)
Textl =
Si se ha seleccionado el campo Vencimiento muestra el DTPicker
tf List.Listlndex = 4 Then
TextI .Visible = False
DTPickerl. Visible = True
Else
Textl. Visible = True
DTPickerl. Visible = False
End If
End Sub

Instrucciones del Textl

Borrar T o d o s los A rtcu lo s

En este formulario dibuje 2 ListBox, 2 cajas de texto, 1 DTPicker, 6 botones de


comandos y 4 etiquetas.
El control DTPicker dibjelo encima del control Textl y asgnele en su propiedad
Visible el valor False porque slo se debe visualizar cuando se seleccione la Fecha
de Vencimiento.
Al botn Command4 (Borrar Artculos que cumplen la condicin) asgnele en su
propiedad Enabled el valor False.

546

Programacin ADO

Private Sub Text I_KeyPress( KeyAscii As Integer)


Evita el ingreso de letras cuando se ha seleccionado el ValorCompra
/ / Listl .Listlndex = 3 Then
If (Chr(KeyAscii)< 0 Or Chr(KeyAscii)> 9") And (KeyAscii<>8) Then
KeyAscii = 0
Endlf
Endlf
End Sub

Instrucciones del Botn Aceptar

Private Sub Command1_Click()


Agrega la condicin fonnada a Tetxt2
tf Listl.Listlndex < 3 Then
If List2.Listlndex = 6 Then
Text2 = Textl + Listl + List2 + ..... + Textl +
Else
Text2 = Text2 + Listl + Listl +
+ Textl +
Endlf
End f
lf List .Listlndex = 3 Then
Textl = Textl + Listl + Listl + Textl
Endlf
lf List .Listlndex = 4 Then
Textl = Text2+List + Listl + "CDATE( & DTPickerl .Value &
End f
Commandl. Enabled = True
Command3. Enabled = True
Command4. Enabled = True
End Sub

Instrucciones del Botn Y

Private Sub Conunand2_Click()


Text2 = Textl + AND
Commandl. Enabled = False
Command3. Enabled = False
End Sub

Instrucciones del Botn O

Prvate Sub Command3_Click()


Textl = Text2 + OR
Command2. Enabled = False
Command3.Enabled = False
End Sub

Megabyte

ru po

d it o r ia l

Megabyte

547

VISUAL BASIC como deb ser. . . t i !


Instrucciones del Botn Borrar los artculos que cumplen la C.

Prvate Sub Commcmd4_Click()


On Error GoTo control
Form.Enabled = False
RP = MsgBox(Se borraran todos los artculos que cumplen la
condicin + Chr(13) + Text2, 36, CUIDADO)
IfRP = 6 Then
Hace la copia en la tabla RESPALDO de los artculos que se borran
DB. Execute INSERT INTO respaldo SELECT codigo, nombre,
presentacin, valorcompra,vencimiento,#" & Date & "#
AS fecha FROM Artculos WHERE & Text2
DB.Execute DELETE FROM Artculos WHERE & Text2
RS. Requery
End If
Hide : Form.Enabled = True
Exit Sub

control:

'Si no existe la tabla RESPALDO la crea con los primeros registros


If En: Number = -2147217865 Then
DB.Execute select codigo,nombre,presentacin, valorcompra,
vencimiento,# & Date & # as fecha into respaldo from
artculos where & Text2
Resume Next
Else
MsgBox Verifique las instrucciones o la C. ,16, Existe un error
Exit Sub
End If
End Sub

Instrucciones del Botn Borrar Todos los Artculos.


Private Sub Commands_Click()
On Error GoTo control
RP = MsgBox( Se borraran todos los artculos , 36, CUIDADO )
IfRP = Then
Form.Enabled = False
DB. Execute INSERT INTO respaldo SELECT codigo, nombre,
presentacin, valorcompra, vencimiento,#" &
Date & # AS fecha FROM Artculos"
DB.Execute DELETE FROM Artculos

RS.Requery

Form.Enabled
Hide
End If
Exit Sub

True : Command4.Enabled = False

control:

If Err.Number = -2147217865 Then


DB.Execute SELECT codigo,nombre,presentacion, valorcompra,
vencimiento, # & Date & # AS fecha INTO
Respaldo FROM Artculos
Resume Next
Else
MsgBox Verifique las instrucciones, 16, Existe un error
Exit Sub
End If
End Sub

548

r u po

d it o r ia l

Megabyte

CAPTULO XII:
FORMULARIO N 2 07

Programacin ADO
(Recupera Artculos Borrados)

Vet penfechadeboirado

Vei todos ios bonados

I Estos son todos los artculos que ha borrado

Debe dibujar 2 etique


tas, un ComboBox 4
botones de comandos
y 1 MSHFlexGrid. Al
Commandl (Ver Todos
los borrados) asgnele
en su propiedad
Enabled el valor False.

B ocalos
DefinWvamerte

INSTRUCCIONES DEL FORMULARIO N s 07


Instrucciones del Form_Activate.
Prvate Sub Form_Activate()
On Error GoTo control
Muestra los fechas en el com bol en las que borr artculos
RS2,Open SELECTDISTINCTfecha FROM Respaldo, DB, adOpenStatic,
adLockPessimistic
RS2.MoveFirst
Combo I.Clear
Do While Not RS2.EOF
Combo I.Addltem RS2(0)
RS2.MoveNext
Loop
Combol .Listlndex = -1
RS2. Cise
MSHFlexGrid 1.Cois = 0
RS2.Open SELECT * FROM Respaldo", DB
Set MSHFlexGridl .DataSource - RS2
RS2. Requer
MSHFlexGridl.FormatStrng - Codigo | Nombre \ Presentacin \Valor
de Compra\ Vencimiento | Fecha que se borr
RS2.Cise
Exit Sub
G

ru po

d it o r ia l

Megabyte^

549 O

C A P T U L O X II:
control:
If Err.Number = -2147217865 Then
MsgBox Nohayartculosborradose",64, 'Nose encontrcopiade seguridad
Command2.Enabled - False
Command3.Enabled = False
Hide
E n d lf
End Sub

Instrucciones del Combol


Prvate Sub Combol jClick()
Muestra los artculos borrados en la fecha que se selecciona
Label2 = Estos son los artculos que ha borrado el da & Combol
RSLOpen SELECT*FROMRespaldoWHEREfecht=cdate(&Comhol& )",B
Set MSHFlexGridl .DataSource = RS2
RS2.Requery
MSHFlexGridl .FormatString = Codigo | Nombre | Presentacin \Valor
de Compra\ Vencimiento | Fecha que se borr
RS2. Cise
Command1. Enabled = True
End Sub

Instrucciones del Botn Ver Todos los Borrados


Prvate Sub Commandl_Click()
Combol =
Label2 = Estos son todos los artculos que ha borrado
RS2. Open SELECT * FROM Respaldo , DB
Set MSHFlexGridl .DataSource = RS2
RS2.Requery
MSHFlexGridl .FormatString - Codigo \ Nombre | Presentacin | Valor
de Compra\ Vencimiento | Fecha que se borr
RS2. Cise
Command!.Enabled = False
End Sub

P rogram acin A D O ^ ^ m

If Combol = Then
DB. Execute INSERT INTO Artculos SELECT codigo,nombre,
presentacin, valorcompra, vencimiento,fecha FROM Respaldo
DB.Execute ( DROP TABLE Respaldo ")
MSHFlexGridl .Rows - 0
Else
DB.Execute INSERT INTO Artculos SELECT codigo,nombre,
presentacin, valorcompra, vencimiento,fecha FROM Respaldo WHERE
fecha = cdate( & Combol &
DB.Executei DELETEFROMRespaldo WHEREfecha=cdate( &Combol&"')")
End If
RS.Requery
Hide
End Sub

Instrucciones del Botn Borrarlos definitivamente


Este botn se utiliza cuando se elige la opcin Borrar Copia de Seguridad que se
encuentra en el Men Principal
Prvate Sub Command3_Click()

RP=MsgBox(EstasegurDdebormrdefmitivamente",36,Yanopodrnicuperarlos')
IfRP = 6 Then DB.Execute DROP TABLE Respaldo
MSHFlexGridl.Rows = 0
Hide
End Sub

Instrucciones del Botn Recuperarlos


Prvate Sub Command2_Click()
Recupera los artculos

550

ru po

d it o r ia l

Megabyte

ru po

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 prctico, quizs esto sea lo medular que
lo hace diferente de otros libros. Aqu encontrars
programas desarrollados y ejercicios propuestos que te
ayudarn a conjugar armoniosamente la teora y la
prctica. Es, pues, una eficiente gua didctica para
crear aplicaciones que te sern tiles en la realizacin
de tus diversas tareas como programador en tu centro
de estudio y trabajo.

$ tfisfll

%
r
j ,4

Este libro esta diseado de tal manera que sirve de


apoyo y gua de autoaprendizaje para estudiantes de
programacin de computadoras, porque el autor cuenta
con una amplia experiencia en la docencia de este
curso.
Adems cuenta con aplicaciones y componentes como:
Controles ActiveX, Creacin de archivos de ayuda,
Manejo de impresoras, Base de datos, Instrucciones
SQL, Programacin ADO, Uso de DataEnvironment y
DataReport

P ^ Rti(foTorncb l889H O f c^208?iCercadoJd}Lim aW relefax: [332-4110


K w w w .editorialm eqabvte:conrA ventas@ edtorialm eqabvt.com

También podría gustarte