0% encontró este documento útil (0 votos)
159 vistas

Tutorial Visual Basic 5

Este documento proporciona información sobre un curso de Visual Basic 5.0 impartido en Tololán, Michoacán, México en diciembre de 2000 por L.I. Martín Alejandro Guerra Hernández. El curso cubre temas como los objetos, propiedades, métodos y eventos de Visual Basic, así como los componentes de un proyecto como formularios, módulos estándares y controles estándares. También describe el entorno de desarrollo de Visual Basic incluyendo la ventana de proyectos, formularios, ventana de propiedades y caja

Cargado por

DDAC UVM
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
159 vistas

Tutorial Visual Basic 5

Este documento proporciona información sobre un curso de Visual Basic 5.0 impartido en Tololán, Michoacán, México en diciembre de 2000 por L.I. Martín Alejandro Guerra Hernández. El curso cubre temas como los objetos, propiedades, métodos y eventos de Visual Basic, así como los componentes de un proyecto como formularios, módulos estándares y controles estándares. También describe el entorno de desarrollo de Visual Basic incluyendo la ventana de proyectos, formularios, ventana de propiedades y caja

Cargado por

DDAC UVM
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 41

Curso De Visual Basic 5.

TOTOLAN, MICHOACAN
MEXICO

DICIEMBRE 2000.

Impartido Por:

L.I. Martín Alejandro Guerra Hernández


Apuntes de Visual Basic .
¿Qué es Visual Basic?
La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario
(GUI). En lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación 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 aplicación y estos a su vez tienen asociado un conjunto de
propiedades, métodos y eventos. Ejemplo: Una caja de texto (TextBox) en la cual podemos escribir
cualquier línea es un objeto.

Propiedades.
Son las características 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, Tamaño:10, A.lineación:Centrada, etc.

Métodos.
Los métodos 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 aplicación "Hola mundo", por tanto
pondremos el método -> Ventana.Print "Hola mundo"

Eventos.
Los eventos son acciones que se pueden realizar en cualquier control: clic, doble clic, movimiento del
ratón. A estos eventos se les puede asociar código 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 aplicación controlada por eventos, el código no sigue una ruta predeterminada; ejecuta
distintas secciones de código 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
aplicación. La secuencia de estos eventos determina la secuencia en la que se ejecuta el código, por
lo que la ruta a través del código de la aplicación es diferente cada vez que se ejecuta el programa.

Puesto que no puede predecir la secuencia de los eventos, el código 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 aplicación de forma que asegure que esa suposición siempre
será válida (por ejemplo, deshabilitando el botón de comando que inicia el procedimiento hasta que el
campo de entrada contenga un valor).

El código también puede desencadenar eventos durante la ejecución. Por ejemplo, cambiar mediante
programación el texto de un cuadro de texto hace que se produzca el evento Change del cuadro de
texto. Esto causaría la ejecución del código (si lo hay) contenido en el evento Change. Si supone que
este evento sólo se desencadenará mediante la interacción del usuario, podría ver resultados
inesperados. Por esta razón es importante comprender el modelo controlado por eventos y tenerlo en
cuenta cuando diseñe su aplicación.

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 aplicación con Visual Basic se trabaja con proyectos. Un proyecto es una colección de
archivos que se usan para generar una aplicación. Este tema describe cómo generar y administrar
proyectos.
Al crear una aplicación probablemente creará nuevos formularios; también puede volver a usar o
modificar formularios creados en proyectos anteriores. Esto también se aplica a otros módulos o
archivos que pueda incluir en su proyecto. Los controles ActiveX y los objetos de otras aplicaciones
también se pueden compartir entre proyectos.
Después de ensamblar todos los componentes de un proyecto y escribir el código, puede compilar el
proyecto para crear un archivo ejecutable.

Componentes de un Proyecto.
Cuando desarrolla un aplicación, 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
automáticamente cualquier archivo.frm que tenga propiedades en formato binario, como Picture o
Icon.
• Opcionalmente, un archivo para cada módulo de clase (.cls).
• Opcionalmente, un archivo para cada módulo estándar (.bas).
• Opcionalmente, uno o más 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 información sobre las opciones de entorno establecidas. Esta información se
actualiza cada vez que guarda el proyecto. Todos los archivos y objetos también 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 aplicación.
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" más adelante.
Los módulos de formularios (extensión de nombre de archivo .frm) pueden contener descripciones en
forma de texto del formulario y sus controles, incluyendo los valores de sus propiedades. También
pueden contener declaraciones a nivel de formulario de constantes, variables y procedimientos
externos, procedimientos de evento y procedimientos generales.

Módulos estándar
Un módulo es un archivo Visual Basic donde escribimos parte del código de nuestro programa, y digo
parte, porque puede haber código en el formulario también.
Las rutinas incluidas dentro de los módulos pueden ser ejecutadas desde los formularios de la
aplicación.
Los módulos estándar (extensión de nombre de archivo.bas) pueden contener declaraciones públicas
o a nivel de módulo de tipos, constantes, variables, procedimientos externos y procedimientos
públicos.

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 estándar
Los controles estándar los proporciona Visual Basic. Los controles estándar, como CommandButton
(botón de comando) o Frame (marco), siempre están 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 sesión 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 Estándar y haga
clic en el botón Abrir.

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

Barra de titulo Barra de menús Botones de control

Ver código del objeto


Barra de Ver objeto
herramientas Alternar carpetas

Cuadro de Ventana de Formularios


herramientas

Formulario Ventana de propiedades

Barra de tareas Ventana de posición 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
aplicación.

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 Programación.
Cada módulo de formulario contiene procedimientos de evento (secciones de código donde se
colocan las instrucciones que se ejecutarán como respuesta a eventos específicos). Los formularios
pueden contener controles. Por cada control de un formulario, existe el correspondiente conjunto de
procedimientos de evento en el módulo de formulario.

Como funciona una aplicación controlada por eventos.


Un evento es una acción reconocida por un formulario o un control. Las aplicaciones controladas por
eventos ejecutan código 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 código, Visual Basic llama a ese código.

Aunque los objetos de Visual Basic reconocen automáticamente un conjunto predefinido de eventos,
usted decide cuándo y cómo se responderá a un evento determinado. A cada evento le corresponde
una sección de código (un procedimiento de evento). Cuando desea que un control responda a un
evento, escribe código en el procedimiento de ese evento.

Los tipos de eventos reconocidos por un objeto varían, pero muchos tipos son comunes a la mayoría
de los controles. Por ejemplo, la mayoría de los objetos reconocen el evento Click: si un usuario hace
clic en un formulario, se ejecuta el código del procedimiento de evento Click del formulario; si un
usuario hace clic en un botón de comando, se ejecuta el código del procedimiento de evento Click del
botón. El código en cada caso será diferente.

Variables.
El alcance de una variable define qué partes del código son conscientes de su existencia. Cuando
declara una variable en un procedimiento, sólo el código de dicho procedimiento puede tener acceso
o modificar el valor de la variable; tiene un alcance que es local al procedimiento. Dependiendo de
cómo se declara, una variable tiene como alcance un procedimiento (local) o un módulo.

Variables utilizadas en un procedimiento


Las variables a nivel de procedimiento sólo se reconocen en el procedimiento en el que se han
declarado. Se las conoce también 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 aplicación,
mientras que las variables declaradas con Dim sólo existen mientras se ejecuta el procedimiento.
Las variables locales resultan una elección apropiada para cálculos 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 sólo reconoce su propia
versión de intTemp. Cualquier procedimiento puede alterar el valor de su intTemp local sin que ello
afecte a las variables intTemp de los demás procedimientos.

Variables utilizadas en un módulo


De forma predeterminada, una variable a nivel de módulo está disponible para todos los
procedimientos del módulo, pero no para el código de otros módulos. Cree variables a nivel de
módulo declarándolas con la palabra clave Private en la sección Declaraciones al principio del
módulo. Por ejemplo: Private intTemp As Integer

Variables utilizadas por todos los módulos


