You are on page 1of 41

Curso De Visual Basic 5.

TOTOLAN, MICHOACAN
MEXICO

DICIEMBRE 2000.

Impartido Por:

L.I. Martn Alejandro Guerra Hernndez

Apuntes de Visual Basic

Qu es Visual Basic?
La palabra "Visual" hace referencia al mtodo que se utiliza para crear la interfaz grfica de usuario
(GUI). En lugar de escribir numerosas lneas de cdigo para describir la apariencia y la ubicacin de
los elementos de la interfaz, simplemente puede arrastrar y colocar objetos prefabricados en su lugar
dentro de la pantalla.
Antes de comenzar es bueno que conozca lo siguiente:
Objetos.
Es cualquier control que forma parte de la aplicacin y estos a su vez tienen asociado un conjunto de
propiedades, mtodos y eventos. Ejemplo: Una caja de texto (TextBox) en la cual podemos escribir
cualquier lnea es un objeto.
Propiedades.
Son las caractersticas especificas que posee un objeto o un formulario.
Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox, etc.
Valor
Es el contenido especifico que se le asigna a cada una de las propiedades de los objetos.
Ejemplo: Color:Azul, Fuente: Arial, Tamao:10, A.lineacin:Centrada, etc.
Mtodos.
Los mtodos son funciones internas de un determinado objeto que permite realizar funciones sobre l
o sobre otro objeto.
Ejemplo : Deseamos poner en la ventana Windows de nuestra aplicacin "Hola mundo", por tanto
pondremos el mtodo -> Ventana.Print "Hola mundo"
Eventos.
Los eventos son acciones que se pueden realizar en cualquier control: clic, doble clic, movimiento del
ratn. A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento.
Un programa Visual Basic es un POE (Programa orientado a eventos).
Todo lo que hacemos en un programa Visual Basic est generado por medio de eventos
En una aplicacin controlada por eventos, el cdigo no sigue una ruta predeterminada; ejecuta
distintas secciones de cdigo como respuesta a los eventos. Los eventos pueden desencadenarse
por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o incluso por la propia
aplicacin. La secuencia de estos eventos determina la secuencia en la que se ejecuta el cdigo, por
lo que la ruta a travs del cdigo de la aplicacin es diferente cada vez que se ejecuta el programa.
Puesto que no puede predecir la secuencia de los eventos, el cdigo debe establecer ciertos
supuestos acerca del "estado del mundo" cuando se ejecute. Cuando haga suposiciones (por
ejemplo, que un campo de entrada debe contener un valor antes de ejecutar un procedimiento para
procesar ese valor), debe estructurar la aplicacin de forma que asegure que esa suposicin siempre
ser vlida (por ejemplo, deshabilitando el botn de comando que inicia el procedimiento hasta que el
campo de entrada contenga un valor).
El cdigo tambin puede desencadenar eventos durante la ejecucin. Por ejemplo, cambiar mediante
programacin el texto de un cuadro de texto hace que se produzca el evento Change del cuadro de
texto. Esto causara la ejecucin del cdigo (si lo hay) contenido en el evento Change. Si supone que
este evento slo se desencadenar mediante la interaccin del usuario, podra ver resultados
inesperados. Por esta razn es importante comprender el modelo controlado por eventos y tenerlo en
cuenta cuando disee su aplicacin.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 2 -

Apuntes de Visual Basic

Proyecto.
Para crear una aplicacin con Visual Basic se trabaja con proyectos. Un proyecto es una coleccin de
archivos que se usan para generar una aplicacin. Este tema describe cmo generar y administrar
proyectos.
Al crear una aplicacin probablemente crear nuevos formularios; tambin puede volver a usar o
modificar formularios creados en proyectos anteriores. Esto tambin se aplica a otros mdulos o
archivos que pueda incluir en su proyecto. Los controles ActiveX y los objetos de otras aplicaciones
tambin se pueden compartir entre proyectos.
Despus de ensamblar todos los componentes de un proyecto y escribir el cdigo, puede compilar el
proyecto para crear un archivo ejecutable.
Componentes de un Proyecto.
Cuando desarrolla un aplicacin, trabaja con un archivo de proyecto para administrar todos los
diferentes archivos que crea. Un proyecto consta de lo siguiente:
Un archivo de proyecto que realiza el seguimiento de todos los componentes (.vbp)
Un archivo para cada formulario (.frm).
Un archivo de datos binario para cada formulario que contenga datos sobre propiedades de
controles del formulario (.frx). Estos archivos no se pueden modificar y los genera
automticamente cualquier archivo.frm que tenga propiedades en formato binario, como Picture o
Icon.
Opcionalmente, un archivo para cada mdulo de clase (.cls).
Opcionalmente, un archivo para cada mdulo estndar (.bas).
Opcionalmente, uno o ms archivos con controles ActiveX (.ocx).
Opcionalmente, un nico archivo de recursos (.res).
El archivo de proyecto es simplemente una lista de todos los archivos y objetos asociados con el
proyecto, as como informacin sobre las opciones de entorno establecidas. Esta informacin se
actualiza cada vez que guarda el proyecto. Todos los archivos y objetos tambin se pueden compartir
con otros proyectos.
Cuando ha completado todos los archivos del proyecto puede convertir el proyecto en un archivo
ejecutable (.exe): en el men Archivo, elija el comando Generar proyecto.exe.
Formularios
Un formulario es una ventana. La ventana Windows de cualquier aplicacin.
Podemos abrir tantas ventanas como queramos en nuestro proyecto, pero el nombre de las ventanas
debe ser distinto. Por defecto como ya hemos visto, la ventana que se abre en Visual Basic tiene el
nombre de Form1. Ya veremos como cambiar estas "Propiedades" ms adelante.
Los mdulos de formularios (extensin de nombre de archivo .frm) pueden contener descripciones en
forma de texto del formulario y sus controles, incluyendo los valores de sus propiedades. Tambin
pueden contener declaraciones a nivel de formulario de constantes, variables y procedimientos
externos, procedimientos de evento y procedimientos generales.
Mdulos estndar
Un mdulo es un archivo Visual Basic donde escribimos parte del cdigo de nuestro programa, y digo
parte, porque puede haber cdigo en el formulario tambin.
Las rutinas incluidas dentro de los mdulos pueden ser ejecutadas desde los formularios de la
aplicacin.
Los mdulos estndar (extensin de nombre de archivo.bas) pueden contener declaraciones pblicas
o a nivel de mdulo de tipos, constantes, variables, procedimientos externos y procedimientos
pblicos.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 3 -

Apuntes de Visual Basic

Controles estndar
Los controles estndar los proporciona Visual Basic. Los controles estndar, como CommandButton
(botn de comando) o Frame (marco), siempre estn incluidos en el cuadro de herramientas, al
contrario de lo que ocurre con los controles ActiveX y los objetos insertables, que se pueden agregar
y quitar del cuadro de herramientas.
Entorno de Desarrollo.
Cuando inicia una sesin de trabajo con Visual Basic, aparece en la ventana el siguiente cuadro de
dialogo:
Debe elegir el que se
adapte a sus
necesidades, para
nuestro ejemplo elija
EXE Estndar y haga
clic en el botn Abrir.

Posteriormente aparece la ventana en la que usted podra desarrollar su programa (proyecto):


Barra de titulo

Barra de mens

Botones de control

Barra de
herramientas

Ver cdigo del objeto


Ver objeto
Alternar carpetas

Cuadro de
herramientas

Ventana de Formularios

Formulario

Ventana de propiedades

Barra de tareas

Ventana de posicin del


formulario

Ventana de Proyecto.
Pulse "Ctrl+R" (Ver -> Proyecto) y se abrir la ventana de proyectos
En esta ventana tenemos todos los ficheros del proyecto Visual
Basic en el que vamos a trabajar.
Formulario.
Al principio y por defecto, el programa abre un formulario con
el nombre Form1 que es la ventana Windows de nuestra
aplicacin.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 4 -

Apuntes de Visual Basic

Ventana de Propiedades.
Pulsando la tecla "F4", aparecer la ventana de propiedades. Esta ventana
es fundamental, ya que contiene todas las propiedades de cada objeto que
insertaremos en nuestro formulario, as como las propiedades del
formulario en s.
Caja de Herramientas.
La ventana caja de herramientas contiene todos los
objetos que podemos incluir en nuestro formulario. Esta
ventana se puede abrir en el men principal (Ver -> Caja
de herramientas).

Fundamentos de Programacin.
Cada mdulo de formulario contiene procedimientos de evento (secciones de cdigo donde se
colocan las instrucciones que se ejecutarn como respuesta a eventos especficos). Los formularios
pueden contener controles. Por cada control de un formulario, existe el correspondiente conjunto de
procedimientos de evento en el mdulo de formulario.
Como funciona una aplicacin controlada por eventos.
Un evento es una accin reconocida por un formulario o un control. Las aplicaciones controladas por
eventos ejecutan cdigo Basic como respuesta a un evento. Cada formulario y control de Visual Basic
tiene un conjunto de eventos predefinidos. Si se produce uno de dichos eventos y el procedimiento de
evento asociado tiene cdigo, Visual Basic llama a ese cdigo.
Aunque los objetos de Visual Basic reconocen automticamente un conjunto predefinido de eventos,
usted decide cundo y cmo se responder a un evento determinado. A cada evento le corresponde
una seccin de cdigo (un procedimiento de evento). Cuando desea que un control responda a un
evento, escribe cdigo en el procedimiento de ese evento.
Los tipos de eventos reconocidos por un objeto varan, pero muchos tipos son comunes a la mayora
de los controles. Por ejemplo, la mayora de los objetos reconocen el evento Click: si un usuario hace
clic en un formulario, se ejecuta el cdigo del procedimiento de evento Click del formulario; si un
usuario hace clic en un botn de comando, se ejecuta el cdigo del procedimiento de evento Click del
botn. El cdigo en cada caso ser diferente.
Variables.
El alcance de una variable define qu partes del cdigo son conscientes de su existencia. Cuando
declara una variable en un procedimiento, slo el cdigo de dicho procedimiento puede tener acceso
o modificar el valor de la variable; tiene un alcance que es local al procedimiento. Dependiendo de
cmo se declara, una variable tiene como alcance un procedimiento (local) o un mdulo.
Variables utilizadas en un procedimiento
Las variables a nivel de procedimiento slo se reconocen en el procedimiento en el que se han
declarado. Se las conoce tambin como variables locales. Se declaran mediante las palabras clave
Dim o Static. Por ejemplo: Dim intTemp As Integer o bien Static intPermanent As Integer
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 5 -

Apuntes de Visual Basic

Los valores de variables locales declaradas con Static existen mientras se ejecuta la aplicacin,
mientras que las variables declaradas con Dim slo existen mientras se ejecuta el procedimiento.
Las variables locales resultan una eleccin apropiada para clculos temporales. Por ejemplo, puede
crear una docena de procedimientos distintos que contengan una variable llamada intTemp. Como
cada intTemp se ha declarado como una variable local, cada procedimiento slo reconoce su propia
versin de intTemp. Cualquier procedimiento puede alterar el valor de su intTemp local sin que ello
afecte a las variables intTemp de los dems procedimientos.
Variables utilizadas en un mdulo
De forma predeterminada, una variable a nivel de mdulo est disponible para todos los
procedimientos del mdulo, pero no para el cdigo de otros mdulos. Cree variables a nivel de
mdulo declarndolas con la palabra clave Private en la seccin Declaraciones al principio del
mdulo. Por ejemplo: Private intTemp As Integer
Variables utilizadas por todos los mdulos
Para hacer que una variable a nivel de mdulo est disponible para otros mdulos, utilice la palabra
clave Public para declarar la variable. Los valores de las variables pblicas estn disponibles para
todos los procedimientos de la aplicacin. Al igual que todas las variables a nivel de mdulo, las
variables pblicas se declaran en la seccin Declaraciones al principio del mdulo. Por ejemplo:
Public intTemp As Integer
Nota No puede declarar variables pblicas en un procedimiento, slo en la seccin Declaraciones
de un mdulo.
Declaracin
La forma de declarar las variables es la siguiente:
Dim| Public| Static nombre_variable As tipo
Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al mbito
en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no
sera accesible desde los dems procedimientos o formularios.
Public: Las variables declaradas sern publicas y podrn estar accesibles desde todos los
formularios de la aplicacin. Para conseguirlo tendremos que declararlas en un mdulo de cdigo, no
en la seccin declarations de cualquier formulario de los que conste la aplicacin. Para crear un
mdulo de cdigo en el men principal de Visual Basic marcamos en Proyecto/Agregar modulo y
aparecer junto a los dems formularios de la ventana de proyecto aunque con un icono distinto
indicando que se trata de un mdulo de cdigo.
Static: Con esta forma de declarar variables conseguiremos que las variables locales no se creen y
se destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que se mantenga
su valor durante todo el periodo de ejecucin de la aplicacin. De esta forma a entrar en algn
procedimiento las variables recuerdan el valor que tenan cuando se sali de l.
Tipos de datos
Boolean
Date
Doble
precision
Integer
Long integer
Single
String
Variant

Solo acaepta 2 valores True o False


Permite operar con fechas
Admite valores decimales de doble precisin

Dim resp as Boolean


Dim fecha as Date
Dim num1#

Admite valores entre 32768 y 32767


Admite valores entre -2.147.483.648 y 2.147.483.647
Admite valores decimales con precisin simple
Permite las cadenas de caracteres
Todo tipo de dato

Dim num2%
Dim sueldo&
Dim precio!
Dim cade1$
Dim uno,dos

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 6 -

