Вы находитесь на странице: 1из 97

Curso de Visual Basic

INDICE
ntroduccin . 3
Componentes de la aplicacin .. 3
Unidad 1: Fundamentos
Ejecutando visual basic . 5
Mi primera aplicacin . 8
Creacin de la interfaz ... 8
Estableciendo las propiedades . 9
Escribiendo el cdigo . 10
Unidad 2: Los objetos
Mecanismos bsicos de la POO .. 11
Caractersticas de la POO . 11
Los objetos de Visual Basic .. 12
Los eventos .. 13
Convencin de nombres para los objetos .. 13
Unidad 3: El lenguaje
Tipos de datos . 14
dentificadores, constantes, variables . 15
Operadores .. 16
Sentencias 17
Entrada y salida de datos .. 17
Estructuras de control 19
Arreglos 25
Registros .. 26
Funciones . 27
Procedimientos 30
Unidad 4: Uso de los controles
Controles bsicos 31
Controles complementarios .. 36
La funcin Msgbox .. 54
Unidad 5: El formulario
Estilos de formulario ... 61
Pasando valores entre formularios .. 64
Formularios MD .. 67
Creacin de mens . 68
Creacin de una barra de herramientas . 72
Creacin de una barra de estado . 75
Creacin de un men contextual .. 77
Pgina 1
Curso de Visual Basic
Unidad 6: Mdulo multimedia
Controles activex . 78
Control animation. 79
Control commondialog ... 80
Control marchoso 82
Control hierarchical flexgrid ... 83
Control updown ... 85
Control monthview .. 86
Control calendar .. 88
Unidad : !rabajar con base de datos
Creando una pequea Base de Datos
89
Enlazando registros 90
Acceso a bases de datos .. 91
Programar con la base de datos .. 93
Pgina 2
Curso de Visual Basic
FUNDAMENTOS
Visual Basic, es un entorno de desarrollo de aplicaciones, una interfase, para la creacin de
herramientas, mediante el uso de objetos, la programacin orientada a objetos (P.O.O), es sin
dudas hoy por hoy, el resultado de elementos, aplicado al trabajo del programador. Visual
Basic, permite al usuario, trabajar, con un entorno mucho ms amigable, e intuitivo, que los
antiguos, lenguajes o compiladores. Que empleaban, extensas lneas de cdigo, para
responder a una sola orden o rutina.
Mucho tiene que ver el paso del tiempo, con el uso aplicado a la tecnologa, es decir, de
acuerdo a las necesidades, del mercado, y el avance que representa la empresa del software.
Encontramos en visual Basic, la herramienta mas difundida, al momento de desarrollar. Por eso
mismo, muchos emplean la creacin de aplicaciones y programas para sistemas o plataformas,
como Windows x, mas all de todo lo que se puede hacer, visual Basic, simplifica la tarea, y
acelera, los tiempos.
Entornos de desarrollo, como cobol, pascal, o hasta el mismo Basic, utilizaban la forma de
compilar. Las rdenes, de una manera lineal, es decir, instruccin por instruccin
Lo que era mas comn de encontrar errores del tipo de diagramacin, es decir, un error en la
instruccin y bastaba para que el programa no se ejecute, tambin se encontraban los llamados
errores de lgica, esto ocurra, cuando el programa funcionaba, pero sin reflejar la verdadera
intencin del programador.
La funcionalidad que permite el uso de objetos, y trabajar sobre ellos, atrae cada vez mas a
programadores, habituados a otros sistema de desarrollo. Visual Basic utiliza el modo de
trabajar con propiedades, para sus objetos, y bien qu es una propiedad?, una propiedad,
permite alterar o modificar la forma de "comportarse se un objeto, esto puede ser, si va a estar
visible o no, durante su ejecucin (RUN) o si simplemente cambiara algunos parmetros para
que este no se presente de forma estndar, las propiedades en si, utilizan a su vez, elementos
externos a Visual Basic, como controles, y funciones, para variar su tarea.
Al inicial la aplicacin lo primero que veremos ser el entorno de desarrollo:
Pgina 3
Barra de
men
Caja de
herramientas
Diseador de formularios
Barra de
herramientas
Ventana de
propiedades
Explorador de
proyectos
Curso de Visual Basic
Barra de menes
Por medio de esta barra se puede acceder a todas las funciones incorporadas en Visual Basic.
En realidad, existen varios botones o teclas rpidas que eliminan la necesidad de recurrir a los
menes para ciertas funciones, pero nunca est de ms prever este medio para acceso a la
informacin.
Barra de Herramientas
Mediante la barra de herramientas, podemos acceder a funciones sin tener que recurrir al men
o a un atajo del teclado.
Ventana
propiedades