Para hacer que una variable a nivel de módulo esté disponible para otros módulos, utilice la palabra
clave Public para declarar la variable. Los valores de las variables públicas están disponibles para
todos los procedimientos de la aplicación. Al igual que todas las variables a nivel de módulo, las
variables públicas se declaran en la sección Declaraciones al principio del módulo. Por ejemplo:
Public intTemp As Integer
Nota No puede declarar variables públicas en un procedimiento, sólo en la sección Declaraciones
de un módulo.

Declaración
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
sería accesible desde los demás procedimientos o formularios.

Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los
formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no
en la sección declarations de cualquier formulario de los que conste la aplicación. Para crear un
módulo de código en el menú principal de Visual Basic marcamos en Proyecto/Agregar modulo y
aparecerá junto a los demás formularios de la ventana de proyecto aunque con un icono distinto
indicando que se trata de un módulo de código.

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 ejecución de la aplicación. De esta forma a entrar en algún
procedimiento las variables recuerdan el valor que tenían cuando se salió de él.

Tipos de datos
Boolean Solo acaepta 2 valores True o False Dim resp as Boolean
Date Permite operar con fechas Dim fecha as Date
Doble Admite valores decimales de doble precisión Dim num1#
precision
Integer Admite valores entre –32768 y 32767 Dim num2%
Long integer Admite valores entre -2.147.483.648 y 2.147.483.647 Dim sueldo&
Single Admite valores decimales con precisión simple Dim precio!
String Permite las cadenas de caracteres Dim cade1$
Variant Todo tipo de dato 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 matemáticos:
Operador Operación Ejemplos:
+ - * / Suma, resta, multiplicación, división. ((5+15) / 2) – 4 = 6 (6*2)+4 = 16
\ Mod ^ División entera, residuo, exponenciación. 3^2=9 9\3 =0
& Concatenación 5&2 = 52 67&3 = 673

Operadores de comparación:
Operador Operación Ejemplos:
= <> Igual, distinto a. 5 = (10/2) si 5 <> (10/2) no
> < Mayor que, menor que. 5 > 4 si 5 < 4 no
>= < = Mayor o igual que, menor o igual que. 3 >=4 no 3 <=4 si

Operadores lógicos:
Operador Operación Ejemplos:
And Or Y, o. ((edad>=1) and (edad<=5)) = niño
Not Xor Negación.

Nomenclatura para declarar variables:


• El nombre de la variable debe comenzar con letra, máximo 256 caracteres.
• Asigne nombres descriptivos, puede combinar mayúsculas, minúsculas y números

Ejemplos de variables:
Debe capturar el nombre y la dirección, 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 matemáticas:


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 ningún 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 códigos demasiado extensos y no recordará el nombre
exacto de la variable y con la siguiente instrucción forzará a Visual Basic a que cada una de las
variables que emplee en su programa, estén 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 .
Introducción a los Procedimientos.
Puede simplificar las tareas de programación si divide los programas en componentes lógicos más
pequeños. Estos componentes, llamados procedimientos, pueden convertirse en bloques básicos
que le permiten mejorar y ampliar Visual Basic.

Los procedimientos resultan muy útiles para condensar las tareas repetitivas o compartidas, como
cálculos utilizados frecuentemente, manipulación 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 lógicas discretas, cada una de
las cuales se puede depurar más fácilmente que un programa entero sin procedimientos.
• Los procedimientos que se utilizan en un programa pueden actuar como bloques de construcción
de otros programas, normalmente con pocas o ninguna modificación.

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 código que se ejecuta como respuesta a un evento. Al dividir
el código de un módulo en procedimientos Sub, es más sencillo encontrar o modificar el código de la
aplicación.
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 módulos estándar, módulos de clase y módulos de
formulario. De forma predeterminada, los procedimientos Sub son Public en todos los módulos, lo
que significa que se les puede llamar desde cualquier parte de la aplicación.
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 automáticamente
al procedimiento de evento utilizando el nombre correspondiente al evento. Como el nombre
establece una asociación entre el objeto y el código, se dice que los procedimientos de evento están
adjuntos a formularios y controles.
• Un procedimiento de evento de un control combina el nombre real del control (especificado en la
propiedad Name), un carácter de subrayado (_) y el nombre del evento. Por ejemplo, si desea
que un botón 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 carácter 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 más sencillo utilizar los procedimientos
de código que facilita Visual Basic, que incluyen automáticamente los nombres correctos de
procedimiento. Puede seleccionar una plantilla en la ventana Editor de código si selecciona un objeto
en el cuadro Objeto y selecciona un procedimiento en el cuadro Procedimiento.

También 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 también 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 código de un procedimiento necesita cierta información sobre el estado del programa
para realizar su trabajo. Esta información 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 función siguiente acepta una cadena y un entero:

Function QuéComer (DíaSemana As String, Hora As Integer) As String


' Devuelve el menú del almuerzo basándose en el día y la hora.
If DíaSemana = "Viernes" then
QuéComer = "Pescado"
Else
QuéComer = "Pollo"
End If
If Hora > 4 Then QuéComer = "Demasiado tarde"
End Function

Paso de argumentos por valor


Sólo se pasa una copia de la variable cuando se pasa un argumento por valor. Si el procedimiento
cambia el valor, el cambio afecta sólo 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
ubicación de dirección 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 expresión en vez de un tipo de dato como
argumento. Visual Basic evalúa la expresión y la pasa como el tipo requerido si puede.

La forma más sencilla de convertir una variable en una expresión es ponerla entre paréntesis. Por
ejemplo, para pasar una variable declarada como entero a un procedimiento que espera una cadena
como argumento, debería 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 (Decisión y Repetición).


Estructura: If – Else – End If.
Use la estructura If...Then para ejecutar una o más instrucciones basadas en una condición. Puede
utilizar la sintaxis de una línea o un bloque de varias líneas:
If condición Then
instrucciones
End If

Condición normalmente es una comparación, pero puede ser cualquier expresión que dé como
resultado un valor numérico. Visual Basic interpreta este valor como True o False; un valor numérico
cero es False y se considera True cualquier valor numérico distinto de cero. Si condición es True,
Visual Basic ejecuta todas las instrucciones que siguen a la palabra clave Then. Puede utilizar la
sintaxis de una línea para ejecutar una instrucción basada en una condición:

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 condición1 Then
[bloque de instrucciones 1]
[Else
[bloque de instrucciones n]]
End If

Visual Basic evalúa primero condición1. Si es False, Visual Basic ejecuta el bloque de instrucciones
correspondientes a Else y después ejecuta el código 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 aplicación podría 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 instrucción
Select Case ofrece posibilidades similares a la instrucción If...Then...Else, pero hace que el código
sea más legible cuando hay varias opciones.

La estructura Select Case funciona con una única expresión de prueba que se evalúa una vez
solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresión con los
valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de instrucciones
asociado a ese Case:
Select Case expresión_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 más valores. Si hay más de un valor en una lista, se
separan los valores con comas. Cada bloque de instrucciones contiene cero o más instrucciones. Si
más de un Case coincide con la expresión de prueba, sólo se ejecutará el bloque de instrucciones
asociado con la primera coincidencia. Visual Basic ejecuta las instrucciones de la cláusula (opcional)
Case Else si ningún valor de la lista de expresiones coincide con la expresión de prueba.
Por ejemplo, suponga que agrega otro comando al menú Edición en el ejemplo If...Then...Else.
Podría agregar otra cláusula ElseIf o podría escribir la función con Select Case:

Por ejemplo, suponga que agrega ^tres botones de comando a su formulario, pero además los
establece como matriz. Podría agregar el código 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 Repetición
Do While – Loop / Do – Loop While.
Utilice el bucle Do para ejecutar un bloque de instrucciones un número indefinido de veces. Hay
algunas variantes en la instrucción Do...Loop, pero cada una evalúa una condición numérica para
determinar si continúa la ejecución. Como ocurre con If...Then, la condición debe ser un valor o una
expresión que dé como resultado False (cero) o True (distinto de cero).
Do...Loop siguiente, las instrucciones se ejecutan siempre y cuando condición sea True:

Do While condición
instrucciones
Loop

Cuando Visual Basic ejecuta este bucle Do, primero evalúa condición. Si condición es False (cero),
se salta todas las instrucciones. Si es True (distinto de cero), Visual Basic ejecuta las instrucciones,
vuelve a la instrucción Do While y prueba la condición de nuevo.