Apuntes de Visual Basic

Operadores matemticos:
Operador
Operacin
+ - * / Suma, resta, multiplicacin, divisin.
\ Mod ^ Divisin entera, residuo, exponenciacin.
&
Concatenacin

Ejemplos:
((5+15) / 2) 4 = 6
(6*2)+4 = 16
3^2=9
9\3 =0
5&2 = 52
67&3 = 673

Operadores de comparacin:
Operador
Operacin
=
<>
Igual, distinto a.
>
<
Mayor que, menor que.
>=
< = Mayor o igual que, menor o igual que.

5 = (10/2) si
5 > 4 si
3 >=4 no

Operadores lgicos:
Operador
Operacin
And
Or Y, o.
Not
Xor Negacin.

Ejemplos:
5 <> (10/2) no
5 < 4 no
3 <=4 si

Ejemplos:
((edad>=1) and (edad<=5)) = nio

Nomenclatura para declarar variables:


El nombre de la variable debe comenzar con letra, mximo 256 caracteres.
Asigne nombres descriptivos, puede combinar maysculas, minsculas y nmeros
Ejemplos de variables:
Debe capturar el nombre y la direccin, de una persona (texto):
Dim nom, direc as string
Dim nom$,direc$
Debe capturar el telefono y la edad:
Dim tel, edad as long integer

Dim tel&, edad&

Debe capturar el sueldo y los impuestos de una persona:


Dim sueldo, imptos as single precision

Dim sueldo!, imptos!

Ejemplos empleando operadores para realizar operaciones matemticas:


Dim num1,num2,num3 as integer
num1=10
num2=20
num3=num1*num2
num3=num1+num2
num3=num2-num1
num3=((num1+num2)5) / 4
En su programa requiere que las variables declaradas, las puede utilizar en todos sus formularios,
para ello debe declararlas en el Objeto (General), de la siguiente manera:
Public nom, dir, curp as string
Public edad, tel as Long integer
En su programa requiere que las variables declaradas, las puede utilizar nicamente en el formulario
que esta empleando y que ningn otro formulario pueda conocer sus valores, para ello debe
declararlas en el Objeto correspondiente, de la siguiente manera:
Private nom, dir, curp as string
o Dim nom, dir, curp as string
Private edad, tel as Long integer o Dim edad, tel as Long integer
Nota: cabe mencionar que usted puede usar variables sin declararlas, es valido, pero no es
recomendable pues en ocasiones realizara cdigos demasiado extensos y no recordar el nombre
exacto de la variable y con la siguiente instruccin forzar a Visual Basic a que cada una de las
variables que emplee en su programa, estn declaradas. En el Objeto (General) use:
Option Explicit
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 7 -

Apuntes de Visual Basic

Introduccin a los Procedimientos.


Puede simplificar las tareas de programacin si divide los programas en componentes lgicos ms
pequeos. Estos componentes, llamados procedimientos, pueden convertirse en bloques bsicos
que le permiten mejorar y ampliar Visual Basic.
Los procedimientos resultan muy tiles para condensar las tareas repetitivas o compartidas, como
clculos utilizados frecuentemente, manipulacin de texto y controles, y operaciones con bases de
datos.
Hay dos ventajas principales cuando se programa con procedimientos:
Los procedimientos le permiten dividir los programas en unidades lgicas discretas, cada una de
las cuales se puede depurar ms fcilmente que un programa entero sin procedimientos.
Los procedimientos que se utilizan en un programa pueden actuar como bloques de construccin
de otros programas, normalmente con pocas o ninguna modificacin.

En Visual Basic se utilizan varios tipos de procedimientos:


Procedimientos Sub que no devuelven un valor.
Procedimientos Function que devuelven un valor (normalmente conocidos como funciones).

Un procedimiento Sub es un bloque de cdigo que se ejecuta como respuesta a un evento. Al dividir
el cdigo de un mdulo en procedimientos Sub, es ms sencillo encontrar o modificar el cdigo de la
aplicacin.
La sintaxis de un procedimiento Sub es la siguiente:
[Private|Public][Static]Sub nombre_procedimiento (argumentos)
instrucciones
End Sub
Cada vez que se llama al procedimiento se ejecutan las instrucciones que hay entre Sub y End Sub.
Se pueden colocar los procedimientos Sub en mdulos estndar, mdulos de clase y mdulos de
formulario. De forma predeterminada, los procedimientos Sub son Public en todos los mdulos, lo
que significa que se les puede llamar desde cualquier parte de la aplicacin.
Los argumentos de un procedimiento son como las declaraciones de variables; se declaran valores
que se pasan desde el procedimiento que hace la llamada.
Resulta muy til en Visual Basic distinguir entre dos tipos de procedimientos Sub, procedimientos
generales y procedimientos de evento.
Procedimientos de evento
Cuando un objeto en Visual Basic reconoce que se ha producido un evento, llama automticamente
al procedimiento de evento utilizando el nombre correspondiente al evento. Como el nombre
establece una asociacin entre el objeto y el cdigo, se dice que los procedimientos de evento estn
adjuntos a formularios y controles.
Un procedimiento de evento de un control combina el nombre real del control (especificado en la
propiedad Name), un carcter de subrayado (_) y el nombre del evento. Por ejemplo, si desea
que un botn de comando llamado cmdPlay llame a un procedimiento de evento cuando se haga
clic en l, utilice el procedimiento cmdPlay_Click.

Un procedimiento de evento de un formulario combina la palabra "Form", un carcter de


subrayado y el nombre del evento. Si desea que un formulario llame a un procedimiento de
evento cuando se hace clic en l, utilice el procedimiento Form_Click. (Como los controles, los
formularios tienen nombres nicos, pero no se utilizan en los nombres de los procedimientos de
evento.)

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 8 -

Apuntes de Visual Basic

Sintaxis de un evento de control Sintaxis de un evento de formulario


Private Sub nombrecontrol_nombreevento (argumentos )
instrucciones
End Sub
Private Sub Form_nombreevento (argumentos)
instrucciones
End Sub
Aunque puede escribir procedimientos de evento nuevos, es ms sencillo utilizar los procedimientos
de cdigo que facilita Visual Basic, que incluyen automticamente los nombres correctos de
procedimiento. Puede seleccionar una plantilla en la ventana Editor de cdigo si selecciona un objeto
en el cuadro Objeto y selecciona un procedimiento en el cuadro Procedimiento.
Tambin es conveniente establecer la propiedad Name de los controles antes de empezar a escribir
los procedimientos de evento para los mismos. Si cambia el nombre de un control tras vincularle un
procedimiento, deber cambiar tambin el nombre del procedimiento para que coincida con el nuevo
nombre del control. De lo contrario, Visual Basic no ser capaz de hacer coincidir el control con el
procedimiento. Cuando el nombre de un procedimiento no coincide con el nombre de un control, se
convierte en un procedimiento general.
Paso de argumentos a los procedimientos
Normalmente el cdigo de un procedimiento necesita cierta informacin sobre el estado del programa
para realizar su trabajo. Esta informacin consiste en variables que se pasan al procedimiento
cuando se le llama. Cuando se pasa una variable a un procedimiento, se llama argumento.
Los argumentos de los procedimientos que escriba tienen el tipo de dato Variant de forma
predeterminada. Sin embargo, puede declarar otros tipos de datos para los argumentos. Por ejemplo,
la funcin siguiente acepta una cadena y un entero:
Function QuComer (DaSemana As String, Hora As Integer) As String
' Devuelve el men del almuerzo basndose en el da y la hora.
If DaSemana = "Viernes" then
QuComer = "Pescado"
Else
QuComer = "Pollo"
End If
If Hora > 4 Then QuComer = "Demasiado tarde"
End Function
Paso de argumentos por valor
Slo se pasa una copia de la variable cuando se pasa un argumento por valor. Si el procedimiento
cambia el valor, el cambio afecta slo a la copia y no a la variable propiamente dicha. Utilice la
palabra clave ByVal para indicar un argumento pasado por valor.
Por ejemplo:
Sub Cuentas (ByVal intNumCuenta as Integer)
.
. ' Ponga aqu sus instrucciones.
.
End Sub

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 9 -

Apuntes de Visual Basic

Paso de argumentos por referencia


Pasar argumentos por referencia le da al procedimiento acceso al contenido real de la variable en su
ubicacin de direccin de memoria. Como resultado, el procedimiento al que se ha pasado el valor
de la variable se puede modificar de forma permanente. La forma predeterminada de pasar valores
en Visual Basic es por referencia.
Si especifica el tipo de dato de un argumento que se pasa por referencia, debe pasar un valor de ese
tipo para el argumento. Puede eludirlo si pasa una expresin en vez de un tipo de dato como
argumento. Visual Basic evala la expresin y la pasa como el tipo requerido si puede.
La forma ms sencilla de convertir una variable en una expresin es ponerla entre parntesis. Por
ejemplo, para pasar una variable declarada como entero a un procedimiento que espera una cadena
como argumento, debera hacer lo siguiente:
Sub ProcedimientoQueLlama ()
Dim intX As Integer
intX = 12 * 3
Foo(intX)
End Sub
Sub Foo(Bar As String)
MsgBox Bar 'El valor de Bar es la cadena "36".
End Sub
Estructuras de Control (Decisin y Repeticin).
Estructura: If Else End If.
Use la estructura If...Then para ejecutar una o ms instrucciones basadas en una condicin. Puede
utilizar la sintaxis de una lnea o un bloque de varias lneas:
If condicin Then
instrucciones
End If
Condicin normalmente es una comparacin, pero puede ser cualquier expresin que d como
resultado un valor numrico. Visual Basic interpreta este valor como True o False; un valor numrico
cero es False y se considera True cualquier valor numrico distinto de cero. Si condicin es True,
Visual Basic ejecuta todas las instrucciones que siguen a la palabra clave Then. Puede utilizar la
sintaxis de una lnea para ejecutar una instruccin basada en una condicin:
If cualquierFecha < Now Then
cualquierFecha = Now
End If
If...Then...Else
Utilice un bloque If...Then...Else para definir varios bloques de instrucciones, uno de los cuales se
ejecutar:
If condicin1 Then
[bloque de instrucciones 1]
[Else
[bloque de instrucciones n]]
End If
Visual Basic evala primero condicin1. Si es False, Visual Basic ejecuta el bloque de instrucciones
correspondientes a Else y despus ejecuta el cdigo que sigue a End If.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 10 -

Apuntes de Visual Basic

Por ejemplo, la aplicacin podra realizar distintas acciones dependiendo del control en que se haya
hecho clic de una matriz de controles de men:
Private Sub Command1_Click()
Dim edad As Integer
edad = Text1.Text
If edad >= 18 Then
MsgBox ("Mayor de edad")
Else
MsgBox ("menor de edad")
End If
End Sub
Estructura: Select - Case
Visual Basic proporciona la estructura Select Case como alternativa a If...Then...Else para ejecutar
selectivamente un bloque de instrucciones entre varios bloques de instrucciones. La instruccin
Select Case ofrece posibilidades similares a la instruccin If...Then...Else, pero hace que el cdigo
sea ms legible cuando hay varias opciones.
La estructura Select Case funciona con una nica expresin de prueba que se evala una vez
solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresin con los
valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de instrucciones
asociado a ese Case:
Select Case expresin_prueba
[Case lista_expresiones1
[bloque de instrucciones 1]]
[Case lista_expresiones2
[bloque de instrucciones 2]]
[Case Else
[bloque de instrucciones n]]
End Select
Cada lista_expresiones es una lista de uno o ms valores. Si hay ms de un valor en una lista, se
separan los valores con comas. Cada bloque de instrucciones contiene cero o ms instrucciones. Si
ms de un Case coincide con la expresin de prueba, slo se ejecutar el bloque de instrucciones
asociado con la primera coincidencia. Visual Basic ejecuta las instrucciones de la clusula (opcional)
Case Else si ningn valor de la lista de expresiones coincide con la expresin de prueba.
Por ejemplo, suponga que agrega otro comando al men Edicin en el ejemplo If...Then...Else.
Podra agregar otra clusula ElseIf o podra escribir la funcin con Select Case:
Por ejemplo, suponga que agrega ^tres botones de comando a su formulario, pero adems los
establece como matriz. Podra agregar el cdigo siguiente con Select Case:
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
MsgBox ("Mujer")
Case 1
MsgBox ("Varon")
Case 2
MsgBox ("Joven")
End Select
End Sub

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 11 -

Apuntes de Visual Basic

Estructuras de Repeticin
Do While Loop / Do Loop While.
Utilice el bucle Do para ejecutar un bloque de instrucciones un nmero indefinido de veces. Hay
algunas variantes en la instruccin Do...Loop, pero cada una evala una condicin numrica para
determinar si contina la ejecucin. Como ocurre con If...Then, la condicin debe ser un valor o una
expresin que d como resultado False (cero) o True (distinto de cero).
Do...Loop siguiente, las instrucciones se ejecutan siempre y cuando condicin sea True:
Do While condicin
instrucciones
Loop
Cuando Visual Basic ejecuta este bucle Do, primero evala condicin. Si condicin es False (cero),
se salta todas las instrucciones. Si es True (distinto de cero), Visual Basic ejecuta las instrucciones,
vuelve a la instruccin Do While y prueba la condicin de nuevo.
Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando condicin sea
distinta de cero o True. Nunca se ejecutan las instrucciones si condicin es False inicialmente. Por
ejemplo, este procedimiento pide al usuario, un numero y despus dice, si desea continuar (S/N), si
el usuario decide que s debe pulsar S, en caso de no continuar, pulsa cualquier tecla, el bucle se
repite mientras pulsa S:
Private Sub Form_Load()
Dim control As String * 1
Dim num As Integer
control = "S"
Do While control = "S"
num = InputBox$("Introduzca numero:")
control = InputBox$("Desea continuar (S/N)?")
Loop
End
End Sub