Explorador
de proyectos
Posicin
formulario
Caja de herramientas
La caja de herramientas contiene la mayora de los objetos que vamos a incluir, en el
formulario.
Pgina 4
Puntero
Etiqueta
Marco
Caja verif.
Caja comb
Bar. Desp. H
Temporizador
Caja listado dir
Fiura
Control imae
!bjeto ole
Caja de imaen
Caja de te"to
Bot#n de comando
Bot#n de opci#n
Caja de listado
Barra de desp. $ertical
Caja de listado de unidades
Caja de listado de arc%ivos
&'nea
Control de datos
Agrega
un nuevo
proyecto
Editor de
menues
Agregar
Nuevo
formulario
Ejecutar
Parar
Curso de Visual Basic
U"#$%$ 1: FU"$%ME"!&'
La palabra "Visual hace referencia al mtodo que se utiliza para crear la interfaz grfica de
usuario. En lugar de escribir numerosas lneas de cdigo para implementar la interfaz,
simplemente se utiliza el ratn para agregar objetos prefabricados en el lugar deseado dentro
de la pantalla.
La palabra "Basic hace referencia al lenguaje BASC (Beginners All-Purpose Symbolic
nstruction Code), un lenguaje utilizado por ms programadores que ningn otro lenguaje en la
historia de la informtica. Visual Basic ha evolucionado a partir del lenguaje BASC original y
ahora contiene centenares de instrucciones, funciones y palabras clave, muchas de las cuales
estn directamente relacionadas con la interfaz grfica de Windows.
El lenguaje de programacin Visual Basic no es exclusivo de Microsoft Visual Basic.
Este lenguaje es utilizado tambin por Microsoft Excel, Microsoft Access y muchas otras
aplicaciones Windows. El lenguaje de programacin Visual Basic Script para programar en
nternet es un subconjunto del lenguaje Visual Basic. De tal forma, que la inversin realizada en
el aprendizaje de Visual Basic le ayudar a abarcar estas otras reas.
EJECUTANDO VISUAL BASIC
Si ya tiene instalado Visual Basic, para ejecutarlo proceda igual que con cualquier otra
aplicacin Windows: hacer clic en el icono correspondiente.
En seguida se presentar una ventana similar a la figura siguiente:
En la ventana anterior indicar el tipo de proyecto que desea crear (para nuestro caso
seleccionar EXE estndar) y dar clic sobre el botn "Abrir. En ese instante se presentar el
Entorno ntegrado de Desarrollo (DE) de Visual Basic:
Pgina 5
Curso de Visual Basic
Los elementos que componen el DE de Visual Basic son:
Barra de mens Barra de herramientas
Cuadro de herramientas Diseador de formularios
Explorador de proyectos Ventana de propiedades
Posicin del formulario Mens contextuales
(arra de men)s
Presenta las rdenes que se utilizan para desarrollar una aplicacin. Las opciones ms
utilizadas son: Archivo, Edicin, Ver, Ventana y Ayuda. Se proporcionan otros mens para tener
acceso a funciones especficas de programacin como Proyecto, Formato o Depuracin.
Para utilizar algn objeto simplemente debe hacer doble clic sobre el icono
correspondiente, luego puede cambiar su posicin y sus dimensiones.
$ise*ador de formularios
Es la ventana sobre la que colocaremos los objetos (controles) de la interfaz de usuario.
E+,lorador de ,ro-ectos
Contiene el conjunto de archivos que constituyen la aplicacin o proyecto.
Pgina 6
Curso de Visual Basic
.entana de ,ro,iedades
Como veremos ms adelante, cada objeto lleva asociado un conjunto de propiedades.
Para ver o especificar los valores de las propiedades de los objetos, utilizaremos la ventana de
propiedades.
/osicin del formulario
Esta ventana le permite especificar la posicin de los formularios de la aplicacin.
Men)s conte+tuales
Es un men emergente que presenta rdenes especficas relativas a un determinado
objeto. Para abrir un men contextual, dar clic derecho sobre el objeto. Por ejemplo, al dar clic
derecho sobre el formulario se presenta el siguiente men contextual.
Pgina 7
Curso de Visual Basic
.entana de cdigo
Se presenta cuando se hace doble clic sobre un objeto que se encuentra en el
Diseador de formularios. Esta ventana muestra dos cuadros combinados (combos) en la parte
superior, en una aparece el nombre del objeto (izquierda) y en la otra el nombre del evento
(derecha).
MI PIMEA APLICACI!N
Hay tres pasos principales para crear una aplicacin en Visual Basic:
Crear la interfaz.
Establecer propiedades.
Escribir el cdigo.
Para ver como se realiza esto, siga los pasos del siguiente ejemplo para crear una
aplicacin sencilla que consiste en un formulario y un botn de comando. Cuando haga clic en
el botn de comando aparecer el mensaje "Visual Basic es fcil en un cuadro de dilogo
predefinido.
0reacin de la interfa1
Para el desarrollo del presente ejemplo proceda a crear una nueva aplicacin. En
seguida aadir un botn de comando al formulario, para ello en el Cuadro de herramientas, dar
doble clic sobre el control deseado, tal como se indica en la figura siguiente:
La apariencia de la interfaz debe ser similar a la figura mostrada:
Pgina 8
Curso de Visual Basic
Estableciendo las ,ro,iedades
Para ver las propiedades de un objeto, simplemente debe seleccionarlo y pulsar la tecla
F4. Por ejemplo la figura siguiente muestra las propiedades del botn de comando y podemos
ver que la propiedad Caption tiene el valor "Command1.
Puede cambiar el valor de cualquier propiedad seleccionndolo de la ventana anterior y
simplemente modificando su valor, por ejemplo para el caso anterior establezca el valor de la
propiedad Caption de "Command1 a "Haga clic aqu.
De manera similar proceda cambiar la propiedad Caption del formulario a "Mi primera
aplicacin. La apariencia de la interfaz debe ser similar a la figura mostrada:
Pgina 9
Curso de Visual Basic
Escribiendo el cdigo
Para ingresar el cdigo a la aplicacin debe dar doble clic sobre el control al cual
asociaremos dicho cdigo. Para nuestro caso dar doble clic sobre el botn de comando e
ingresar el cdigo que se indica a continuacin:
Para guardar la aplicacin que acaba de crear, seleccione la opcin Guardar Proyecto
del Men Archivo.
Bueno, ahora slo falta que ejecute su aplicacin. Para ello simplemente debe pulsar la
tecla F5. El resultado debe ser similar al siguiente:
U"#$%$ 2: L&' &(2E!&'
Visual Basic se basa en la programacin orientada a objetos (POO), la cual es una
forma de programacin que utiliza objetos (similares a los objetos del mundo real) para la
solucin de problemas. La POO permite descomponer un problema en bloques relacionados.
Cada bloque pasa a ser un objeto autocontenido que contiene sus propios datos e
Pgina 10
Curso de Visual Basic
instrucciones. De esta manera, la complejidad se reduce y se pueden realizar programas ms
largos de una manera sencilla.
MECANISMOS B"SICOS DE LA POO
Los mecanismos bsicos de la programacin orientada a objetos son:
Objetos
Propiedades
Mtodos
Eventos
Mensajes
Clases
&bjetos
Un objeto es una entidad que tiene atributos particulares (propiedades) y unas formas de
operar sobre ellos (mtodos). Por tanto, un objeto contiene variables que especifican su estado
y operaciones que definen su comportamiento.
Son ejemplos de objetos: formularios, botones de comando, cuadros de texto, etiquetas,
etc.
/ro,iedades
Las propiedades representan las caractersticas del objeto. Hay propiedades
particulares, como Caption que la poseen los botones de comando por ejemplo, y genricas
como Name que la poseen todos lo objetos.
M3todos
Los mtodos son procedimientos asociados a un objeto. Se ejecutan como respuesta a
un evento, por ejemplo al dar clic en un botn de comando. Tambin pueden ser invocados
explcitamente en el programa.
E4entos
Un evento es la capacidad de un objeto de reaccionar cuando ocurre una determinada
accin (accin y reaccin). Como respuesta a un evento se enva un mensaje y se ejecuta un
determinado mtodo (procedimiento).
Mensajes
Un mensaje es una llamada a un mtodo (procedimiento), de tal forma que cuando un
objeto recibe un mensaje la respuesta a ese mensaje es ejecutar el procedimiento asociado.
Cuando se ejecuta un programa orientado a objetos, los objetos estn constantemente
recibiendo, interpretando y respondiendo a mensajes de otros objetos.
0lases
Una clase es una descripcin para producir objetos de esa clase o tipo. Es decir se trata
de una generalizacin de un tipo especfico de objetos. En otras palabras, un objeto es una
variable del tipo definido por una clase. Por ejemplo, piense en un molde para hacer pasteles, el
molde es la clase y los pasteles los objetos.
CAACTE#STICAS DE LA POO
Las caractersticas fundamentales de la programacin orientada a objetos son:
Abstraccin
Pgina 11
Curso de Visual Basic
Encapsulamiento
Herencia
Polimorfismo
%bstraccin
La abstraccin permite no detenernos en los detalles concretos del funcionamiento de
las cosas, sino centrarnos en los aspectos que realmente nos importan y nos son tiles en un
determinado momento, en cierta medida, se podra decir que es "sese el objeto y olvdese de
como funciona en forma interna.
Por ejemplo, para manejar una computadora no necesitamos saber como funcionan sus
circuitos electrnicos, en trminos de corriente, tensin, etc.
Enca,sulamiento
Esta caracterstica permite ver un objeto como una "caja negra autocontenida en la que
se ha metido de alguna manera toda la informacin que maneja dicho objeto. Esto permite
manipular los objetos como unidades bsicas, permaneciendo oculta su estructura interna.
5erencia
La herencia es la caracterstica que permite compartir automticamente propiedades y
mtodos entre objetos. Es decir, se pueden crear nuevas clases de objetos en base a clases
existentes. Ms concreto, un objeto puede heredar un conjunto general de propiedades y
mtodos a las que puede aadir aquellas caractersticas que son especficas suyas. El usuario
de Visual Basic no dispone de esta caracterstica.
/olimorfismo
Polimorfismo, del griego cuyo significado es "muchas formas, es la caracterstica que
permite implementar mltiples formas de un mismo mtodo, dependiendo cada una de ellas de
la clase sobre la que se realiza la implementacin. Esto hace posible que se puede acceder a
una variedad de mtodos distintos (todos con el mismo nombre) utilizando exactamente el
mismo medio de acceso.
LOS OBJETOS DE VISUAL BASIC
Visual Basic soporta la abstraccin, la encapsulacin, el polimorfismo y la reutilizacin
de cdigo.
La reutilizacin de cdigo es la capacidad de trasladar caractersticas de un objeto a
otro, lo que se logra con alguna forma de herencia. Esto se consigue mediante la creacin y uso
del objeto.
Los objetos de Visual Basic estn divididos en dos tipos: controles y contenedores.
Los controles son un medio grfico que permiten a los usuarios interactuar con la
aplicacin para la manipulacin de datos y ejecucin de tareas. Son ejemplo de controles:
etiquetas, cuadros de texto, botones de comando, casillas de verificacin, botones de opcin,
cuadros de lista, cuadros combinados, etc.
Los contenedores son objetos que pueden incluir otros objetos y permiten el acceso a
los objetos que contienen. Entre los ms utilizados tenemos a los formularios, marcos y
cuadrculas.
El formulario ms los controles constituyen la interfaz de la aplicacin.
EFEENCIANDO OBJETOS
La sintaxis para referenciar objetos es la siguiente:
OBJETO.PROPEDAD = VALOR
Pgina 12
Curso de Visual Basic
Por ejemplo, para establecer el ttulo de un formulario a "Visual Basic es fcil, la orden
sera:
Form1.Caption = "Visual Basic es fcil
LOS EVENTOS
Cada objeto responde a un conjunto de eventos. Como respuesta a un evento se ejecuta
un determinado procedimiento. Los procedimientos asociados a un evento presentan la forma:
Private Sub OBJETO_EVENTO()
SENTENCAS
End Sub
Para aclarar este concepto desarrollaremos la siguiente aplicacin, la cual consiste en un
formulario, un cuadro de texto y un botn de comando. El usuario debe ingresar un mensaje en
el cuadro de texto y al pulsar el botn de comando, el mensaje recientemente ingresado, se
coloca como ttulo del formulario.
Para ello proceda a construir la interfaz mostrada en la figura anterior. Luego, dar doble
clic sobre el botn de comando e ingrese el siguiente cdigo:
Private Sub Command1_Clic()
Form1.Caption = Text1.Text
End Sub
Seguidamente guarde y proceda ejecutar su aplicacin. Como puede verificar, el evento
Clic se dispara cada vez que el usuario pulsa (hace clic) sobre un control.
CONVENCI!N DE NOMBES PAA LOS OBJETOS
La convencin a seguir en la presente gua - para dar nombre a los objetos - consiste en
utilizar ciertos prefijos, los cuales indicaran el tipo de objeto del que se trata.
/refijo &bjeto
Frm Formulario
Fra Marco
Lbl Etiqueta
Txt Cuadro de texto
Cmd Botn de comando
Chk Casilla de verificacin
Pgina 13
Curso de Visual Basic
Opt Botn de opcin
Lst Cuadro de lista
Cbo Cuadro combinado
Tim Cronmetro
HS Barra de desplazamiento horizontal
VS Barra de desplazamiento vertical
Pic Cuadro de imagen
mg magen
Drv Cuadro de lista de unidades
Dir Cuadro de lista de directorios
Fil Cuadro de lista de archivos
Ole Contenedor OLE
Grd Cuadrcula
Gra Grfico
Ctr Control (se utiliza en procedimientos cuando el tipo de control es
desconocido)
U"#$%$ 3: EL LE"6U%2E
Visual Basic es un lenguaje de programacin basado en el lenguaje BASC, al cual
incorpora la funcionalidad de la programacin orientada a objetos.
El cdigo de Visual Basic se almacena en mdulos, donde cada mdulo est subdividido
en distintas secciones, una para cada objeto del mdulo. Cada seccin de cdigo puede
contener uno o ms procedimientos, formados por declaraciones de constantes y variables,
expresiones, sentencias de control y llamadas a procedimientos y/o funciones.
En este captulo vamos a analizar los diferentes elementos que intervienen al momento
de realizar el cdigo para una aplicacin.
TIPOS DE DATOS
Los datos con los que trabajaremos probablemente incluyan informacin relacionada con
nmeros, dinero, nombres, descripciones, fechas, etc. Cada dato corresponde a un
determinado tipo, es decir, pertenece a una categora de datos que se manipulan de maneras
similares.
!i,o $escri,cin 7ango
nteger Entero (2 bytes) -32768 a 32767
Long Entero largo (4 bytes) -2147483648 a
2147483647
Single Punto flotante de simple precisin (4
bytes)
-3.40E+38 a
3.40E+38
Double Punto flotante de doble precisin (8
bytes)
-1.79D+308 a
1.79D+308
Currency Monetario (8 bytes) +/-922337203685477.5807
Byte Carcter (1 byte) 0 a 255
String Cadena de caracteres (1 byte por
carcter)
Aproximadamente hasta 64K
(65400 caracteres)
Boolean Lgico (2 bytes) True o False
Date Fecha/Hora (8 bytes) 01/ENERO/100 a
Pgina 14
Curso de Visual Basic
31/DCEMBRE/9999
Variant
(por omisin)
Cualquier tipo de dato Con nmeros hasta el
intervalo de un tipo Double.
Con caracteres 22 bytes + 1
byte por carcter
IDENTIFICADOES
Los identificadores son nombres dados a los elementos de una aplicacin, tales como
constantes, variables, procedimientos, funciones, objetos, etc. Un identificador es una
secuencia de caracteres que puede ser de hasta 255 caracteres. Para la construccin de
identificadores debemos tener presente las siguientes reglas:
Deben comenzar con una letra y no puede contener espacios en blanco.
Letras, dgitos y caracteres subrayados estn permitidos despus del primer carcter.
No se puede utilizar una palabra reservada como identificador. Una palabra reservada tiene
un significado especial para Visual Basic.
CONSTANTES
Una constante almacena un dato cuyo valor no cambia durante la ejecucin de un
programa. Para declarar una constante utilice la siguiente sintaxis:
Const NOMBRE_CONSTANTE [As TPO] = VALOR
Si no se declara el tipo de constante (utilizando As TPO) se asigna a la constante el tipo
de dato ms apropiado a su valor.
El valor de una constante puede ser numrico, alfanumrico, carcter o de tipo fecha y
hora. Por ejemplo:
Const MAXT = 25
Const P As Double = 3.141592
Const CADENA As String = "Visual Basic es fcil
Const FECHA_POR_DEFECTO = #01/01/99#
VAIABLES
Una variable almacena un dato cuyo valor puede cambiar durante la ejecucin de un
programa. Para declarar una variable utilice la siguiente sintaxis:
Dim NOMBRE_VARABLE [As TPO]
Cuando se declara una variable y no se especifica su tipo (con As TPO), se asume que
es de tipo Variant.
La instruccin Dim puede realizar ms de una declaracin, teniendo en cuenta que la
clusula opcional As TPO le permite definir el tipo de dato de cada variable que vaya a
declarar. Por ejemplo:
Dim X, Y As nteger
Pgina 15
Curso de Visual Basic
La sentencia anterior le puede inducir a pensar que X e Y son de tipo nteger, lo cual no
es cierto, pues X es de tipo Variant (por omisin) e Y es de tipo nteger.
Para asignar valores a una variable, utilizar la siguiente sintaxis:
NOMBRE_VARABLE = VALOR
A manera de ejemplo considere lo siguiente:
Dim CANTDAD As nteger, PRECO As Double, TOTAL As Double
CANTDAD = 30
PRECO = 1.5
TOTAL = CANTDAD * PRECO
OPEADOES
Los operadores son smbolos que indican cmo sern manipulados los operandos. Los
operandos son los datos (constantes y/o variables) sobre los que acta los operadores para
producir un determinado resultado.
&,eradores aritm3ticos
&,erador 'ignificado
^ Exponenciacin
- Menos unario
* / Multiplicacin y divisin
\ Divisin entera
Mod Resto de una divisin entera
+ - Suma y resta
&,eradores relacionales
&,erador 'ignificado
= gual que
<> Diferente que
< Menor que
> Mayor que
<= Menor o igual que
=> Mayor o igual que
&,eradores lgicos
&,erador 'ignificado
Not Negacin
And Conjuncin
Or Disyuncin inclusiva
Xor Disyuncin exclusiva
Eqv Equivalencia (opuesto a Xor)
mp mplicacin (falso si primer operando verdadero y
segundo operando falso)
&,eradores de cadenas de caracteres
&,erador 'ignificado
Pgina 16
Curso de Visual Basic
& Concatenacin
Like Compara dos cadenas de caracteres
SENTENCIAS
Una sentencia es una lnea de cdigo que indica una o ms operaciones a realizar. Una
lnea puede incluir varias sentencias, separadas unas de otras por dos puntos. Por ejemplo:
Dim CANTDAD As nteger, PRECO As Double, TOTAL As Double
CANTDAD = 30 : PRECO = 1.5 : TOTAL = CANTDAD * PRECO
Una sentencia Visual Basic puede escribirse en ms de una lnea fsica utilizando el
carcter de continuacin de lnea (un espacio en blanco seguido del carcter de subrayado).
Por ejemplo:
Dim CH4_ENTRADA As Double, CH4_SALDA As Double, _
CH4_GENERA As Double, CH4_CONSUME AS Double
ENTADA $ SALIDA DE DATOS
Visual Basic posee una serie de objetos (controles) que pueden ser utilizados como
mecanismos de entrada y salida (E/S) de datos. Sin embargo, estos sern estudiados en
captulos posteriores.
Otra posibilidad de proporcionar datos o de visualizarlos durante la ejecucin de una
aplicacin es utilizando cajas de dilogos predefinidas. Debido a que esta es la forma ms
simple de realizar la E/S de datos nos ocuparemos de ella.
Entrada de datos
La entrada de datos permite proporcionar valores durante la ejecucin de una aplicacin.
Estos valores son ingresados generalmente mediante el teclado y asignados a variables del
programa. En Visual Basic una forma de ingresar datos a la aplicacin es utilizando la caja de
dilogo predefinida provista por la funcin nputBox. Su sintaxis es la siguiente:
VARABLE = nputBox(MENSAJE [, TTULO] [, PREDETERMNADO])
Donde MENSAJE es el mensaje que indica al usuario el tipo de informacin que debe
ingresar. Por ejemplo, las sentencias:
Dim EDAD As nteger
EDAD = nputBox("ngrese su edad?)
Da lugar a que Visual Basic presente la siguiente caja de dilogo solicitando la
informacin requerida:
Pgina 17
Curso de Visual Basic
Como puede observar, el resto de los parmetros son opcionales. TTULO es el texto
que se muestra en la barra de ttulo del cuadro de dilogo, si se omite TTULO, el nombre de la
aplicacin es la que se muestra en la barra de ttulo. PREDETERMNADO es una expresin de
cadena que aparece en el cuadro de texto como respuesta predeterminada si no se proporciona
ningn otro texto. Si se omite PREDETERMNADO el cuadro de texto se muestra vaco. A
manera de ejemplo considere lo siguiente:
Dim EDAD As nteger
EDAD = nputBox("ngrese su edad?, "Ficha de datos, 18)
En este caso se visualiza la caja de dilogo que se presenta en la figura siguiente:
'alida de datos
La salida de datos generalmente consiste en tomar la informacin de la memoria y
mostrarla en pantalla. Para realizar la operacin de salida de datos en Visual Basic, podemos
utilizar el procedimiento MsgBox, cuya sintaxis es como sigue:
MsgBox MENSAJE [, CONO, TTULO]
MENSAJE es La cadena que se muestra como salida en la caja de dilogo. CONO es
se refiere al estilo de icono que se va ha utilizar y TTULO es una texto que se mostrar en la
barra de ttulo de la caja de dilogo. Por ejemplo:
Dim EDAD As nteger
EDAD = nputBox("ngrese su edad?)
EDAD = EDAD + 10
MsgBox "Dentro de 10 aos su edad ser: & Str(EDAD)
Pgina 18
Curso de Visual Basic
Si ejecuta el cdigo anterior e ingresa su edad (en mi caso 29 aos) la salida debe ser
similar a la figura siguiente:
Para que pueda ejecutar el cdigo anterior, proceda a crear una nueva aplicacin y haga
doble clic sobre el formulario, luego ingrese el cdigo anterior:
Private Sub Form_Load()
Dim EDAD As nteger
EDAD = nputBox("ngrese su edad?)
EDAD = EDAD + 10
MsgBox "Dentro de 10 aos su edad ser: & Str(EDAD)
End Sub
A manera de observacin cabe sealar que la funcin Str() se utiliza para convertir una
expresin numrica a una cadena de caracteres.
ESTUCTUAS DE CONTOL
Las estructuras de control permiten tomar decisiones y realizar un proceso repetidas
veces (procesos iterativos). Para ello Visual Basic dispone de las siguientes estructuras de
control: f . . . Then . . . Else, f . . . Then . . . Elsef, Select Case, For . . . Next, While . . . . Wend,
Do . . . Loop y GoTo.
Estructura #f 8 8 8 !9en 8 8 8 Else
Este tipo de estructura evala una determinada condicin y en funcin a ello ejecuta uno
de entre dos posibles grupos de sentencias. Su sintaxis es la siguiente:
f CONDCN Then
SENTENCAS_VERDADERAS
Else
SENTENCAS_FALSAS
End f
Si CONDCN es verdadera se ejecuta el grupo de SENTENCAS_VERDADERAS. Si
CONDCN es falsa se ejecuta el grupo de SENTENCAS_FALSAS.
Por ejemplo, el siguiente cdigo determina si un entero A es o no divisible por otro
entero B:
Dim A As nteger, B As nteger
A = nputBox("ngrese A?)
Pgina 19
Curso de Visual Basic
B = nputBox("ngrese B?)
f A Mod B = 0 Then
MsgBox Str(A) & " es divisible por & Str(B)
Else
MsgBox Str(A) & " no es divisible por & Str(B)
End f
Estructura #f 8 8 8 !9en 8 8 8 Else#f
Este tipo de estructura se utiliza para elegir una de entre mltiples alternativas. Su
sintaxis es como sigue:
f CONDCN_1 Then
SENTENCAS_1
Elsef CONDCN_2 Then
SENTENCAS_2
..
..
..
Else
SENTENCAS_FALSAS
End f
Si CONDCN_1 es verdadera se ejecuta el grupo de SENTENCAS_1, y si es no se
cumple, se evalan secuencialmente las condiciones siguientes hasta Else, ejecutndose las
sentencias correspondientes al primer Elsef cuya condicin sea verdadera. Si todas las
condiciones son falsas, se ejecutan las SENTENCAS_FALSAS correspondientes a Else.
Por ejemplo considere el siguiente cdigo, el cual imprime el nombre del mes
correspondiente a los nmeros del 1 al 12.
Dim N As nteger
N = nputBox("ngrese N?)
f N = 1 Then
MsgBox "Enero
Elsef N = 2 Then : MsgBox "Febrero
Elsef N = 3 Then : MsgBox "Marzo
Elsef N = 4 Then : MsgBox "Abril
Elsef N = 5 Then : MsgBox "Mayo
Elsef N = 6 Then : MsgBox "Junio
Elsef N = 7 Then : MsgBox "Julio
Elsef N = 8 Then : MsgBox "Agosto
Pgina 20
Curso de Visual Basic
Elsef N = 9 Then : MsgBox "Setiembre
Elsef N = 10 Then : MsgBox "Octubre
Elsef N = 11 Then : MsgBox "Noviembre
Elsef N = 12 Then : MsgBox "Diciembre
Else : MsgBox "Error de datos
End f
Estructura 'elect 0ase
Este estructura es una alternativa a la estructura f . . . Then . . . Elsef, cuando lo que
necesita es comparar la misma expresin con diferentes valores. Su sintaxis es la siguiente:
Select Case EXPRESN_TEST
Case EXPRESN_1
SENTENCAS_1
Case EXPRESN_2
SENTENCAS_2
.
.
.
Case Else
SENTENCAS_FALSAS
End Select
En este caso se comprueba el valor de EXPRESN_TEST frente a la lista expresiones
EXPRESN_1, EXPRESN_2, . . . y as sucesivamente, y busca el primer Case que incluya
el valor evaluado en EXPRESN_TEST, ejecutando a continuacin el bloque de sentencias
correspondiente. Si no existe un valor igual a EXPRESN_TEST, entonces se ejecuta las
SENTENCAS_FALSAS correspondientes al Case Else.
A manera de ejemplo vamos a codificar el programa de la seccin anterior el cual
imprime el nombre del mes correspondiente a los nmeros del 1 al 12. Pero en esta vez
utilizaremos la estructura Select Case (compare con cual de ambas estructuras es ms cmodo
trabajar).
Dim N As nteger
N = nputBox("ngrese N?)
Select Case N
Case 1 : MsgBox "Enero
Case 2 : MsgBox "Febrero
Case 3 : MsgBox "Marzo
Case 4 : MsgBox "Abril
Case 5 : MsgBox "Mayo
Pgina 21
Curso de Visual Basic
Case 6 : MsgBox "Junio
Case 7 : MsgBox "Julio
Case 8 : MsgBox "Agosto
Case 9 : MsgBox "Setiembre
Case 10 : MsgBox "Octubre
Case 11 : MsgBox "Noviembre
Case 12 : MsgBox "Diciembre
Case Else
MsgBox "Error de datos
End Select
Cabe destacar que Select Case tambin se puede utilizar de la siguiente manera:
Dim X As nteger
X = nputBox("ngrese X?)
Select Case X
Case 1
MsgBox "X = 1
Case 2, 3
MsgBox "X = 2 o X = 3
Case 4 To 10
MsgBox "4 <= X <= 10
Case Else
MsgBox "X < 1 o X > 10
End Select
Estructura For 8 8 8 "e+t
Esta estructura es utilizada para ejecutar un bucle un nmero determinado de veces. El
nmero de iteraciones deber ser conocido de antemano. Su sintaxis es la que se presenta a
continuacin:
For CONTADOR = NCO To FNAL [Step NCREMENTO/DECREMENTO]
SENTENCAS_REPETTVAS
[Exit For]
Next
Donde la variable CONTADOR es inicializada con el valor de NCO y se incrementa o
decrementa hasta un valor FNAL. NCREMENTO/DECREMENTO define la manera en que
cambia el valor de la variable CONTADOR en cada iteracin.
La sentencia Exit For permite salir del bucle For . . . Next antes de que este finalice.
Pgina 22
Curso de Visual Basic
Por ejemplo, el siguiente cdigo imprime los cuadrados de los nmeros enteros del 1 al
25.
Dim C As nteger
For C = 1 To 25
Print C
Next
Para que este cdigo funcione correctamente debe establecer la propiedad AutoRedraw
del formulario a True.
Estructura :9ile 8 8 8 :end
La estructura While . . . Wend es aquella en la que el nmero de iteraciones no se
conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada
condicin. Su sintaxis es la siguiente:
While CONDCN
SENTENCAS_REPETTVAS
Wend
La estructura While . . . Wend evala la CONDCN en cada iteracin y si el resultado
es verdadero contina su ejecucin. El bucle termina cuando CONDCN es falsa.
A manera de ejemplo, considere el siguiente cdigo, el cual imprime en pantalla la suma
de los N primeros nmeros naturales, es decir S = 1 + 2 + 3 + 4 + . . . + N
Dim N As nteger, S As nteger
S = 0
N = nputBox("ngrese N?)
While N <> 0
S = S + N
N = N - 1
Wend
MsgBox "La suma es S= & Str(S)
Estructura $o 8 8 8 Loo,
Esta estructura ejecuta un bucle mientras una condicin dada sea cierta, o hasta que
una condicin dada sea cierta. La condicin puede ser verificada antes o despus de ejecutarse
el cuerpo del bucle. Su sintaxis es:
Formato 1: Do [While/Until] CONDCN
SENTENCAS_REPETTVAS
[Exit Do]
Loop
Pgina 23
Curso de Visual Basic
Formato 2: Do
SENTENCAS_REPETTVAS
[Exit Do]
Loop [While/Until] CONDCN
Esta estructura (como se puede observar en ambos formatos) permite realizar varias
estructuras diferentes dependiendo si la condicin de terminacin est al principio o al final del
cuerpo del bucle.
Como ejemplo, consideremos el siguiente programa, el cual calcula el factorial de un
entero N ingresado por teclado:
Dim N As nteger, FACT As nteger, C As nteger
FACT = 1
C = 1
N = nputBox("ngrese N?)
Do
FACT = FACT * C
C = C + 1
Loop While C <= N
MsgBox "El factorial de & Str(N) & " es= & Str(FACT)
'entencia 6o!o
Transfiere el control a una lnea especfica de cdigo, identificada por una etiqueta o por
un nmero de lnea. Su sintaxis es:
GoTo ETQUETA/NUMERO_LNEA
Aunque el uso del GoTo se ha depreciado considerablemente, en el presente trabajo no
se juzgar su validez. Sin embargo, se ha establecido que no hay situaciones de programacin
que requieran el uso del GoTo, es decir, no es un elemento necesario para hacer completo el
lenguaje.
Sin embargo, el GoTo es un convenio que, si su usa con cuidado, puede ser beneficioso
en ciertas situaciones de programacin.
Por ejemplo podra escribir un bucle para imprimir los cuadrados de los nmeros enteros
del 1 al 25.
Dim X As nteger
X = 0
LABEL1:
X = X + 1
Print X ^ 2
f X < 25 Then GoTo LABEL1
Pgina 24
Curso de Visual Basic
Un uso abusivo de la sentencia GoTo da lugar a cdigos difciles de interpretar y de
mantener. Por ello, se recomienda su uso solamente en ocasiones excepcionales. La tarea que
vaya a desempear una sentencia GoTo puede suplirse utilizando cualquiera de las estructuras
de control vistas en las secciones anteriores.
AE%LOS
Un arreglo o matriz es una estructura de datos en la que se almacena una coleccin
finita de datos del mismo tipo, que comparten un nombre comn, a los que se puede acceder
por la posicin (ndice) que ocupa cada uno de ellos dentro del arreglo. Cada elemento del
arreglo es una variable que puede contener un nmero o una cadena de caracteres,
dependiendo del tipo de arreglo que se declare.
Los arreglos en Visual Basic se clasifican en estticos y dinmicos.
%rreglos est;ticos
Son aquellos arreglos cuyo tamao no puede cambiar en tiempo de ejecucin. La
declaracin de un arreglo esttico se puede realizar mediante la siguiente sintaxis:
Dim NOMBRE_ARREGLO(DMENSONES) As TPO
Donde DMENSONES es una lista de nmeros, separados por comas y que definen las
dimensiones del arreglo. Esta lista puede ser de la siguiente forma:
DMENSN_1, DMENSN_2, DMENSN_3, . . ., DMENSN_ K
Para el caso de un arreglo formado por " K dimensiones, es decir un arreglo K -
dimensional.
A manera de ejemplo considere los siguientes casos que se pueden presentar:
Dim LSTA(9) As nteger
Dim MATRZ(4, 3) As Double
Dim NOMBRES(19) As String * 30
En el primer caso se declara un arreglo unidimensional de 10 elementos de tipo entero
(por defecto los elementos de un arreglo se numeran a partir de 0).
En el segundo caso se define de un arreglo bidimensional de 20 elementos (5 filas por 4
columnas) de tipo punto flotante en doble precisin.
En el tercer caso se define una arreglo unidimensional de 20 elementos de tipo cadena
de caracteres (cada elemento tiene una longitud fija de 30 caracteres).
Como se observa la numeracin de los elementos de un arreglo por defecto comienza
en cero, para hacer que la numeracin comience en 1, debe ingresar la siguiente orden en la
seccin de Declaraciones del mdulo de formulario:
Pgina 25
Curso de Visual Basic
Luego, para declarar los mismos arreglos de los casos anteriores, las sentencias seran
las siguientes:
Dim LSTA(10) As nteger
Dim MATRZ(5, 4) As Double
Dim NOMBRES(20) As String * 30
Establecer la sentencia Option Base a 1 o trabajar con el valor predeterminado (cero)
queda a consideracin del lector.
%rreglos din;micos
Son aquellos arreglos en los que su tamao puede definirse o modificarse en tiempo de
ejecucin. Para declara una arreglo dinmico utilice la siguiente sintaxis:
Dim NOMBRE_ARREGLO() As TPO
Para definir el tamao del arreglo utilizar la siguiente sintaxis:
ReDim NOMBRE_ARREGLO(NMERO_ELEMENTOS)
Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en el
arreglo se pierden. Para definir o cambiar el tamao del arreglo conservando los valores del
mismo use la siguiente sintaxis:
ReDim Preserve NOMBRE_ARREGLO(NMERO_ELEMENTOS)
Para liberar el espacio de memoria utilizado por arreglos dinmicos que ya no son tiles,
utilizar la sintaxis:
Erase NOMBRE_ARREGLO
La orden Erase asigna cero a cada elemento de los arreglos numricos y nulo (") a cada
elemento de los arreglos de cadena de caracteres.
A manera de ejemplo considere el siguiente cdigo que declara y hace uso de un arreglo
dinmico:
Dim As nteger, N As nteger, TEMP() As nteger
N = nputBox("ngrese N?)
ReDim TEMP(N - 1)
For = 0 To N - 1
Pgina 26
Curso de Visual Basic
TEMP() = + 1
Print TEMP()
Next
Erase TEMP
E%ISTOS
Un registro es un nuevo tipo de dato, que se define como una coleccin de datos de
diferentes tipos, conocidos como "campos, los cuales se encuentran evidentemente
relacionados. Un registro slo se puede ser creado en la seccin de declaraciones de un
mdulo. La sintaxis correspondiente es:
Private Type NOMBRE_REGSTRO
DECLARACONES_DE_LOS_MEMBROS
End Type
Por ejemplo considere el siguiente cdigo que define la estructura ALUMNO:
Private Type ALUMNO
D_ALUMNO As String * 7
NOMBRE As String * 25
DRECCON As String * 35
TELEFONO As String * 7
ESTADO As Boolean
End Type
Luego, podemos declarar una variable tipo ALUMNO de la siguiente forma:
Dim X As ALUMNO
Para referirse a un determinado miembro del registro se utiliza el operador selector de
campos ( . ), veamos:
X.D_ALUMNO = "980976G
X.NOMBRE = "Carlos Castillo Peralta
X.DRECCON = "Jr. C. Richardson 412 Chorrillos
X.TELEFONO = "2510850
X.ESTADO = True
Las mismas rdenes del prrafo anterior se pueden escribir de una manera ms fcil,
ms legible y ms eficiente si utiliza la sentencia With . . . End With, del siguiente modo:
With X
Pgina 27
Curso de Visual Basic
. D_ALUMNO = "980976G
.NOMBRE = "Carlos Castillo Peralta
.DRECCON = "Jr. C. Richardson 412 Chorrillos
.TELEFONO = "2510850
.ESTADO = True
End With
FUNCIONES
Las funciones son uno de los elementos bsicos en programacin. A continuacin sern
estudiadas detalladamente.
$eclaracin de una funcin
Una funcin es un procedimiento que cuando se ejecuta devuelve un nico resultado al
procedimiento que la invoc. La sintaxis correspondiente a la declaracin de una funcin es:
Function NOMBRE_FUNCN([LSTA_PARMETROS]) [As TPO]
SENTENCAS
[NOMBRE_FUNCN = VALOR_RETORNADO]
[Exit Function]
End Function
Donde LSTA_PARMETROS es una secuencia de variables separadas por comas que
se corresponden con los argumentos pasados cuando es invocada la funcin.
Para especificar el tipo de datos que ser retornado por la funcin utilice la clusula
opcional As TPO, el tipo es Variant por omisin.
El valor retornado por la funcin es almacenado en su propio nombre, es decir en
NOMBRE_FUNCN, que acta como variable dentro del cuerpo de la funcin. Si no se efecta
esta asignacin el valor devuelto ser cero si la funcin es de tipo numrica, nulo (") si la
funcin es de tipo cadena, o vaco (Empty) si la funcin es de tipo Variant.
La clusula opcional Exit Function permite salir de una funcin antes de que la funcin
finalice, en caso sea esto necesario.
La sintaxis para la llamada a una funcin es de la siguiente forma:
VARABLE = NOMBRE_FUNCN([LSTA_ARGUMENTOS])
Donde LSTA_ARGUMENTOS es una secuencia de constantes, variables o expresiones
separadas por comas. El nmero de argumentos debe ser igual al nmero de parmetros de la
funcin. Los tipos de los argumentos deben coincidir con los tipos de sus correspondientes
parmetros.
A manera de ejemplo considere la implementacin de la siguiente funcin:
( ) * +
)
+ + = x x x f
En la seccin de Declaraciones del mdulo de formulario ingrese el siguiente cdigo:
Function F(X As Double) As Double
Pgina 28
Curso de Visual Basic
F = X ^ 2 + 2 * X + 3
End Function
Para invocar la funcin creada recientemente, codifique las siguientes lneas:
Dim A As Double, RESP As Double
A = nputBox("ngrese A?)
RESP = F(A)
MsgBox (Str(RESP))
/aso de argumentos a una funcin
El paso de argumentos a una funcin es la forma como se ingresan los datos y variables
al interior de la funcin y se presenta de dos formas:
Por referencia
Por valor
/aso de argumentos ,or referencia
En las funciones de Visual Basic, los argumentos se pasan por referencia (forma por
defecto), de este modo cualquier cambio de valor que sufra un parmetro en el cuerpo de la
funcin, tambin se produce en el argumento correspondiente de la llamada a la funcin. Esta
forma de pasar los argumentos a una funcin es til para funciones que devuelven ms de un
valor. Por ejemplo, considere la siguiente funcin que calcula las races reales de una ecuacin
cuadrtica
Ax Bx C
)
, + + =
.
Function RAZ(A As Double, B As Double, C As Double, _
X1 As Double, X2 As Double) As Boolean
Dim D As Double
D = B ^ 2 - 4 * A * C
f D >= 0 Then
X1 = (-B - Sqr(D)) / (2 * A)
X2 = (-B + Sqr(D)) / (2 * A)
RAZ = True ' Verdadero si hay races reales
Else
RAZ = False ' Falso si no hay races reales
End f
End Function
La llamada a esta funcin se puede realizar de la manera que se presenta a
continuacin:
Dim A As Double, B As Double, C As Double
Dim X1 As Double, X2 As Double
Pgina 29
Curso de Visual Basic
A = nputBox("ngrese A?)
B = nputBox("ngrese B?)
C = nputBox("ngrese C?)
f RAZ(A, B, C, X1, X2) Then
MsgBox "X1= & Str(X1)
MsgBox "X2= & Str(X2)
Else
MsgBox "NO EXSTEN RACES REALES
End f
/aso de argumentos ,or 4alor
Cuando se ejecuta una funcin, se podr especificar que el valor de un argumento no
sea cambiado por esta funcin, pasando dicho argumento por valor. Para ello se debe
anteponer la palabra reservada ByVal a la declaracin del parmetro en la cabecera de la
funcin. Por ejemplo:
Function F(ByVal X As Double) As Double
F = X ^ 2 + 2 * X + 3
End Function
La cabecera de la funcin F especifica que X ser pasado por valor y no por referencia.
Funciones recursi4as
Se dice que una funcin es recursiva si se llama a s misma. Por ejemplo la funcin
FACTORAL cuyo cdigo se presenta a continuacin es recursiva:
Function FACTORAL(N As nteger) As Long
f N <> 0 Then
FACTORAL = FACTORAL(N - 1) * N
Else
FACTORAL = 1
End f
End Function
POCEDIMIENTOS
La sintaxis para definir un procedimiento es la siguiente:
Private Sub NOMBRE_PROCEDMENTO([LSTA_PARMETROS])
SENTENCAS
[Exit Sub]
Pgina 30
Curso de Visual Basic
End Sub
La explicacin es anloga a la dada para las funciones. Sin embargo, un procedimiento
no puede ser utilizado en una expresin, ya que un procedimiento no retorna ningn valor a
travs de su nombre.
La llamada a un procedimiento puede ser realizada de alguna de las dos formas
siguientes:
Call NOMBRE_PROCEDMENTO([LSTA_ARGUMENTOS])

NOMBRE_PROCEDMENTO([LSTA_ARGUMENTOS])
Por ejemplo, el siguiente cdigo corresponde a un procedimiento que calcula e imprime
la suma de los N primeros nmeros naturales impares, es decir: S = 1 + 3 + 5 + . . . + N
Private Sub SUMA_MPAR(N As nteger)
Dim S As nteger, As nteger
S = 0
For = 1 To N
f Mod 2 <> 0 Then
S = S +
End f
Next
MsgBox "La suma es S= & Str(S)
End Sub
La llamada a este procedimiento podra ser de la forma:
Call SUMA_MPAR(25)
U"#$%$ 4: U'& $E L&' 0&"!7&LE'
Los controles son aquellos objetos que se encuentran dentro de un contenedor y que
permiten la interaccin entre el usuario y la aplicacin, ya sea para manipular datos y/o ejecutar
tareas.
En Visual Basic, los controles suelen ser agrupados en tres categoras:
Controles bsicos
Controles complementarios
Controles externos
Los controles bsicos son las etiquetas, cuadros de texto y botones de comando, pues
utilizando estos tres controles se puede construir cualquier interfaz.
Los controles complementarios son el resto de los controles, por ejemplo una casilla de
verificacin, un cuadro combinado o un cronmetro.
Pgina 31
Curso de Visual Basic
Los controles externos se refieren a aquellos controles creados por terceros. Este tipo de
controles son llamados ActiveX.
CONTOLES B"SICOS
Los controles bsicos lo conforman las etiquetas, cuadros de texto y botones de
comando, debido a que cualquier interfaz se puede implementar con slo estos tres objetos.
Eti<ueta
Una etiqueta es un control que permite presentar texto de solo lectura. Se utiliza para
mostrar ttulos y mensajes que por lo general no cambian. Sin embargo, si lo desea, puede
escribir procedimientos que cambien el texto mostrado por una etiqueta como respuesta a
eventos en tiempo de ejecucin.
/ro,iedad $escri,cin
Alignment Especifica la forma como se alinear el texto.
AutoSize Especifica si se cambia automticamente el tamao del control
para que quepan sus contenidos.
BackColor,
ForeColor
Especifica el color de fondo y de primer plano empleado para
mostrar el texto.
BackStyle Especifica si el fondo del control es transparente u opaco.
Caption Especifica el texto que se muestra en el control.
WordWrap Especifica si la etiqueta se extiende a ms de una lnea cuando el
texto es amplio.
0uadro de te+to
Un cuadro de texto es un control en el que el usuario pueda ingresar datos desde el
teclado o visualizar un resultado generado por la aplicacin. El valor de un cuadro de texto por
lo general se asocia a una variable de memoria.
/ro,iedad $escri,cin
Enabled Habilita o deshabilita el control, es decir si se puede o no modificar
el contenido.
Locked Permite bloquear el acceso al control en tiempo de ejecucin.
MaxLenght Especifica la longitud mxima (en caracteres) que puede
escribirse en el control.
MultiLine Especifica si el control admitir mltiples lneas.
PasswordChar Determina si se muestran en el control los caracteres escritos por
el usuario o los caracteres de marcador de posicin.
ScrollBars Especifica si se muestran las barras de desplazamiento
horizontales o verticales.
SelLength Especifica el nmero de caracteres seleccionados.
SelStart Especifica el inicio del texto seleccionado. Si su valor es 0, el texto
seleccionado comienza por el primer carcter.
SelText Contiene el texto seleccionado.
Text Contiene el texto introducido en el control. Puede inicializar el
contenido en tiempo de diseo.
Los eventos asociados a un cuadro de texto son los siguientes:
Pgina 32
Curso de Visual Basic
E4ento $escri,cin
Change Ocurre cuando se cambia el contenido del control utilizando el
teclado o el ratn.
KeyPress Ocurre cuando se pulsa una tecla.
(otn de comando
Un botn de comando es un control que suele emplearse para ejecutar una accin,
como cerrar un formulario, imprimir un informe, etc.
/ro,iedad $escri,cin
Cancel Especifica si el control responder a la tecla ESC, por lo general
para terminar la aplicacin.
Caption Muestra un ttulo para el control.
Default Especifica si el control responder a la tecla ENTRAR, sin
importar la ubicacin del enfoque.
Enabled Permite habilitar o deshabilitar el control.
Picture Especifica una imagen tipo icono para el control.
Style Especifica la apariencia del control, ya sea estndar (estilo
estndar de Windows) o grfica (con una imagen personalizada).
Los botones de comando suelen responder al evento Clic, cuya descripcin es:
E4ento $escri,cin
Clic Ocurre cuando el usuario hace clic sobre el control.
A manera de ejemplo vamos a desarrollar la siguiente aplicacin. Esta consiste en un
cajero automtico el cual permite manipular cierta cantidad de dinero para lo cual dispone de los
siguientes billetes: S/. 10.00; S/. 20.00; S/. 50.00; S/. 100.00 y S/. 200.00. Elaborar una
aplicacin que permita la lectura de la cantidad a retirar e indique el menor nmero de billetes a
utilizar.
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles en
el formulario:
6 etiquetas
Pgina 33
Curso de Visual Basic
6 cajas de texto
3 botones de comando
Una vez ubicados los controles, establezca las propiedades segn se indica:
Form1
Nombre FrmCajero
BorderStyle 3-Fixed Dialog
Caption Cajero automtico
Label1
Nombre LblCantidad
AutoSize True
Caption Cantidad a retirar:
Label2
Nombre LblB10
AutoSize True
Caption Billetes de S/. 10
Label3
Nombre LblB20
AutoSize True
Caption Billetes de S/. 20
Label4
Nombre LblB50
AutoSize True
Caption Billetes de S/. 50
Label5
Nombre LblB100
AutoSize True
Caption Billetes de S/. 100
Label6
Nombre LblB200
AutoSize True
Caption Billetes de S/. 200
!e+t1
Nombre TxtCantidad
Text
!e+t2
Nombre TxtB10
Text
Pgina 34
Curso de Visual Basic
!e+t3
Nombre TxtB20
Text
!e+t4
Nombre TxtB50
Text
!e+t5
Nombre TxtB100
Text
!e+t6
Nombre TxtB200
Text
0ommand1
Nombre CmdAceptar
Caption &Aceptar
0ommand2
Nombre CmdLimpiar
Caption &Limpiar
0ommand3
Nombre CmdSalir
Caption &Salir
Para aadir cdigo a la aplicacin haga doble clic sobre el botn "Aceptar e ingrese lo
siguiente:
Private Sub CmdAceptar_Clic()
Dim C As nteger, B200 As nteger, B100 As nteger, _
B50 As nteger, B20 As nteger, B10 As nteger
C = Val(TxtCantidad)
f C Mod 10 = 0 Then
B200 = C \ 200 : C = C Mod 200
B100 = C \ 100 : C = C Mod 100
B50 = C \ 50 : C = C Mod 50
B20 = C \ 20 : B10 = C Mod 20
TxtB200 = Str(B200)
TxtB100 = Str(B100)
TxtB50 = Str(B50)
Pgina 35
Curso de Visual Basic
TxtB20 = Str(B20)
TxtB10 = Str(B10)
Else
MsgBox "Cantidad a retirar debe ser mltiplo de 10
TxtCantidad = "
TxtCantidad.SetFocus
End f
End Sub
Luego, haga doble clic sobre el botn "Limpiar y aada el siguiente cdigo:
Private Sub CmdLimpiar_Clic()
TxtCantidad = "
TxtB200 = "
TxtB100 = "
TxtB50 = "
TxtB20 = "
TxtB10 = "
TxtCantidad.SetFocus
End Sub
Finalmente dar doble clic sobre el botn "Salir y aada el siguiente cdigo:
Private Sub CmdSalir_Clic()
End
End Sub
En el cdigo anterior hemos utilizado el mtodo SetFocus para enfocar la caja de texto
TxtCantidad, esto es, para posicionar el cursor sobre ella.
CONTOLES COMPLEMENTAIOS
Los controles complementarios se utilizan como alternativa a los controles bsicos en
aplicaciones en las cuales su uso facilita o mejora el diseo de la interfaz. Como el lector podr
verificar, algunos controles son ms adecuados que otros dependiendo del tipo de aplicacin
que se pretenda desarrollar.
Marco
Pgina 36
Curso de Visual Basic
Un marco es un objeto contenedor que puede utilizarse para agrupar casillas de
verificacin, botones de opcin, botones de comando, etc.
/ro,iedad $escri,cin
Caption Muestra un ttulo para el control.
0asilla de 4erificacin
Una casilla de verificacin se utiliza para alternar entre dos posibles valores
(Activado/Desactivado). Cada casilla de verificacin es independiente de las dems ya que
cada una tiene su propio nombre (Name). Puede utilizar casillas de verificacin en grupos para
mostrar mltiples opciones entre las cuales el usuario puede seleccionar todas las que desee a
la vez.
/ro,iedad $escri,cin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser:
Desactivado (0), Activado (1).
Las casillas de verificacin suelen responder al evento Clic.
(otn de o,cin
Un botn de opcin se utiliza para alternar entre dos posibles valores
(Activado/Desactivado), de manera similar a las casillas de verificacin, la diferencia radica en
que de un grupo de botones de opcin el usuario slo puede seleccionar un nico botn a la
vez.
/ro,iedad $escri,cin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser:
Desactivado (Falso), Activado (True).
Los botones de opcin tambin suelen responder al evento Clic.
A manera de ejemplo vamos a desarrollar la siguiente aplicacin, la cual permite cambiar
el aspecto de un cuadro de texto, el usuario debe elegir el color (rojo, verde, azul) y el estilo
(negrita, cursiva, subrayado) de la fuente a utilizar. Adicionalmente, cuando el usuario active la
casilla de verificacin "Convertir a maysculas, todo el texto que haya escrito en el cuadro de
texto se presentar en maysculas y todo texto que escriba a continuacin (mientras la opcin
est activada) tambin deber aparecer en maysculas.
Pgina 37
Curso de Visual Basic
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles en
el formulario:
1 cuadro de texto
2 marcos
3 botones de opcin
4 casillas de verificacin
Una vez ubicados los controles, establezca las propiedades segn se indica:
Form1
Nombre FrmEditor
BorderStyle 3-Fixed Dialog
Caption Editor
!e+t1
Nombre TxtMensaje
ForeColor &H000000FF&
Text
Frame1
Nombre FraColor
Caption Color
Frame2
Nombre FraEstilo
Caption Estilo
&,tion1
Nombre OptRojo
Caption Rojo
ForeColor &H000000FF&
Value True
Pgina 38
Curso de Visual Basic
&,tion2
Nombre OptVerde
Caption Verde
ForeColor &H00008000&
&,tion3
Nombre OptAzul
Caption Azul
ForeColor &H00C00000&
09ec=1
Nombre ChkNegrita
Caption Negrita
Font Arial (Negrita)
09ec=2
Nombre ChkCursiva
Caption Cursiva
Font Arial (Cursiva)
09ec=3
Nombre ChkSubrayado
Caption Subrayado
Font Arial (Subrayado)
09ec=4
Nombre ChkMayuscula
Caption Convertir a maysculas
Una vez establecidas las propiedades, proceda a ingresar el cdigo que se indica a
continuacin:
Private Sub OptRojo_Clic()
f OptRojo.Value Then
TxtMensaje.ForeColor = RGB(255, 0, 0)
End f
End Sub
Private Sub OptVerde_Clic()
f OptVerde.Value Then
TxtMensaje.ForeColor = RGB(0, 255, 0)
End f
End Sub
Pgina 39
Curso de Visual Basic
Private Sub OptAzul_Clic()
f OptAzul.Value Then
TxtMensaje.ForeColor = RGB(0, 0, 255)
End f
End Sub
Private Sub ChkNegrita_Clic()
f ChkNegrita.Value Then
TxtMensaje.Font.Bold = True
Else
TxtMensaje.Font.Bold = False
End f
End Sub
Private Sub ChkCursiva_Clic()
f ChkCursiva.Value Then
TxtMensaje.Font.talic = True
Else
TxtMensaje.Font.talic = False
End f
End Sub
Private Sub ChkSubrayado_Clic()
f ChkSubrayado.Value Then
TxtMensaje.Font.Underline = True
Else
TxtMensaje.Font.Underline = False
End f
End Sub
Private Sub ChkMayuscula_Clic()
f ChkMayuscula.Value Then
TxtMensaje = UCase(TxtMensaje)
End f
End Sub
Pgina 40
Curso de Visual Basic
Private Sub TxtMensaje_KeyPress(KeyAscii As nteger)
Dim CAR As String * 1
f ChkMayuscula.Value Then
CAR = UCase(Chr(KeyAscii))
KeyAscii = Asc(CAR)
End f
End Sub
La funcin RGB() especifica el color que se asigna a la propiedad ForeColor.
La funcin UCase() retorna una cadena de caracteres en maysculas.
0uadro de lista
Un cuadro de lista es un control que presenta una lista de elementos en la que el usuario
puede seleccionar uno o ms de dichos elementos. Si el nmero de elementos supera el
nmero que puede mostrarse, se agregar automticamente una barra de desplazamiento al
control.
/ro,iedad $escri,cin
List Contiene los elementos de la lista. Puede definirlos en tiempo de
diseo.
ListCount Especifica el nmero de elementos de la lista. Su valor siempre es
uno ms que el mayor valor de Listndex.
Listndex Especifica el nmero de orden que ocupa el elemento
seleccionado en la lista. Toma el valor de 0 para el primer
elemento, si no ha selecciona ninguno retorna -1.
MultiSelect Especifica si se pueden seleccionar varios elementos de la lista.
SelCount Devuelve el nmero de elementos seleccionados.
Selected Especifica si un elemento de la lista est seleccionado.
Sorted Especifica si los elementos de la lista se ordenan alfabticamente.
Text Especifica el valor del elemento seleccionado en ese instante. El
valor es tratado como una cadena de caracteres.
Los mtodos que se pueden utilizar para un cuadro de lista son los siguientes:
M3todo $escri,cin
Addtem Agrega un nuevo elemento a la lista.
Clear Elimina todos los elementos contenidos en la lista.
Removetem Elimina en elemento de la lista.
0uadro combinado
Un cuadro combinado es una mezcla de un cuadro de texto con una lista. En l no slo
se podr ingresar un dato sino tambin seleccionarlo de la lista. Presenta las mismas
propiedades, eventos y mtodos que el cuadro de lista a excepcin de lo siguiente:
Pgina 41
Curso de Visual Basic
/ro,iedad $escri,cin
Style Especifica si el control se comporta como un cuadro de texto o
como una lista desplegable. Un cuadro de texto permite ingresar
valores. Una lista desplegable slo permite seleccionar valores. El
valor predeterminado es 0-vbComboDropDown, e incluye una lista
desplegable y un cuadro de texto. El valor 1-vbComboSimple
incluye tan solo cuadro de texto. El valor 2-Dropdown List incluye
slo una lista desplegable.
Como ejemplo del uso de listas vamos a desarrollar una aplicacin que permita ingresar
el nombre de un curso, el
cual pasa a formar parte de
una lista de espera antes de
ser programado para su
dictado. Los cursos deben
ser seleccionados de la lista
de espera y trasladados a la
lista de cursos programados
y viceversa.
Para el desarrollo de
la presente aplicacin
proceda a ubicar los
siguientes controles en el
formulario:
3 etiquetas
1 cuadro de texto
2 listas
5 botones de comando
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmCursos
BorderStyle 3-Fixed Dialog
Caption Cursos
Label1
Nombre LblCurso
AutoSize True
Caption ngrese nuevo curso:
Label2
Nombre LblSeleccionar
AutoSize True
Caption Seleccione un curso:
Label3
Pgina 42
Curso de Visual Basic
Nombre LblProgramado
AutoSize True
Caption Curso programado:
!e+t1
Nombre TxtCurso
Text
List1
Nombre LstSeleccionar
List2
Nombre LstProgramado
0ommand1
Nombre CmdAgregar
Caption
Picture C:\FundVB\Bitmaps\Addtem.Bmp
Style 1-Graphical
0ommand2
Nombre CmdAgregarTodo
Caption
Picture C:\FundVB\Bitmaps\AddAll.Bmp
Style 1-Graphical
0ommand3
Nombre CmdQuitar
Caption
Picture C:\FundVB\Bitmaps\Remove.Bmp
Style 1-Graphical
0ommand4
Nombre CmdQuitarTodo
Caption
Picture C:\FundVB\Bitmaps\RemoveAll.Bmp
Style 1-Graphical
0ommand5
Nombre CmdAnnadir
Caption &Aadir
Default True
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub CmdAnnadir_Clic()
LstSeleccionar.Addtem TxtCurso
Pgina 43
Curso de Visual Basic
TxtCurso = "
TxtCurso.SetFocus
End Sub
Private Sub CmdAgregar_Clic()
Dim CURSO As String, As nteger
CURSO = LstSeleccionar.Text
= LstSeleccionar.Listndex
f LstSeleccionar.Listndex >= 0 Then
LstProgramado.Addtem CURSO
LstSeleccionar.Removetem
End f
End Sub
Private Sub CmdQuitar_Clic()
Dim CURSO As String, As nteger
CURSO = LstProgramado.Text
= LstProgramado.Listndex
f LstProgramado.Listndex >= 0 Then
LstSeleccionar.Addtem CURSO
LstProgramado.Removetem
End f
End Sub
Private Sub CmdAgregarTodo_Clic()
Dim As nteger
For = 0 To LstSeleccionar.ListCount - 1
LstProgramado.Addtem LstSeleccionar.List()
Next
LstSeleccionar.Clear
End Sub
Private Sub CmdQuitarTodo_Clic()
Dim As nteger
For = 0 To LstProgramado.ListCount - 1
Pgina 44
Curso de Visual Basic
LstSeleccionar.Addtem LstProgramado.List()
Next
LstProgramado.Clear
End Sub
Seguidamente mostraremos un
ejemplo del uso de los cuadros
combinados. Para tal fin vamos a
desarrollar una aplicacin que permita
realizar consultas acerca de un
determinado curso. La relacin de
cursos se presentar mediante un
cuadro combinado, del cual el usuario
debe seleccionar el curso de su
inters y en seguida se presentar el
nombre del profesor encargado del
curso (teora), el nombre del jefe de
prctica (laboratorio), as como los
horarios de teora y de laboratorio,
respectivamente.
Para el desarrollo de la
presente aplicacin proceda a ubicar
los siguientes controles en el
formulario:
1 etiqueta
1 cuadro de texto
1 cuadro combinado
1 botn de comando
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmConsultaCursos
BorderStyle 3-Fixed Dialog
Caption Consulta de cursos
Label1
Nombre LblCursos
Caption Cursos:
!e+t1
Nombre TxtCurso
MultiLine True
ScrollBars 2-Vertical
Text
Pgina 45
Curso de Visual Basic
0ombo1
Nombre CboCursos
Text
Style 2-Dropdown List
0ommand1
Nombre CmdSalir
Caption &Salir
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Dim Matriz(5, 3) As String
Private Sub Form_Load()
CboCursos.Addtem "Microsoft Visual Basic Nivel
CboCursos.Addtem "Microsoft Visual Basic Nivel
CboCursos.Addtem "Microsoft Visual FoxPro Nivel
CboCursos.Addtem "Microsoft Visual FoxPro Nivel
CboCursos.Addtem "Microsoft Visual C++ Nivel
CboCursos.Addtem "Microsoft Visual C++ Nivel
Matriz(0, 0) = "Castillo Peralta, Carlos
Matriz(1, 0) = "Castillo Peralta, Carlos
Matriz(2, 0) = "Linares Alarcon, Adams
Matriz(3, 0) = "Castillo Peralta, Carlos
Matriz(4, 0) = "Crdoba Saavedra, Javier
Matriz(5, 0) = "Castillo Peralta, Carlos
Matriz(0, 1) = "Sa 08-11
Matriz(1, 1) = "Sa 14-17
Matriz(2, 1) = "Sa 08-11
Matriz(3, 1) = "Do 08-11
Matriz(4, 1) = "Sa 14-17
Matriz(5, 1) = "Sa 17-20
Matriz(0, 2) = "Castillo Peralta, Carlos
Matriz(1, 2) = "Linares Alarcon, Adams
Matriz(2, 2) = "Montes Tejada, Estela
Matriz(3, 2) = "Linares Alarcon, Adams
Matriz(4, 2) = "Crdoba Saavedra, Javier
Matriz(5, 2) = "Crdoba Saavedra, Javier
Matriz(0, 3) = "Sa 11-13
Pgina 46
Curso de Visual Basic
Matriz(1, 3) = "Do 08-10
Matriz(2, 3) = "Sa 11-13
Matriz(3, 3) = "Do 14-16
Matriz(4, 3) = "Sa 18-20
Matriz(5, 3) = "Do 08-10
End Sub
Private Sub CboCursos_Clic()
Dim P_TEORA As String, H_TEORA As String
Dim P_LAB As String, H_LAB As String
P_TEORA = "Profesor de teora: & _
Matriz(CboCursos.Listndex, 0)
H_TEORA = "Horario de teora: & _
Matriz(CboCursos.Listndex, 1)
P_LAB = "Jefe de prctica: & _
Matriz(CboCursos.Listndex, 2)
H_LAB = "Horario laboratorio: & _
Matriz(CboCursos.Listndex, 3)
TxtCurso = P_TEORA & vbCrLf & H_TEORA & vbCrLf & _
P_LAB & vbCrLf & H_LAB
End Sub
Private Sub CmdSalir_Clic()
End
End Sub
La constante vbCrLf es una combinacin de retorno de carro y avance de lnea, es
equivalente a Chr(13) + Chr(10).
Para este ejemplo en particular hemos almacenado la informacin en memoria RAM
mediante el uso de un arreglo bidimensional (Matriz).
0ronmetro
Un cronmetro sirve para controlar el tiempo transcurrido desde el inicio de una accin.
/ro,iedad $escri,cin
nterval Especifica el nmero de milisegundos que se esperar para
disparar el evento Timer.
El control Cronmetro responde al evento Timer, cuya descripcin es:
Pgina 47
Curso de Visual Basic
E4ento $escri,cin
Timer Ocurre cuando el nmero de milisegundos especificado en la
propiedad nterval ha transcurrido.
A manera de ejemplo vamos a desarrollar la siguiente aplicacin que simula el
funcionamiento de un reloj digital.
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles
sobre el formulario:
1 etiqueta
1 cuadro de texto
1 cronmetro
1 botn de comando
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmReloj
BorderStyle 3-Fixed Dialog
Caption Reloj digital
Label1
Nombre LblHora
Caption Hora
!e+t1
Nombre TxtHora
Text
!imer1
Nombre Timer1
nterval 500
0ommand1
Nombre CmdTerminar
Caption &Terminar
Pgina 48
Curso de Visual Basic
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub Form_Activate()
TxtHora = Time()
End Sub
Private Sub Timer1_Timer()
f TxtHora <> Time() Then
TxtHora = Time()
End f
End Sub
Private Sub CmdTerminar_Clic()
End
End Sub
0uadro de imagen
Un cuadro de imagen se utiliza para mostrar un archivo de imagen (BMP, GF o JPG).
Recorta el grfico si el control no es lo bastante grande para mostrar la imagen completa.
/ro,iedad $escri,cin
AutoSize Especifica si el control ajusta automticamente su tamao para
mostrar un grfico completo.
Picture Especifica el archivo de imagen para el control.
El evento que suele manejarse para este control es MouseMove, cuya descripcin es:
E4ento $escri,cin
MouseMove Ocurre cuando el usuario mueve el ratn sobre el control.
#magen
Un control imagen se utilizar para mostrar un archivo de imagen (BMP, GF o JPG) de
manera similar a un Cuadro de imagen. Sin embargo, este control utiliza menos recursos del
sistema y se actualiza con ms rapidez que un cuadro de imagen.
/ro,iedad $escri,cin
Picture Especifica el archivo de imagen para el control.
Stretch Especifica como se ajusta el tamao del archivo grfico para que
quepa dentro del control imagen.
Para este control tambin se suele manejar el evento MouseMove.
Pgina 49
Curso de Visual Basic
(arras de des,la1amiento 9ori1ontal
Una barra de desplazamiento horizontal representa un valor entero, la cual tiene un
cuadrado que se desplaza a lo largo de la misma para fijar un valor.
La posicin ms a la izquierda se corresponde con el valor mnimo, la posicin ms a la
derecha con el valor mximo, y cualquier otra posicin es un valor entre ellos dos.
/ro,iedad $escri,cin
Max Especifica el valor mximo que puede tomar la propiedad Value.
Min Especifica el valor mnimo que puede tomar la propiedad Value.
LargeChange Especifica en cuanto cambiar el valor de la propiedad Value
cuando el usuario haga clic antes o despus del cuadrado de
desplazamiento.
SmallChange Especifica en cuanto cambiar el valor de la propiedad Value
cuando el usuario haga clic en alguna de las flechas de los
extremos de la barra.
Value Especifica el valor del control, este se encuentra siempre entre los
valores de las propiedades Min y Max.
Las barras de desplazamientos responden a los eventos:
E4ento $escri,cin
Change Ocurre inmediatamente despus que el cuadrado de
desplazamiento ha sido movido.
Scroll Ocurre mientras el cuadrado de desplazamiento est siendo
movido (este evento slo ocurre cuando el cuadrado es
arrastrado).
(arras de des,la1amiento 4ertical
Una barra de desplazamiento vertical representa un valor entero, la cual tiene un
cuadrado que se desplaza a lo largo de la misma para fijar un valor.
La posicin ms hacia arriba se corresponde con el valor mnimo, la posicin ms hacia
abajo se corresponde con el valor mximo, y cualquier otra posicin es un valor entre ellos dos.
Las propiedades y eventos de las barras de desplazamiento horizontal y vertical son
anlogas.
Como ejemplo, vamos a construir una aplicacin que permita cambiar el color de fondo
de un cuadro de imagen, mediante tres barras de desplazamiento (rojo, verde y azul).
Pgina 50
Curso de Visual Basic
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles en
el formulario:
3 etiquetas
3 barras de desplazamiento horizontal
1 cuadro de imagen
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmColores
BorderStyle 3-Fixed Dialog
Caption Colores
Label1
Nombre LblRojo
Caption Rojo
Label2
Nombre LblVerde
Caption Verde
Label3
Nombre LblAzul
Caption Azul
5'croll1
Nombre HSRojo
LargeChange 10
Max 255
Min 0
SmallChange 1
Value 255
Pgina 51
Curso de Visual Basic
5'croll2
Nombre HSVerde
LargeChange 10
Max 255
Min 0
SmallChange 1
Value 0
5'croll3
Nombre HSAzul
LargeChange 10
Max 255
Min 0
SmallChange 1
Value 0
/icture1
Nombre PicFondo
BackColor &H000000FF&
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub HSRojo_Change()
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
Private Sub HSVerde_Change()
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
Private Sub HSAzul_Change()
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
En el cdigo anterior se debi colocar HSRojo.Value, HSVerde.Value y HSAzul.Value,
pero debido a que la propiedad Value es por defecto se puede omitir.
0uadro de lista de unidades
Un cuadro de lista de unidades permite al usuario seleccionar una unidad de disco vlida
en tiempo de ejecucin. Utilice este control para presentar una lista de todas las unidades
vlidas del sistema.
/ro,iedad $escri,cin
Drive Especifica la unidad seleccionada en tiempo de ejecucin.
Pgina 52
Curso de Visual Basic
Este control responde al evento Change, cuya descripcin es la siguiente:
E4ento $escri,cin
Change Ocurre cuando el usuario hace clic sobre la unidad que desea
seleccionar. El evento Change tambin ocurre si se selecciona la
unidad mediante el teclado.
0uadro de lista de directorios
Un cuadro de lista de directorios muestra directorios y rutas de acceso en tiempo de
ejecucin. Utilice este control para mostrar una lista jerrquica de directorios.
/ro,iedad $escri,cin
Path Especifica la ruta de acceso actual.
Un cuadro de lista de directorios tambin responde al evento Change.
0uadro de lista de arc9i4os
Un cuadro de lista de archivos encuentra y muestra los archivos del directorio
especificado por la propiedad Path en tiempo de ejecucin. Utilice este control para mostrar una
lista de los archivos seleccionados por tipo.
/ro,iedad $escri,cin
Path Especifica la ruta de acceso actual.
Pattern Especifica el tipo de archivo que se desea visualizar en el control.
List Devuelve los elementos contenidos en la parte de lista del control.
Listndex Especifica el ndice del elemento seleccionado actualmente en el
control.
Como ejemplo vamos a desarrollar una aplicacin que permita el manejo de unidades,
carpetas y archivos. El usuario puede seleccionar la unidad actual de trabajo, la carpeta y el
archivo y poder visualizar su contenido (en este caso archivos grficos *.JPG).
Pgina 53
Curso de Visual Basic
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles en
el formulario:
4 etiquetas
1 cuadro de lista de unidades
1 cuadro de lista de directorios
1 cuadro de lista de archivos
1 imagen
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmVisor
Caption Visor
Label1
Nombre LblUnidad
Caption Unidad
Label2
Nombre LblCarpeta
Caption Carpeta
Label3
Nombre LblArchivo
Caption Archivo
Label4
Nombre LblVista
Caption Vista previa
$ri4e1
Nombre Drive1
$ir1
Nombre Dir1
File1
Nombre File1
Pattern *.JPG
#mage1
Nombre mgVista
Stretch True
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub Drive1_Change()
On Error GoTo DRVE_ERROR
Pgina 54
Curso de Visual Basic
Dir1.Path = Drive1.Drive
Exit Sub
DRVE_ERROR:
MsgBox "ERROR: Unidad no preparada, vbCritical, "Error
Exit Sub
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub File1_Clic()
Dim ARCHVO As String
ARCHVO = File1.Path & "\
ARCHVO = ARCHVO & File1.List(File1.Listndex)
mgVista.Picture = LoadPicture(ARCHVO)
End Sub
La instruccin On Error activa una rutina de control de errores y especifica la ubicacin
de la misma en un procedimiento.
LA FUNCI!N MS%BO&
A menudo habr situaciones en las cuales tendr que presentar algn mensaje (por
ejemplo una pregunta) y en funcin de la respuesta del usuario se ejecutar una determinada
accin.
La funcin MsgBox() muestra un cuadro de dilogo predefinido y retorna un valor de tipo
entero dependiendo del botn seleccionado por el usuario. Su sintaxis es de la siguiente forma:
VALOR = MsgBox(MENSAJE [, BOTN + CONO, TTULO])
Donde MENSAJE se refiere a una expresin de cadena que se muestra como mensaje
en el cuadro de dilogo.
BOTN es una expresin numrica que se refiere al tipo y cantidad de botones a utilizar.
CONO es una expresin numrica que se refiere al estilo de icono que se va ha utilizar.
Pgina 55
Curso de Visual Basic
TTULO es una texto que se mostrar en la barra de ttulo de la caja de dilogo.
!i,o de botn
.alor (otn "ombre
0 Aceptar vbOKOnly
1 Aceptar y Cancelar vbOKCancel
2 Anular, Reintentar, gnorar vbAbortRetrygnore
3 S, No y Cancelar vbYesNoCancel
4 S y No vbYesNo
5 Reintentar y Cancelar vbRetryCancel
!i,o de icono
.alor #cono "ombre
16 Mensaje crtico vbCritical
32 Signo de interrogacin vbQuestion
48 Signo de exclamacin vbExclamation
64 Signo de informacin vbnformation
.alores retornados
.alor (otn "ombre
1 Aceptar vbOK
2 Cancelar vbCancel
3 Anular vbAbort
4 Reintentar vbRetry
5 gnorar vbgnore
6 S vbYes
7 No vbNo
Como ejemplo vamos a construir un formulario que presente un botn "Salir, de tal
forma que cuando el usuario pulse dicho botn se presente el siguiente mensaje:
En caso de que el usuario elija la opcin "S, la aplicacin debe terminar. En caso
contrario, es decir si el usuario elige la opcin "No, se debe proseguir con la aplicacin.
Para el desarrollo del presente ejemplo, proceda a ubicar sobre el formulario un botn de
comando (CmdSalir), a continuacin ingresar el siguiente cdigo:
Private Sub CmdSalir_Clic()
Dim RESP As nteger
RESP = MsgBox("Desea terminar la aplicacin?, _
Pgina 56
Curso de Visual Basic
vbQuestion + vbYesNo, "Pregunta)
f RESP = vbYes Then
End
End f
End Sub
Para ilustrar mejor el uso de la funcin MsgBox() vamos a desarrollar la siguiente
aplicacin que permite mostrar los diferentes tipos de botones e iconos generados por la
funcin.
Para ello proceda a ubicar los siguientes controles en el formulario:
2 cuadros de lista
1 botn de comando
En seguida proceda a establecer las propiedades segn se indica:
Form1
Nombre FrmFuncionMsgBox
BorderStyle 3-Fixed Dialog
Caption Funcin MsgBox
List1
Nombre LstBoton
List2
Nombre Lstcono
0ommand1
Nombre CmdMensaje
Caption &Mensaje
Pgina 57
Curso de Visual Basic
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub Form_Load()
LstBoton.Addtem "Aceptar
LstBoton.Addtem "Aceptar y Cancelar
LstBoton.Addtem "Anular, Reintentar, gnorar
LstBoton.Addtem "S, No y Cancelar
LstBoton.Addtem "S y No
LstBoton.Addtem "Reintentar y Cancelar
Lstcono.Addtem "Mensaje crtico
Lstcono.Addtem "Signo de interrogacin
Lstcono.Addtem "Signo de exclamacin
Lstcono.Addtem "Signo de informacin
End Sub
Private Sub CmdMensaje_Clic()
Dim RESP As nteger, BOTON As nteger, CONO As nteger
BOTON = LstBoton.Listndex
CONO = (Lstcono.Listndex + 1) * 16
RESP = MsgBox("Hola Mundo, BOTON + CONO, "Ejemplo)
End Sub
U"#$%$ 5: EL F&7MUL%7#&
Un formulario es un objeto contenedor que sirve para disear la interfaz de usuario. En
el formulario se colocan los controles para que el usuario pueda interactuar con la aplicacin de
una manera fcil e intuitiva.
Pgina 58
Curso de Visual Basic
Los formularios tienen sus propias propiedades, eventos y mtodos con los que se
puede controlar su apariencia y comportamiento, muchos de los cuales ya han sido utilizados
en las aplicaciones de los captulos anteriores y que a continuacin pasamos a describir.
/ro,iedad $escri,cin
AutoRedraw Especifica si se activa el redibujado automtico del formulario.
BackColor Especifica el color de fondo del formulario.
BorderStyle Especifica un estilo de borde para el formulario.
Caption Especifica el texto que se muestra en la barra de ttulo del
formulario.
ControlBox Especifica si aparece un icono de men desplegable en el ngulo
superior izquierdo del formulario.
ForeColor Especifica el color de primer plano utilizado para mostrar texto
sobre el formulario.
Height Especifica el alto del formulario. Se mide en "twips.
con Especifica el icono que se muestra para un formulario.
MaxButton Especifica si el formulario tiene un botn Maximizar.
MinButton Especifica si el formulario tiene un botn Minimizar.
Picture Especifica el archivo de imagen que se va ha mostrar como fondo
para el formulario.
StartUpPosition Especifica la posicin del formulario la primera vez que se ejecuta.
Visible Establece si el formulario es visible o est oculto.
Width Especifica el ancho del formulario. Se mide en "twips.
WindowState Establece el estado del formulario (normal, minimizado o
maximizado).
N'ta
Un twip es una unidad independiente de la pantalla utilizada para asegurar que la
colocacin y la proporcin de los elementos de la pantalla de la aplicacin son los mismos en
todos los sistemas de pantallas. Un twip es igual a 1/20 de un punto de impresora. Existen
aproximadamente 1440 twips en una pulgada o !" twips en un cent#metro.
Pgina 59
Curso de Visual Basic
Los eventos a los que responde un formulario son los siguientes:
E4ento $escri,cin
Activate Ocurre cuando el formulario se convierte en ventana activa.
Deactivate Ocurre cuando el formulario deja de ser la ventana activa.
Load Ocurre cuando el formulario se carga en la memoria.
MouseDown Ocurre cuando el usuario pulsa el botn derecho del ratn sobre
el formulario.
QueryUnload Ocurre antes de iniciarse el proceso de descarga del formulario
(antes del evento Unload).
Resize Ocurre cuando se muestra primero el formulario o se cambian sus
dimensiones.
Unload Ocurre cuando el formulario se descarga de la memoria.
Los mtodos que se pueden utilizar con un formulario son los siguientes:
M3todo $escri,cin
Hide Oculta un formulario.
PopupMenu Presenta un men popup en la posicin actual del ratn.
Print mprime un valor sobre el formulario.
Refresh Vuelve a pintar un formulario y actualiza todos los valores
contenidos en l.
Show Muestra un formulario y determina si es modal o carece de modo.
Si el formulario a mostrar no est cargado Visual Basic lo carga
automticamente.
Como ejemplo vamos a desarrollar una aplicacin que utilice dos formularios. Desde el
primer formulario el usuario podr ir al segundo formulario y viceversa.
Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto.
Seguidamente debe ubicar dos botones de comando en el formulario. Luego establezca las
siguientes propiedades:
Form1
Nombre Form1
Caption Primer formulario
Pgina 60
Curso de Visual Basic
0ommand1
Nombre Cmdr
Caption &r
0ommand2
Nombre CmdSalir
Caption &Salir
Seguidamente procede a ingresar el cdigo que se muestra a continuacin:
Private Sub Cmdr_Clic()
Form2.Show
Form1.Hide
End Sub
Private Sub CmdSalir_Clic()
End
End Sub
Luego debe aadir un formulario adicional al proyecto. Para tal fin, seleccione el men
Proyecto y elija la opcin Agregar formulario.
Del cuadro de dilogo que se presenta elija el icono Formulario y haga clic en el botn
"Abrir, tal como se indica en la figura. En ese instante se aadir un nuevo formulario al
proyecto. Luego, proceda a ubicar un botn de comandos en el formulario que acaba de aadir
y establezca las siguientes propiedades:
Form2
Pgina 61
Curso de Visual Basic
Nombre Form2
Caption Segundo formulario
ControlBox False
0ommand2
Nombre CmdVolver
Caption &Volver
En seguida proceda a ingresar el cdigo que se indica a continuacin:
Private Sub CmdVolver_Clic()
Form1.Show
Form2.Hide
End Sub
ESTILOS DE FOMULAIO
Visual Basic cuenta con seis diferentes estilos de formulario, cuya descripcin es la
siguiente:
.alor Estilo $escri,cin
0 None No presenta ningn borde.
1 Fixed Single Puede incluir un Men de control, una Barra de
ttulo , un botn Maximizar y un botn Minimizar.
Slo puede cambiar de tamao mediante los
botones Maximizar y Minimizar.
2 Sizable (Predeterminado). Puede cambiar de tamao
mediante cualquiera de los elementos opcionales
de borde indicados para Fixed Single.
.alor Estilo $escri,cin
3 Fixed Dialog Puede incluir un Men de control y una Barra de
ttulo, pero no los botones Maximizar ni Minimizar.
No puede cambiar de tamao.
4 Fixed ToolWindow Slo muestra el botn Cerrar y el texto de la barra
de ttulo aparece con un tamao de fuente
reducido. No puede cambiar su tamao.
5 Sizable ToolWindow Slo muestra el botn Cerrar y el texto de la barra
de ttulo aparece con un tamao de fuente
reducido. Puede cambiar de tamao.
Como ejemplo vamos a desarrollar una aplicacin que permita representar los diferentes
estilos de formulario de Visual Basic.
Pgina 62
Curso de Visual Basic
Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto y luego
ubique los siguientes controles en el formulario:
1 cuadro de lista
2 botones de comando
Luego debe establecer las propiedades que se indican a continuacin:
Form1
Nombre FrmPrincipal
Caption Estilos de formulario
BorderStyle 3-Fixed Dialog
List1
Nombre LstTipoForm
List 0-None
1-Fixed Single
2-Sizable
3-Fixed Dialog
4-Fixed ToolWindow
5-Sizable ToolWindow
0ommand1
Nombre CmdMostrar
Caption &Mostrar
0ommand2
Nombre CmdSalir
Caption &Salir
Seguidamente procede a ingresar el cdigo que se muestra a continuacin:
Private Sub Form_Load()
Pgina 63
Curso de Visual Basic
Load FrmNone
Load FrmFixedSingle
Load FrmSizable
Load FrmFixedDialog
Load FrmFixedToolWindow
Load FrmSizableToolWindow
End Sub
Private Sub CmdMostrar_Clic()
Dim OP As nteger
OP = LstTipoForm.Listndex
Select Case OP
Case 0 : FrmNone.Show vbModal
Case 1 : FrmFixedSingle.Show vbModal
Case 2 : FrmSizable.Show vbModal
Case 3 : FrmFixedDialog.Show vbModal
Case 4 : FrmFixedToolWindow.Show vbModal
Case 5 : FrmSizableToolWindow.Show vbModal
Case Else
MsgBox "Debe seleccionar estilo de formulario
End Select
End Sub
Private Sub LstTipoForm_DblClic()
Call CmdMostrar_Clic
End Sub
Private Sub CmdSalir_Clic()
End
End Sub
Seguidamente proceda a aadir los formularios para las diferentes opciones del cuadro
de lista. Cambie los nombres de los formularios segn se indica:
Formulario "ombre
Form2 FrmNone
Pgina 64
Curso de Visual Basic
Form3 FrmFixedSingle
Form4 FrmSizable
Form5 FrmFixedDialog
Form6 FrmFixedToolWindow
Form7 FrmSizableToolWindow
Luego debe activar el formulario FrmNone, ubicar un botn de comandos sobre el mismo
y establecer las siguientes propiedades:
Form2
Nombre FrmNone
BorderStyle 0-None
Caption None
0ommand1
Nombre CmdVolver
Caption &Volver
Una vez establecidas las propiedades, proceda a ingresar el cdigo que se muestra a
continuacin:
Private Sub CmdVolver_Clic()
Unload Me
End Sub
Para concluir con el diseo de la aplicacin, simplemente repita el procedimiento anterior
para los dems tipos de formularios.
Como habr podido observar, al mostrar un formulario mediante el mtodo Show
podemos hacerlo de forma modal (vbModal) o no modal (opcin por defecto). Un formulario
modal es aquel que necesita cerrarse antes de pasar el enfoque a otro formulario. Un formulario
no modal no requiere cerrarse para pasar el enfoque a otro formulario.
PASANDO VALOES ENTE FOMULAIOS
Muchas veces se requieren pasar valores de un formulario a otro, esto se puede realizar
mediante el uso mdulos estndar, los cuales son contenedores de procedimientos y
declaraciones a los que tienen acceso otros mdulos de la aplicacin.
Como ejemplo vamos a construir la siguiente aplicacin, la cual enva un mensaje de
texto del primer formulario hacia el segundo formulario.
Pgina 65
Curso de Visual Basic
Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto y aada
un formulario adicional, de tal forma que tenga los formularios Form1 y Form2. Seguidamente
ubicar los siguientes controles:
Form1 Form2
Text1 TxtMensaje1 Text1 TxtMensaje2
Command1 CmdEnviar Command1 CmdRecibir
Command2 CmdSalir Command2 CmdVolver
A continuacin proceda a ingresar el cdigo que se indica para el primer formulario
(Form1):
Private Sub CmdEnviar_Clic()
Mensaje = TxtMensaje1
Form1.Hide
Form2.Show
End Sub
Private Sub CmdSalir_Clic()
End
End Sub
Para el segundo formulario (Form2) proceda a ingresar el cdigo siguiente:
Private Sub CmdRecibir_Clic()
TxtMensaje2 = Mensaje
End Sub
Pgina 66
Curso de Visual Basic
Private Sub CmdVolver_Clic()
Form2.Hide
Form1.Show
End Sub
Seguidamente debe aadir un mdulo estndar al proyecto, para ello, seleccione el
Men Proyecto y elija la opcin Agregar mdulo, se debe presentar un cuadro de dilogo similar
a la figura mostrada, en el cual debe dar clic en el botn "Abrir.
Seguidamente proceda a declarar la variable Mensaje como "pblica en la seccin de
declaraciones del mdulo que acaba de aadir:
Una variable pblica (Public) es una variable que se declara a nivel de mdulo y se le
puede acceder desde cualquier otro mdulo.
Pgina 67
Curso de Visual Basic
FOMULAIOS MDI
Un formulario MD (nterfaz de Documentos Mltiples) es una ventana que acta como
fondo de una aplicacin y es el contenedor (ventana padre) de otros formularios (ventanas
hijas).
En una aplicacin MD pueden haber varias ventanas hijas, pero slo una ventana padre
por aplicacin. Para que una ventana acte como hija debe tener su propiedad MDChild
establecida a True.
Como ejemplo vamos a desarrollar una aplicacin MD que incluya tres ventanas hijas.
Para tal fin proceda a crear un nuevo proyecto y seguidamente agregar dos formularios
(simples) al mismo.
No olvide establecer la propiedad MDChild de los formularios Form1, Form2 y Form3 a
True.
Luego, debemos agregar el formulario MD, para ello acceder al Men Proyecto y elegir
la opcin Agregar formulario MD, del cuadro de dilogo que se presenta hacer clic en el botn
"Abrir.
Pgina 68
Curso de Visual Basic
A continuacin dar doble clic sobre el formulario MD e ingresar el siguiente cdigo:
Private Sub MDForm_Load()
Form1.Show
Form2.Show
Form3.Show
End Sub
Ahora slo tiene que indicarle a Visual Basic que el formulario de arranque (inicial) ser
el formulario MD. Para ello vaya al Men Proyecto y elija la opcin Propiedades de Proyecto.
En el cuadro combinado "Objeto inicial seleccionar MDForm1, tal como se indica en la figura:
Eso es todo, ahora simplemente tiene que ejecutar su aplicacin.
Cabe destacar que en los formularios MD por lo general no se pueden incluir controles,
debido a ello se suele trabajar con mens de opciones o barras de herramientas para indicar
alguna accin a realizar.
CEACI!N DE MEN(S
Un men es un conjunto de opciones que se presentan al usuario, entre las cuales debe
elegir una de ellas. Dependiendo de la decisin se realizarn una serie de acciones.
Pgina 69
Curso de Visual Basic
Para disear un men cualquiera dar clic derecho sobre el formulario y del men
emergente que se presenta elegir la opcin Editor de mens.
En seguida se ha de presentar el Editor de mens de Visual Basic.
Para crear un men, tener en cuenta los siguiente procedimientos:
ngresar el Editor de mens.
ntroducir el ttulo del men en el cuadro de texto Caption, el cual aparecer en la barra de
mens.
Pgina 70
Curso de Visual Basic
ntroducir un nombre para el men en el cuadro de texto Name, el cual ser utilizado en el
cdigo para referirse al men.
ntroducir los elementos que componen el men, para ello escriba en los cuadros de texto
Caption y Name el ttulo y el nombre del correspondiente elemento del men.
Para diferenciar un elemento del men del propio men, hay que sangrar el ttulo del
elemento, para tal fin, seleccinelo y haga clic en el botn flecha hacia la derecha ( ).
Un elemento de men puede ser una orden (si el elemento siguiente aparece sangrado al
mismo nivel) o un submen (si el elemento siguiente aparece sangrado un nivel ms).
Utilizando separadores puede agrupar las rdenes en funcin de lo que realizan. Para
insertar un separador, escriba un nico guin (>) en el cuadro Caption del Editor de mens.
Tiene que especificar tambin un nombre para el separador.
Para aadir un acelerador (una tecla o combinacin de teclas que permiten activar un men),
utilizar la propiedad Shortcut.
La propiedad Checked es til para indicar si una orden est activa o no lo est. Cuando se
especifica esta propiedad aparece una marca ( ) a la izquierda del elemento de men.
La propiedad Enabled es til para desactivar una orden en un momento en el cual no tiene
sentido que est activa.
La propiedad Visible es til cuando durante la ejecucin se desea ocultar un elemento de
men.
Cerrar el Editor de mens, para ello una vez que haya finalizado su diseo pulse el botn
"Aceptar.
Como ejercicio intente construir el men mostrado en la figura anterior.
0a,tion "ame '9ort0ut
&Archivo MnuArchivo Ninguno
. . . &Artculo MnuArchivoArticulo Ninguno
. . . &Cliente MnuArchivoCliente Ninguno
. . . &Vendedor MnuArchivoVendedor Ninguno
. . . > MnuArchivoLinea Ninguno
. . . &Salir MnuArchivoSalir Ctrl + X
&Proceso MnuProceso Ninguno
. . . &Pedido MnuProcesoPedido Ninguno
. . . &Facturacin MnuProcesoFacturacion Ninguno
&Reporte MnuReporte Ninguno
. . . &Registro de ventas MnuReporteRegVentas Ninguno
. . . Catlogo de &artculos Ninguno
. . . > MnuReporteLinea Ninguno
. . . &Cliente del mes MnuReporteClienteMes Ninguno
. . . &Vendedor del mes MnuReporteVendMes Ninguno
Ay&uda MnuAyuda Ninguno
. . . &Contenido MnuAyudaContenido Ninguno
. . . &ndice MnuAyudandice Ninguno
. . . &Bsqueda MnuAyudaBusqueda Ninguno
. . . > MnuAyudaLinea Ninguno
. . . &Acerca de MnuAyudaAbout Ninguno
Para probar el men que acaba de crear, ingrese el siguiente cdigo:
Private Sub MnuArchivoArticulo_Clic()
Pgina 71
Curso de Visual Basic
MsgBox "Seleccion la opcin Artculo
End Sub
Private Sub MnuArchivoCliente_Clic()
MsgBox "Seleccion la opcin Cliente
End Sub
Private Sub MnuArchivoVendedor_Clic()
MsgBox "Seleccion la opcin Vendedor
End Sub
Private Sub MnuArchivoSalir_Clic()
Unload Me
End Sub
Private Sub MDForm_Unload(Cancel As nteger)
Dim RESP As nteger
RESP = MsgBox("Desea terminar la aplicacin?, _
vbQuestion + vbYesNo, "Pregunta)
f RESP = vbYes Then
End
Else: Cancel = True
End f
End Sub
Luego al ejecutar su aplicacin y seleccionar el men Archivo, opcin Artculo, el
resultado ser similar a la figura mostrada:
Hasta ahora hemos programado la salida de una aplicacin, asociando el cdigo al
botn "Salir. Sin embargo, cuando el usuario hace clic en el botn "Cerrar de la barra de ttulo
Pgina 72
Curso de Visual Basic
o en la opcin "Salir del Men de control del formulario, el cdigo escrito para el botn "Salir es
ignorado.
Para remediar esta situacin, en el ejemplo anterior cuando el usuario pulsa el botn
"Salir, se invoca al evento Unload. La palabra reservada "Me proporciona una forma de
referirse al formulario desde donde se est ejecutando el cdigo.
Recordar que el evento Unload del formulario se desencadena cuando el usuario intenta
cerrar el formulario mediante cualquiera de las formas descritas anteriormente.
Para determinar si ocurre la descarga del formulario utilice el parmetro Cancel. Si
Cancel es False ocurre la descarga, si Cancel es True impide que el formulario se quite.
CEACI!N DE UNA BAA DE HEAMIENTAS
Una barra de herramientas contiene botones con las opciones ms utilizadas de un
men, de tal manera que el usuario haciendo clic en dicho control activara la opcin indicada
de una manera ms rpida.
Para crear una barra de herramientas debemos utilizar dos controles que no estn en la
lista de controles estndar, por tanto debemos agregar dichos controles que se encuentran en
el componente Microsoft Windows Common Controls 6.0, tal como se indica a continuacin:
Como ejemplo, vamos a crear la barra de herramientas de la figura mostrada:
Pgina 73
Curso de Visual Basic
Para ello, ubicar un control mageList sobre el formulario, para establecer sus
propiedades dar clic derecho sobre el control y elija la opcin Propiedades.
Se ha de presentar un cuadro de dilogo similar a la figura mostrada:
Activar la ficha mgenes y pulsar el botn "nsertar imagen para seleccionar las
imgenes que se incluirn en el control mageList.
Para el ejemplo, debe incluir ocho imgenes que corresponden a cada uno de los
botones de la barra de herramientas.
Concluido el proceso anterior, proceda a ubicar un control Toolbar sobre el formulario.
Luego hacer clic derecho sobre dicho control y del men emergente que se presenta
seleccionar la opcin Propiedades. Del cuadro de dilogo que se presenta en la ficha General
establecer las siguientes propiedades:
Pgina 74
Curso de Visual Basic
Luego, en la ficha Botones pulse el botn "nsertar botn. En el cuadro de texto mage
se debe indicar un nmero que corresponde al orden de imagen a mostrar.
El lector debe continuar con este proceso hasta completar los botones restantes, segn:
#nde+ !ool!i,!e+t #mage
1 Artculo 1
2 Cliente 2
3 Vendedor 3
4 Pedido 4
5 Facturacin 5
Pgina 75
Curso de Visual Basic
6 Registro de ventas 6
7 Catlogo de artculos 7
8 Ayuda 8
Como el cdigo a ejecutar tiene que ser el mismo cuando el usuario elija una opcin del
men o de un clic sobre un botn de la barra de herramientas se pueden programar
procedimientos de usuario que realicen dichas tareas, luego se deben invocar a estos
procedimientos tanto para las opciones del men como para la barra de herramientas.
Sin embargo, para el ejemplo el cdigo es muy sencillo, ya que slo muestra un mensaje
con la opcin seleccionada (esto por razones de simplicidad). Para probar la funcionalidad de la
barra de herramientas que acaba de crear ingrese el siguiente cdigo:
Private Sub Toolbar1_ButtonClic(ByVal Button As MSComctlLib.Button)
Select Case Button.ndex
Case 1: MsgBox "Seleccion la opcin Artculo
Case 2: MsgBox "Seleccion la opcin Cliente
Case 3: MsgBox "Seleccion la opcin Vendedor
Case 4: MsgBox "Seleccion la opcin Pedido
Case 5: MsgBox "Seleccion la opcin Facturacin
Case 6: MsgBox "Seleccion la opcin Registro de ventas
Case 7: MsgBox "Seleccion opcin Catlogo de artculos
Case 8: MsgBox "Seleccion la opcin Ayuda
End Select
End Sub
El evento ButtonClic se dispara cuando el usuario hace clic sobre un botn de la barra
de herramientas. La propiedad ndex permite identificar el nmero de botn pulsado.
CEACI!N DE UNA BAA DE ESTADO
Una barra de estado es un marco que se ubica en la parte inferior del formulario y puede
contener varios paneles que informan al usuario acerca del estado de la aplicacin. Para crear
una barra de estado utilizar el control StatusBar, el cual forma de los controles personalizados
que se encuentran en el componente Microsoft Windows Common Controls 6.0.
Como ejemplo vamos a crear una barra de estado similar a la de la figura mostrada:
Para ello ubicar un control StatusBar sobre el formulario, dar clic derecho sobre el mismo
y en la ficha Paneles incluir una imagen para la hora del sistema.
Pgina 76
Curso de Visual Basic
El resto de propiedades se establecern mediante cdigo al momento de la carga del
formulario.
Private Sub MDForm_Load()
Dim As nteger
For = 1 To 2
StatusBar1.Panels.Add ' Se agregan 2 paneles ms
Next
With StatusBar1.Panels
.tem(1).Style = sbrTime
.tem(2).Style = sbrCaps
.tem(3).Style = sbrns
End With
End Sub
La propiedad Style permite mostrar el estado de las teclas, la hora y la fecha del sistema
con un mnimo de cdigo.
0onstante .alor $escri,cin
sbrText 0 (Predeterminado). Texto o mapa de bits.
sbrCaps 1 Tecla BLOQ MAYS.
sbrNum 2 Tecla BLOQ NM.
sbrns 3 Tecla NS.
sbrScrl 4 Tecla BLOQ DESPL.
sbrTime 5 Muestra la hora actual con el formato del sistema.
sbrDate 6 Muestra la fecha actual con el formato del sistema.
Pgina 77
Curso de Visual Basic
CEACI!N DE UN MEN( CONTE&TUAL
Un men contextual es un men emergente (flotante) que se muestra sobre un
formulario, independiente de la barra de mens. Para mostrar un men contextual el usuario
debe pulsar el botn derecho del ratn sobre el formulario.
A menudo querr usar un men contextual para tener acceso a opciones que no se
encuentran disponibles en la barra de mens. Para crear un men que no se presente en la
barra de mens, haga invisible un elemento de men de nivel superior en tiempo de diseo
(asegrese de que la casilla de verificacin Visible del Editor de mens no est activada).
Cuando Visual Basic presenta un men emergente, pasa por alto la propiedad Visible del men
de nivel superior especificado.
Para crear el men contextual de la figura, debe ingresar al Editor de mens y aadir lo
siguiente:
0a,tion "ame .isible
&Herramientas MnuTools
. . . Calculadora MnuToolsCalc
. . . Calendario MnuToolsCalen
. . . Solitario MnuToolsSol
Seguidamente proceda a ingresar el cdigo que se indica a continuacin:
Private Sub MDForm_MouseDown(Button As nteger, _
Shift As nteger, X As Single, Y As Single)
f Button = vbRightButton Then
PopupMenu MnuTools
End f
End Sub
Private Sub MnuToolsCalc_Clic()
Dim
= Shell("C:\WNDOWS\CALC.EXE, 1)
End Sub
Pgina 78
Curso de Visual Basic
Private Sub MnuToolsCalen_Clic()
FrmCalendario.Show
End Sub
Private Sub MnuToolsSol_Clic()
Dim
= Shell("C:\WNDOWS\SOL.EXE, 1)
End Sub
En el ejemplo anterior se asume que existe otro formulario de nombre FrmCalendario.
Este puede ser construido usando el control MonthView.
La funcin Shell ejecuta un programa ejecutable y devuelve un tipo Variant (Double) que
representa la identificacin de la tarea del programa si se ha ejecutado con xito, en caso
contrario devuelve cero.
U"#$%$ 6: M&$UL& MUL!#ME$#%
0&"!7&LE' %0!#.E?
Los controles ActiveX son objetos que no forman parte del conjunto de controles
estndar de Visual Basic, sino ms bien han sido desarrollados por terceras personas.
Los controles ActiveX existen como archivos independientes con extensin .OCX y
deben ser cargados antes de utilizarse. Para ello ingresar al Men Proyecto y elija la opcin
Componentes.
Pgina 79
Curso de Visual Basic
CONTOL ANIMATION
El control Animation permite reproducir archivos de extensin .AV que no tengan sonido
para crear animaciones. Para agregar este control debe seleccionar el componente Microsoft
Windows Common Controls-2 6.0.
/ro,iedad $escri,cin
AutoPlay Especifica si el archivo AV se reproducir automticamente al
cargarse el control.
M3todo $escri,cin
Close Cierra el archivo AV abierto actualmente.
Open Permite abrir el archivo AV.
Play Reproduce el archivo AV en el control Animation.
Stop Termina la reproduccin del archivo AV.
Como ejemplo vamos a desarrollar un formulario que permita reproducir un archivo AV,
tal como se muestra en la figura:
Para ello crear un nuevo formulario y agregar un control Animation (Animation1) y dos botones
de comando (Cmdniciar y CmdTerminar, respectivamente). Luego ingrese el cdigo que se
muestra:
Private Sub Cmdniciar_Click()
Dim RUTA As String
RUTA = "C:\Archivos de programa\Microsoft Visual Studio\
RUTA = RUTA & "Common\Graphics\Videos\Filenuke.avi
Animation1.Open (RUTA)
Animation1.Play
End Sub
Private Sub CmdTerminar_Click()
Pgina 80
Curso de Visual Basic
Animation1.Close
End
End Sub
CONTOL COMMONDIALO%
El control CommonDialog proporciona un conjunto de cuadros de dilogo estndar que
permiten realizar las operaciones ms comnmente empleadas en el diseo de aplicaciones,
como abrir y guardar archivos, seleccionar colores y fuentes, imprimir, etc. Para agregar este
control seleccionar el componente Microsoft Common Dialog Control 6.0.
/ro,iedad $escri,cin
Color Especifica el color seleccionado.
FileName Especifica la ruta y nombre del archivo seleccionado.
Filter Especifica el tipo de archivos que se han de mostrar en un cuadro
de dilogo Abrir o Guardar como.
Filterndex Especifica el filtro predeterminado para un cuadro de dilogo Abrir
o Guardar como, en caso se est utilizando varios filtros.
M3todo $escri,cin
ShowColor Presenta la paleta de colores.
ShowFont Presenta el cuadro de dilogo Fuentes.
ShowHelp Presenta la ayuda de Windows.
ShowOpen Presenta el cuadro de dilogo Abrir.
ShowPrinter Presenta el cuadro de dilogo mprimir.
ShowSave Presenta el cuadro de dilogo Guardar como.
Como ejemplo vamos a desarrollar una aplicacin que permite cambiar el color de fondo
de un formulario en tiempo de ejecucin. Para ello el usuario debe dar click en el botn
"Cambiar color y en seguida se presentar la paleta de colores de donde debe elegir el color
deseado, tal como se muestra en la figura siguiente:
Pgina 81
Curso de Visual Basic
Para ello crear un nuevo formulario, agregarle un botn de comando
(CmdCambiarColor) y un control CommonDialog. Luego ingresar el siguiente cdigo:
Private Sub CmdCambiarColor_Click()
CommonDialog1.ShowColor
Form1.BackColor = CommonDialog1.Color
End Sub
Como siguiente ejemplo vamos a desarrollar una aplicacin que permita mostrar el
contenido de un archivo JPG. Este deber ser seleccionado por el usuario de un cuadro de
dilogo Abrir, tal como se indica en la figura:
Al hacer click en el botn "Abrir, el archivo seleccionado debe ser mostrado en el
formulario:
Pgina 82
Curso de Visual Basic
Para el diseo de esta aplicacin crear un nuevo formulario y ubicar un botn de
comando (CmdAbrirArchivo), un control imagen y un control CommonDialog.
Seguidamente ingrese el cdigo que se indica a continuacin:
Private Sub CmdAbrirArchivo_Click()
Dim FLTRO As String, FLE As String
FLTRO = "mgenes JPEG (*.JPG)|*.JPG
CommonDialog1.Filter = FLTRO
CommonDialog1.ShowOpen
FLE = CommonDialog1.FileName
mage1.Picture = LoadPicture(FLE)
End Sub
CONTOL MACHOSO
El control Marchoso tiene como funcin reproducir archivos GF animados. Para agregar
este control seleccionar el componente Marchoso ActiveX Control Module. Este control fue
creado en Visual Basic y si no lo tiene en su disco duro lo puede bajar de nternet.
/ro,iedad $escri,cin
FileName Especifica la ruta y nombre del archivo GF animado.
A manera de ejemplo vamos a disear un formulario que permita mostrar archivos GF
animados.
Para ello proceda a crear un nuevo formulario y ubicar un botn de comando
(CmdVerGFAnimado), un control Marchoso y un control CommonDialog. Luego, ingresar el
siguiente cdigo:
Private Sub CmdVerGFAnimado_Click()
Dim FLTRO As String, FLE As String
Pgina 83
Curso de Visual Basic
FLTRO = "Archivos GF Animados (*.GF)|*.GF
CommonDialog1.Filter = FLTRO
CommonDialog1.ShowOpen
FLE = CommonDialog1.FileName
Marchoso1.FileName = FLE
End Sub
CONTOL HIEACHICAL FLE&%ID
El control Hierarchical FlexGrid presenta una cuadrcula la cual permite mostrar datos en
forma de celdas. Una celda es la regin formada por la interseccin de una fila y una columna.
Para agregar este control debe seleccionar el componente Microsoft Hierarchical
FlexGrid Control 6.0 (OLEDB).
/ro,iedad $escri,cin
Col Especifica el nmero de columna de la celda actual.
Cols Especifica el nmero total de columnas, fijas y no fijas.
FixedCols Especifica el nmero de columnas fijas. El valor por defecto es 1.
FixedRows Especifica el nmero de filas fijas. El valor por defecto es 1.
Row Especifica el nmero de fila de la celda actual.
Rows Especifica el nmero total de filas, fijas y no fijas.
Text Especifica el contenido de la celda actual.
TextArray Especifica el contenido de una celda elegida aleatoriamente, se
debe especificar el ndice de la celda a la cual se desea acceder.
ScrollBars Especifica si la cuadrcula presenta barras de desplazamiento
horizontales, verticales o ambas a la vez.
Como ejemplo vamos a desarrollar una aplicacin que visualice un cuadrado mgico de
orden impar N . Un cuadrado mgico se compone de nmeros enteros comprendidos entre 1 y
)
N . La suma de los nmeros que figuran en cada fila, cada columna y cada diagonal son
idnticas. Por ejemplo para N = 5 tenemos el siguiente arreglo de nmeros:
Pgina 84
Curso de Visual Basic
Un mtodo de construccin del cuadrado consiste en situar el nmero 1 en el centro de
la primera fila, el nmero siguiente en la casilla situada encima y a la derecha, y as
sucesivamente. Es preciso considerar que el cuadrado se cierra sobre s mismo, la fila encima
de la primera es de hecho la ltima y la columna a la derecha de la ltima es la primera. Sin
embargo, cuando la posicin del nmero caiga en una celda ocupada, se elige la casilla situada
por debajo del nmero que acaba de ser situado.
Para el desarrollo de la presente aplicacin proceda a crear un nuevo formulario y ubicar
una etiqueta (N?), un cuadro de texto (TxtN) y un control Hierarchical FlexGrid. Seguidamente
debe ingresar el cdigo que se indica:
Private Sub TxtN_Change()
Dim N As nteger, As nteger
Dim FL As nteger, COL As nteger
N = Val(TxtN)
FL = 1
COL = (N \ 2) + 1
MSHFlexGrid1.Cols = N
MSHFlexGrid1.Rows = N
MSHFlexGrid1.FixedCols = 0
MSHFlexGrid1.FixedRows = 0
For = 1 To N ^ 2
MSHFlexGrid1.COL = COL - 1
MSHFlexGrid1.Row = FL - 1
MSHFlexGrid1.Text = Str()
f Mod N = 0 Then
FL = FL + 1
f FL = N + 1 Then FL = 1
Else
FL = FL - 1
f FL = 0 Then FL = N
COL = COL + 1
Pgina 85
Curso de Visual Basic
f COL = N + 1 Then COL = 1
End f
Next
End Sub
CONTOL UPDO)N
El control UpDown tiene dos botones con flechas en los que el usuario puede hacer clic
para incrementar o disminuir un valor de un control asociado, denominado control auxiliar. A
menudo, al usuario le parecer que el control UpDown y su control auxiliar son un nico control.
Por lo general se usa un control UpDown con un cuadro de texto para solicitar al usuario una
entrada numrica, una combinacin que en ocasiones se denomina control Spinner.
Para agregar un control UpDown debe seleccionar el componente Microsoft Windows
Common Controls-2 6.0.
/ro,iedad $escri,cin
BuddyControl Especifica el control utilizado como auxiliar.
BuddyProperty Especifica la propiedad utilizada para sincronizar el control
UpDown con su auxiliar.
ncrement Especifica un valor que determina la cantidad en que vara la
propiedad Value cuando se hace click en los botones del control
UpDown.
Max Especifica el valor mximo del intervalo de desplazamiento del
control UpDown.
Min Especifica el valor mnimo del intervalo de desplazamiento del
control UpDown.
SyncBuddy Especifica si el control UpDown sincroniza la propiedad Value con
una propiedad del control auxiliar.
Como ejemplo vamos a desarrollar una aplicacin que permita mostrar el cdigo ANS de un
carcter especificado.
Para tal fin crear un nuevo formulario y ubicar los siguientes controles: 2 etiquetas
(Cdigo ANS, Carcter), 2 cuadros de texto (TxtANS, TxtCaracter) y 1 control UpDown. Luego
establezca las propiedades que se indican:
Pgina 86
Curso de Visual Basic
U,$o@n1
Nombre UpDown1
BuddyControl TxtANS
BuddyProperty Text
ncrement 1
Max 255
Min 0
SyncBuddy True
Seguidamente proceda a transcribir el siguiente cdigo:
Private Sub TxtANS_Change()
TxtCaracter = Chr(TxtANS)
End Sub
CONTOL MONTHVIE)
El control MonthView permite al usuario la posibilidad de ver y establecer informacin de
fechas mediante una interfaz similar a un calendario. Para agregar este control seleccionar el
componente Microsoft Windows Common Controls-2 6.0.
/ro,iedad $escri,cin
Day Especifica el nmero de da mostrado.
Month Especifica el nmero de mes mostrado.
Year Especifica el nmero de ao mostrado.
Value Especifica la fecha mostrada.
DayOfWeek Especifica el da de la semana correspondiente a la fecha
mostrada.
Week Especifica el nmero de la semana en que cae la fecha mostrada.
MultiSelect Especifica si se puede seleccionar un intervalo contiguo de
fechas.
MaxSelCount Especifica el nmero mximo de das que pueden seleccionarse
mediante la propiedad MultiSelect.
SelStart
SelEnd
Especifica los lmite inferior y superior respectivamente del
intervalo de fechas seleccionado.
MonthColumns
MonthRows
Permiten mostrar ms de un mes simultneamente.
MonthColumns especifica el nmero de meses que se mostrarn
en sentido horizontal. MonthRows especifica el nmero de meses
que se mostrarn en sentido vertical.
E4ento $escri,cin
Click Ocurre cada vez que el usuario hace click sobre el control.
DateClick Ocurre cada vez que el usuario hace click sobre una fecha
mostrada en el control.
Pgina 87
Curso de Visual Basic
Como ejemplo vamos a crear un sencillo calendario. Cuando el usuario haga click sobre alguna
fecha, esta aparecer en el cuadro de texto. Pamela Anderson representar la parte atractiva
de nuestra aplicacin.
Para ello crear un nuevo formulario y agregar una etiqueta (La fecha selecciona es), un
cuadro de texto (TxtFecha), un control imagen (mgPamela) y un control MonthView. Luego
ingresar el siguiente cdigo:
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
TxtFecha = WeekdayName(MonthView1.DayOfWeek) & " , _
& Str(MonthView1.Day) & " de _
& MonthName(MonthView1.Month) & " de _
& Str(MonthView1.Year)
End Sub
Private Sub MonthView1_Click()
Call MonthView1_DateClick(MonthView1.Value)
End Sub
Private Sub Form_Load()
Call MonthView1_DateClick(MonthView1.Value)
Pgina 88
Curso de Visual Basic
End Sub
La funcin WeekdayName retorna una cadena con el nombre del da de la semana
especificado. Requiere como argumento el nmero de da de la semana.
La funcin MonthName retorna una cadena con el nombre del mes especificado.
Requiere como argumento el nmero de mes.
El evento DateClick tiene un parmetro DateClicked que especifica la fecha
seleccionada. Puede utilizar este valor (DateClicked) para obtener la fecha en la que el usuario
hizo click.
CONTOL CALENDA
El control Calendar es similar en funcionalidad al control MonthView, pues tambin
presenta un calendario. Para agregar este control seleccionar el componente Control Calendar
de Microsoft 9.0.
/ro,iedad $escri,cin
Day Especifica el nmero de da mostrado.
Month Especifica el nmero de mes mostrado.
Year Especifica el nmero de ao mostrado.
Value Especifica la fecha mostrada.
Como ejemplo vamos a desarrollar la aplicacin anterior, pero esta vez haciendo uso de
un control Calendar.
Para ello crear un nuevo formulario y agregar una etiqueta (La fecha seleccionada es),
un cuadro de texto (TxtFecha), un control imagen (mgPamela) y un control Calendar. Luego
ingresar el siguiente cdigo:
Private Sub Calendar1_Click()
Pgina 89
Curso de Visual Basic
TxtFecha = WeekdayName(Weekday(Calendar1.Value)) & " , _
& Str(Calendar1.Day) & " de _
& MonthName(Calendar1.Month) & " de _
& Str(Calendar1.Year)
End Sub
La funcin Weekday retorna un nmero entero que representa el da de la semana de
una fecha dada. Se utiliza para suplir a la propiedad DayOfWeek la cual no est permitida para
el control Calendar.
U"#$%$ : !7%(%2%7 0&" (%'E $E $%!&'
Creand' *na +e,*e-a Base de Dat's
Empecemos aclarando algo, Visual Basic no es un administrador de Base de Datos. En
trminos generales utiliza el gestor de base de datos Jet de Microsoft Access u ODBC (Open
Data Base Conectivity) para organizar los registros.
Primero debes crear una base de datos. Utilizaremos Microsoft Access (utilice la versin 2000,
que es el ms comercial y el que tiene la mayora de los usuarios).
Crearemos una base de datos llamada .ideo %l<uiler8 Luego creamos una tabla y la
llamaremos 0ategorAa8 Deber verse algo as:
Debes seguir estos pasos antes de comenzar a enlazarla con Visual Basic.
Graba los cambios.
Ve al men de 5erramientas B utilidades de base de datos B con4ertir base de
datos B a una 4ersin anterior8
Te va a pedir que des un nombre porque estas creando una copia de base de datos.
Dale el nombre de .ideos8
Pgina 90
Curso de Visual Basic
Para qu esto?. Es para asegurar la compatibilidad con el driver de gestin que tengas en tu
computadora (eso es lo que creo segn mi experiencia.)
En.a/and' e0istr's
Ahora abrimos el entorno Visual Basic. Crea un formulario y dale el nombre de /elAculas8
Cambia la propiedad 0a,tion a "Visualizar videos y categoras".
Ahora sigue estos pasos:
Crea dos !e+bo+ y dos Labels CNo es necesario darles nombresD
Deja la propiedad !e+t del !e+bo+ en blanco.
Cambia la propiedad 0a,tion del primer label a "Pelcula"
Cambia la propiedad 0a,tion del Segundo label a "Categora"
Deber verse algo as:
Ahora llega la parte interesante.
Busca en el tool box el objeto llamado $ata 8 Arrstralo al Formulario, cambia el
la propiedad 0a,tion a "Moverse entre los registros y quedar as:
Ahora busca en el /ro,ert- :indo@ la propiedad $atabase "ame del objeto $ata
presiona y busca el directorio en el cual grabaste la base da datos llamada .ideos
(recuerda que debe ser esta porque es la que esta en formato Access 97).
Pgina 91
Curso de Visual Basic
Localiza la propiedad Record Source y selecciona "Pelculas" (que es nada ms y
nada menos que la tabla que creamos en Access).
Si llegaste hasta este paso sin ningn problema te felicito, sino verifica que ests utilizando la
base de datos en formato Access 97.
Selecciona el primer texbox y localiza la propiedad $ata 'ource y selecciona Data1
(que es el nombre del objeto Data).
Ve a la propiedad DataField y selecciona "Pelculas".
Selecciona el segundo texbox y repite el paso 9, luego selecciona "Categora" de la
propiedad $ataField.
Presiona la tecla F5 y vers el resultado.
Muvete entre los registros con el Control Data.
A11es' a 2ases de dat's
1. El control $%!%
Con el control Data, podemos acceder a una base de datos, mostrar su informacin,
introducir nuevos registros, etc, y todo sin programar ni una sola lnea de cdigo.
Los pasos a seguir para utilizar una base de datos en Visual Basic son:
a8> Dibujar el control data y establecer la conexin a la base de datos apropiada.
b8> Utilizar otros controles para manejar la informacin. Estos controles son conocidos como
controles enlazados, al depender del control data como origen de los datos que muestran.
El control data posee varios controles al estilo de un reproductor de vdeo para acceder a
los registros anterior, posterior, primero y ltimo.
Las propiedades del control data que tienes que establecer para realizar la conexin con la
base de datos son:
0onnect: ndica el tipo de base de datos a la que vamos a acceder. Por omisin es Access.
$atabase"ame: ndica el archivo de base de datos a la que se quiere acceder indicando la
ubicacin exacta del archivo.
7ecord'ource: Permite indicar el conjunto de datos especfico de la base de datos
indicada en la anterior propiedad. Normalmente ser el nombre de una tabla de la base de
datos o una instruccin SQL.
Pgina 92
Curso de Visual Basic
Estableciendo adecuadamente el valor de estas tres propiedades tendremos la conexin
con la base de datos que queramos.
Si conoces la base de datos y el conjunto de datos a los que quieres tener acceso en tiempo
de diseo puedes utilizar la ventana de propiedades para establecer estas propiedades, en
caso contrario lo puedes hacer con cdigo escrito.
2. 0ontroles Enla1ados
Una vez establecida la conexin a la base de datos e indicando el conjunto de datos a los
que vamos a tener acceso mediante el control data, es necesario utilizar otros controles
para mostrar o introducir dicha informacin.
Estos controles son conocidos como controles enla1ados, ya que el origen de la
informacin que muestran est ligado a un determinado control data.
Normalmente se utilizan cuadro de texto, cuadros de lista e incluso controles imagen para
mostrar el contenido de la base de datos a la que quieres acceder. Todos estos controles
pueden actuar como controles enlazados.
Existen dos propiedades que tienes que modificar para enlazar los controles con el control
data:
$ata'ource: ndicaremos el control data que actuar como origen de los datos.
$ataField: Campo especfico al que se enlaza el control.
Por ejemplo:
t+t"ombre8$ata'ource E datEm,leados
t+t"ombre8$ataField E F"ombreF
Aqu se indica que se ligue el control txtNombre al campo Nombre de la tabla Empleados
que se accede mediante el control data (datEmpleados). Este control deber tener
correctamente establecidas las tres propiedades anteriormente citadas.
3. 7ecord'ets
Al utilizar un control data y establecer la conexin con la base de datos, ests indicando el
conjunto de datos sobre los que quieres tener acceso. En Visual Basic a dicho conjunto de
datos se les denomina RecordSet, siendo una propiedad del control data.
Existen tres tipos de Recordset: !ableG $-naset - 'na,so9t. Dicho tipo se establece
mediante la propiedad 7ecordset!-,e del control data, que predeterminadamente tiene el
valor Dynaset.
Un Recordset tipo Dynaset es un conjunto dinmico de registros que representan una
determinada tabla o el resultado de una consulta, segn se haya establecido la propiedad
RecordSource del control data. Puedes agregar nuevos registros, modificar los campos
existentes e incluso eliminar registros y todos estos cambios se reflejan en la base de datos
afectada.
Un Recordset de tipo Table representa una determinada tabla de base de datos. Al crear un
Recordset de este tipo estars representando dicha tabla, cargndose en memoria un solo
registro que se corresponde con el registro actual. Toda modificacin que se realice se ver
reflejada en la tabla.
Finalmente el tipo Snapshot crea una copia esttica del conjunto de datos al que se accede
mediante el control data. En este caso no puedes actualizar la base de datos, slo puedes
visualizar los datos obtenidos.
4. Modificar la base de datos
Pgina 93
Curso de Visual Basic
Si crear un Recordset de tipo Table o Dynaset, podrs modificar la base de datos
subyacente sin tener que programar ni una sola lnea de cdigo.
Al ejecutar la aplicacin, puedes desplazarte a travs de los registros utilizando el control
data, cualquier modificacin que realices se ver reflejada en la base de datos al acceder al
nuevo registro.
Mediante la propiedad $ata09anged de un control enlazado, si el valor mostrado por dicho
control ha sufrido modificaciones respecto al valor original. En caso afirmativo dicha
propiedad entrar en valor True.
5. %*adir registros
Se pueden agregar nuevos registros a la base de datos sin tener que programar para ello.
En este caso tienes que situarte en el ltimo registro y moverte al siguiente.
Si estableces correctamente la propiedad E&F%ction al realizar dicha accin se crear un
nuevo registro al que se le puede introducir nueva informacin.
La propiedad EOFAction puede tener tres valores y nos indica lo que debe ocurrir cuando se
llega al final de un Recordset del control data:
Si EOFAction tiene un valor Mo4eLast, mantiene el ltimo registro como registro actual sin
desplazarse al siguiente registro, que no existe, aunque pulsemos el botn del control data
para desplazarnos al prximo registro.
Si el valor EOFAction deja el registro actual invalidado (ya que dicho registro todava no
existe), y desactivas el botn que nos permite desplazarnos al siguiente tienes que controlar
esta situacin mediante cdigo ya que cualquier intento de acceder a la informacin del
registro actual producir un error al no ser un registro vlido.
Si EOFAction posee el valor %dd"e@, entonces cuando te desplaces ms all del ltimo
registro, Visual Basic crear un registro nuevo en la base de datos, donde puedes introducir
la nueva informacin.
El valor AddNew es el que nos permite aadir nuevos registros a la base de datos sin tener
que programar para ello. Para crear un nuevo registro tienes que sobrepasar el ltimo
registro que tengas en esos momentos, entonces Visual Basic limpiar el valor de los
controles enlazados permitindote introducir la informacin del nuevo registro. Cuando te
muevas a otro registro se aadir a la base de datos.
Al igual que se puede indicar que debe ocurrir cuando se llegue al final de un recordset,
tambin podrs hacerlo cuando se llega al principio mediante la propiedad (&F%ction del
control data de la misma forma que EOFAction.
Pr'0ramar 1'n .a 2ase de dat's
1. Mo4erse ,or un 7ecord'et
El control data nos permite movernos por un recordset de una forma rpida y sencilla a
travs de sus botones. Sin embargo en muchas ocasiones tendrs que escribir cdigo en el
que es necesario moverse a un determinado registro rpidamente.
Para ello es necesario entender que aunque un recordset es una propiedad de control data,
tambin tiene carcter de objeto, por lo que sern aplicables otras propiedades y mtodos.
La forma de hacerlo ser con la sintaxis estndar:
"ombre0ontrol$ata87ecordset8"ombre/ro,iedad
"ombre0ontrol$ata87ecordset8"ombreM3todo
Donde tanto el NombrePropiedad como el NombreMtodo son del recordset u no del control
data.
Pgina 94
Curso de Visual Basic
Los mtodos que puedes utilizar para desplazarte por un recordset son:
Mo4eFirst: Nos desplazamos al primer registro del recordset.
Mo4e/re4ious: Nos desplazamos al registro anterior del recordset.
Mo4e"e+t: Nos desplazamos al siguiente registro del recordset.
Mo4eLast: Nos desplazamos al ltimo registro del recordser.
Mo4e fila HGinicioI: Permite desplazarnos un nmero especfico de registro hacia delante o
hacia atrs respecto al marcador de inicio.
El marcador (&F nos indica que estamos al principio del recordset y el marcador E&F nos
indica que estamos al final. Si sitas el registro actual en dichos marcadores, no se
producir un error pero no podrs acceder a la informacin del registro actual ya que no es
un registro vlido.
Si se sobrepasa dichos marcadores se producir un error en tiempo de ejecucin. Hay que
utilizar las propiedades BOF y EOF para prevenir este tipo de errores.
La accin indicada por el valor de las propiedades BOFAction y EOFAction del control data
se ejecutan cuando el registro actual se sita en los marcadores BOF y EOF
respectivamente.
Recuerda que BOFAction y EOFAction son propiedades del control data mientras que BOF
y EOF son del recordset.
2. (uscar 7egistros
Para buscar registros puedes utilizar los mtodos Find cuando trabajes con recordset de
tipo Dynaset o Snapshot, o utilizar el mtodo 'ee= para un recordset de un tipo Table.
El mtodo Find presenta cuatro variantes:
FindFirst: Busca el primer registro que cumple determinado criterio.
FindLast: Busca el ltimo registro que cumpla un determinado criterio.
Find"e+t: Realiza la bsqueda hacia delante.
Find/re4ious: Realiza la bsqueda hacia atrs.
Vamos a ver el siguiente ejemplo:
:it98datEm,leados
87ecordset8FindFirst F"ombre E J F K t+t8"ombre8!e+t K FJF
#f 7ecordset8"oMatc9 !9en
Msg(o+ FLo siento no es un nombre de em,leado 4;lidoF
E+it 'ub
End #f
End :it9
Mediante el uso de la estructura With nos evitamos tener que repetir cdigo. As no ser
necesario escribir la estructura datEmpleados hasta que lleguemos a End With.
En la lnea .Recordset.FindFirst "Nombre = ' " & txt.Nombre.Text & "'" es donde se produce
la bsqueda de un determinado registro del recordset.
Al utilizar el mtodo FindFirst se est indicando que se efecte la bsqueda del primer
registro cuyo valor en el campo Nombre coincide con el valor que se ha introducido en el
txtNombre.
Con el uso del operador & concatenamos para crear el criterio de bsqueda, si por ejemplo
se hubiera introducido el valor 0oral en el cuadro de texto, esta lnea quedara de la
siguiente forma:
Pgina 95
Curso de Visual Basic
datEm,leados87ecordset8FindFirst F"ombreEJ0oralJF
Luego utilizamos el mtodo "omatc9 del recordset para comprobar, una vez realizada la
bsqueda, si se ha encontrado un registro o no. Si no se ha encontrado el registro, el
mtodo nomatch devolver True por lo que se mostrar un mensaje mediante el MsgBox y
se saldr del procedimiento utilizando el mtodo E+it 'ub.
3. %*adir registros
El valor AddNew en la propiedad EOFAction del control data nos permita agregar registros,
pero esta forma slo es adecuada cuando estamos accediendo a una nica tabla en el
recordset.
El objeto recordset contiene el mtodo AddNew que permite la creacin de un registro
nuevo en blanco donde puedes asignar los valores a sus campos.
Una vez introducida dicha informacin, tendrs que hacer uso del mtodo U,date del
recordset, con el objetivo de que el nuevo registro se actualice en la tabla. Si no utilizas
Update el nuevo registro no se agregar finalmente.
El cdigo ser:
datEm,leados87ecordset8U,date
Tienes que tener en cuenta que el hecho de agregar un nuevo registro no implica que ste
se convierta en el registro actual del recordset.
Si quieres que el nuevo registro sea el registro actual puedes utilizar la propiedad del
recordset LastModified.
El cdigo ser:
datEm,leados87ecordset8(oo=mar= E datEm,leados87ecordset8LastModified
La propiedad (oo=mar= se usa para saltar rpidamente al nuevo registro indicado por el
marcador LasrModified. Boolmark te permite guardar el puntero del registro actual y
colocarse rpidamente en un registro especfico.
El cdigo ser:
$im registo%ctual
registro%ctual E datEm,leados87ecordset8(oo=mar= Aqu se guarda el registro actual
datEm,leados87ecordset8Mo4eFirst Desplazamos al registro actual
datEm,leados87ecordset8(oo=mar= E registro%ctual Vuelve al marcador guardado
4. Eliminar 7egistros
Mediante el mtodo $elete, puedes borrar un registro entero de un recordset. En este caso
te tienes que situar en el registro y hacer uso de ste mtodo.
Tienes que tener cuidado a la hora de eliminar un registro, ya que el registro actual sigue
siendo el registro eliminado, por lo que cualquier intento de acceder a la informacin del
registro actual provocar un error de ejecucin.
Para evitar ste problema es conveniente desplazarnos a un registro vlido una vez hayas
utilizado el mtodo. No es necesario el uso de Update para hacer efectiva la eliminacin.
Un cdigo de ejemplo sera:
#f datEm,leados87ecordset8E&F E False
datEm,leados87ecordset8$elete
#f datEm,leados87ecordset8E&F E !rue !9en
Pgina 96
Curso de Visual Basic
cmdEliminar8Enabled E !rue
End #f
datEm,leados87ecordset8Mo4eLast
End #f
En la primera lnea se comprueba si el recordset est vaco, es decir, si la propiedad EOF
tiene su valor a True.
En el caso de que el recordset no est vaco, se realiza la eliminacin del registro actual,
ms tarde se vuelve a comprobar si el recordset est vaco ya que se poda haber borrado
el nico registro que contena.
Finalmente no movemos al ltimo registro con MoveLast, ya que el registro actual no es
vlido al haber sido eliminado. En el caso de no existir ningn registro vlido MoveLast nos
situar en el marcador EOF.
Pgina 97

Вам также может понравиться