Por tanto, el bucle se puede ejecutar cualquier número de veces, siempre y cuando condición sea
distinta de cero o True. Nunca se ejecutan las instrucciones si condición es False inicialmente. Por
ejemplo, este procedimiento pide al usuario, un numero y después 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 más veces Hace el bucle al menos una vez
Do Until condición Do
instrucciones instrucciones
Loop Loop Until condición

Estructura de Repetición: For – Next.


Los bucles Do funcionan bien cuando no se sabe cuántas veces se necesitará ejecutar las
instrucciones del bucle. Sin embargo, cuando se sabe que se van a ejecutar las instrucciones un
número determinado de veces, es mejor elegir el bucle For…Next. A diferencia del bucle Do, el
bucle For utiliza una variable llamada contador que incrementa o reduce su valor en cada repetición
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 numéricos.


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 ejecutarán 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 después cuenta cuantos números están entre 0-
50 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 básicos:
• Introducción al uso de controles • Control CommandButton (Botones de comando)
• Control TextBox (Cajas de texto) • Control OptionButton (Botones de opción)
• Control Label (Etiquetas) • Control Frame (Marco)

Antes de empezar a conocer los controles básicos veamos cuales son sus características 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 operación sobre el
control. Por ejemplo el control ListView ( la lista de archivos que aparece en el explorador de
windows) dispone del método 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 ratón o hacer clic sobre su botón. En Visual
Basic digamos que se utiliza la programación orientada a eventos, lo cual es una de las
diferencias más importantes respecto a la programación lineal de MS DOS. No necesitamos
detectar cuando se ha producido un evento determinado, Windows lo detecta automáticamente.
Los eventos ya están definidos, son bastantes y cada control cuenta con los suyos propios,
aunque son muy parecidos. Lo único que tendremos que hacer es asociar el código 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 situación del formulario en pantalla,
simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el
tamaño 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 botón 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 diseño o ejecución. También podemos tomar el texto que haya introducido el usuario
para tratarlo durante la ejecución.

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 código. En un
mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un
nombre que represente la función que tiene el control en la aplicación para que el código quede
más claro. Ejemplo, si en el textbox vamos a introducir la dirección de una persona podemos
asignarle a esta propiedad el valor Dirección.

MultiLine: Permite que introduzcamos varias lineas de texto en el control en lugar de sólo una.

Alignment: Alineación 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 tamaño de letra.

METODOS
Recordemos que por métodos 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 básicos que vamos a ver en este capítulo únicamente contienen métodos
avanzados que no vamos a analizar por ahora, ya que son métodos que no se suelen utilizar. Si
alguien está interesado en conocer todas las características 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 continuación F1 obtendrá ayuda referente a ese control.

EVENTOS
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento
del ratón. A estos eventos se les puede asociar código para que se ejecute al producir el evento.
MouseMove: al mover el ratón por encima del control.

Mousedown: al pulsar cualquier botón del ratón

Change: al cambiar el contenido del control

Click: al hacer clic con el botón izquierdo del ratón sobre el control

Doubleclick: al hacer doble clic con el botón izquierdo del ratón sobre el control

Getfocus: este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el
control en tiempo de ejecución para introducir datos en él o realizar alguna operación.

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 pequeño ejemplo en el que teniendo un
único control de este tipo en un formulario, lo programaremos de forma que al pasar el ratón 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 aplicación, 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 ratón por el control aparezca su contenido
en el formulario. Entonces lo que habrá que hacer abrir la ventana de código, seleccionando el
control y pulsando F7, o con el botón derecho del ratón y la opción 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 sección Proc, en
nuestro caso mousemove y a continuación teclear el código correspondiente: La instrucción 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 pequeña aplicación pulsando F5 observaremos como aparece en el formulario lo que
hayamos tecleado en el control cada vez que movemos el ratón sobre el Textbox.
Podemos modificar el programa para que responda a cualquier otro evento sin más que seleccionarlo
en la sección Proc e introduciendo el código que sea necesario.

Label
Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la
visualización de datos en el mismo, no permitiendo la introducción 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
tamaño que queramos y asignarle un texto en tiempo de diseño o de ejecución 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 demás controles que tengamos en la aplicación o para indicarnos acciones que
podemos realizar. En el ejemplo anterior donde aparecía 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: Alineación 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 ejecución de la aplicación. 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 típico botón que aparece en todas las aplicaciones y que al hacer clic sobre él nos
permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el
código que le asociemos podremos realizar las operaciones que queramos.

En el ejemplo anterior podemos añadir un control de este tipo para salir de la aplicación sin tener
pulsar sobre la equis de la esquina superior derecha.

Pero sólo con introducir un control de este tipo con el texto salir que se introduce a través de la
propiedad caption no basta. Habrá que asociarle un código que nos permita salir de la aplicación en
el evento adecuado. Y el evento por excelencia de este control es clic. Así pues accederemos al
código del control y la sentencia nos permitirá salir de la aplicación es End, simplemente tecleamos
esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicación al pulsar
sobre dicho botón.

PROPIEDADES
Caption: Aquí ponemos el texto que queremos que aparezca en el botón: aceptar, cancelar, salir, etc.

Enabled: Esta es una nueva propiedad, cuando su valor es true el botón funciona normalmente,
cuando su valor es false el botón se encuentra desactivado, no responde a los eventos
producidos sobre él y el texto aparece en un gris claro advirtiéndonos de su estado. Podemos
utilizar esta propiedad para activar o desactivar un botón dependiendo del estado de otros
controles. Por ejemplo, en un botón Aceptar, no activarlo hasta que se haya introducido una
cantidad en un control textbox, ya que ese botón nos calculará el IVA de la cantidad.

EVENTOS
Click: Es el evento típico de este control y el que más se utiliza.

MouseMove: Como sabemos detecta el movimiento del ratón sobre el control. Puede servir para que
aparezca un mensaje en un control Label que nos aporte información sobre la utilidad del
control ampliando el texto que hayamos colocado como caption del commandbutton.

OptionButton
Este control nos permite elegir una opción entre varias de las que se
nos plantean. Cada opción será un control optionbutton diferente.

Facilita la introducción 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, sólo podremos activar una. Si
activamos cualquier otra opción, se desactivará automáticamente la última que teníamos 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 sólo por
motivos de presentación sino porque de esta manera podremos establecer grupos de controles
optionbutton independientes en los que en cada grupo sólo pueda haber una opción activada a la vez.
También, al mover el marco se moverán los controles incluidos en él facilitándonos 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 tamaño adecuado y después 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 opción ha activado el usuario comprobaremos el estado de esta propiedad.

Alignment: Alineación 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
código 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 métodos con los que se puede controlar su
apariencia y comportamiento.
El primer paso para diseñar un formulario consiste en establecer sus propiedades. Puede establecer
las propiedades de un formulario en tiempo de diseño en la ventana Propiedades o en tiempo de
ejecución, escribiendo código.

Nota En tiempo de diseño, que es cualquier momento mientras está desarrollando una aplicación en
el entorno de Visual Basic, se trabaja con formularios y controles, se establecen propiedades y se
escribe código para los eventos. Tiempo de ejecución es cualquier momento mientras se ejecuta
realmente la aplicación y sé interactúa con ella como lo haría un usuario.

Estableciendo las Propiedades más importantes de los formularios.


Muchas propiedades de un formulario afectan a su apariencia física. La propiedad Caption determina
el texto que muestra la barra de título 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 tamaño del formulario.

Las propiedades Height y Width determinan el tamaño inicial de un formulario, mientras que las
propiedades Left y Top determinan la ubicación del formulario en relación 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 código. 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 más 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
aplicación para ver su efecto. Puede aprender más sobre cada propiedad si la selecciona y presiona
F1 para ver Ayuda contextual.

Eventos y Métodos de los formularios.


Como objetos que son, los formularios pueden ejecutar métodos y responder a eventos.
El evento Resize de un formulario se desencadena siempre que se cambia el tamaño de un
formulario, ya sea por una acción del usuario o a través del código. Esto permite realizar acciones
como mover o cambiar el tamaño 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 aplicación se convierte en activo. Estos
eventos son adecuados para iniciar o finalizar acciones del formulario. Por ejemplo, en el evento
Activate podría escribir código para resaltar el texto de un determinado cuadro de texto; con el evento
Deactivate podría guardar los cambios efectuados en un archivo o en una base de datos.