Hace el bucle cero o ms veces


Do Until condicin
instrucciones
Loop

Hace el bucle al menos una vez


Do
instrucciones
Loop Until condicin

Estructura de Repeticin: For Next.


Los bucles Do funcionan bien cuando no se sabe cuntas veces se necesitar ejecutar las
instrucciones del bucle. Sin embargo, cuando se sabe que se van a ejecutar las instrucciones un
nmero determinado de veces, es mejor elegir el bucle ForNext. A diferencia del bucle Do, el
bucle For utiliza una variable llamada contador que incrementa o reduce su valor en cada repeticin
del bucle. La sintaxis es la siguiente:
For contador = iniciar To finalizar [Step incremento]
instrucciones
Next [contador]
Los argumentos contador, iniciar, finalizar e incremento son todos numricos.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 12 -

Apuntes de Visual Basic

Nota El argumento incremento puede ser positivo o negativo. Si incremento es positivo, iniciar debe
ser menor o igual que finalizar o no se ejecutarn las instrucciones del bucle. Si incremento es
negativo, iniciar debe ser mayor o igual que finalizar para que se ejecute el cuerpo del bucle. Si no se
establece Step, el valor predeterminado de incremento es 1.
Al ejecutar el bucle For, Visual Basic:
1. Establece contador al mismo valor que iniciar.
2. Comprueba si contador es mayor que finalizar. Si lo es, Visual Basic sale del bucle.
(Si incremento es negativo, Visual Basic comprueba si contador es menor que finalizar.)
3. Ejecuta instrucciones.
4. Incrementa contador en 1 o en instrucciones, si se especific.
5. Repite los pasos 2 a 4.
Por ejemplo, este procedimiento pide 5 numeros y despus cuenta cuantos nmeros estn entre 050 y cuantos de 51-100 repitiendo el bucle 5 veces:

Private Sub Form_Load()


Dim num, cta, cta1, cta2 As Integer
Dim cadena As String
For cta = 1 To 5
num = InputBox$(num, "Introduce Numero (0-100)")
If num > 0 And num <= 50 Then
cta1 = cta1 + 1
Else
cta2 = cta2 + 1
End If
Next
cadena = MsgBox(cta1, , "Numero de 0-50")
cadena = MsgBox(cta2, , "Numero de 51-100")
End
End Sub

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 13 -

Apuntes de Visual Basic

Controles
Controles bsicos:
Introduccin al uso de controles
Control TextBox (Cajas de texto)
Control Label (Etiquetas)

Control CommandButton (Botones de comando)


Control OptionButton (Botones de opcin)
Control Frame (Marco)

Antes de empezar a conocer los controles bsicos veamos cuales son sus caractersticas generales:
Propiedades:Todos los controles disponen de una serie de propiedades las cuales podemos
cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el color, el tipo de
letra, el nombre, el texto, etc.
Metodos: Son procedimientos asociados a los controles, es decir, rutinas ya establecidas que
podemos invocar desde nuestras aplicaciones para que se realice alguna operacin sobre el
control. Por ejemplo el control ListView ( la lista de archivos que aparece en el explorador de
windows) dispone del mtodo order que te ordena los datos aparecidos en la lista.
Eventos: Son acciones que pueden ser motivadas por el propio usuario o por mismo sistema
operativo. Ejemplos pueden ser el movimiento del ratn o hacer clic sobre su botn. En Visual
Basic digamos que se utiliza la programacin orientada a eventos, lo cual es una de las
diferencias ms importantes respecto a la programacin lineal de MS DOS. No necesitamos
detectar cuando se ha producido un evento determinado, Windows lo detecta automticamente.
Los eventos ya estn definidos, son bastantes y cada control cuenta con los suyos propios,
aunque son muy parecidos. Lo nico que tendremos que hacer es asociar el cdigo necesario al
evento que necesitemos tratar.
TextBox
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras
aplicaciones.
No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla,
simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el
tamao que queramos en nuestro formulario.
PROPIEDADES
Las propiedades de las que dispone el control son las siguientes:(para obtener el cuadro de
propiedades, seleccionar el control y pulsar F4 o pulsar con el botn derecho para obtener el men
contextual y marcar Propierties)
Text: Aqu indicamos el texto que aparecer en el control. Podemos asignarle cualquier texto en
tiempo de diseo o ejecucin. Tambin podemos tomar el texto que haya introducido el usuario
para tratarlo durante la ejecucin.
Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso
Text1 y es el nombre con el que se conocer el control cuando lo utilicemos en el cdigo. En un
mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un
nombre que represente la funcin que tiene el control en la aplicacin para que el cdigo quede
ms claro. Ejemplo, si en el textbox vamos a introducir la direccin de una persona podemos
asignarle a esta propiedad el valor Direccin.
MultiLine: Permite que introduzcamos varias lineas de texto en el control en lugar de slo una.
Alignment: Alineacin que tendr el texto dentro del control: izquierda, centro o derecha. Para que
funcione la propiedad MultiLine debe estar con el valor true.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 14 -

Apuntes de Visual Basic

Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede introducir ni modificar
el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el
usuario pueda modificarlos por error.
Backcolor: color de fondo.
Forecolor: color de letra.
Font: tipo y tamao de letra.
METODOS
Recordemos que por mtodos se entienden los procedimientos o funciones asociados a un control,
los cuales nos permiten realizar ciertas operaciones tiles sobre dicho control: Ej. ordenar sus
elementos, buscar un dato, etc.
Pues bien, los controles bsicos que vamos a ver en este captulo nicamente contienen mtodos
avanzados que no vamos a analizar por ahora, ya que son mtodos que no se suelen utilizar. Si
alguien est interesado en conocer todas las caractersticas de los controles puede hacerlo mirando
en la ayuda que proporciona VB, haciendo clic sobre cualquier control de la caja de herramientas y
pulsando a continuacin F1 obtendr ayuda referente a ese control.
EVENTOS
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento
del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento.
MouseMove: al mover el ratn por encima del control.
Mousedown: al pulsar cualquier botn del ratn
Change: al cambiar el contenido del control
Click: al hacer clic con el botn izquierdo del ratn sobre el control
Doubleclick: al hacer doble clic con el botn izquierdo del ratn sobre el control
Getfocus: este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el
control en tiempo de ejecucin para introducir datos en l o realizar alguna operacin.
Lostfocus: Es el contrario del anterior evento, se activa cuando el control pierde el enfoque, es decir,
se pasa a otro control para seguir introduciendo datos.
EJEMPLO
Vamos a probar el uso del control TextBox mediante un pequeo ejemplo en el que teniendo un
nico control de este tipo en un formulario, lo programaremos de forma que al pasar el ratn sobre el
control (evento mousemove) aparecer en el formulario el texto que contenga.

Observamos que al situar el control en el formulario aparece por defecto el texto Text1. Para que no
aparezca ese texto al ejecutar la aplicacin, debemos cambiar la propiedad Text pulsando F4 y
colocar el texto que queramos o no colocar nada.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 15 -

Apuntes de Visual Basic

Lo que queremos hacer es que cada vez que movamos el ratn por el control aparezca su contenido
en el formulario. Entonces lo que habr que hacer abrir la ventana de cdigo, seleccionando el
control y pulsando F7, o con el botn derecho del ratn y la opcin View code del men contextual.
Este proceso nos llevar al cuadro de la imagen siguiente.

Lo que tendremos que hacer es seleccionar el evento que necesitemos de la seccin Proc, en
nuestro caso mousemove y a continuacin teclear el cdigo correspondiente: La instruccin print
visualiza un texto en el formulario y si le ponemos text1.text le decimos que nos muestre la propiedad
Text del control Text1 que ese ser el nombre que tendr el control por defecto si no lo hemos
cambiado en la propiedad name.
Al ejecutar esta pequea aplicacin pulsando F5 observaremos como aparece en el formulario lo que
hayamos tecleado en el control cada vez que movemos el ratn sobre el Textbox.
Podemos modificar el programa para que responda a cualquier otro evento sin ms que seleccionarlo
en la seccin Proc e introduciendo el cdigo que sea necesario.
Label
Este control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la
visualizacin de datos en el mismo, no permitiendo la introduccin de datos por parte del usuario.
La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el
tamao que queramos y asignarle un texto en tiempo de diseo o de ejecucin esta vez sin utilizar la
propiedad text puesto que no la incorpora, sino utilizando la propiedad caption.
Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la
utilidad de los dems controles que tengamos en la aplicacin o para indicarnos acciones que
podemos realizar. En el ejemplo anterior donde apareca un textbox en el formulario, hubiera
quedado mejor con un mensaje aclaratorio contenido en un control label:

PROPIEDADES
Caption: Es el texto que contendr el control.
Alignment: Alineacin del texto contenido en el control, no necesita que est activada ninguna otra
propiedad.
BorderStyle: Si queremos que aparezca un borde alrededor del control activaremos esta propiedad.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 16 -

Apuntes de Visual Basic

Para este control no se suelen utilizar los eventos ya que su contenido suele cambiar poco a lo largo
de la ejecucin de la aplicacin. Los eventos son casi los mismos del control textbox excepto que no
dispone de los eventos GetFocus y LostFocus ya que a este control no se le puede dar el enfoque.
CommandButton
Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer clic sobre l nos
permite realizar alguna operacin concreta, normalmente Aceptar o Cancelar. Aunque segn el
cdigo que le asociemos podremos realizar las operaciones que queramos.
En el ejemplo anterior podemos aadir un control de este tipo para salir de la aplicacin sin tener
pulsar sobre la equis de la esquina superior derecha.

Pero slo con introducir un control de este tipo con el texto salir que se introduce a travs de la
propiedad caption no basta. Habr que asociarle un cdigo que nos permita salir de la aplicacin en
el evento adecuado. Y el evento por excelencia de este control es clic. As pues accederemos al
cdigo del control y la sentencia nos permitir salir de la aplicacin es End, simplemente tecleamos
esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicacin al pulsar
sobre dicho botn.
PROPIEDADES
Caption: Aqu ponemos el texto que queremos que aparezca en el botn: aceptar, cancelar, salir, etc.
Enabled: Esta es una nueva propiedad, cuando su valor es true el botn funciona normalmente,
cuando su valor es false el botn se encuentra desactivado, no responde a los eventos
producidos sobre l y el texto aparece en un gris claro advirtindonos de su estado. Podemos
utilizar esta propiedad para activar o desactivar un botn dependiendo del estado de otros
controles. Por ejemplo, en un botn Aceptar, no activarlo hasta que se haya introducido una
cantidad en un control textbox, ya que ese botn nos calcular el IVA de la cantidad.
EVENTOS
Click: Es el evento tpico de este control y el que ms se utiliza.
MouseMove: Como sabemos detecta el movimiento del ratn sobre el control. Puede servir para que
aparezca un mensaje en un control Label que nos aporte informacin sobre la utilidad del
control ampliando el texto que hayamos colocado como caption del commandbutton.
OptionButton
Este control nos permite elegir una opcin entre varias de las que se
nos plantean. Cada opcin ser un control optionbutton diferente.
Facilita la introduccin de datos por parte del usuario:

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 17 -

Apuntes de Visual Basic

De todas las opciones que se nos ofrece, en este caso los 4 colores, slo podremos activar una. Si
activamos cualquier otra opcin, se desactivar automticamente la ltima que tenamos activada.
El marco que est alrededor de los 4 controles optionbutton se trata del control Frame
, es
opcional, aunque es conveniente colocarlo siempre que hagamos uso de las opciones. No slo por
motivos de presentacin sino porque de esta manera podremos establecer grupos de controles
optionbutton independientes en los que en cada grupo slo pueda haber una opcin activada a la vez.
Tambin, al mover el marco se movern los controles incluidos en l facilitndonos las
modificaciones.
Para que los controles Optionbutton queden englobados dentro de un control Frame, primero
tendremos que colocar el control Frame en el formulario con el tamao adecuado y despus ir
colocando los controles Optionbutton dentro del Frame.
Del control Frame la nica propiedad que nos interesar es caption, que es el texto que aparecer en
el encabezado, en el ejemplo anterior: colores.
PROPIEDADES
Caption: El texto que aparecer al lado del control: Rojo, verde, etc.
Value: Es el valor que tendr el control: True si se encuentra activado y False si no lo est. Para
comprobar que opcin ha activado el usuario comprobaremos el estado de esta propiedad.
Alignment: Alineacin del texto respecto al control: Left Justify: el control aparece a la izquierda del
texto. Es el ejemplo anterior.Right Justify: el control aparece a la derecha del texto.
Los eventos del control son los mismos que en anteriores controles, aunque no se suele asociar
cdigo a los eventos de este tipo de controles, sino nicamente conocer el valor que tienen: true o
false.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 18 -

Apuntes de Visual Basic

Formularios
Los formularios tienen sus propios eventos, propiedades y mtodos con los que se puede controlar su
apariencia y comportamiento.
El primer paso para disear un formulario consiste en establecer sus propiedades. Puede establecer
las propiedades de un formulario en tiempo de diseo en la ventana Propiedades o en tiempo de
ejecucin, escribiendo cdigo.
Nota En tiempo de diseo, que es cualquier momento mientras est desarrollando una aplicacin en
el entorno de Visual Basic, se trabaja con formularios y controles, se establecen propiedades y se
escribe cdigo para los eventos. Tiempo de ejecucin es cualquier momento mientras se ejecuta
realmente la aplicacin y s interacta con ella como lo hara un usuario.
Estableciendo las Propiedades ms importantes de los formularios.
Muchas propiedades de un formulario afectan a su apariencia fsica. La propiedad Caption determina
el texto que muestra la barra de ttulo del formulario y la propiedad Icon establece el icono que
aparece cuando se minimiza un formulario. Las propiedades MaxButton y MinButton determinan si
el formulario se puede maximizar o minimizar. Cambiando la propiedad BorderStyle puede controlar
el comportamiento de cambio de tamao del formulario.
Las propiedades Height y Width determinan el tamao inicial de un formulario, mientras que las
propiedades Left y Top determinan la ubicacin del formulario en relacin con la esquina superior
izquierda de la pantalla. Con la propiedad WindowState puede establecer si el formulario se inicia en
estado maximizado, minimizado o normal.
La propiedad Name establece el nombre con el que har referencia al formulario en el cdigo. De
forma predeterminada, cuando se agrega un formulario por primera vez a un proyecto, su nombre es
Form1, Form2, etc. Es conveniente establecer la propiedad Name a algo ms significativo, como
frmEntry para un formulario de entrada de pedidos.
La mejor manera de familiarizarse con las numerosas propiedades de los formularios es
experimentar. Cambie algunas propiedades de un formulario en la ventana Propiedades y ejecute la
aplicacin para ver su efecto. Puede aprender ms sobre cada propiedad si la selecciona y presiona
F1 para ver Ayuda contextual.
Eventos y Mtodos de los formularios.
Como objetos que son, los formularios pueden ejecutar mtodos y responder a eventos.
El evento Resize de un formulario se desencadena siempre que se cambia el tamao de un
formulario, ya sea por una accin del usuario o a travs del cdigo. Esto permite realizar acciones
como mover o cambiar el tamao de los controles de un formulario cuando han cambiado sus
dimensiones.
El evento Activate se produce siempre que un formulario se convierte en el formulario activo; el
evento Deactivate se produce cuando otro formulario u otra aplicacin se convierte en activo. Estos
eventos son adecuados para iniciar o finalizar acciones del formulario. Por ejemplo, en el evento
Activate podra escribir cdigo para resaltar el texto de un determinado cuadro de texto; con el evento
Deactivate podra guardar los cambios efectuados en un archivo o en una base de datos.
Para hacer visible un formulario se invoca el mtodo Show:
Form2.Show
Para descargar un formulario (cerrarlo), se invoca al mtodo Unload:
Form2.Unload
Unload Me
Me significa el Formulario activo.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 19 -

Apuntes de Visual Basic

Para ocultar un formulario (pero dejarlo activo en memoria) se invoca al mtodo Hide:
Form2.Hide
Invocar el mtodo Show tiene el mismo efecto que establecer a True la propiedad Visible del
formulario.
Muchos mtodos de un formulario implican texto o grficos. Los mtodos Print, Line, Circle y
Refresh son tiles para imprimir o dibujar directamente en la superficie de un formulario.
Establecer el formulario de arranque de la aplicacin.
De forma predeterminada, el primer formulario de la aplicacin es el formulario inicial. Cuando la
aplicacin inicia la ejecucin, se presenta este formulario (el primer cdigo que se ejecuta es el del
evento Form_Initialize de dicho formulario). Si quiere presentar un formulario diferente cuando se
inicie la aplicacin, debe cambiar el formulario inicial.
Para cambiar el formulario inicial
1. En el men Proyecto, elija Propiedades del proyecto.
2. Elija la ficha General.
3. En el cuadro de lista Objeto inicial, seleccione el formulario que desee que sea el nuevo
formulario inicial.
4. Elija Aceptar.
Inicio sin formulario inicial
Algunas veces puede desear que la aplicacin se inicie sin cargar ningn formulario. Por ejemplo,
puede que desee ejecutar cdigo que cargue un archivo de datos y despus presentar uno de entre
varios formularios, segn el contenido de dicho archivo. Puede hacerlo creando un procedimiento
Sub llamado Main en un mdulo estndar, como en el siguiente ejemplo:
Sub Main()
Dim intStatus As Integer
' Llamar a un procedimiento de funcin para comprobar el estado
' del usuario.
intStatus = GetUserStatus
' Mostrar un formulario inicial distinto segn el estado.
If intStatus = 1 Then
frmMain.Show
Else
frmPassword.Show
End If
Este procedimiento tiene que ser un procedimiento Sub y no puede estar en un mdulo de formulario.
Para establecer el procedimiento Sub Main como objeto inicial, en el men Proyecto elija
Propiedades del proyecto, seleccione la ficha General y seleccione Sub Main en el cuadro Objeto
inicial.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 20 -

Apuntes de Visual Basic

Funciones ms Comunes de Visual Basic.

Asc
Devuelve un tipo Integer que representa el cdigo de carcter correspondiente a la primera letra de
una cadena.
Sintaxis: Asc(cadena)
El argumento obligatorio cadena es una expresin de cadena vlida. Si cadena no contiene
caracteres, se produce un error en tiempo de ejecucin.
Ejemplo de la funcin Asc
En este ejemplo se utiliza la funcin Asc para devolver el cdigo de carcter correspondiente a la
primera letra de una cadena de caracteres.
Dim MiNmero
MiNmero = Asc("A")
' Devuelve 65.
MiNmero = Asc("a")
' Devuelve 97.
MiNmero = Asc("Apple")
' Devuelve 65.

e Date
Devuelve un tipo Variant (Date) que contiene la fecha actual del sistema.
Sintaxis: Date
Comentarios
Utilice la instruccin Date para establecer la fecha del sistema.
Ejemplo de la funcin Date
En este ejemplo se utiliza la funcin Date para asignar a una variable la fecha actual y mostrar la
fecha posteriormente.
Dim hoy as date
Text1.text = date

e Format
Devuelve un tipo Variant (String) que contiene una expresin formateada de acuerdo a las
instrucciones contenidas en una expresin de formato.
Sintaxis: Format(expresin[, formato[, primerdadesemana[, primerdadeao]]])
La sintaxis de la funcin Format consta de las siguientes partes:
Parte
Descripcin
Expresin
Obligatorio. Cualquier expresin vlida.
Formato
Opcional. Una expresin de formato definida por el usuario o con nombre vlido.
Primerdiasemana Opcional. Una constante que especifica el primer da de la semana.
Primerdiadeao
Opcional. Una constante que especifica la primera semana del ao.
Valores
El argumento primerdadesemana tiene estos valores:
Constante
Valor Descripcin
Constante
Valor Descripcin
Utiliza el valor de API NLS.
Mircoles
VbUseSystem 0
VbWednesday 4
1
Domingo (predeterminado)
5
Jueves
VbSunday
VbThursday
2
Lunes
6
Viernes
VbMonday
VbFriday
3
Martes
7
Sbado
VbTuesday
vbSaturday
El argumento primerdadeao tiene estos valores:
Constante
Valor Descripcin
Utiliza el valor de API NLS.
VbUseSystem
0
Comienza con la semana donde est el 1 de enero
VbFirstJan1
1
(predeterminado).
Comienza con la primera semana del ao que tenga
VbFirstFourDays
2
cuatro das como mnimo.
Comienza con la primera semana completa del ao.
VbFirstFullWeek
3
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 21 -

Apuntes de Visual Basic

Ejemplo de la funcin Format


En este ejemplo se muestran varios usos de la funcin Format para dar formato a valores utilizando
formatos definidos por el usuario y formatos con nombre. La verdadera salida formateada presentada
por el sistema para el separador de fecha (/), de hora (:) y el literal AM/ PM depende de las
configuraciones en ese momento. Cuando las horas y las fechas se vuelven a listar en el entorno de
desarrollo, se utilizan los formatos abreviados de hora y de fecha de la configuracin regional del
cdigo. Cuando son presentados por el cdigo en ejecucin, se utilizan los formatos abreviados de
fecha y hora de la configuracin regional del sistema, los cuales pueden diferir de la configuracin
regional del cdigo. En este ejemplo se asume que es Ingls/Estados Unidos.
MiHora y MiFecha se presentan en el entorno de desarrollo utilizando configuraciones actuales de
fecha corta y hora corta.
Dim MiHora, MiFecha, MiCadena
MiHora = #17:04:23#
MiFecha = #27 enero 1993#
' Devuelve la hora actual del sistema en el formato largo de hora definido por el sistema.
MiCadena = Format(Time, "Long Time")
' Devuelve la fecha actual del sistema en el formato largo de fecha definido por el sistema.
MiCadena = Format(Date, "Long Date")
MiCadena = Format(MiHora, "h:m:s")
' Devuelve "17:4:23".
MiCadena = Format(MiHora, "hh:mm:ss AMPM")
' Devuelve "05:04:23 PM".
MiCadena = Format(MiFecha, "dddd, d mmm aaaa")
' Devuelve "Mircoles, 05 de Sept de 2001
' Formatos definidos por el usuario.
MiCadena = Format(5459.4, "##,##0.00")
MiCadena = Format(334.9, "###0.00")
MiCadena = Format(5, "0.00%")
MiCadena = Format("HOLA", "<")
MiCadena = Format("Esto es", ">")

' Devuelve "5.459,40".


' Devuelve "334,90".
' Devuelve "500,00%".
' Devuelve "hola".
' Devuelve "ESTO ES".

e InputBox
Muestra un mensaje en un cuadro de dilogo, espera que el usuario escriba un texto o haga clic en
un botn y devuelve un tipo String con el contenido del cuadro de texto.
Sintaxis: InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
La sintaxis de la funcin InputBox consta de estos argumentos con nombre:
- Prompt: Requerido. Expresin de cadena que se muestra como mensaje en el cuadro de dilogo.
La longitud mxima de prompt es de aproximadamente 1024 caracteres, segn el ancho de los
caracteres utilizados. Si prompt consta de ms de una lnea, puede separarlos utilizando un
carcter de retorno de carro (Chr(13)), un carcter de avance de lnea (Chr(10)) o una combinacin
de los caracteres de retorno de carro-avance de lnea (Chr(13) y Chr(10)) entre cada lnea y la
siguiente.
- title: Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de dilogo. Si
omite title, en la barra de ttulo se coloca el nombre de la aplicacin.
- default: Opcional. Expresin de cadena que se muestra en el cuadro de texto como respuesta
predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de
texto vaco.
- xpos: Opcional. Expresin numrica que especifica, en twips, la distancia en sentido horizontal
entre el borde izquierdo del cuadro de dilogo y el borde izquierdo de la pantalla. Si se omite xpos,
el cuadro de dilogo se centra horizontalmente.
- ypos: Opcional. Expresin numrica que especifica, en twips, la distancia en sentido vertical entre el
borde superior del cuadro de dilogo y el borde superior de la pantalla. Si se omite ypos, el cuadro
de dilogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde
superior de la misma.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 22 -

Apuntes de Visual Basic

- helpfile: Opcional. Expresin de cadena que identifica el archivo de Ayuda que se utilizar para
proporcionar ayuda interactiva para el cuadro de dilogo. Si se especifica helpfile, tambin deber
especificarse context.
- Context: Opcional. Expresin numrica que es el nmero de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica context, tambin deber especificarse
helpfile.
Ejemplo de la funcin InputBox
En este ejemplo se muestran distintas maneras de utilizar la funcin InputBox para indicar al usuario
que debe introducir un valor. Si se omiten las posiciones x e y, el dilogo se centra automticamente
segn los ejes respectivos. La variable MyValue contiene el valor introducido por el usuario, si ste
elige Aceptar o presiona ENTRAR. Si el usuario elige Cancelar, se devuelve una cadena de
caracteres de longitud cero.
Dim Mensaje, Ttulo, ValorPred, MiValor
Mensaje = " Introduzca un nmero del 1 a 3"
' Establece el mensaje.
Ttulo = "Demostracin de InputBox"
' Establece el ttulo.
ValorPred = "1"
' Establece el valor predeterminado.
' Muestra el mensaje, el ttulo, y el valor predeterminado.
MiValor = InputBox(Mensaje, Ttulo, ValorPred)
' Muestra el mensaje, el ttulo y el valor predeterminado.
MiValor = InputBox(Mensaje, Ttulo, , , , "DEMO.HLP", 10)
' Se muestra el dilogo en la posicin 100, 100.
MiValor = InputBox(Mensaje, Ttulo, ValorPred, 100, 100)

e IsDate
Devuelve un valor de tipo Boolean que indica si una expresin se puede convertir en una fecha.
Sintaxis: IsDate(expresin)
El argumento expresin requerido, es un tipo de datos Variant que contiene una expresin de fecha o
una expresin de cadena reconocible como una fecha o una hora.
Ejemplo de la funcin IsDate
En este ejemplo se utiliza la funcin IsDate para determinar si una expresin puede convertirse en
fecha.
Dim MiFecha, TuFecha, SinFecha, MiPrueba
MiFecha = "12 febrero 1969": TuFecha = #2/12/69#: SinFecha = "Hola"
MiPrueba = IsDate(MiFecha)
' Devuelve True.
MiPrueba = IsDate(TuFecha)
' Devuelve True.
MiPrueba = IsDate(SinFecha)
' Devuelve False.