Para hacer visible un formulario se invoca el método Show:


Form2.Show

Para descargar un formulario (cerrarlo), se invoca al método 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 método Hide:
Form2.Hide

Invocar el método Show tiene el mismo efecto que establecer a True la propiedad Visible del
formulario.
Muchos métodos de un formulario implican texto o gráficos. Los métodos 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 aplicación.


De forma predeterminada, el primer formulario de la aplicación es el formulario inicial. Cuando la
aplicación inicia la ejecución, se presenta este formulario (el primer código que se ejecuta es el del
evento Form_Initialize de dicho formulario). Si quiere presentar un formulario diferente cuando se
inicie la aplicación, 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 aplicación se inicie sin cargar ningún formulario. Por ejemplo,
puede que desee ejecutar código que cargue un archivo de datos y después presentar uno de entre
varios formularios, según el contenido de dicho archivo. Puede hacerlo creando un procedimiento
Sub llamado Main en un módulo estándar, como en el siguiente ejemplo:

Sub Main()
Dim intStatus As Integer
' Llamar a un procedimiento de función para comprobar el estado
' del usuario.
intStatus = GetUserStatus
' Mostrar un formulario inicial distinto según 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 módulo 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 más Comunes de Visual Basic.
e Asc
Devuelve un tipo Integer que representa el código de carácter correspondiente a la primera letra de
una cadena.
Sintaxis: Asc(cadena)
El argumento obligatorio cadena es una expresión de cadena válida. Si cadena no contiene
caracteres, se produce un error en tiempo de ejecución.
Ejemplo de la función Asc
En este ejemplo se utiliza la función Asc para devolver el código de carácter correspondiente a la
primera letra de una cadena de caracteres.
Dim MiNúmero
MiNúmero = Asc("A") ' Devuelve 65.
MiNúmero = Asc("a") ' Devuelve 97.
MiNúmero = Asc("Apple") ' Devuelve 65.

e Date
Devuelve un tipo Variant (Date) que contiene la fecha actual del sistema.
Sintaxis: Date
Comentarios
Utilice la instrucción Date para establecer la fecha del sistema.
Ejemplo de la función Date
En este ejemplo se utiliza la función 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 expresión formateada de acuerdo a las
instrucciones contenidas en una expresión de formato.
Sintaxis: Format(expresión[, formato[, primerdíadesemana[, primerdíadeaño]]])
La sintaxis de la función Format consta de las siguientes partes:
Parte Descripción
Expresión Obligatorio. Cualquier expresión válida.
Formato Opcional. Una expresión de formato definida por el usuario o con nombre válido.
Primerdiasemana Opcional. Una constante que especifica el primer día de la semana.
Primerdiadeaño Opcional. Una constante que especifica la primera semana del año.
Valores
El argumento primerdíadesemana tiene estos valores:
Constante Valor Descripción Constante Valor Descripción
VbUseSystem 0 Utiliza el valor de API NLS. VbWednesday 4 Miércoles
VbSunday 1 Domingo (predeterminado) VbThursday 5 Jueves
VbMonday 2 Lunes VbFriday 6 Viernes
VbTuesday 3 Martes vbSaturday 7 Sábado
El argumento primerdíadeaño tiene estos valores:
Constante Valor Descripción
VbUseSystem 0 Utiliza el valor de API NLS.
VbFirstJan1 1 Comienza con la semana donde está el 1 de enero
(predeterminado).
VbFirstFourDays 2 Comienza con la primera semana del año que tenga
cuatro días como mínimo.
VbFirstFullWeek 3 Comienza con la primera semana completa del año.
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 función Format
En este ejemplo se muestran varios usos de la función 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 configuración regional del
código. Cuando son presentados por el código en ejecución, se utilizan los formatos abreviados de
fecha y hora de la configuración regional del sistema, los cuales pueden diferir de la configuración
regional del código. En este ejemplo se asume que es Inglés/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 "Miércoles, 05 de Sept de 2001”

' Formatos definidos por el usuario.


MiCadena = Format(5459.4, "##,##0.00") ' Devuelve "5.459,40".
MiCadena = Format(334.9, "###0.00") ' Devuelve "334,90".
MiCadena = Format(5, "0.00%") ' Devuelve "500,00%".
MiCadena = Format("HOLA", "<") ' Devuelve "hola".
MiCadena = Format("Esto es", ">") ' Devuelve "ESTO ES".

e InputBox
Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en
un botón 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 función InputBox consta de estos argumentos con nombre:
- Prompt: Requerido. Expresión de cadena que se muestra como mensaje en el cuadro de diálogo.
La longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los
caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un
carácter de retorno de carro (Chr(13)), un carácter de avance de línea (Chr(10)) o una combinación
de los caracteres de retorno de carro-avance de línea (Chr(13) y Chr(10)) entre cada línea y la
siguiente.
- title: Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si
omite title, en la barra de título se coloca el nombre de la aplicación.
- default: Opcional. Expresión 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 vacío.
- xpos: Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal
entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos,
el cuadro de diálogo se centra horizontalmente.
- ypos: Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el
borde superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite ypos, el cuadro
de diálogo 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. Expresión de cadena que identifica el archivo de Ayuda que se utilizará para
proporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá
especificarse context.
- Context: Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarse
helpfile.

Ejemplo de la función InputBox


En este ejemplo se muestran distintas maneras de utilizar la función InputBox para indicar al usuario
que debe introducir un valor. Si se omiten las posiciones x e y, el diálogo se centra automáticamente
según 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, Título, ValorPred, MiValor
Mensaje = " Introduzca un número del 1 a 3" ' Establece el mensaje.
Título = "Demostración de InputBox" ' Establece el título.
ValorPred = "1" ' Establece el valor predeterminado.
' Muestra el mensaje, el título, y el valor predeterminado.
MiValor = InputBox(Mensaje, Título, ValorPred)
' Muestra el mensaje, el título y el valor predeterminado.
MiValor = InputBox(Mensaje, Título, , , , "DEMO.HLP", 10)
' Se muestra el diálogo en la posición 100, 100.
MiValor = InputBox(Mensaje, Título, ValorPred, 100, 100)

e IsDate
Devuelve un valor de tipo Boolean que indica si una expresión se puede convertir en una fecha.
Sintaxis: IsDate(expresión)
El argumento expresión requerido, es un tipo de datos Variant que contiene una expresión de fecha o
una expresión de cadena reconocible como una fecha o una hora.

Ejemplo de la función IsDate


En este ejemplo se utiliza la función IsDate para determinar si una expresión 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 número especificado de caracteres del lado
izquierdo de una cadena.
Sintaxis: Left(string, length)
La sintaxis de la función Left tiene estos argumentos con nombre:
string Obligatorio. Expresión de cadena de la cual se devuelven los caracteres que están más a la
izquierda. Si string contiene Null, se devuelve Null.
length Se requiere, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se van
a devolver. Si es 0, devuelve una cadena de longitud cero (""). Si es mayor o igual al número 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 función Left
En este ejemplo se utiliza la función Left para devolver un número 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 número de caracteres en una cadena o el número de bytes
necesarios para almacenar una variable.
Sintaxis: Len(cadena | nombrevar)
La sintaxis de la función Len consta de las siguientes partes:
Cadena,Cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.
Nombrevar, cualquier nombre de variable válido. Si nombrevar contiene Null, se devuelve Null. Si
nombrevar es un tipo Variant, Len actúa igual que con un tipo String y siempre devuelve
el número de caracteres que contiene.

Ejemplo de la función Len


En este ejemplo se utiliza la función Len para devolver el número de caracteres en una cadena o el
número 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 gráfico en un control PictureBox o un control Image.
Sintaxis: LoadPicture([expresión_cadena])
El marcador de posición expresión_cadena es el nombre del archivo gráfico que se quiere cargar.

Comentarios
Los formatos gráficos 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 gráficos 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 función LoadPicture a la
propiedad Icon del objeto Form:
Set Form1.Icon = LoadPicture("MIICONO.ICO")

Ejemplo de la función LoadPicture


Este ejemplo usa la función 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 código en la
sección Declaraciones de un objeto Form y después 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 expresión de cadena válida. 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 función 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 función Trim por sí sola logra el mismo resultado.
CadenaCorte = Trim(MiCadena) ' CadenaCorte = "<-Cortar->".

Κ Mid
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres de una
cadena.
Sintaxis: Mid(string, start[, length])
La sintaxis de la función Mid tiene estos argumentos con nombre:
string Obligatorio. Expresión de cadena de la cual se devuelven los caracteres. Si string contiene
Null, se devuelve Null.
start Obligatorio; un tipo Long. Posición de carácter en string en la cual comienza la parte que se
quiere tomar. Si start es mayor que el número de caracteres en la string, Mid devuelve una cadena
de longitud cero ("").
length Opcional, un tipo Variant (Long). Número de caracteres que se van a devolver. Si se omite o
en el texto hay menos de length caracteres (incluyendo el carácter de start), se devuelven todos los
caracteres desde la posición de start hasta el final de la cadena.

Ejemplo de la función Mid


En este ejemplo se utiliza la función Mid para devolver un número especificado de caracteres de una
cadena.

Dim MiCadena, PrimeraPalabra, UltimaPalabra, PalabraMedia


MiCadena = "Demostración función 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) ' Devuelve "Demostración".
UltimaPalabra = Mid(MiCadena, 21, 3) ' Devuelve "Mid".
PalabraMedia = Mid(MiCadena, 14) ' Devuelve "función Mid".

Κ MsgBox
Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y
devuelve un tipo Integer correspondiente al botón elegido por el usuario.
Sintaxis: MsgBox(prompt[, buttons][, title][, helpfile, context])
La sintaxis de la función MsgBox consta de estos argumentos con nombre:
- prompt: Requerido. Expresión de cadena que representa el prompt en el cuadro de diálogo. La
longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los
caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un
carácter de retorno de carro (Chr(13)) o un carácter de avance de línea (Chr(10)), o una
combinación de caracteres de retorno de carro-avance de línea (Chr(13) y Chr(10)) entre cada línea
y la siguiente.
- buttons: Opcional. Expresión numérica que corresponde a la suma de los valores que especifican
el número y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la
identidad del botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este
argumento, el valor predeterminado para buttons es 0.
- title: Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si
se omite title, en la barra de título se coloca el nombre de la aplicación.
- helpfile: Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para
proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe
especificar context.
-context: Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar
helpfile.
Valores
El argumento buttons tiene estos valores:
Constante Valor Descripción
VbOKOnly 0 Muestra solamente el botón Aceptar.
VbOKCancel 1 Muestra los botones Aceptar y Cancelar.
VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.
VbYesNoCancel 3 Muestra los botones Sí, No y Cancelar.
VbYesNo 4 Muestra los botones Sí y No.
VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.
VbCritical 16 Muestra el icono de mensaje crítico.
VbQuestion 32 Muestra el icono de pregunta de advertencia.
VbExclamation 48 Muestra el icono de mensaje de advertencia.
VbInformation 64 Muestra el icono de mensaje de información.
VbDefaultButton1 0 El primer botón es el predeterminado.
VbDefaultButton2 256 El segundo botón es el predeterminado.
VbDefaultButton3 512 El tercer botón es el predeterminado.
VbDefaultButton4 768 El cuarto botón es el predeterminado.
VbApplicationModal Aplicación modal; el usuario debe responder al cuadro de mensajes
antes de poder seguir trabajando en la aplicación actual.
VbSystemModal 4096 Sistema modal; se suspenden todas las aplicaciones hasta que el
usuario responda al cuadro de mensajes.

El primer grupo de valores (0 a 5) describe el número y el tipo de los botones mostrados en el cuadro
de diálogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512)
determina el botón 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 números para obtener el valor final del argumento buttons, se utiliza
solamente un número 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 código en vez de sus valores reales.
Valores devueltos:
Constante Valor Descripción Constante Valor Descripción
vbOK 1 Aceptar vbIgnore 5 Ignorar
VbCancel 2 Cancelar VbYes 6 Sí
VbAbort 3 Anular VbNo 7 No
VbRetry 4 Reintentar

Ejemplo de la función MsgBox


En este ejemplo se utiliza la función MsgBox para mostrar un mensaje de error crítico en un cuadro
de diálogo con botones Sí y No. El botón No se considera la respuesta predeterminada. El valor
devuelto por la función MsgBox depende del botón elegido por el usuario. En este ejemplo, se
supone que DEMO.HLP es un archivo de Ayuda que contiene un tema con un número de contexto
igual a 1000.

Dim Mensaje, Estilo, Título, Ayuda, Ctxt, Respuesta, MiCadena


Mensaje = "¿Desea continuar?" ' Define el mensaje.
Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones.
Título = "Demostración de MsgBox" ' Define el título.
Ayuda = "DEMO.HLP" ' Define el archivo de ayuda.
Ctxt = 1000 ' Define el tema
Respuesta = MsgBox(Mensaje, Estilo, Título, Ayuda, Ctxt)
If Respuesta = vbYes Then ' El usuario eligió el botón Sí.
MiCadena = "Sí" ' Ejecuta una acción.
Else ' El usuario eligió el botón No.
MiCadena = "No" ' Ejecuta una acción.
End If

Κ Right
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado
derecho de una cadena.
Sintaxis: Right(string, lenght)
La sintaxis de la función Right tiene estos argumentos con nombre:
String Obligatorio. Expresión de cadena desde la cual se devuelven los caracteres que están más a
la derecha. Si string contiene Null, se devuelve Null.
Lenght se requiere, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se
van a devolver. Si es 0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al número
de caracteres en string, se devuelve la cadena completa.

Ejemplo de la función Right


En este ejemplo se utiliza la función Right para devolver un número 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 representación de cadena de un número.
Sintaxis: Str(número)
El argumento número necesario es un tipo Long que contiene una expresión numérica válida.
Comentarios
Cuando los números se convierten a cadenas, siempre se reserva un espacio a la izquierda para el
signo del número. Si número es positivo, la cadena devuelta contiene un espacio a la izquierda y el
signo más se da por supuesto.
Utilice la función Format para convertir valores numéricos en valores con formato de fecha, hora,
moneda o en otros formatos definidos por el usuario. A diferencia de Str, la función Format no incluye
un espacio a la izquierda para el signo del número.
Nota La función Str sólo reconoce el punto (.) como separador decimal válido.

Ejemplo de la función Str


En este ejemplo se utiliza Str para devolver una representación de cadena de un número. Cuando un
número 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
mayúsculas.
Sintaxis: UCase(cadena)
El argumento cadena necesario es cualquier expresión de cadena válida. Si string contiene Null, se
devuelve Null.

Ejemplo de la función UCase


En este ejemplo se utiliza la función UCase para devolver la versión en mayúsculas de una cadena.
Dim LowerCase, UpperCase
LowerCase = "Hola Mundo 1234" ' Cadena a convertir.
UpperCase = UCase(LowerCase) ' Devuelve "HOLA MUNDO 1234".

Κ Val
Devuelve los números contenidos en una cadena como un valor numérico del tipo adecuado.
Sintaxis: Val(cadena)
El argumento obligatorio cadena es cualquier expresión de cadena válida.

Ejemplo de la función Val


En este ejemplo se utiliza la función Val para devolver los números 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 .
Diseñando Bases De Datos En Visual Basic

La construcción de un programa informático necesita un buen diseño si se quiere obtener un buen


producto final; esto es muy importante en la generación de aplicaciones de Bases de Datos.

El diseño de una aplicación de Base de Datos no solamente consiste en la configuración de las


rutinas del programa, sino en el diseño físico y lógico del almacenamiento de los datos. Debe
proporcionar tiempos mínimos de búsqueda y un almacenamiento de los datos de la forma más eficaz
y fácil posible. También 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 información, que generalmente se encuentra


organizada en un orden particular. En las Bases de Datos "relacionales", la información se almacena
en múltiples 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 información.

Registro, una entrada de una tabla; la entrada consiste en cierto número de campos de datos.

Campo, un elemento específico 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 específico y
pueden utilizarse para los datos presentes en la base de datos en ese orden.