e Left
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado
izquierdo de una cadena.
Sintaxis: Left(string, length)
La sintaxis de la funcin Left tiene estos argumentos con nombre:
string Obligatorio. Expresin de cadena de la cual se devuelven los caracteres que estn ms a la
izquierda. Si string contiene Null, se devuelve Null.
length Se requiere, un tipo Variant (Long). Expresin numrica que indica cuntos caracteres se van
a devolver. Si es 0, devuelve una cadena de longitud cero (""). Si es mayor o igual al nmero de
caracteres en string, se devuelve la cadena entera.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 23 -

Apuntes de Visual Basic

Ejemplo de la funcin Left


En este ejemplo se utiliza la funcin Left para devolver un nmero especificado de caracteres del
lado izquierdo de una cadena.
Dim UnaCadena, MiCadena
UnaCadena = "Hola Mundo"
' Define la cadena.
MiCadena = Left(UnaCadena, 1)
' Devuelve "H".
MiCadena = Left(UnaCadena, 6)
' Devuelve "Hola M".
MiCadena = Left(UnaCadena, 10)
' Devuelve "Hola Mundo".

Len
Devuelve un tipo Long que contiene el nmero de caracteres en una cadena o el nmero de bytes
necesarios para almacenar una variable.
Sintaxis: Len(cadena | nombrevar)
La sintaxis de la funcin Len consta de las siguientes partes:
Cadena,Cualquier expresin de cadena vlida. Si cadena contiene Null, se devuelve Null.
Nombrevar, cualquier nombre de variable vlido. Si nombrevar contiene Null, se devuelve Null. Si
nombrevar es un tipo Variant, Len acta igual que con un tipo String y siempre devuelve
el nmero de caracteres que contiene.
Ejemplo de la funcin Len
En este ejemplo se utiliza la funcin Len para devolver el nmero de caracteres en una cadena o el
nmero de bytes requeridos para almacenar una variable.
Dim MiEntero As Integer, MyCur As Currency
Dim MiCadena, MiLong
MiCadena = "Hola a todos"
' Inicializa la cadenas.
MiLong = Len(MiEntero)
' Devuelve 2.
MiLong = Len(MiCadena)
' Devuelve 11.
MiLong = Len(MyCur)
' Devuelve 8.

LoadPicture
Carga un grfico en un control PictureBox o un control Image.
Sintaxis: LoadPicture([expresin_cadena])
El marcador de posicin expresin_cadena es el nombre del archivo grfico que se quiere cargar.
Comentarios
Los formatos grficos reconocidos por Visual Basic incluyen archivos de mapas de bits (.BMP),
archivos de iconos (.ICO), archivos de longitud codificada (.RLE), metarchivos (.WMF), metarchivos
mejorados (.EMF), archivos GIF y archivos JPEG (.JPG).
Para cargar grficos para presentarlos en un control PictureBox, en un control Image o como fondo
de un formulario, el valor devuelto por LoadPicture debe asignarse a la propiedad Picture del objeto
en el que se quiere presentar la imagen. Por ejemplo:
Image1.Picture = LoadPicture("FIESTA.BMP")
Para asignar un icono a un formulario, establezca el valor devuelto por la funcin LoadPicture a la
propiedad Icon del objeto Form:
Set Form1.Icon = LoadPicture("MIICONO.ICO")
Ejemplo de la funcin LoadPicture
Este ejemplo usa la funcin LoadPicture para cargar una imagen en la propiedad Picture de un
formulario y para borrar la imagen del objeto Form. Para probar este ejemplo, pegue el cdigo en la
seccin Declaraciones de un objeto Form y despus ejecute el ejemplo y haga clic en el objeto Form.
Private Sub Form_Click ()
Dim Msg as String
' Declara variables.
On Error Resume Next
' Establece el tratamiento de errores.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 24 -

Apuntes de Visual Basic

Height = 3990
Width = 4890
' Define el alto y el ancho.
Set Picture = LoadPicture("PAPEL.BMP") ' Carga un mapa de bits.
If Err Then
Msg = "Imposible encontrar el archivo .BMP."
MsgBox Msg ' Presenta el mensaje de error.
Exit Sub
' Sale si hay error.
End If
Msg = "Elija "Aceptar" para borrar el mapa de bits del formulario."
MsgBox Msg
Set Picture = LoadPicture() ' Limpia el formulario.
End Sub

Ltrim, Rtrim y Trim


Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios a
la izquierda (LTrim), sin espacios a la derecha (RTrim) o sin espacios ni a la derecha ni a la izquierda
(Trim).
Sintaxis: LTrim(cadena) RTrim(cadena) Trim(cadena)
El argumento cadena obligatorio es cualquier expresin de cadena vlida. Si cadena contiene Null,
se devuelve Null.
Ejemplo de las funciones LTrim, RTrim y Trim
En este ejemplo se utilizan las funciones LTrim and RTrim para eliminar espacios a la derecha y a la
izquierda de una variable de cadena de caracteres. El uso de la funcin Trim logra el mismo
resultado.
Dim MiCadena, CadenaCorte
MiCadena = " <-Cortar-> "
' Inicializa la cadena.
CadenaCorte = LTrim(MiCadena)
' CadenaCorte = "<-Cortar-> ".
CadenaCorte = RTrim(MiCadena)
' CadenaCorte = " <-Cortar->".
CadenaCorte = LTrim(RTrim(MiCadena)) ' CadenaCorte = "<-Cortar->".
' El uso de la funcin Trim por s sola logra el mismo resultado.
CadenaCorte = Trim(MiCadena)
' CadenaCorte = "<-Cortar->".

Mid
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres de una
cadena.
Sintaxis: Mid(string, start[, length])
La sintaxis de la funcin Mid tiene estos argumentos con nombre:
string Obligatorio. Expresin de cadena de la cual se devuelven los caracteres. Si string contiene
Null, se devuelve Null.
start Obligatorio; un tipo Long. Posicin de carcter en string en la cual comienza la parte que se
quiere tomar. Si start es mayor que el nmero de caracteres en la string, Mid devuelve una cadena
de longitud cero ("").
length Opcional, un tipo Variant (Long). Nmero de caracteres que se van a devolver. Si se omite o
en el texto hay menos de length caracteres (incluyendo el carcter de start), se devuelven todos los
caracteres desde la posicin de start hasta el final de la cadena.
Ejemplo de la funcin Mid
En este ejemplo se utiliza la funcin Mid para devolver un nmero especificado de caracteres de una
cadena.
Dim MiCadena, PrimeraPalabra, UltimaPalabra, PalabraMedia
MiCadena = "Demostracin funcin Mid" ' Crea la cadena de texto.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 25 -

Apuntes de Visual Basic

PrimeraPalabra = Mid(MiCadena, 1, 12)


UltimaPalabra = Mid(MiCadena, 21, 3)
PalabraMedia = Mid(MiCadena, 14)

' Devuelve "Demostracin".


' Devuelve "Mid".
' Devuelve "funcin Mid".

MsgBox
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y
devuelve un tipo Integer correspondiente al botn elegido por el usuario.
Sintaxis: MsgBox(prompt[, buttons][, title][, helpfile, context])
La sintaxis de la funcin MsgBox consta de estos argumentos con nombre:
- prompt: Requerido. Expresin de cadena que representa el prompt en el cuadro de dilogo. La
longitud mxima de prompt es de aproximadamente 1024 caracteres, segn el ancho de los
caracteres utilizados. Si prompt consta de ms de una lnea, puede separarlos utilizando un
carcter de retorno de carro (Chr(13)) o un carcter de avance de lnea (Chr(10)), o una
combinacin de caracteres de retorno de carro-avance de lnea (Chr(13) y Chr(10)) entre cada lnea
y la siguiente.
- buttons: Opcional. Expresin numrica que corresponde a la suma de los valores que especifican
el nmero y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la
identidad del botn predeterminado y la modalidad del cuadro de mensajes. Si se omite este
argumento, el valor predeterminado para buttons es 0.
- title: Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de dilogo. Si
se omite title, en la barra de ttulo se coloca el nombre de la aplicacin.
- helpfile: Opcional. Expresin de cadena que identifica el archivo de Ayuda que se utiliza para
proporcionar ayuda interactiva en el cuadro de dilogo. Si se especifica helpfile, tambin se debe
especificar context.
-context: Opcional. Expresin numrica que es igual al nmero de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica context, tambin se debe especificar
helpfile.
Valores
El argumento buttons tiene estos valores:
Constante
Valor Descripcin
0
Muestra solamente el botn Aceptar.
VbOKOnly
VbOKCancel
1
Muestra los botones Aceptar y Cancelar.
Muestra los botones Anular, Reintentar e Ignorar.
VbAbortRetryIgnore 2
3
Muestra los botones S, No y Cancelar.
VbYesNoCancel
4
Muestra los botones S y No.
VbYesNo
5
Muestra los botones Reintentar y Cancelar.
VbRetryCancel
16
Muestra el icono de mensaje crtico.
VbCritical
32
Muestra el icono de pregunta de advertencia.
VbQuestion
48
Muestra el icono de mensaje de advertencia.
VbExclamation
64
Muestra el icono de mensaje de informacin.
VbInformation
0
El primer botn es el predeterminado.
VbDefaultButton1
256
El segundo botn es el predeterminado.
VbDefaultButton2
512
El tercer botn es el predeterminado.
VbDefaultButton3
768
El cuarto botn es el predeterminado.
VbDefaultButton4
Aplicacin modal; el usuario debe responder al cuadro de mensajes
VbApplicationModal
antes de poder seguir trabajando en la aplicacin actual.
4096 Sistema modal; se suspenden todas las aplicaciones hasta que el
VbSystemModal
usuario responda al cuadro de mensajes.
El primer grupo de valores (0 a 5) describe el nmero y el tipo de los botones mostrados en el cuadro
de dilogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512)
determina el botn predeterminado y el cuarto grupo (0, 4096) determina la modalidad del cuadro de
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 26 -

Apuntes de Visual Basic

mensajes. Cuando se suman nmeros para obtener el valor final del argumento buttons, se utiliza
solamente un nmero de cada grupo.
Nota Estas constantes las especifica Visual Basic for Applications. Por tanto, el nombre de las
mismas puede utilizarse en cualquier lugar del cdigo en vez de sus valores reales.
Valores devueltos:
Constante
Valor Descripcin
Constante
Valor Descripcin
1
5
vbOK
Aceptar
vbIgnore
Ignorar
2
6
VbCancel
Cancelar
VbYes
S
3
7
VbAbort
Anular
VbNo
No
4
VbRetry
Reintentar
Ejemplo de la funcin MsgBox
En este ejemplo se utiliza la funcin MsgBox para mostrar un mensaje de error crtico en un cuadro
de dilogo con botones S y No. El botn No se considera la respuesta predeterminada. El valor
devuelto por la funcin MsgBox depende del botn elegido por el usuario. En este ejemplo, se
supone que DEMO.HLP es un archivo de Ayuda que contiene un tema con un nmero de contexto
igual a 1000.
Dim Mensaje, Estilo, Ttulo, Ayuda, Ctxt, Respuesta, MiCadena
Mensaje = "Desea continuar?"
' Define el mensaje.
Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones.
Ttulo = "Demostracin de MsgBox"
' Define el ttulo.
Ayuda = "DEMO.HLP"
' Define el archivo de ayuda.
Ctxt = 1000
' Define el tema
Respuesta = MsgBox(Mensaje, Estilo, Ttulo, Ayuda, Ctxt)
If Respuesta = vbYes Then
' El usuario eligi el botn S.
MiCadena = "S"
' Ejecuta una accin.
Else
' El usuario eligi el botn No.
MiCadena = "No"
' Ejecuta una accin.
End If

Right
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado
derecho de una cadena.
Sintaxis: Right(string, lenght)
La sintaxis de la funcin Right tiene estos argumentos con nombre:
String Obligatorio. Expresin de cadena desde la cual se devuelven los caracteres que estn ms a
la derecha. Si string contiene Null, se devuelve Null.
Lenght se requiere, un tipo Variant (Long). Expresin numrica que indica cuntos caracteres se
van a devolver. Si es 0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al nmero
de caracteres en string, se devuelve la cadena completa.
Ejemplo de la funcin Right
En este ejemplo se utiliza la funcin Right para devolver un nmero especificado de caracteres de la
parte derecha de la cadena.
Dim UnaCadena, MiCadena
UnaCadena = "Hola Mundo"
' Define una cadena.
MiCadena = Right(UnaCadena, 1) ' Devuelve "o".
MiCadena = Right(UnaCadena, 6) ' Devuelve "Mundo".
MiCadena = Right(UnaCadena, 20) ' ' Devuelve "Hola Mundo".

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 27 -

Apuntes de Visual Basic

Str
Devuelve en un tipo Variant (String) la representacin de cadena de un nmero.
Sintaxis: Str(nmero)
El argumento nmero necesario es un tipo Long que contiene una expresin numrica vlida.
Comentarios
Cuando los nmeros se convierten a cadenas, siempre se reserva un espacio a la izquierda para el
signo del nmero. Si nmero es positivo, la cadena devuelta contiene un espacio a la izquierda y el
signo ms se da por supuesto.
Utilice la funcin Format para convertir valores numricos en valores con formato de fecha, hora,
moneda o en otros formatos definidos por el usuario. A diferencia de Str, la funcin Format no incluye
un espacio a la izquierda para el signo del nmero.
Nota La funcin Str slo reconoce el punto (.) como separador decimal vlido.
Ejemplo de la funcin Str
En este ejemplo se utiliza Str para devolver una representacin de cadena de un nmero. Cuando un
nmero se convierte en una cadena siempre se reserva un espacio a la izquierda para el signo.
Dim MiCadena
MiCadena = Str(459)
' Devuelve " 459".
MiCadena = Str(-459.65)
' Devuelve "-459,65".
MiCadena = Str(459.001)
' Devuelve " 459,001".