Consulta, un comando de SQL diseñado para recuperar cierto grupo de registros de una o más tablas
o para realizar una operación 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 clasificación para determinar qué datos han de procesarse o visualizarse. Un filtro es una
condición impuesta a los datos, como "ciudades que contengan la S".

Decisiones A Tomar En El Diseño


La creación de un buen diseño comprende estas actividades principales:
¾ Diseño de la aplicación
¾ Determinación de la información necesaria para la aplicación
¾ Organización de la información en tablas
¾ Establecimiento de las relaciones entre tablas
¾ Especificación de índices y requisitos de validación para los datos
¾ Creación y almacenamiento de las consultas necesarias para la aplicación
¾ Revisión y prueba del diseño

Operaciones más Comunes en las Bases de Datos:


Agregar o incluir nuevos datos (altas), eliminar o borrar datos(bajas), corrección o actualización de
datos(modificación), mostrar datos en un formato determinado ya sea en pantalla o impresa(listado),
localización o búsqueda de datos(consultas), mostrar informes impresos o en pantalla(reportes).

Determinación De Los Datos Que Requiere La Aplicación


Parte del proceso de diseño 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
información.
La inconsistencia, cuando almacena datos en los campos que no corresponde.

Controles para Diseñar 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 ejecución (por medio de código), al igual que la tabla con sus campos.

Independientemente de la manera que elija o utilice, los controles más 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á diseñado para proporcionar un medio fácil 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 vínculos con la base de datos y el conjunto de registros con
los que hemos de trabajar. Hacer esto requiere mucho menos trabajo que la especificación de todas
las funciones mediante código.

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 tendríamos en el
programa y llevan a cabo las funciones equivalentes de los métodos 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 aplicación. Para ello, primeramente hay que seleccionar el objeto de control de datos
en la Caja de Herramientas de Visual Basic. Después, hay que colocar y dar tamaño al control de
datos al igual que se hace con cualquier otro objeto dibujado. A continuación 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 también el nombre del objeto conjunto de registros
que se va a utilizar con los comandos de programa que precisa la aplicación. El nombre
predeterminado para el primer control de datos agregado a un formulario es Data1; los siguientes
controles que se agreguen serán Data2, Data3, etc. Seleccionando la propiedad Name en la ventana
de Propiedades (Properties) y escribiendo el nombre deseado, se puede modificar fácilmente el
nombre implícito.

La propiedad Caption (título) especifica el texto que aparece en el control de datos. Generalmente se
utiliza para describir los accesos al control. Por defecto, aparece la especificación 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 mínimas. El
establecimiento de las dos propiedades citadas define la información 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 también 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 código. 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 diálogo Propiedades y tecleándolo o eligiéndolo en la
lista.
Para seleccionar el nombre de la base de datos en el cuadro de diálogo, basta hacer clic en el
botón puntos suspensivos (...) a la derecha de la línea de entrada de la propiedad. Esta acción
muestra el cuadro de diálogo 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
Después de diseñar la base de datos, es preciso especificar la información 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 información seleccionada en una tabla o utilizar información de
múltiples tablas empleando una instrucción de SQL. Para definir el conjunto de registros utilizando
una instrucción de SQL, hay que establecer la propiedad RecordSource para el nombre de una
QueryDef (que contiene la instrucción de SQL) de la base de datos o insertar una instrucción de
SQL válida que genere una dynaset (también es posible incluir funciones en la instrucción 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 instrucción 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 configuración de la propiedad RecordsetType. Para ello, hay que seleccionar el tipo
deseado en una lista desplegable del cuadro de diálogo Propiedades.

4) Propiedades Bof y Eof


Las propiedades de acción 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 método 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 método 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 método AddNew para configurar el conjunto de registros para la adición 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 diálogo Propiedades. La especificación AddNew de la propiedad EOFAction puede ser
de utilidad si la aplicación agrega muchos registros nuevos. Al igual que con las otras propiedades
del control de datos, puede darse a éstas otros valores en tiempo de ejecución.

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 botón Siguiente). No tienen efecto si se
llega a principio o a fin de archivo utilizando métodos 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 demás pueden o no acceder a la base de datos, mientras la aplicación
está en uso. La propiedad se fija a Verdadero (la aplicación es la única que puede acceder a la
base de datos) o a Falso (los demás pueden también acceder. El valor predeterminado es Falso.
¾ Readonly: Determina si la aplicación puede o no modificar los datos del conjunto de registros
definido. La propiedad se fija a Verdadero (la aplicación no puede modificar los datos) o a Falso
(la aplicación 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, después agregar un Data control
en el formulario, posteriormente realizar el diseño del formulario (obviamente el total de campos que
desea capturar, debe ser igual al numero de Textbox que debe agregar al formulario). A continuación
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 alfanuméricos. El control caja de texto es útil pata teclear datos alfanuméricos 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 Dirección
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 .
Colocación 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 métodos para desplazarse de un registro a otro dentro de los conjuntos de registros.

Visual Basic facilita cuatro clases de esos métodos:


¾ Métodos Move: cambian la posición del puntero del registro en uso hasta otro.
¾ Métodos Find: Localizan el siguiente registro que cumpla la condición. Estos métodos funcionan
con Dynaset y Snapshot.
¾ Métodos Seek: Hallan el primer registro de una tabla que cumpla la condición.

Uso De Los Metodos Move


Se pueden emplear los métodos 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 más hacia delante (si n es positivo) o hacia atrás (si n
es negativo). Si el desplazamiento sitúa el puntero más allá del final del conjunto de registros
(BOF o EOF), se produce un error.

Estos comandos llevan el puntero al registro indicado, según el orden establecido en el conjunto de
registros. El orden actual es el físico (a menos que se fije un índice para una tabla, una dynaset o una
snapshot).

Para mostrar el uso de los métodos anteriores, agregaremos botones de comando a la máscara de
entrada de datos, de forma que el usuario pueda desplazarse en el conjunto de datos (ver gráfico).
Para activarlos, agregaremos el código del listado que sigue, en el código de cada botón.

Asignacion del Move para el funcionamiento de los botones de comando de desplazamiento


' El método MoveFirst (ir al principio), activa el botón "Primero"
Data1.Recordset.MoveFirst

' El método MovePrevious (ir al anterior), activa el botón "Anterior"


Data1.Recordset.MovePrevious

' El método MoveNext (ir al siguiente) , activa el botón "Siguiente"


Data1.Recordset.MoveNext

' El método MoveLast (ir al último) , activa el botón "Último"


Data1.Recordset.MoveLast

El método Move n permite desplazarse más de un registro a partir de la posición actual. El valor de n
es el número de registros a trasladarse en el conjunto de registros. Este valor puede ser positivo o
negativo, para desplazarse adelante o atrás.

El siguiente código muestra el uso de este método 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 múltiples. Las definiciones están en la tabla siguiente:
Propiedad Indica
BOF Indicador de principio de archivo que señala si el puntero está en el primer registro
(BOF = Verdadero) o no (BOF = Falso)
EOF Indicador de final de archivo que señala si el puntero está en el último registro (EOF =
Verdadero) o no (EOF = Falso)
RecordCount Indica el número de registros a los que se ha accedido. Produce un recuento del total
de registros del conjunto de registros solamente después de accederse al último
registro (por ejemplo, empleando un método MoveLast)
NoMatch Indica que el último método de búsqueda 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 método AddNew que no agrega el registro en el momento,
sino que despeja el buffer de copia para permitir que la información del nuevo registro entre. Veamos:

Uso de Addnew para Agregar Un Registro


' Coloca un registro en blanco, para agregar información
Data1.Recordset.AddNew
Text1.Setfocus

Nota: Dado que AddNew sitúa la información solamente en el buffer de copia, si se cancela el método
AddNew o se desplaza el puntero de registros con cualquier método Move o First se despeja el
buffer de copia y toda la información se pierde.

Edición (Modificación o Actualización) de Registros


Igual a la adición de registros, se usa el método Edit para aplicar modificaciones a un registro. Este
método sitúa una copia del contenido del registro en el buffer de copia, de forma que pueda
modificarse la información. Las modificaciones sólo tiene efecto cuando se ejecuta el método Update.

Uso de Edit y Update para Modificar los Datos


' Uso del método 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 método Edit para establecer los cambios del registro
Data1.Recordset.Edit
Text1.Setfocus

' Uso del método Update para guardar los cambios en el Recordset
Data1.Recordset.Update

' Uso del método Refresh para actualizar los cambios de la base de datos
Data1.Refresh

Nota: Las modificaciones sólo tiene efecto cuando se ejecuta el método 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 .
Eliminación o Borrado de Registros
Borrar un registro precisa el uso del método Delete, que se muestra a continuación. Este método
elimina el registro del conjunto de registros y pone el puntero a cero.

Uso de Delete para Eliminar Un Registro


' Uso del método 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 método Delete para borrar el registro


Data1.Recordset.Delete
MsgBox(“Dato eliminado”)
Data1.Refresh

Precaución: Si se borra o elimina un registro, se pierde la información. Debe tener cuidado al usar el
Delete, pues la información no se puede recuperar.

Uso de los Metodos Find para encontrar Datos Específicos


Los métodos Find (hallar) están disponibles solamente para uso en dynaset y snapshot. No se
pueden emplear en objetos tabla. Se utilizan para localizar registros que cumplan criterios específicos

Los cuatro métodos 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 ubicación actual, busca el siguiente registro que cumpla con los
criterios.
¾ FindPrevious: comenzando por la ubicación 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.

Después de ejecutar este método, hay que comprobar el estado de la propiedad NoMatch. Si es
verdadero, el método ha fallado al hallar un registro que cumpliera los criterios. Si es falso, el puntero
está situado en un registro encontrado. A continuación se muestra el uso de los métodos Find.

Como Desplazarse en los Registros Seleccionados de una Dynaset con los Métodos Find
' Especificar los criterios de búsqueda para los métodos Find
Criterio = !Ciudad = “ MORELIA ”

' Hallar el primer registro que cumpla la condición


Desactiva ‘ Procedim. que desactiva los botones y solo deja activo un Botón 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 .
' Botón que permite avanzar a otros registros que coincidan el mismo criterio de búsqueda
Private Sub Command6_Click()
Data.Recordset.FindNext Criterio
If Data1.Recordset.Nomatch Then
Activa ‘Procedim. que activa los botones y desactiva el Botón avanzar
Data1.Recordset.MovePrevious
End if
If Data1.Recordset ! Ciudad <> “MORELIA” Then
Activa ‘Procedim. que activa los botones y desactiva el Botón avanzar
Data1.Recordset.MovePrevious
End if
End Sub

' Hallar el último registro que cumpla la condición


Desactiva ‘ Procedim. que desactiva los botones y solo deja activo un Botón para retroceder a otros registros
Data1.FindLast Criterio

' Botón que permite retroceder a otros registros que coincidan el mismo criterio de búsqueda
Private Sub Command7_Click()
Data.Recordset.FindPrevious Criterio
If Data1.Recordset.Nomatch Then
Activa ’Procedim. que activa los botones y desactiva el Botón retroceder
Data1.Recordset.MovePrevious
End if
If Data1.Recordset ! Ciudad <> “MORELIA” Then
Activa ‘Procedim. que activa los botones y desactiva el Botón retroceder
Data1.Recordset.MovePrevious
End if
End Sub

El método Find funciona explorando cada registro, empezando por el actual, para localizar el
adecuado que coincida con los criterios especificados. Según el tamaño del conjunto de registros y
esos criterios, esta operación puede ser algo lenta. Las búsquedas pueden optimizarse por medio del
motor Jet, si hay un índica disponible para cada campo de búsqueda. Si se han de realizar muchas
búsquedas, vale la pena generar un índice para el campo de la tabla base.

Empleo del Método Seek


El método Seek (buscar) es la forma más rápida de localizar un registro individual en una tabla (sin
embargo, también es el más limitado de los métodos).

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 parámetros del método 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 método Seek consiste en el método de llamada, el operador de comparación y los valores de los
campos clave. El operador de comparación 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 continuación.
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 búsqueda para los métodos Seek
desactiva ‘ Procedim. que desactiva los botones y solo deja activo un Botón 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 búsqueda con la condición deseada


Data1.Recordset.Seek “=”, cd

‘ Muestra la información 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 Botón siguiente
Data1.Recordset.MoveLast
End if

' Botón 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 Botón avanzar
Data1.Recordset.MovePrevious
End if
If Data1.Recordset!Ciudad <> cd Then
Activa ‘Procedim. que activa los botones y desactiva el Botón avanzar
Data1.Recordset.MovePrevious
End if
End Sub

Es preciso planificar con atención el comportamiento del método Seek. Cuando este método emplea
los operadores de comparación =, >=, > ó <>, 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 atrás 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
comparación y del criterio de ordenación del índice. Por ejemplo:
Operador de comparación Orden indexado Registro resultante
>=Guerra, A Ascendente Guerra, Alberto
<=Guerra, Z Ascendente Guerra, María
>= Guerra, A Descendente Hernández, Carlos
<= Guerra, Z Descendente Guerra, Teresa
Hay que prestar atención cuando se utilicen operadores > o < en un índice descendente. El operador
es interpretado como que hay que hallar el registro que se produzca después del valor clave
especificado. Por esta razón, la búsqueda >="Guerra" en un índice descendente devuelve
Hernández, Carlos. Con el operador < sucede lo mismo.
Es importante usar tanto el orden como los operadores con mucho cuidado con el método 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 menús
Creación de menús con el editor de menús.
Puede utilizar el Editor de menús para crear nuevos menús y barras de menús, agregar nuevos
comandos a menús existentes, reemplazar comandos de menú existentes por sus propios
comandos, y cambiar y eliminar menús y barras de menús existentes.
Para presentar el Editor de menús
• En el menú Herramientas, elija Editor de menús o Haga clic en el botón Editor de menús de la
barra de herramientas , después aparecerá el Editor de menús:
Shortcut, le permite seleccionar
Caption: es el texto que aparece una tecla de método abreviado
en el formulario para cada comando.
Name: es el nombre que se utiliza NegotiatePosition, le permite
para hacer referencia al control de seleccionar la propiedad
menús en el código del programa. NegotiatePosition del menú.
Index, le permite asignar un valor Esta propiedad determina si el
numérico que determina la menú aparece o no en un
posición del control en una matriz formulario contenedor y cómo
de controles. Esta posición no aparece.
tiene ninguna relación con la Enabled, le permite seleccionar
ubicación del control en la si el elemento del menú debe
pantalla. responder a eventos. Desactive
HelpContextID, le permite asignar esta opción si desea que el
un valor numérico único para el Id. elemento del menú no esté
de contexto. Este valor se utiliza disponible y aparezca atenuado.
para encontrar el tema de Ayuda Visible, le permite hacer que un
apropiado en el archivo de Ayuda Lista Menús, es un cuadro de
elemento aparezca en el menú.
identificado mediante la propiedad lista que muestra en orden
WindowList, determina si el
HelpFile. jerárquico todos los
control del menú contiene una
Checked, le permite hacer que elementos del menú. Los
lista de formularios secundarios
aparezca inicialmente una marca elementos de los submenús
MDI abiertos en una aplicación
de verificación a la izquierda de un aparecen indentados para
MDI.
elemento del menú. Se utiliza para indicar su ubicación o su
nivel en la jerarquía.
indicar si una opción de alternar
está activada o no.

Flecha a la derecha, pasa el menú seleccionado a un nivel inferior cada vez que hace clic en el
botón. Puede crear hasta cuatro niveles de submenús.
Flecha a la izquierda, pasa el menú seleccionado a un nivel superior cada vez que hace clic en el
botón. Puede crear hasta cuatro niveles de submenús.
Flecha arriba, cada vez que se hace clic en este botón, el elemento seleccionado del menú se
mueve hacia arriba una posición dentro del mismo nivel de menú.
Flecha abajo, cada vez que se hace clic en este botón, el elemento seleccionado del menú se
mueve hacia abajo una posición dentro del mismo nivel de menú.
Siguiente, selecciona la opción siguiente que contendrá el menú.
Insertar, inserta una línea en el cuadro de lista, inmediatamente encima de la línea actualmente
seleccionada.
Eliminar, elimina Borra la línea actualmente seleccionada.
Aceptar, cierra el Editor de menús y aplica todos los cambios efectuados en el último formulario
seleccionado. El menú está disponible en tiempo de diseño, pero si selecciona un menú en la fase
de diseño, se abre la ventana Código para el evento Clic de ese menú en lugar de ejecutarse el
código del evento.
Cancelar, cierra el Editor de menús 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 menús.


El cuadro de lista del control de menús (la parte inferior del Editor de menús) enumera todos los
controles de menús del formulario actual. Cuando escribe un elemento de menú en el cuadro de
texto Caption, dicho elemento también aparece en el cuadro de lista del control de menús. Si
selecciona un control de menús existente del cuadro de lista, podrá modificar las propiedades de
dicho control.

Por ejemplo, la figura del editor de menúes muestra los controles de menús del menú Archivo de una
aplicación típica. La posición del control de menús en el cuadro de lista del control de menús
determina si el control es un título de menú, un elemento de menú, un título de submenú o un
elemento de submenú:
• Un control de menús que aparezca alineado a la izquierda en el cuadro de lista se presenta en la
barra de menús como un título de menú.
• Un control de menús que esté sangrado una vez en el cuadro de lista se presenta en el menú
cuando el usuario hace clic en el título de menú precedente.
• Un control de menús sangrado seguido de controles de menús con un nivel mayor de sangría se
convierte en un título de submenú. Los controles de menús sangrados bajo el título del submenú
se convierten en elementos del submenú.
• Un control de menús con un guión (-) como propiedad Caption aparece como una barra
separadora. Una barra separadora divide los elementos del menú en grupos lógicos.

Nota: un control de menús no puede ser una barra separadora si es un título de menú, tiene
elementos submenú, está activado o desactivado, o tiene una tecla de método abreviado.

Para crear controles de menús en el Editor de menús


1. Seleccione el formulario.
2. En el menú Herramientas, elija Editor de menús o haga clic en el botón Editor de menús de la
barra de herramientas.
3. En el cuadro de texto Caption, escriba el texto del título del primer menú que quiera que aparezca
en la barra de menús. Coloque también un signo & delante de la letra que desee que sea la tecla
de acceso a dicho elemento de menú. Esta letra aparecerá subrayada automáticamente en el
menú. El texto del título del menú se presenta en el cuadro de lista del control de menús.
4. En el cuadro de texto Name, escriba el nombre que desee utilizar para hacer referencia al control
de menús desde el código. Vea "Recomendaciones de títulos y nombres de menús", más
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 sangría
del control.
6. Establezca otras propiedades del control, si lo desea. Puede hacerlo con el Editor de menús o,
posteriormente, en la ventana Propiedades.
7. Elija Siguiente para crear otro control de menús o haga clic en Insertar para agregar un control de
menús entre controles existentes. También puede hacer clic en los botones de flecha arriba y
flecha abajo para mover el control entre los controles de menús existentes.
8. Elija Aceptar para cerrar el Editor de menús cuando haya creado todos los controles de menús
del formulario. En el formulario se mostrarán los títulos de los menús creados. En tiempo de
diseño, haga clic en el título de un menú para desplegar sus correspondientes elementos de
menú.

Separación de elementos de menús.


Una barra separadora se presenta como una línea 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 lógicos. 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 menús


1. Si va a agregar una barra separadora a un menú existente, elija Insertar para insertar un control
de menús entre los elementos de menú que desee separar.
2. Si es necesario, haga clic en el botón 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 guión (-) en el cuadro de texto Caption.
4. Establezca la propiedad Name.
5. Elija Aceptar para cerrar el Editor de menús.

Nota Aunque las barras separadoras se crean como controles de menús, no responden al evento
Click y los usuarios no pueden seleccionarlas.

Asignación de teclas de acceso y de método abreviado.


Puede mejorar el acceso por teclado a los comandos de los menús si define teclas de acceso y de
método 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 podría abrir el menú Edición y P podría
seleccionar el elemento de menú Pegar. La asignación de la tecla de acceso aparece como una letra
subrayada en el título del control de menús, como se muestra en la figura.

Para asignar una tecla de acceso a un control de menús con el Editor de menús
1. Seleccione el elemento de menú al que desee asignar una tecla de acceso.
2. En el cuadro Título, escriba un signo & adelante de la letra que elija como tecla de acceso.

Por ejemplo, si abre el menú Edición 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 menús. Si usa la misma tecla de acceso para más
de un elemento del menú, dicha tecla no funcionará.

Teclas de método abreviado


Las teclas de método abreviado ejecutan un elemento de menú inmediatamente cuando se
presionan. A los elementos de menú que se utilizan con más frecuencia se les puede asignar una
tecla de método abreviado, que proporciona un método de acceso por teclado de sólo un paso, en
lugar del método de tres pasos de presionar ALT, un carácter de acceso al título del menú y después
un carácter de acceso al elemento del menú. Las asignaciones de métodos abreviados incluyen
combinaciones de teclas de función 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 método abreviado a un elemento de menú


1. Abra el Editor de menús.
2. Seleccione el elemento de menú.
3. Seleccione una combinación de teclas de función o de otra tecla en el cuadro combinado
Shortcut.
4. Para quitar una asignación de tecla de método abreviado, elija "(Ninguno)" en la parte superior de
la lista.

Nota Las teclas de método abreviado aparecen automáticamente en el menú; por tanto, no tiene
que escribir CTRL+tecla en el cuadro de texto Caption del Editor de menús.

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 .
Creación de Submenús.
Cada menú que cree puede incluir hasta cinco niveles de submenús. Un submenú sale de otro menú
para presentar sus propios elementos de menú. Puede utilizar un submenú cuando:
• La barra de menús esté llena.
• Un control de menús concreto se utilice con poca frecuencia.
• Quiera hacer énfasis en la relación de un control de menús con otro.

Sin embargo, si hay sitio en la barra de menús, es mejor crear un título de menú adicional en lugar de
un submenú. De esta manera, todos los controles son visibles para el usuario cuando el menú se
despliega. También es una buena práctica de programación restringir el uso de los submenús de
forma que los usuarios no se pierdan intentando explorar la interfaz de menús de la aplicación. (La
mayoría de las aplicaciones utilizan sólo un nivel de submenús.)
En el Editor de menús, cualquier control de menús sangrado bajo un control de menús que no sea un
título de menú es un control de submenús. En general, los controles de submenús pueden incluir
elementos de submenú, barras separadoras y títulos de submenú.

Para crear un submenú


1. Cree el elemento de menú que vaya a ser el título del submenú.
2. Cree los elementos que vayan a aparecer en el nuevo submenú y sángrelos haciendo clic en el
botón de flecha a la derecha.
3. Cada nivel de sangría está precedido por cuatro puntos (.…) en el Editor de menús. Para quitar un nivel de
sangría, haga clic en botón de flecha a la izquierda.

Nota Si está pensando en la posibilidad de utilizar más de un nivel de submenús, piense en utilizar
un cuadro de diálogo en su lugar. Los cuadros de diálogo permiten que los usuarios especifiquen
varias opciones en un único lugar.

Escritura de código para controles de menús.


Cuando el usuario elige un control de menús, se produce un evento Click. Es necesario escribir un
procedimiento de evento Click para cada control de menús. Todos los controles de menús, excepto
las barras separadoras (y los controles de menús desactivados o invisibles), reconocen el evento
Click.
El código que escribe en un procedimiento de evento de menú no es diferente del que escribiría en
los procedimientos de evento de cualquier otro control. Por ejemplo, el código de un evento Click
para el elemento Cerrar del menú Archivo podría parecerse a lo siguiente:

Sub mnuFileClose_Click ()
Unload Me
End Sub

Visual Basic presenta automáticamente un menú cuando se elige el título del menú; por tanto, no es
necesario que escriba código para el procedimiento de evento Click de un título de menú a menos
que quiera realizar alguna otra acción, como desactivar ciertos elementos del menú cuando éste sea
visible.

Nota En tiempo de diseño, los menús que cree se presentarán en el formulario al cerrar el Editor
de menús. Al elegir un elemento de un menú dentro del formulario se presenta el procedimiento de
evento Click de dicho control de menús.

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 -

También podría gustarte