Ucase
Devuelve un tipo Variant (String) que contiene una cadena especificada que se ha convertido a
maysculas.
Sintaxis: UCase(cadena)
El argumento cadena necesario es cualquier expresin de cadena vlida. Si string contiene Null, se
devuelve Null.
Ejemplo de la funcin UCase
En este ejemplo se utiliza la funcin UCase para devolver la versin en maysculas de una cadena.
Dim LowerCase, UpperCase
LowerCase = "Hola Mundo 1234"
' Cadena a convertir.
UpperCase = UCase(LowerCase)
' Devuelve "HOLA MUNDO 1234".

Val
Devuelve los nmeros contenidos en una cadena como un valor numrico del tipo adecuado.
Sintaxis: Val(cadena)
El argumento obligatorio cadena es cualquier expresin de cadena vlida.
Ejemplo de la funcin Val
En este ejemplo se utiliza la funcin Val para devolver los nmeros contenidos en una cadena.
Dim MiValor
MiValor = Val("2457")
' Devuelve 2457.
MiValor = Val(" 2 45 7")
' Devuelve 2457.
MiValor = Val("24 y 57")
' Devuelve 24.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 28 -

Apuntes de Visual Basic

Diseando Bases De Datos En Visual Basic


La construccin de un programa informtico necesita un buen diseo si se quiere obtener un buen
producto final; esto es muy importante en la generacin de aplicaciones de Bases de Datos.
El diseo de una aplicacin de Base de Datos no solamente consiste en la configuracin de las
rutinas del programa, sino en el diseo fsico y lgico del almacenamiento de los datos. Debe
proporcionar tiempos mnimos de bsqueda y un almacenamiento de los datos de la forma ms eficaz
y fcil posible. Tambin es importante que sea flexible para permitir inclusiones de nuevas funciones
que las aplicaciones puedan necesitar.
Una Base de Datos, consiste en un conjunto de informacin, que generalmente se encuentra
organizada en un orden particular. En las Bases de Datos "relacionales", la informacin se almacena
en mltiples tablas que tienen campos clave relacionados entre s.
Tabla, un grupo de registros de datos, cada uno de los cuales contiene el mismo tipo de informacin.
Registro, una entrada de una tabla; la entrada consiste en cierto nmero de campos de datos.
Campo, un elemento especfico de datos contenido en un registro.
Indice, un tipo especial de tabla que contiene los valores de un campo o campos y punteros al
emplazamiento del registro en uso. Estos valores y punteros se almacenan en un orden especfico y
pueden utilizarse para los datos presentes en la base de datos en ese orden.
Consulta, un comando de SQL diseado para recuperar cierto grupo de registros de una o ms tablas
o para realizar una operacin en una tabla. Aunque los comandos de SQL se pueden ejecutar
directamente desde un programa, una consulta permite denominar el comando y almacenarlo en la
misma base de datos (es til s se usa con frecuencia).
Filtro, es un elemento de la base de datos, sino que se utiliza en conjunto con los ndices y rdenes
de clasificacin para determinar qu datos han de procesarse o visualizarse. Un filtro es una
condicin impuesta a los datos, como "ciudades que contengan la S".
Decisiones A Tomar En El Diseo
La creacin de un buen diseo comprende estas actividades principales:
Diseo de la aplicacin
Determinacin de la informacin necesaria para la aplicacin
Organizacin de la informacin en tablas
Establecimiento de las relaciones entre tablas
Especificacin de ndices y requisitos de validacin para los datos
Creacin y almacenamiento de las consultas necesarias para la aplicacin
Revisin y prueba del diseo
Operaciones ms Comunes en las Bases de Datos:
Agregar o incluir nuevos datos (altas), eliminar o borrar datos(bajas), correccin o actualizacin de
datos(modificacin), mostrar datos en un formato determinado ya sea en pantalla o impresa(listado),
localizacin o bsqueda de datos(consultas), mostrar informes impresos o en pantalla(reportes).
Determinacin De Los Datos Que Requiere La Aplicacin
Parte del proceso de diseo es definir los datos que han de estar en la base de datos. De la misma
importancia es delimitar qu datos no tienen que mantenerse. Los datos superfluos pueden abarrotar
la base de datos y disminuir el rendimiento.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 29 -

Apuntes de Visual Basic

Los objetivos al crear un Sistema Manejador de Bases de datos son:


Evitar la redundancia de datos, repetir con frecuencia los datos, una y otra vez.
Dificultad al accesar a los datos, cuando tiene los datos pero no tiene los programas para usar esa
informacin.
La inconsistencia, cuando almacena datos en los campos que no corresponde.
Controles para Disear Bases de Datos
Existen dos maneras de realizar y utilizar las bases de datos. La primera consiste en crear la base de
datos en Microsoft Access y posteriormente utilizarla en Visual Basic. Y la otra forma es crear la Base
de datos en tiempo de ejecucin (por medio de cdigo), al igual que la tabla con sus campos.
Independientemente de la manera que elija o utilice, los controles ms comunes para el uso de Bases
de datos son: Data control, Textbox, Label, Frame, CheckBox, OptionButton, ComboBox, ListBox,
Dbgrid, Dblist, Image, CommandButton.
Control De Datos(Data)
El control de datos est diseado para proporcionar un medio fcil de acceso a la base de datos.
Para utilizarlo hay que hacer lo siguiente:
1. Seleccionar el control en la caja de herramientas
2. Arrastrar el control al formulario
3. Establecer la propiedad DatabaseName
4. Establecer la propiedad RecordSource
5. Establecer la propiedad RecordsetType
Al llegar a este punto, hemos creado los vnculos con la base de datos y el conjunto de registros con
los que hemos de trabajar. Hacer esto requiere mucho menos trabajo que la especificacin de todas
las funciones mediante cdigo.
El control de datos proporciona asimismo funciones de movimiento de registros para las aplicaciones.
Los botones del control de datos toman el lugar de los botones de comando que tendramos en el
programa y llevan a cabo las funciones equivalentes de los mtodos MoveFirst, MovePrevious,
MoveNext y MoveLast.
Como Agregar Un Control De Datos A Un Formulario
Como queda dicho anteriormente, la primera etapa del uso del control de datos es agregarlo al
formulario de la aplicacin. Para ello, primeramente hay que seleccionar el objeto de control de datos
en la Caja de Herramientas de Visual Basic. Despus, hay que colocar y dar tamao al control de
datos al igual que se hace con cualquier otro objeto dibujado. A continuacin se pueden establecer
las propiedades Name y Caption.
La propiedad Name (nombre) fija el nombre del control que lo identifica as como sus datos asociados
a los controles enlazados. La propiedad Name es tambin el nombre del objeto conjunto de registros
que se va a utilizar con los comandos de programa que precisa la aplicacin. El nombre
predeterminado para el primer control de datos agregado a un formulario es Data1; los siguientes
controles que se agreguen sern Data2, Data3, etc. Seleccionando la propiedad Name en la ventana
de Propiedades (Properties) y escribiendo el nombre deseado, se puede modificar fcilmente el
nombre implcito.
La propiedad Caption (ttulo) especifica el texto que aparece en el control de datos. Generalmente se
utiliza para describir los accesos al control. Por defecto, aparece la especificacin inicial de la
propiedad Name (por ejemplo, Data1 para el primer control de datos), que puede modificarse al igual
que en la propiedad Name.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 30 -

Apuntes de Visual Basic

Establecimiento De Propiedades
Para adjuntar una base de datos y un conjunto de registros a un control de datos, hay que establecer
las propiedades del control. Las dos nicas propiedades obligatorias son DatabaseName y
RecordSource. Cuando la base de datos es de Access, las especificaciones son mnimas. El
establecimiento de las dos propiedades citadas define la informacin a situar en el control de datos y
genera una dynaset con acceso predeterminado no exclusivo y lectura y escritura. Para el conjunto
de registros no es dynaset, es preciso tambin establecer la propiedad Recordset.
NOTA: La propiedad DatabaseName no es la misma que Name. La propiedad Name especifica el
nombre del objeto control de datos y se utiliza para dar referencia al objeto del cdigo. La propiedad
DatabaseName especifica el nombre del archivo de base de datos al que accede el control de datos.
1) Propiedad Databasename
Para bases de datos de Access, la propiedad DatabaseName es el nombre del archivo de base de
datos, incluyendo el nombre completo de la ruta de acceso. El nombre se inserta seleccionando la
propiedad DatabaseName en el cuadro de dilogo Propiedades y teclendolo o eligindolo en la
lista.
Para seleccionar el nombre de la base de datos en el cuadro de dilogo, basta hacer clic en el
botn puntos suspensivos (...) a la derecha de la lnea de entrada de la propiedad. Esta accin
muestra el cuadro de dilogo DatabaseName, en el que se elegir el nombre del archivo, que
luego aparecer en la propiedad DatabaseName del control de datos. Cuando la base de datos
resulta ser diferente de Access, la propiedad DatabaseName requiere valores diferentes, tales
como el nombre de la ruta para el subdirectorio de datos.
2) Propiedad Recordsource
Despus de disear la base de datos, es preciso especificar la informacin que se desea obtener
con la propiedad RecordSource. Si se trata de una sola tabla, es posible teclear el nombre o
seleccionarlo de la lista de tablas.
Es posible acceder solamente a la informacin seleccionada en una tabla o utilizar informacin de
mltiples tablas empleando una instruccin de SQL. Para definir el conjunto de registros utilizando
una instruccin de SQL, hay que establecer la propiedad RecordSource para el nombre de una
QueryDef (que contiene la instruccin de SQL) de la base de datos o insertar una instruccin de
SQL vlida que genere una dynaset (tambin es posible incluir funciones en la instruccin de
SQL). Si se emplea una QueryDef, ha de estar previamente definida y almacenada en la base de
datos. Si se utiliza el control de datos para trabajar con una base de datos que no sea de Access,
es preciso establecer la propiedad RecordSource para el nombre de la tabla o instruccin SQL
para esa base de datos.
3) Propiedad Recordsettype
El tipo predeterminado de conjunto de registros (recordset) para un control de datos es una
dynaset. Si se precisa generar una snapshot o acceder directamente a la tabla, es necesario
cambiar la configuracin de la propiedad RecordsetType. Para ello, hay que seleccionar el tipo
deseado en una lista desplegable del cuadro de dilogo Propiedades.
4) Propiedades Bof y Eof
Las propiedades de accin indican al control de datos lo que tiene que hacer cuando llegue a
principio de archivo (BOF) o al final de archivo (EOF).
Para la propiedad BOF existen dos opciones:
Ejecutar el mtodo MoveFirst para fijar el puntero al primer registro y el indicador de principio de
archivo (BOF) a Falso (valor de la propiedad 0).
Fijar el indicador de principio de archivo a Verdadero (valor de la propiedad 1).
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 31 -

Apuntes de Visual Basic

Para la propiedad EOF existen tres opciones:


Ejecutar el mtodo MoveLast para fijar el puntero al ltimo registro y el indicador de final de archivo
(EOF) a Falso 8valor de la propiedad 0).
Fijar el indicador de final de archivo a Verdadero (valor de la propiedad 1).
Ejecutar el mtodo AddNew para configurar el conjunto de registros para la adicin de un nuevo
registro (valor de la propiedad 2).
Los valores de cada una de estas propiedades pueden escogerse en una lista desplegable del
cuadro de dilogo Propiedades. La especificacin AddNew de la propiedad EOFAction puede ser
de utilidad si la aplicacin agrega muchos registros nuevos. Al igual que con las otras propiedades
del control de datos, puede darse a stas otros valores en tiempo de ejecucin.
NOTA: Las acciones BOF y EOF se disparan solamente cuando se llega a principio o a fin de archivo
utilizando el control de datos (en otras palabras, pulsando el botn Siguiente). No tienen efecto si se
llega a principio o a fin de archivo utilizando mtodos de acceso a datos de programa (como
MoveNext).
5) Otras Propiedades Opcionales
Hay otras propiedades que pueden especificarse para el control de datos:
Connect: Solamente es necesario si se utiliza una base de datos que no sea de Access. Esta
propiedad indica al motor Jet la clase de base de datos en uso.
Exclusive: Determina si los dems pueden o no acceder a la base de datos, mientras la aplicacin
est en uso. La propiedad se fija a Verdadero (la aplicacin es la nica que puede acceder a la
base de datos) o a Falso (los dems pueden tambin acceder. El valor predeterminado es Falso.
Readonly: Determina si la aplicacin puede o no modificar los datos del conjunto de registros
definido. La propiedad se fija a Verdadero (la aplicacin no puede modificar los datos) o a Falso
(la aplicacin puede modificar los datos). El valor predeterminado es Falso.
Options: Permite especificar otras propiedades para la dynaset creada por el control de datos. Se
vio en la cuarta parte (Opciones para modificar el modo de acceso a una dynaset).
Asignar Los Campos A Las Propiedades De Los Controles Del Formulario
Primeramente debe realizar la base de datos en Microsoft Access, despus agregar un Data control
en el formulario, posteriormente realizar el diseo del formulario (obviamente el total de campos que
desea capturar, debe ser igual al numero de Textbox que debe agregar al formulario). A continuacin
haga clic en el Textbox correspondiente y en la ventana de Propiedades establezca: DataSource
(nombre de la tabla) y el DataField (nombre del campo), estas acciones le permiten ligar los campos
de la Base de datos con sus cajas de texto del formulario.
Empleo De Los Controles Label Y Textbox
Los controles Label (Etiqueta) y TextBox (cuadro de texto) se utilizan para mostrar cualquier tipo de
datos alfanumricos. El control caja de texto es til pata teclear datos alfanumricos y el control
etiqueta para evitar que los datos mostrados se actualicen. Para ambos controles, debe establecer
las propiedades: DataSource y DataField. En nuestro ejemplo (BD:Agenda.Mdb, Tabla:Amigos)
Objeto
Propiedad
Valor
Text1
DataSource
Amigos
DataField
Nombre
Text2
DataSource
Amigos
DataField
Direccin
Text3
DataSource
Amigos
DataField
Ciudad
Text4
DataSource
Amigos
DataField
Telefono
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 32 -

Apuntes de Visual Basic

Colocacin del Puntero de Registro


Dado que raramente se usa una base de datos con un solo registro, un motor de base de datos debe
proporcionar mtodos para desplazarse de un registro a otro dentro de los conjuntos de registros.
Visual Basic facilita cuatro clases de esos mtodos:
Mtodos Move: cambian la posicin del puntero del registro en uso hasta otro.
Mtodos Find: Localizan el siguiente registro que cumpla la condicin. Estos mtodos funcionan
con Dynaset y Snapshot.
Mtodos Seek: Hallan el primer registro de una tabla que cumpla la condicin.
Uso De Los Metodos Move
Se pueden emplear los mtodos Move (desplazarse) para cualquier conjunto de registros disponible
en VB y son los siguientes:
MoveFirst: mueve el puntero desde el registro en uso hasta el primer registro del conjunto de
registros abierto.
MoveNext: Mueve el puntero del registro desde el registro en uso hasta el siguiente registro (el que
le sigue) del conjunto de registros abierto. Si no hay "registro siguiente" (si es el ltimo), se pone
el indicador de fin de archivo (EOF).
MovePrevious: Mueve el puntero hasta el registro anterior (el que le precede). Si no hay un
"registro anterior" (si es el primero), se pone el indicador de principio de archivo (BOF).
MoveLast: Mueve el puntero hasta el ltimo registro del conjunto abierto.
Move n: Mueve el puntero hasta n registros ms hacia delante (si n es positivo) o hacia atrs (si n
es negativo). Si el desplazamiento sita el puntero ms all del final del conjunto de registros
(BOF o EOF), se produce un error.
Estos comandos llevan el puntero al registro indicado, segn el orden establecido en el conjunto de
registros. El orden actual es el fsico (a menos que se fije un ndice para una tabla, una dynaset o una
snapshot).
Para mostrar el uso de los mtodos anteriores, agregaremos botones de comando a la mscara de
entrada de datos, de forma que el usuario pueda desplazarse en el conjunto de datos (ver grfico).
Para activarlos, agregaremos el cdigo del listado que sigue, en el cdigo de cada botn.
Asignacion del Move para el funcionamiento de los botones de comando de desplazamiento
' El mtodo MoveFirst (ir al principio), activa el botn "Primero"
Data1.Recordset.MoveFirst
' El mtodo MovePrevious (ir al anterior), activa el botn "Anterior"
Data1.Recordset.MovePrevious
' El mtodo MoveNext (ir al siguiente) , activa el botn "Siguiente"
Data1.Recordset.MoveNext
' El mtodo MoveLast (ir al ltimo) , activa el botn "ltimo"
Data1.Recordset.MoveLast
El mtodo Move n permite desplazarse ms de un registro a partir de la posicin actual. El valor de n
es el nmero de registros a trasladarse en el conjunto de registros. Este valor puede ser positivo o
negativo, para desplazarse adelante o atrs.
El siguiente cdigo muestra el uso de este mtodo para desplazarse dos registros hacia adelante.
Data1.Recordset.Move 2
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 33 -

Apuntes de Visual Basic

Uso de las Propiedades Bof, Eof, Recordcount y


Hay cuatro propiedades principales del conjunto de registros que pueden utilizarse para controlar el
proceso de registros mltiples. Las definiciones estn en la tabla siguiente:
Propiedad
Indica
BOF
Indicador de principio de archivo que seala si el puntero est en el primer registro
(BOF = Verdadero) o no (BOF = Falso)
EOF
Indicador de final de archivo que seala si el puntero est en el ltimo registro (EOF =
Verdadero) o no (EOF = Falso)
RecordCount Indica el nmero de registros a los que se ha accedido. Produce un recuento del total
de registros del conjunto de registros solamente despus de accederse al ltimo
registro (por ejemplo, empleando un mtodo MoveLast)
NoMatch
Indica que el ltimo mtodo de bsqueda o Seek no ha conseguido localizar un registro que
coincida con los criterios
Nota: Estas propiedades se pueden utilizar para terminar bucles o evitar errores.
Como Agregar o Anexar Registros
Para agregar registros, hay que utilizar el mtodo AddNew que no agrega el registro en el momento,
sino que despeja el buffer de copia para permitir que la informacin del nuevo registro entre. Veamos:
Uso de Addnew para Agregar Un Registro
' Coloca un registro en blanco, para agregar informacin
Data1.Recordset.AddNew
Text1.Setfocus
Nota: Dado que AddNew sita la informacin solamente en el buffer de copia, si se cancela el mtodo
AddNew o se desplaza el puntero de registros con cualquier mtodo Move o First se despeja el
buffer de copia y toda la informacin se pierde.
Edicin (Modificacin o Actualizacin) de Registros
Igual a la adicin de registros, se usa el mtodo Edit para aplicar modificaciones a un registro. Este
mtodo sita una copia del contenido del registro en el buffer de copia, de forma que pueda
modificarse la informacin. Las modificaciones slo tiene efecto cuando se ejecuta el mtodo Update.
Uso de Edit y Update para Modificar los Datos
' Uso del mtodo Find para localizar el registro que se va a cambiar
Data1.Recordset.FindFirst Nombre = MARTIN ALEJANDRO
' Comprobar la propiedad NoMatch para evitar un error
If Data1.Recordset.NoMatch Then
MsgBox ( Dato No Encontrado)
Else
' Uso del mtodo Edit para establecer los cambios del registro
Data1.Recordset.Edit
Text1.Setfocus
' Uso del mtodo Update para guardar los cambios en el Recordset
Data1.Recordset.Update
' Uso del mtodo Refresh para actualizar los cambios de la base de datos
Data1.Refresh
Nota: Las modificaciones slo tiene efecto cuando se ejecuta el mtodo Update o Refresh
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 34 -

Apuntes de Visual Basic

Eliminacin o Borrado de Registros


Borrar un registro precisa el uso del mtodo Delete, que se muestra a continuacin. Este mtodo
elimina el registro del conjunto de registros y pone el puntero a cero.
Uso de Delete para Eliminar Un Registro
' Uso del mtodo Find para localizar el registro que se va a eliminar
Data1.Recordset.FindFirst Nombre = MARTIN ALEJANDRO
' Comprobar la propiedad NoMatch para evitar un error
If Data1.Recordset.NoMatch Then
MsgBox ( Dato No Encontrado)
Else
' Uso del mtodo Delete para borrar el registro
Data1.Recordset.Delete
MsgBox(Dato eliminado)
Data1.Refresh
Precaucin: Si se borra o elimina un registro, se pierde la informacin. Debe tener cuidado al usar el
Delete, pues la informacin no se puede recuperar.
Uso de los Metodos Find para encontrar Datos Especficos
Los mtodos Find (hallar) estn disponibles solamente para uso en dynaset y snapshot. No se
pueden emplear en objetos tabla. Se utilizan para localizar registros que cumplan criterios especficos
Los cuatro mtodos son los siguientes:
FinFirst: comenzando por el principio de la base de datos, busca el primer registro que cumpla los
criterios especificados.
FindNext: comenzando por la ubicacin actual, busca el siguiente registro que cumpla con los
criterios.
FindPrevious: comenzando por la ubicacin actual, busca el anterior registro que cumpla los
criterios especificados.
FindLast: comenzando por el principio de la base de datos, busca el ltimo registro que cumpla los
criterios.
Despus de ejecutar este mtodo, hay que comprobar el estado de la propiedad NoMatch. Si es
verdadero, el mtodo ha fallado al hallar un registro que cumpliera los criterios. Si es falso, el puntero
est situado en un registro encontrado. A continuacin se muestra el uso de los mtodos Find.
Como Desplazarse en los Registros Seleccionados de una Dynaset con los Mtodos Find
' Especificar los criterios de bsqueda para los mtodos Find
Criterio = !Ciudad = MORELIA
' Hallar el primer registro que cumpla la condicin
Desactiva
Procedim. que desactiva los botones y solo deja activo un Botn para avanzar a otros registros
Data1.FindFirst Criterio
If Data1.Recordset.Nomatch Then
MsgBox(Ciudad No encontrada)
Activa
Data1.Recordset.MoveLast
End Sub
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 35 -

Apuntes de Visual Basic

' Botn que permite avanzar a otros registros que coincidan el mismo criterio de bsqueda
Private Sub Command6_Click()
Data.Recordset.FindNext Criterio
If Data1.Recordset.Nomatch Then
Activa Procedim. que activa los botones y desactiva el Botn avanzar
Data1.Recordset.MovePrevious
End if
If Data1.Recordset ! Ciudad <> MORELIA Then
Activa Procedim. que activa los botones y desactiva el Botn avanzar
Data1.Recordset.MovePrevious
End if
End Sub
' Hallar el ltimo registro que cumpla la condicin
Desactiva Procedim. que desactiva los botones y solo deja activo un Botn para retroceder a otros registros
Data1.FindLast Criterio
' Botn que permite retroceder a otros registros que coincidan el mismo criterio de bsqueda
Private Sub Command7_Click()
Data.Recordset.FindPrevious Criterio
If Data1.Recordset.Nomatch Then
Activa Procedim. que activa los botones y desactiva el Botn retroceder
Data1.Recordset.MovePrevious
End if
If Data1.Recordset ! Ciudad <> MORELIA Then
Activa Procedim. que activa los botones y desactiva el Botn retroceder
Data1.Recordset.MovePrevious
End if
End Sub
El mtodo Find funciona explorando cada registro, empezando por el actual, para localizar el
adecuado que coincida con los criterios especificados. Segn el tamao del conjunto de registros y
esos criterios, esta operacin puede ser algo lenta. Las bsquedas pueden optimizarse por medio del
motor Jet, si hay un ndica disponible para cada campo de bsqueda. Si se han de realizar muchas
bsquedas, vale la pena generar un ndice para el campo de la tabla base.
Empleo del Mtodo Seek
El mtodo Seek (buscar) es la forma ms rpida de localizar un registro individual en una tabla (sin
embargo, tambin es el ms limitado de los mtodos).
Sus limitaciones son las siguientes:
/ Solamente se puede llevar a cabo en una tabla; no puede emplearse con una dynaset o una
snapshot.
/ Solamente puede usarse con un ndice activo. Los parmetros del mtodo Seek deben coincidir
con los campos del ndice en uso.
/ Un Seek busca solamente el primer registro que coincida con el valor del ndice especificado. Los
usos posteriores no encuentran registros adicionales que coincidan.
Un mtodo Seek consiste en el mtodo de llamada, el operador de comparacin y los valores de los
campos clave. El operador de comparacin puede ser <, <=, =, >=, > <>. Los valores claves a
comparar deben ser del mismo tipo de datos que el campo del ndice. Es imprescindible incluir un
valor clave para cada campo que se quiera buscar. Estos valores deben aparecer en el mismo orden
que los campos en el ndice y estar separados por comas, como se puede ver a continuacin.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 36 -

Apuntes de Visual Basic

Uso del Metodo Seek para Buscar un Registro Especifico de una Tabla
' Especificar los criterios de bsqueda para los mtodos Seek
desactiva
Procedim. que desactiva los botones y solo deja activo un Botn para avanzar a otros registros
cd = MORELIA
' Establece la propiedad ndice para la tabla
Data1.Recordset.Index = Ciudad
' Mueve el puntero al primer registro de la base de datos
Data1.Recordset.MoveFirst
' Ejecuta la bsqueda con la condicin deseada
Data1.Recordset.Seek =, cd
Muestra la informacin o el mensaje "No se encuentra"
If Data1.Recordset.Nomatch Then
MsgBox(Dato no se encuentra)
Activa
Procedim. que activa los botones y desactiva el Botn siguiente
Data1.Recordset.MoveLast
End if
' Botn que permite avanzar a otros registros que coincidan el mismo criterio de busqueda
Private Sub Command6_Click()
Data.Recordset.MoveNext
If Data1.Recordset.Nomatch Then
Activa Procedim. que activa los botones y desactiva el Botn avanzar
Data1.Recordset.MovePrevious
End if
If Data1.Recordset!Ciudad <> cd Then
Activa Procedim. que activa los botones y desactiva el Botn avanzar
Data1.Recordset.MovePrevious
End if
End Sub
Es preciso planificar con atencin el comportamiento del mtodo Seek. Cuando este mtodo emplea
los operadores de comparacin =, >=, > <>, empieza por el primer registro para el ndice en uso y
explora hacia delante por todo el ndice, para hallar la primera coincidencia. Si el operador es < <=,
empieza con el ltimo registro de la tabla y explora hacia atrs por toda la tabla. Si el ndice tiene
valores nicos para cada registro, esto no presenta problema alguno. Pero, si hay valores de ndice
duplicados para los campos clave especificados, el registro hallado depende del operador de
comparacin y del criterio de ordenacin del ndice. Por ejemplo:
Operador de comparacin Orden indexado Registro resultante
>=Guerra, A
Ascendente
Guerra, Alberto
<=Guerra, Z
Ascendente
Guerra, Mara
>= Guerra, A
Descendente
Hernndez, Carlos
<= Guerra, Z
Descendente
Guerra, Teresa
Hay que prestar atencin cuando se utilicen operadores > o < en un ndice descendente. El operador
es interpretado como que hay que hallar el registro que se produzca despus del valor clave
especificado. Por esta razn, la bsqueda >="Guerra" en un ndice descendente devuelve
Hernndez, Carlos. Con el operador < sucede lo mismo.
Es importante usar tanto el orden como los operadores con mucho cuidado con el mtodo Seek,
para estar seguros de obtener los resultados deseados.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 37 -

Apuntes de Visual Basic

Trabajando con mens


Creacin de mens con el editor de mens.
Puede utilizar el Editor de mens para crear nuevos mens y barras de mens, agregar nuevos
comandos a mens existentes, reemplazar comandos de men existentes por sus propios
comandos, y cambiar y eliminar mens y barras de mens existentes.
Para presentar el Editor de mens
En el men Herramientas, elija Editor de mens o Haga clic en el botn Editor de mens de la
barra de herramientas
, despus aparecer el Editor de mens:
Caption: es el texto que aparece
en el formulario
Name: es el nombre que se utiliza
para hacer referencia al control de
mens en el cdigo del programa.
Index, le permite asignar un valor
numrico que determina la
posicin del control en una matriz
de controles. Esta posicin no
tiene ninguna relacin con la
ubicacin del control en la
pantalla.
HelpContextID, le permite asignar
un valor numrico nico para el Id.
de contexto. Este valor se utiliza
para encontrar el tema de Ayuda
apropiado en el archivo de Ayuda
identificado mediante la propiedad
HelpFile.
Checked, le permite hacer que
aparezca inicialmente una marca
de verificacin a la izquierda de un
elemento del men. Se utiliza para
indicar si una opcin de alternar
est activada o no.

Lista Mens, es un cuadro de


lista que muestra en orden
jerrquico
todos
los
elementos del men. Los
elementos de los submens
aparecen indentados para
indicar su ubicacin o su
nivel en la jerarqua.

Shortcut, le permite seleccionar


una tecla de mtodo abreviado
para cada comando.
NegotiatePosition,
le permite
seleccionar
la
propiedad
NegotiatePosition del men.
Esta propiedad determina si el
men aparece o no en un
formulario contenedor y cmo
aparece.
Enabled, le permite seleccionar
si el elemento del men debe
responder a eventos. Desactive
esta opcin si desea que el
elemento del men no est
disponible y aparezca atenuado.
Visible, le permite hacer que un
elemento aparezca en el men.
WindowList, determina si el
control del men contiene una
lista de formularios secundarios
MDI abiertos en una aplicacin
MDI.

Flecha a la derecha, pasa el men seleccionado a un nivel inferior cada vez que hace clic en el
botn. Puede crear hasta cuatro niveles de submens.
Flecha a la izquierda, pasa el men seleccionado a un nivel superior cada vez que hace clic en el
botn. Puede crear hasta cuatro niveles de submens.
Flecha arriba, cada vez que se hace clic en este botn, el elemento seleccionado del men se
mueve hacia arriba una posicin dentro del mismo nivel de men.
Flecha abajo, cada vez que se hace clic en este botn, el elemento seleccionado del men se
mueve hacia abajo una posicin dentro del mismo nivel de men.
Siguiente, selecciona la opcin siguiente que contendr el men.
Insertar, inserta una lnea en el cuadro de lista, inmediatamente encima de la lnea actualmente
seleccionada.
Eliminar, elimina Borra la lnea actualmente seleccionada.
Aceptar, cierra el Editor de mens y aplica todos los cambios efectuados en el ltimo formulario
seleccionado. El men est disponible en tiempo de diseo, pero si selecciona un men en la fase
de diseo, se abre la ventana Cdigo para el evento Clic de ese men en lugar de ejecutarse el
cdigo del evento.
Cancelar, cierra el Editor de mens y cancela todos los cambios.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 38 -

Apuntes de Visual Basic

Uso del cuadro de lista del editor de mens.


El cuadro de lista del control de mens (la parte inferior del Editor de mens) enumera todos los
controles de mens del formulario actual. Cuando escribe un elemento de men en el cuadro de
texto Caption, dicho elemento tambin aparece en el cuadro de lista del control de mens. Si
selecciona un control de mens existente del cuadro de lista, podr modificar las propiedades de
dicho control.
Por ejemplo, la figura del editor de menes muestra los controles de mens del men Archivo de una
aplicacin tpica. La posicin del control de mens en el cuadro de lista del control de mens
determina si el control es un ttulo de men, un elemento de men, un ttulo de submen o un
elemento de submen:
Un control de mens que aparezca alineado a la izquierda en el cuadro de lista se presenta en la
barra de mens como un ttulo de men.
Un control de mens que est sangrado una vez en el cuadro de lista se presenta en el men
cuando el usuario hace clic en el ttulo de men precedente.
Un control de mens sangrado seguido de controles de mens con un nivel mayor de sangra se
convierte en un ttulo de submen. Los controles de mens sangrados bajo el ttulo del submen
se convierten en elementos del submen.
Un control de mens con un guin (-) como propiedad Caption aparece como una barra
separadora. Una barra separadora divide los elementos del men en grupos lgicos.
Nota: un control de mens no puede ser una barra separadora si es un ttulo de men, tiene
elementos submen, est activado o desactivado, o tiene una tecla de mtodo abreviado.
Para crear controles de mens en el Editor de mens
1. Seleccione el formulario.
2. En el men Herramientas, elija Editor de mens o haga clic en el botn Editor de mens de la
barra de herramientas.
3. En el cuadro de texto Caption, escriba el texto del ttulo del primer men que quiera que aparezca
en la barra de mens. Coloque tambin un signo & delante de la letra que desee que sea la tecla
de acceso a dicho elemento de men. Esta letra aparecer subrayada automticamente en el
men. El texto del ttulo del men se presenta en el cuadro de lista del control de mens.
4. En el cuadro de texto Name, escriba el nombre que desee utilizar para hacer referencia al control
de mens desde el cdigo. Vea "Recomendaciones de ttulos y nombres de mens", ms
adelante en este mismo tema.
5. Haga clic en los botones de flecha a la izquierda o a la derecha para modificar el nivel de sangra
del control.
6. Establezca otras propiedades del control, si lo desea. Puede hacerlo con el Editor de mens o,
posteriormente, en la ventana Propiedades.
7. Elija Siguiente para crear otro control de mens o haga clic en Insertar para agregar un control de
mens entre controles existentes. Tambin puede hacer clic en los botones de flecha arriba y
flecha abajo para mover el control entre los controles de mens existentes.
8. Elija Aceptar para cerrar el Editor de mens cuando haya creado todos los controles de mens
del formulario. En el formulario se mostrarn los ttulos de los mens creados. En tiempo de
diseo, haga clic en el ttulo de un men para desplegar sus correspondientes elementos de
men.
Separacin de elementos de mens.
Una barra separadora se presenta como una lnea horizontal entre los elementos de un men. En un
men con muchos elementos, puede utilizar una barra separadora para dividir los elementos en
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 39 -

Apuntes de Visual Basic

grupos lgicos. Por ejemplo, el men Ayuda de Visual Basic usa barras separadoras para dividir sus
elementos de men en tres grupos, como se muestra en la figura.
Para crear una barra separadora con el Editor de mens
1. Si va a agregar una barra separadora a un men existente, elija Insertar para insertar un control
de mens entre los elementos de men que desee separar.
2. Si es necesario, haga clic en el botn de flecha a la derecha para sangrar el nuevo elemento de
men al mismo nivel que los elementos de men que vaya a separar.
3. Escriba un guin (-) en el cuadro de texto Caption.
4. Establezca la propiedad Name.
5. Elija Aceptar para cerrar el Editor de mens.
Nota Aunque las barras separadoras se crean como controles de mens, no responden al evento
Click y los usuarios no pueden seleccionarlas.
Asignacin de teclas de acceso y de mtodo abreviado.
Puede mejorar el acceso por teclado a los comandos de los mens si define teclas de acceso y de
mtodo abreviado.
Las teclas de acceso permiten al usuario abrir un men presionando la tecla ALT y escribiendo una
letra designada. Una vez abierto el men, el usuario puede elegir un control si presiona la letra (tecla
de acceso) asignada al mismo. Por ejemplo, ALT+E podra abrir el men Edicin y P podra
seleccionar el elemento de men Pegar. La asignacin de la tecla de acceso aparece como una letra
subrayada en el ttulo del control de mens, como se muestra en la figura.
Para asignar una tecla de acceso a un control de mens con el Editor de mens
1. Seleccione el elemento de men al que desee asignar una tecla de acceso.
2. En el cuadro Ttulo, escriba un signo & adelante de la letra que elija como tecla de acceso.
Por ejemplo, si abre el men Edicin mostrado en la figura anterior, los siguientes valores de la
propiedad Caption se corresponden con las siguientes teclas de acceso.
Nota No use teclas de acceso duplicadas en los mens. Si usa la misma tecla de acceso para ms
de un elemento del men, dicha tecla no funcionar.
Teclas de mtodo abreviado
Las teclas de mtodo abreviado ejecutan un elemento de men inmediatamente cuando se
presionan. A los elementos de men que se utilizan con ms frecuencia se les puede asignar una
tecla de mtodo abreviado, que proporciona un mtodo de acceso por teclado de slo un paso, en
lugar del mtodo de tres pasos de presionar ALT, un carcter de acceso al ttulo del men y despus
un carcter de acceso al elemento del men. Las asignaciones de mtodos abreviados incluyen
combinaciones de teclas de funcin y de control, como CTRL+F1 o CTRL+A. Aparecen en el men a
la derecha del elemento de men correspondiente, como se muestra en la figura.
Para asignar una tecla de mtodo abreviado a un elemento de men
1. Abra el Editor de mens.
2. Seleccione el elemento de men.
3. Seleccione una combinacin de teclas de funcin o de otra tecla en el cuadro combinado
Shortcut.
4. Para quitar una asignacin de tecla de mtodo abreviado, elija "(Ninguno)" en la parte superior de
la lista.
Nota Las teclas de mtodo abreviado aparecen automticamente en el men; por tanto, no tiene
que escribir CTRL+tecla en el cuadro de texto Caption del Editor de mens.
Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 40 -

Apuntes de Visual Basic

Creacin de Submens.
Cada men que cree puede incluir hasta cinco niveles de submens. Un submen sale de otro men
para presentar sus propios elementos de men. Puede utilizar un submen cuando:
La barra de mens est llena.
Un control de mens concreto se utilice con poca frecuencia.
Quiera hacer nfasis en la relacin de un control de mens con otro.
Sin embargo, si hay sitio en la barra de mens, es mejor crear un ttulo de men adicional en lugar de
un submen. De esta manera, todos los controles son visibles para el usuario cuando el men se
despliega. Tambin es una buena prctica de programacin restringir el uso de los submens de
forma que los usuarios no se pierdan intentando explorar la interfaz de mens de la aplicacin. (La
mayora de las aplicaciones utilizan slo un nivel de submens.)
En el Editor de mens, cualquier control de mens sangrado bajo un control de mens que no sea un
ttulo de men es un control de submens. En general, los controles de submens pueden incluir
elementos de submen, barras separadoras y ttulos de submen.
Para crear un submen
1. Cree el elemento de men que vaya a ser el ttulo del submen.
2. Cree los elementos que vayan a aparecer en el nuevo submen y sngrelos haciendo clic en el
botn de flecha a la derecha.
3. Cada nivel de sangra est precedido por cuatro puntos (.) en el Editor de mens. Para quitar un nivel de
sangra, haga clic en botn de flecha a la izquierda.
Nota Si est pensando en la posibilidad de utilizar ms de un nivel de submens, piense en utilizar
un cuadro de dilogo en su lugar. Los cuadros de dilogo permiten que los usuarios especifiquen
varias opciones en un nico lugar.
Escritura de cdigo para controles de mens.
Cuando el usuario elige un control de mens, se produce un evento Click. Es necesario escribir un
procedimiento de evento Click para cada control de mens. Todos los controles de mens, excepto
las barras separadoras (y los controles de mens desactivados o invisibles), reconocen el evento
Click.
El cdigo que escribe en un procedimiento de evento de men no es diferente del que escribira en
los procedimientos de evento de cualquier otro control. Por ejemplo, el cdigo de un evento Click
para el elemento Cerrar del men Archivo podra parecerse a lo siguiente:
Sub mnuFileClose_Click ()
Unload Me
End Sub
Visual Basic presenta automticamente un men cuando se elige el ttulo del men; por tanto, no es
necesario que escriba cdigo para el procedimiento de evento Click de un ttulo de men a menos
que quiera realizar alguna otra accin, como desactivar ciertos elementos del men cuando ste sea
visible.
Nota En tiempo de diseo, los mens que cree se presentarn en el formulario al cerrar el Editor
de mens. Al elegir un elemento de un men dentro del formulario se presenta el procedimiento de
evento Click de dicho control de mens.

Manual de Visual Basic 5.0 Autor: M a r t n A l e j a n d r o G u e r r a H e r n n d e z

- 41 -

You might also like