Fundamentos de Visual Basic
Fundamentos de Visual Basic
Fundamentos de Visual Basic
¿Qué es un objeto?
Cada formulario (ventana), menú o control que se crea con Visual Basic es un módulo
autocontenido llamado objeto. Los bloques básicos de construcción de una aplicación con
Visual Basic son los objetos. Cada objeto tiene un conjunto de características y un
comportamiento definido (propiedades, métodos y eventos) que lo diferencian de otros
tipos de objeto. En otras palabras, un objeto formulario ha sido diseñado para cumplir
determinada función en una aplicación, y no es lo mismo que un objeto menú.
Propiedades
El conjunto de datos que describen las características de un objeto se le conoce como sus
propiedades. Para un formulario tenemos por ejemplo, las propiedades BackColor (color
de fondo), Height (altura).
Algunas propiedades no solo determinan el aspecto que tiene el objeto, sino que además
pueden determinar su comportamiento; por ejemplo, la propiedad MaxButton establece si
el formulario tendrá o no el botón Maximizar. La presencia o ausencia de este botón
determinará si el formulario se puede o no maximizar.
Métodos
Los métodos son un conjunto de procedimientos que permiten que un objeto ejecute una
acción o tarea sobre sí mismo. Por ejemplo, para un formulario tenemos el método Hide
que hará que el formulario se oculte; o el método Show que hará que el formulario se
vuelva a mostrar.
Eventos
Un evento es una acción que es reconocida por el objeto. Un evento ocurre (se dispara)
como resultado de la interacción del usuario con el objeto. También puede dispararse
debido a la ejecución de código (sentencias) o como resultado de la interacción de otro
objeto con el objeto de poseedor del evento. Para un formulario tenemos por ejemplo; el
evento Load que se dispara cuando se carga el formulario; o el evento Click para un botón
de comando, se dispara cuando se hace clic sobre él.
Formulario.Nombre=”frmEntrada”
Formulario.Título=”Bienvenidos a Gestión y
Sistemas” Cuadro.Nombre=”txtContrase
ña”
Cuadro.PasswordChar=”*”
Botón.Nombre=”cmdIngre Botón.Nombre=”cmdLimpiar”
sar” Botón.Título=”Limpiar”
Botón.Título=”Ingresar”
Evento Hacer_Click
Cuadro.txtUsuario.Texto=””
Cuadro.txtContraseña.Texto=””
Cuadro.txtUsuario.EstablecerEnfoq
ue()
Para diseñar esta ventana (Formulario), del conjunto de objetos de Visual Basic
seleccionamos un objeto tipo Formulario (Form). Luego a la propiedad Nombre (Name) le
asignamos el valor frmEntrada; a la propiedad Título le asignamos el valor Bienvenidos
a Gestión y Sistemas.
Dentro del formulario se colocan los controles. Para que el usuario pueda ingresar un dato
(por ejemplo, la contraseña) colocamos en la ventana un control tipo Cuadro de Texto
(TextBox); a continuación establecemos su propiedad Nombre en txtContraseña, y su
propiedad PasswordChar es un * (asterisco) para que el dato ingresado sea reemplazado
por asteriscos sólo en la pantalla, para que no se pueda visualizar.
Para obtener el botón Ingresar seleccionamos un control tipo Botón de Comando
(CommandButton), y lo colocamos en la ventana. Luego cambiamos sus propiedades; a la
propiedad Nombre le asignamos cmdIngresar, y a la propiedad Título le asignamos
Ingresar.
Se desea que cuando el usuario haga clic en el botón Limpiar, se borre cualquier dato que
el usuario haya ingresado en los Cuadros de Texto, y que el punto de inserción se ubique
en el cuadro txtUsuario. Para que esto ocurra debemos programar el evento Hacer_Click
del botón de comando cmdLimpiar.
El evento debe ejecutar dos sentenciar para cambiar la propiedad Texto de cada uno de
los cuadros de texto, y luego invocar al método EstablecerEnfoque() del cuadro de texto
txtUsuario.
elementos:
Cuadro de Ventana de
Herramienta Código Ventana de
s Propiedades
Barra de Menús
Presenta los comandos que se usan para trabajar con Visual Basic. Además de los menús
estándar Archivo, Edición, Ver, Ventana y Ayuda, contiene otros menús para tener
acceso a funciones específicas de programación, como Proyecto, Formato o
Depuración.
Barra de Herramientas
Permite un acceso directo (solo un clic) a muchas de las operaciones más frecuentes
utilizadas durante el desarrollo de aplicaciones.
Cuadro de Herramientas
Contiene todos los objetos y controles que se pueden añadir a los formularios para crear
aplicaciones.
Diseñador de Formularios
Funciona como una ventana en la que se puede personalizar el diseño de la interfaz de
usuario (ventana) de una aplicación.
Explorador de Proyectos
Lista de los archivos (formularios, módulos, etc.) del proyecto actual. Un Proyecto es una
colección de archivos que utiliza para construir una aplicación.
Ventana de Propiedades
Lista los valores de las propiedades del formulario o control seleccionado que pueden ser
modificados durante el diseño del formulario o control.
Ventana de Código
Funciona como un editor para escribir el código (sentencias) de la aplicación.
Ayuda en línea
Visual Basic proporciona una amplia ayuda en línea. El archivo de Ayuda contiene mucho
código de ejemplo que se puede copiar directamente a una aplicación.
La ayuda de Visual Basic es sensible al contexto. Para emplear la ayuda sensible al
contexto en la ventana de código, escriba la palabra para la cual desea información, y
luego presione F1. Por ejemplo, si desea información acerca de la sentencia Open, escriba
Open y presione F1.
Libros en Pantalla
Además de la ayuda sensible al contexto, el CD-ROM de Visual Basic incluye una versión
en línea de la documentación impresa para Visual Basic. Para acceder a los Libros en
Pantalla, haga clic en Libros en Pantalla dentro del menú Ayuda de Visual Basic.
La Ventana de Código
Método 1
Teniendo el cuadro de Herramientas o un Formulario visible, haga doble clic en el control
que desea añadir en el Cuadro de Herramientas, los controles se ubican en el centro del
formulario, uno encima de otro, luego hay que moverlos a la posición deseada dentro del
formulario.
Método 2
1. Haga clic sobre el control en el Cuadro de Herramientas.
2. Ubique el puntero del Mouse (una cruz) sobre el formulario en la esquina superior
izquierda donde desea colocar el control.
3. Realice un clic sostenido mientras arrastra el puntero a la esquina superior derecha
donde colocará el control.
4. Suelte el botón del Mouse.
Estos cuatro pasos se repiten con cada control que desea añadir al formulario.
Término Definición
Término Definición
Propiedades Los valores de un objeto, tales como tamaño, título, color, etc.
Programación controlada
por eventos Cuando un programa es controlado por eventos, usted escribe
código que se ejecuta en respuesta a eventos invocados por el
usuario. Difiere de la programación procedural, en la cual el
programa comienza en la primera línea de código y sigue un
flujo definido llamando procedimientos cuando es necesario. La
programación controlada por eventos es la esencia de las
interfaces gráficas de usuario; el usuario acciona y el código
responde.
¿Qué es un proyecto?
Cuando desarrolla una aplicación, Visual Basic crea un archivo especial llamado Archivo
de Proyecto para administrar todos los demás archivos de la aplicación.
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 del entorno. Esta
información se actualiza cada vez que se guarda el proyecto. Todos los archivos y objetos
también se pueden compartir con otros proyectos. Un proyecto está compuesto por los
siguientes archivos:
Controles
Personalizados .ocx Controles adicionales a los controles estándar
proporcionados por Microsoft u otras empresas.
(opcional)
Cuando ha completado todos los archivos del proyecto puede convertir el proyecto en un
archivo ejecutable (.exe).
Nota: Con las ediciones Profesional y Empresarial de Visual Basic también puede crear
otro tipo de archivos ejecutables, como archivos .ocx y .dll.
Guardar el proyecto
Cuando crea el proyecto, asegúrese de darle un nombre usando el comando Guardar
Proyecto como del menú Archivo. Guarde su proyecto frecuentemente conforme añada
código. Al guardar un proyecto se guardan cada formulario y módulo de código en el
proyecto.
Secuencia del título del menú Nombre del controlador del menú
Cuando se usa esta convención de nombres, todos los miembros de un grupo de menús
determinado se muestran uno junto a otro en la ventana Propiedades de Visual Basic.
Además, los nombres del control de menú documentan claramente los elementos del menú
a los que están adjuntos.
Formularios
Propiedades
BackColor Color de fondo del formulario.
BorderStyle Estilo del borde del formulario.
Caption Texto en la barra de título del formulario.
Eventos
Activate Ocurre cuando el formulario se convierte en la ventana activa.
Click Ocurre cuando hace clic sobre el formulario.
Deactivate Ocurre cuando el formulario deja de ser la ventana activa.
Load Ocurre cuando se carga un formulario.
Unload Ocurre cuando un formulario está a punto de descargarse.
Métodos
Hide Oculta el formulario.
Refresh Actualiza el contenido del formulario.
SetFocus Le entrega el enfoque al formulario.
Show Hace visible el formulario.
Controles Básicos
Control
Cuadro de
Control Texto
Etiqueta
Control Botón
de Comando
Con los controles, los usuarios pueden operar y obtener los resultados de una aplicación.
Puede añadir controles a un formulario seleccionando la herramienta adecuada del Cuadro
de Herramientas. Entre los controles más comunes a utilizar en una aplicación tenemos:
Etiqueta (Label), Cuadro de Texto (TextBox) y Botón de Comando (CommandButton).
Propiedades
Alignment Alineación del texto dentro del control.
AutoSize True/False. Determina si el tamaño del control se ajusta automáticamente al
texto que contiene.
Caption Texto que muestra el control.
Name Nombre del control.
Font Establece la fuente, estilo y tamaño para el texto del control.
Propiedades
Enabled True/False. Establece un valor que determina si el control puede responder a
eventos generados por el usuario.
Font Establece la fuentes, estilo y tamaño para el texto del control.
Locked True/False. Determina si es posible modificar el texto en el control.
MaxLength Establece la longitud máxima permitida para el texto en el control.
MultiLine Establece si el control puede aceptar múltiples líneas de texto.
Name Nombre del control.
PasswordChar Carácter utilizado para ocultar el texto que realmente contiene el
control.
Text Texto que realmente contiene y muestra el control.
Visible Establece si el control será visible para el usuario.
Eventos
Change Ocurre cuando cambia el texto que contiene el control.
GotFocus Ocurre cuando el control recibe el enfoque.
KeyDown Ocurre cuando el usuario presiona una tecla mientras el control tiene el
enfoque.
LostFocus Ocurre cuando el control pierde el enfoque.
Métodos
Refresh Actualiza el texto del control.
SetFocus Mueve el enfoque al control.
Propiedades
Cancel True/False. Establece si el botón se comportará como el botón cancelar en el
formulario y se invocará su evento Click cada vez que se presione la tecla
ESC.
Caption Establece el texto que muestra el botón.
Default True/False. Establece si el botón se comportará como el botón
predeterminado en el formulario.
Font Establece la fuente, estilo y tamaño para el texto del control.
Name Nombre del botón.
Visible True/False. Establece si el botón será visible para el usuario.
Eventos
Click Ocurre cuando se hace clic sobre el botón.
Métodos
SetFocus Mueve el enfoque al botón.
Estableciendo Propiedades
Al diseñar la interfase de usuario de una aplicación Visual Basic, se deben establecer la
propiedades para los controles (objetos) creados.
Procedimientos de Evento
Visual Basic invoca automáticamente procedimientos de evento en respuesta a acciones
del teclado, del ratón o del sistema. Por ejemplo, los botones de comando tienen un
procedimiento de evento Click. El código que se escriba en el procedimiento de evento
Click es ejecutado cuando el usuario haga clic en un botón de comando.
Para abrir la ventana de código, haga doble clic en el control o formulario, haga clic en la
orden Código del menú Ver.
Cada control tiene un conjunto fijo de procedimientos de evento. Los procedimientos de
evento para cada control son mostrados en un cuadro de lista despegable en la ventana de
código. El siguiente código muestra el procedimiento de evento Click para un botón de
comando llamado cmdOK.
Nota: Los controles que no pueden obtener enfoque, al igual que los controles
desactivados o invisibles, no tienen la propiedad TabIndex y no están incluidos en el
orden de tabulación. Cuando el usuario presiona Tab, estos controles son ignorados.
Cuando pulse ALT + TecladeAcceso del control Etiqueta, el enfoque se moverá hacia el
otro control debido a que el control Etiqueta no puede recibir el enfoque.
Modulos de Formulario
Cada formulario en su aplicación tiene un módulo de formulario asociado, estos son
guardados con una extensión de archivo FRM y contienen:
Los valores de las propiedades para el formulario y sus controles.
Declaración de variables en el ámbito del formulario.
Procedimientos de evento y procedimientos generales en el ámbito del formulario.
Nota: Las descripciones gráficas de un formulario y los controles sobre el formulario son
almacenados en formato binario en un archivo con extensión FRX.
Modulos Estándar
Los módulos estándar pueden contener código que es común a varios formularios en su
aplicación. Este código es por omisión público, lo cual significa que fácilmente compartido
con otros módulos de código, tales como un módulo de formulario. Estos módulos
contienen declaraciones de procedimientos, tipos y variables. No pueden almacenar
procedimientos de evento por que no contienen objetos.
La Ventana de Codigo
Código es un término general para todas las sentencias Visual Basic que usted escribe en
una aplicación: procedimientos de evento y procedimientos generales. El código en Visual
Basic se escribe en la ventana de Código. El editor de texto es solo un editor ASCII con
colores para diferenciar las palabras claves en el código que escribe.
La Ventana de Código se usa para escribir, mostrar y editar el código de su aplicación.
Puede abrir una ventana de código por cada módulo de su aplicación, de modo que puede
fácilmente copiar y pegar entre ellos.
Lista de
Lista de Eventos
Objetos
Barra de
División
La Barra de División
Desde el menú Ventana puede ejecutar el comando Dividir para dividir la ventana de
código en dos partes, cada una de las cuales se desplaza separadamente. Puede entonces
ver diferentes partes de su código al mismo tiempo. La información que aparece en el
cuadro Objeto y Procedimiento se refiere al código en la parte que tiene el enfoque. El
mismo comando utilizado para dividir la ventana puede utilizarlo para cerrar una de sus
partes o también lo puede hacer arrastrando la barra de división hacia la parte superior o
inferior de la ventana.
Editando Código
Use las características de edición de Visual Basic para que su código sea más fácil de leer.
Sangría
Use la sangría para diferenciar partes de su código, tales como estructuras repetitivas y
condicionales. Para aplicar sangría a una sección de sentencias de un código use la tecla
Tab o el comando Aplicar sangría del menú Edición. Se forma similar, Shift + Tab o el
comando Anular sangría del menú Edición quitará una sangría a las líneas
seleccionadas. Veamos el siguiente ejemplo:
Comentarios
El añadir documentación y comentarios a su código permite comprender mejor lo que hace
el código. Esto también ayuda a comprender el código si necesita volver a revisarlo en
alguna fecha posterior. Un comentario se inicia con el carácter apóstrofe (‘), de modo que
todo el texto que continúe a este carácter será ignorado en la ejecución de la aplicación.
Veamos el siguiente ejemplo:
Función MsgBox()
Los cuadros de mensaje ofrecen un modo simple y rápido de consultar a los usuarios por
información simple o para permitirles tomar decisiones sobre el camino que su programa
debe tomar. Puede usar esta función para mostrar diferentes tipos de mensaje y botones
con los cuales el usuario da una respuesta.
Formato
Parte Descripción
Valores
Nota: Estas constantes las especifica Visual Basic. Por tanto, el nombre de las mismas
puede utilizarse en cualquier lugar del código en vez de sus valores reales.
Valores devueltos
VbOk 1 Aceptar
VbCancel 2 Cancelar
VbAbort 3 Anular
VbRetry 4 Reintentar
VbIgnore 5 Ignorar
VbYes 6 Sí
VbNo 7 No
Ejemplos
-----------
End If
Función InpuBox()
Formato
InputBox( prompt [, title] [, default] [, xpos] [,ypos] [, helpfile, context] )
Parte Descripción
Comentarios
Si el usuario hace clic en Cancelar, la función devuelve una cadena de caracteres de
longitud cero (“”).
Constantes Predefinidas
Visual Basic reconoce cierta cantidad de constantes predefinidas que pueden se usadas en
cualquier parte de su código en lugar de valores numéricos. Puede hacer que su código sea
más fácil de leer y escribir mediante el uso de estas constantes. Además, los valores de
estas constantes pueden cambiar en versiones posteriores de Visual Basic, su uso
permitirá que su código sea compatible. Por ejemplo, la propiedad WindowState de un
formulario puede aceptar las siguientes constantes:
frmEntrada.WindowState = vbMaximized
Manejo de Formularios
Normalmente la intefaz de una aplicación está compuesta por varios formularios. Cuando
Visual Basic inicia la aplicación, automáticamente se muestra el formulario de arranque,
mientras que los otros formularios deben ser mostrados y ocultados a través de código. El
método o función usado depende de lo que deseamos hacer.
Método Show
Muestra un formulario. Si el formulario no está cargado al momento de ejecutar el método
Show, Visual Basic lo cargará automáticamente.
Formato
NombreDelFormulario.Show
Ejemplo
FrmEntrada.Show
Sentencia Load
Carga un formulario a la memoria, pero no lo muestra.
Formato
Load NombreDelFormulario
Ejemplo
Load FrmEntrada
Evento Load
El evento Load ocurre cuando el formulario es cargado en la memoria. Esto sucede cuando
se usa la sentencia Load, o cuando se invoca el método Show y el formulario aún no está
Método Hide
Oculta un formulario, pero no lo descarga de memoria.
Formato
NombreDelFormulario.Hide
Ejemplo:
frmIngreso.Hide
Sentencia Unload
Descarga un formulario de memoria
Formato
Unload NombreDelFormulario
Comentarios
Sugerencia
Ejemplo
Evento Unload
Ocurre cuando un formulario está a punto de descargarse. Este evento se desencadena
porque un usuario cierra el formulario mediante el comando Cerrar del menú Control o
una sentencia Unload.
El parámetro Cancelar, es un entero que determina si el formulario es descargado. Si
Cancelar es 0, el formulario se descarga. Establecer Cancelar a cualquier valor distinto de
cero impide que el formulario sea descargado.
Ejemplo
Ejemplos
aplicación y descarga todos los formularios. Cuando finaliza su aplicación con la sentencia
End no se desencadena ningún evento de los formularios.
Ejemplos
El Editor de menús
Esta herramienta permite crear menús personalizados para la aplicación y definir sus
propiedades. Para ingresar, estando en tiempo de diseño, haga clic en el menú
Herramientas y luego en la orden Editor de Menús o en el botón equivalente de la barra
de herramientas estándar.
Lista de
menús Nota:
Parte Descripción
Caption Le permite escribir el nombre del comando o del menú que desea que
aparezca en la barra de menús o en un menú. Si desea crear una barra
separadora en el menú, escriba un único guión (-) en el cuadro Caption.
Parte Descripción
Para dar al usuario acceso a través del teclado a un elemento del menú,
escriba el signo & delante de una letra. En tiempo de ejecución, esta letra
aparecerá subrayada (el signo & no será visible) y el usuario tendrá acceso al
menú o al comando si presiona las
teclas ALT y la correspondiente a la letra subrayada. Si necesita que
aparezca en el menú el signo &, deberá escribir dos signos & consecutivos.
Name Le permite escribir un nombre de control para el elemento del menú. El
nombre de control es un identificador que sólo se utiliza para tener acceso al
elemento del menú en el código, no aparece en ningún menú.
Index Le permite asignar un valor numérico que determina la posición del control
en una matriz de controles. Esta posición no tiene ninguna relación con la
ubicación del control en la pantalla.
Shortcut Le permite seleccionar una tecla de método abreviado para cada comando.
HelpContextID Le permite asignar un valor numérico único para el Id. de contexto. Este
valor se utiliza para encontrar el tema de Ayuda apropiado en el archivo de
Ayuda identificado mediante la propiedad HelpFile.
NegotiatePosition Le permite seleccionar la propiedad NegotiatePosition del menú. Esta
propiedad determina si el menú aparece o no en un formulario contenedor y
cómo aparece.
Checked Le permite hacer que aparezca inicialmente una marca de verificación a la
izquierda de un elemento del menú. Se utiliza normalmente para indicar si
una opción de alternar está activada o no.
Enabled Le permite seleccionar si el elemento del menú debe responder a eventos.
Desactive esta opción si desea que el elemento del menú no esté disponible
y aparezca atenuado.
Visible Le permite hacer que un elemento aparezca en el menú.
WindowList Determina si el control del menú contiene una lista de formularios
secundarios MDI abiertos en una aplicación MDI.
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ú.
Lista Menús Es un cuadro de lista que muestra en orden jerárquico todos los elementos
del menú.
El control ToolBar
Un control Toolbar contiene una colección de objetos Button utilizados para crear una
barra de herramientas asociada a una aplicación.
Comentarios
El Control ImageList
Un control ImageList contiene una colección de objetos ListImage, a cada uno
de los cuales se puede hacer referencia mediante su índice o su clave. El control
ImageList no está concebido para utilizarlo en solitario, sino como punto de
almacenamiento central para proporcionar cómodamente imágenes a otros controles.
Comentarios
Puede usar el control ImageList con cualquier control que asigne un objeto Picture a una
propiedad Picture.
Es posible agregar imágenes de diferentes tamaños al control ImageList, pero todas se
ajustan al mismo tamaño. El tamaño de los objetos de ListImage está determinado por
uno de los siguientes valores:
El valor de las propiedades ImageWidth y ImageHeight antes de agregar
alguna imagen.
Las dimensiones de la primera imagen agregada.
No hay ninguna limitación en cuanto al tamaño de la imagen, pero el número total de
imágenes que se puede cargar está limitado por la cantidad de memoria disponible.
Durante el diseño del programa puede agregar imágenes mediante la ficha General del
cuadro de diálogo Propiedades del control ImageList. En tiempo de ejecución puede
agregar imágenes mediante el método Add para la colección ListImages.
Nota: Los controles Toolbar e ImageList forman parte del grupo de controles ActiveX
adicionales Microsoft Windows Common Controls 5.0 (archivo COMCTL32.OCX). Para
usarlos en su aplicación debe agregar el archivo COMCTL32.OCX al proyecto. Cuando
distribuya su aplicación, instale el archivo COMCTL32.OCX en la carpeta System o
System32 (en plataformas con Windows NT) de Microsoft Windows del usuario.
El Objeto MDIForm
Un formulario MDI es una ventana que actúa como fondo de una aplicación y es el
contenedor de formularios que tienen su propiedad MDIChild establecida a True. Para crear
un objeto MDIForm, elija Agregar formulario MDI en el menú Proyecto, luego de
agregarlo tenga en cuenta lo siguiente:
Una aplicación sólo puede tener un objeto MDIForm, pero varios formularios
secundarios MDI.
Si un formulario secundario MDI tiene menús, la barra de menús del formulario
secundario reemplazará automáticamente a la barra de menús del objeto MDIForm
cuando el formulario secundario MDI esté activo.
Un formulario secundario MDI minimizado se mostrará como un icono en el MDIForm.
Un objeto MDIForm sólo puede contener controles Menu y PictureBox, y controles
personalizados que tengan una propiedad Align. Para colocar otros controles en un
MDIForm, puede dibujar un cuadro de imagen en el formulario y después dibujar otros
controles dentro del cuadro de imagen. Puede utilizar el método Print para mostrar
texto en un cuadro de imagen de un MDIForm, pero no puede usar este método para
mostrar texto en el MDIForm propiamente dicho.
Un objeto MDIForm no puede ser modal.
Los formularios secundarios MDI se diseñan de forma independiente del MDIForm, pero
siempre están contenidos en el MDIForm en tiempo de ejecución.
Propiedad MDIChild
Devuelve o establece un valor que indica si un formulario debe mostrarse como formulario
secundario MDI dentro de un formulario MDI. Es de sólo lectura en tiempo de ejecución. Los
valores admitidos para la propiedad MDIChild son:
Valor Descripción
True El formulario es MDI secundario y se mostrará dentro del formulario MDI primario.
False (Predeterminado) El formulario no es MDI secundario.
Comentarios
Utilice esta propiedad al crear una aplicación con interfaz de múltiples documentos (MDI).
En tiempo de ejecución, los formularios que tengan establecida a True esta propiedad se
mostrarán dentro de un formulario MDI. Los formularios MDI secundarios pueden
maximizarse, minimizarse y desplazarse, siempre dentro del formulario MDI primario.
Cuando trabaje con formularios MDI secundarios, tenga en cuenta lo siguiente:
Tipos de Datos
Un tipo de dato determina la naturaleza del dominio de valores que puede tomar una
variable, las operaciones en que puede participar y el espacio de memoria que necesita. La
tabla siguiente muestra los tipos de datos, incluyendo el tamaño de almacenamiento y el
intervalo.
Funciones de
Conversión Convierten una expresión en
Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Integer
CLng Long
CSng Single
CStr String
Cvar Variant
CVErr Error
Nota: Los valores que se pasan a una función de conversión deben ser válidos para el tipo
de dato de destino o se producirá un error. Por ejemplo, si intenta convertir un tipo Long
en un Integer, el tipo de Long debe de estar en el intervalo válido del tipo de dato
Integer.
Variables
Las variables se utilizan para almacenar valores temporalmente durante la ejecución de
una aplicación. Las variables tienen un nombre (la palabra que utiliza para referirse al valor
que contiene la variable) y un tipo de dato (que determina la clase de dato que la variable
puede almacenar).
Declaración de Variables
Declarar una variable es decirle al programa algo de antemano. Se declara una variable
mediante la instrucción Dim, proporcionando un nombre a la variable, según la siguiente
sintaxis:
Las variables que se declaran en un procedimiento mediante la sentencia Dim sólo existen
mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el
valor de la variable. Además, el valor de una variable de un procedimiento es local a dicho
procedimiento; es decir, no puede tener acceso a una variable de un procedimiento desde
otro procedimiento. Estas características le permiten utilizar los mismos nombres de
variables en distintos procedimientos sin preocuparse por posibles conflictos o
modificaciones accidentales.
Declaración Implícita
No tiene por qué declarar una variable antes de utilizarla. Por ejemplo, podría escribir una
función donde no hiciera falta declarar TempVal antes de utilizarla:
Visual Basic crea automáticamente una variable con ese nombre, que puede utilizar como
si la hubiera declarado explícitamente. Aunque es cómodo, puede provocar errores sutiles
en el código si se equivoca de nombre de variable. Por ejemplo, suponga que ha escrito
esta función:
A primera vista, parece igual. Pero como se ha escrito erróneamente la variable TempVal
en la tercera línea, la función devolverá siempre cero. Cuando Visual Basic encuentra un
nombre nuevo, no puede averiguar si realmente desea declarar una variable nueva o
simplemente ha escrito de forma errónea una variable existente, por lo que crea una
variable nueva con ese nombre.
Declaración Explícita
Para evitar problemas al equivocarse de nombre en las variables, puede configurar Visual
Basic para que le avise siempre que encuentre un nombre que no se haya declarado
explícitamente como una variable.
Option Explicit
- o bien -
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.
Constantes
A menudo verá que el código contiene valores constantes que reaparecen una y otra vez.
O puede que el código dependa de ciertos números que resulten difíciles de recordar
(números que, por sí mismos, no tienen un significado obvio).
En estos casos, puede mejorar mucho la legibilidad del código y facilitar su mantenimiento
si utiliza constantes. Una constante es un nombre significativo que sustituye a un número
o una cadena que no varía. Aunque una constante recuerda ligeramente a una variable, no
puede modificar una constante o asignarle un valor nuevo como ocurre con una variable.
Hay dos orígenes para las constantes:
El argumento nombre_constante es un nombre simbólico válido (las reglas son las mismas
que para crear nombres de variable) y expresión está compuesta por constantes y
operadores de cadena o numéricos; sin embargo, no puede utilizar llamadas a funciones en
expresión. Una instrucción Const puede representar una cantidad matemática o de fecha y
hora:
Puede colocar más de una declaración de constante en una única línea si las separa con
comas:
A menudo, la expresión del lado derecho del signo igual ( = ) es un número o cadena
literal, pero también puede ser una expresión que dé como resultado un número o una
cadena (aunque la expresión no puede contener llamadas a funciones). Puede incluso
definir constantes en términos de constantes previamente definidas:
Para crear una constante que sólo exista en un procedimiento, declárela dentro del
procedimiento.
Para crear una constante disponible para todos los procedimientos de un módulo, pero
no para el código que está fuera del módulo, declárela en la sección Declaraciones
Generales del módulo.
Para crear una constante disponible en toda la aplicación, declare la constante en la
sección Declaraciones Generales de un módulo estándar y coloque delante de Const
la palabra clave Public. No se pueden declarar las constantes públicas en un módulo
de clase o de formulario.
'En el Módulo 1:
Public Const conA = conB * 2 ' Disponible en toda la aplicación
'En el Módulo 2:
Public Const conB = conA / 2 ' Disponible en toda la aplicación
Si se produce un ciclo, Visual Basic generará un error cuando intente ejecutar la aplicación.
No puede ejecutar el código hasta que resuelva la referencia circular. Para evitar la
creación de un ciclo, restrinja todas las constantes públicas a un único módulo o, al menos,
al menor número posible de módulos.
En una aplicación de Visual Basic, las variables globales se deben usar sólo cuando no
exista ninguna otra forma cómoda de compartir datos entre formularios. Cuando haya que
usar variables globales, es conveniente declararlas todas en un único módulo agrupadas
por funciones y dar al módulo un nombre significativo que indique su finalidad, como
Públicas.
Una práctica de codificación correcta es escribir código modular siempre que sea posible.
Por ejemplo, si la aplicación muestra un cuadro de diálogo, coloque todos los controles y el
código necesario para ejecutar la tarea del diálogo en un único formulario. Esto ayuda a
tener código de la aplicación organizado en componentes útiles y minimiza la sobrecarga
en tiempo de ejecución.
Una variable tiene alcance global si se declara como Public en un módulo estándar o en un
módulo de formulario. Una variable tiene alcance de nivel de módulo si se declara como
Private en un módulo estándar o en un módulo de formulario, respectivamente.
Nota: La coherencia es crucial para usar esta técnica de forma productiva; el corrector de
sintaxis de Visual Basic no interceptará las variables de nivel de módulo que comience con
“p”.
Constantes
El nombre de las constantes se debe escribir en mayúsculas y minúsculas, con la letra
inicial de cada palabra en mayúsculas. Aunque las constantes estándar de Visual Basic no
incluyen información de tipo de datos y el alcance de una constante. Para los nombres de
constantes, se deben seguir las mismas normas que para las variables. Por ejemplo:
Variables
Declarar todas las variables ahorra tiempo de programación porque reduce el número de
errores debidos a nombres de variables errados (por ejemplo, aNombreUsuarioTmp frente
a sNombreUsuarioTmp frente a sNombreUsuarioTemp). En la ficha Editor del cuadro de
diálogo Opciones, active la opción Declaración de variables requerida. La instrucción
Option Explicit requiere que declare todas las variables del programa de Visual Basic.
Las variables deben llevar un prefijo para indicar su tipo de datos. Opcionalmente, y en
especial para programas largos, el prefijo se puede ampliar para indicar el alcance de la
variable.
Para nombres que se usen con frecuencia o para términos largos, se recomienda usar
abreviaturas estándar para que los nombres tengan una longitud razonable. En general, los
nombres de variables con más de 32 caracteres pueden ser difíciles de leer en pantalla
VGA.
Cuando se usen abreviaturas, hay que asegurarse de que sean coherentes en toda la
aplicación. Alterar aleatoriamente entre Cnt y Contar dentro de un proyecto provoca una
confusión innecesaria.
Registros o Estructuras
Son tipos de datos definidos por el usuario. Es básicamente un conjunto de varios datos de
tipos elementales agrupados bajo una denominación común. Debe declararse en la sección
Declaraciones Generales de un módulo. Se usa la palabra reservada Type.
Sintaxis
Type NombreDelNuevoTipo
NombreDelElemento1 As TipoDato
NombreDelElemento2 As TipoDato
NombreDelElemento3 As TipoDato
...
...
End Type
Type RegEmpleado
EmpCódigo As Integer
EmpNombre As String * 40
EmpCargo As String * 15
End Type
Arreglo de Variables
Un arreglo es una colección de elementos del mismo tipo con un nombre común. Los
elementos son identificados por el nombre común y un índice.
Sintaxis
Visual Basic soporta hasta 60 dimensiones. Al declarar las dimensiones se puede indicar un
solo número, en cuyo caso se entiende que dicha dimensión va de cero hasta el número
indicado. También es posible indicar explícitamente el inicio y término de la dimensión.
Ejemplo
Arreglos Dinámicos
Hay situaciones en las cuales se desea usar un arreglo, pero al momento del diseño no se
sabe sus dimensiones. Para este tipo de situaciones Visual Basic permite declaraciones de
arreglos del siguiente modo:
Dim x ( ) As Integer
...
...
Redim x (lstLista.ListCount)
OPERADORES
^ Exponenciación
* Multiplicación
/ División
División entera
Mod Residuo entero (Ejm: A Mod B)
+ Suma
- Resta
& Concatenación de cadenas
Comparación
= Igual
<> Distinto
Menor que
<= Menor o igual
>= Mayor o igual
Like Compara dos cadenas
* Cero o más caracteres (Ejm: cad Like “ma*”)
? Cualquier carácter
# Cualquier dígito (0-9)
[lista] cualquier carácter en lista
[¡lista] cualquier carácter que no esta en lista
Is Usado para comparar dos variables de referencia a objetos
Lógicos
Estructuras de Control
Las estructuras de control le permiten controlar el flujo de ejecución del programa.
Tenemos dos tipos de estructuras de control:
Estructuras de decisión
Estructuras de bucle
Estructuras de Decisión
Los procedimientos de Visual Basic pueden probar condiciones y, dependiendo de los
resultados, realizar diferentes operaciones. Entre las estructuras de decisión que acepta
Visual Basic se incluyen las siguientes:
If...Then
If...Then...Else
Select Case
If...Then
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:
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 sentencias que siguen a la
palabra clave Then. Puede utilizar sintaxis de una línea o de varias líneas para ejecutar
una sentencia basada en una condición, los siguientes dos ejemplos son equivalentes:
Observe que el formato de una única línea de If...Then no utiliza la instrucción End If. Si
se desea ejecutar más de una línea de código cuando condición sea True, debe utilizar la
sintaxis de bloque de varias líneas If...Then...End If.
If chkAlumnoUNI.Value=1 Then
txtCosto = Format (txtCosto*0.70,”Fixed”)
txtCódigo.Enabled = True
End If
If...Then...Else
Utilice un bloque If...The...Else para definir varios bloques de sentencias, uno de los
cuales se ejecutará:
If condición1 Then
[bloque de sentencias 1]
[ElseIf condición2 Then
[bloque de sentencias 2]] ...
[Else
[bloque de sentencias n]]
End If
Visual Basic evalúa primero condición1. Si es False, Visual Basic procede a evaluar
condición2 y así sucesivamente, hasta que encuentre una condición True. Cuando
encuentra una condición True, Visual Basic ejecuta el bloque de instrucciones
correspondientes y después ejecuta el código que sigue a End If. Opcionalmente, puede
incluir un bloque de instrucciones Else, que Visual Basic ejecutará sin ninguna de las
condiciones es True.
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ú:
Observe que siempre puede agregar más cláusulas ElseIf a la estructura If...Then. Sin
embargo, esta sintaxis puede resultar tediosa de escribir cuando cada ElseIf compara la
misma expresión con un valor distinto. Para estas situaciones, puede utilizar la estructura
de decisión Select Case.
Select Case
Visual Basic proporciona la estructura Select Case como alternativa a If...Then...Else
para ejecutar selectivamente un bloque de sentencias entre varios bloques. La sentencia
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 sentencias asociado a ese Case:
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:
Observe que la estructura Select Case evalúa una expresión cada vez que al principio de
la estructura. Por el contrario, la estructura If...Then...Else puede evaluar una expresión
diferente en cada sentencia ElseIf. Sólo puede sustituir una esructura If...Then...Else con
una estructura Select Case si la intrucción If y cada instrucción ElseIf evalúa la misma
expresión.
Estrucuras de Repeticion
Las estructuras de repetición o bucle le permiten ejecutar una o más líneas de código
repetidamente. Las estructuras de repetición que acepta Visual Basic son:
Do...Loop
For...Next
For Each...Next
Do...Loop
Utilice el bucle Do para ejecutar un bloque de sentencias un número indefinido de veces.
Hay algunas variantes en la sentencia 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
Do While condición
Sentencias
Loop
Cuando Visual Basic ejecuta este bucle Do, primero evalúa condición. Si condición es
False (cero), se salta todas las sentencias. Si es True (distinto de cero) Visual Basic
ejecuta las sentencias, 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 sentencias si condición es
False inicialmente. Por ejemplo, este procedimiento cuenta las veces que se repite una
cadena destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre
la cadena de destino:
Do
Sentencias
Hay otras dos variantes análogas a las dos anteriores, excepto en que repiten el bucle
siempre y cuando condición sea False en vez de True.
Hace el bucle cero o más veces Hace el bucle al menos una vez
Do Until condición Do
Sentencias Sentencias
Loop Loop Until condición
Este código imprime los nombres de todas las fuentes de pantalla disponibles:
For Each...Next
El bucle For Each...Next es similar al bucle For...Next, pero repite un grupo de sentencia
por cada elemento de una colección de objetos o de una matriz en vez de repetir las
sentencias un número especificado de veces. Esto resulta especialmente útil si no se sabe
cuántos elementos hay en la colección. He aquí la sintaxis del bucle For Each...Next:
Sub ListTableDefs ( )
Dim objDb As Database
Set objDb = OpenDatabase("c:/Archivos de programa/Devstudio/" & _
"vb/biblio.mdb", True, False)
For Each TableDef In objDb.TableDefs ( )
List1.AddItem TableDef.Name
Next TableDef
End Sub
Do
Exit For y Exit Do son muy útiles ya que, algunas veces, resulta apropiado salir
inmediatamente de un bucle sin realizar más iteraciones o sentencias dentro del bucle.
Cuando utilice la instrucción Exit para salir de un bucle, el valor de la variable contador
difiere, dependiendo de cómo haya salido del bucle:
Cuando termina un bucle, la variable contador contiene el valor del límite superior
más el paso.
Cuando sale de un bucle prematuramente, la variable contador conserva su valor
según las reglas usuales del alcance.
Cuando sale antes del final de una colección, la variable contador contiene Nothing si
se trata de un tipo de dato Object y Empty si es un tipo de dato Variant.
Propiedades
Caption Título de marco.
Enabled Determina si está habilitado para responder a las acciones del
usuario.
Name Nombre del control.
Visible Determina si el Marco y los controles que contiene están visibles o no.
Propiedades
Caption Descripción que acompaña a la casilla.
Enabled True/False. Determina si está habilitado para responder a las acciones
del usuario.
Name Nombre del control.
Value 0 – Unchecked (Vacío, no marcado)
1 – Checked (Marcado)
2 – Grayed (Gris, Indefinido)
Visible Determina si la casilla está visible o no.
Eventos
Click Ocurre cuando el usuario hace clic sobre la casilla.
Propiedades
Caption Descripción que acompaña a la opción.
Enabled True/False. Determina si está habilitado para responder a las acciones
del usuario.
Name Nombre del control.
Value True/False, marcado o no marcado.
Visible True/False. Determina si el botón está visible o no.
Eventos
Click Ocurre cuando el usuario hace clic sobre el botón.
Arreglo de Controles
Cuando creamos un arreglo de controles, todos los controles que forman el arreglo deben
tener el mismo nombre (Propiedad Name), la propiedad Index establece el índice de cada
control en el arreglo, esta propiedad comienza desde 0.
Un arreglo de controles es un grupo de controles que comparten el mismo:
Tipo de objeto
Nombre del control
Procedimientos de evento
Método 1
1. Copiar el primer control al portapapeles.
2. Luego pegar el control de portapapeles en el formulario. Visual Basic le
preguntará si desea crear un arreglo de controles.
3. Repita el paso 2 hasta completar el arreglo.
Método 2
1. Dibuje el siguiente control y establezca su nombre igual al del primer control.
Visual Basic le preguntará si desea crear un arreglo de controles.
2. Repita el paso 1 hasta completar el arreglo.
Ejemplo
La interfaz mostrada tiene un arreglo de controles para seleccionar el reporte, el
procedimiento de evento es el mismo para cualquier elemento del arreglo.
OptReporte(0
)
OptReporte(1
)
OptReporte(2
)
Son usuados con frecuencia para permitir rápidos desplazamientos a través de una lista
grande de items. Por ejemplo: archivos, indicadores de posición actual de una escala de
valores, indicadores de volumen en un sistema de audio.
Propiedades
LargeChange De 1 a 32767. Cantidad de cambio cuando el usuario hace clic en el
desplazamiento largo.
Max Máximo valor de desplazamiento cuando el botón se encuentra en la posición más
alta. Valor predeterminado: 32767.
Min Mínimo valor del desplazamiento cuando el botón se encuentra en la posición más
baja. Valor predeterminado: 0.
Name Nombre ddel control.
SmallChange De 1 a 32767. Cantidad de cambio cuando el usuario hace clic en la flecha de
desplazamiento.
Value Valor actual en la escala de valores.
Evento
Change Ocurre cuando el usuario se desplaza o se cambia el valor de la propiedad
Value.
txtGaseosa
lstGaseosas
cmdAgregar
cmdEliminar
Propiedades
Enabled True/False. Determina si el control responde a las acciones del
usuario.
List Arreglo con los elementos de la lista.
ListCount Número de elementos de la lista.
ListIndex Elemento seleccionado.
MultiSelect Establece si es posible seleccionar varios elementos o uno solo.
Name Nombre del control.
NewIndex Indice del último elemento añadido al Cuadro de Lista.
Selected Arreglo de valores lógicos paralelo y del mismo tamaño al arreglo list, indica
que elementos han sido seleccionados (True) de la lista. Se utiliza en lugar de
ListIndex cuando establecemos la propiedad Multiselect en 1 ó 2.
Sorted True/False. Establece los elementos se ordenan alfabéticamente.
Style Establece el comportamiento del control.
Text Devuelve el elemento seleccionado en el cuadro de lista; el valor de retorno es
siempre equivalente al que devuelve la expresión List(ListIndex). Es de sólo
lectura en tiempo de diseño y es de sólo lectura en tiempo de ejecución.
Métodos
AddItem Permite añadir nuevos elementos a la lista.
RemoveItem Permite eliminar elementos de la lista.
Eventos
Click Ocurre cuando el usuario interactúa con el control.
Ejemplos
Propiedades
Enabled True/False. Determina si el control responde a las acciones del
usuario.
List Arreglo con los elementos de la lista.
ListCount Número de elementos de la lista
ListIndex Elemento seleccionado.
Name Nombre del control.
NewIndex Indice del último elemento añadido al cuadro de lista.
Sorted True/False. Establece si los elementos se ordenan alfabéticamente.
Style Establece el comportamiento del control.
Text Texto que contiene el control.
Métodos
AddItem Permite añadir nuevos elementos a la lista.
RemoveItem Permite eliminar elementos de la lista.
Eventos
Parte 5: Controles Estándar Adicionales y Procedimientos - Danny A. Matta Gonzales
60
Click Ocurre cuando el usuario interactúa con la lista del control.
Change Ocurre cuando el valor de la propiedad Text es modificado.
Propiedad Style
Esta propiedad establece el comportamiento del control ComboBox, y puede tomar los
siguientes valores:
Constante Valor Descripción
vbComboDropDown 0
(Predeterminado) Cuadro combinado desplegable. Incluye una
lista desplegable y un cuadro de texto.El Usuario puede
seleccionar datos en la lista o escribir en cuadro de texto.
vbComboSimple 1 Cuadro combinado simple. Incluye un cuadro de texto y una
lista, que no se despliega. El usuario puede seleccionar datos
en la lista o escribir en el cuadro de texto. El tamaño de un
cuadro combinado simple incluye las partes de edición y de
lista. De forma predeterminada, el tamaño de un cuadro
combinado simple no muestra ningún elemento de la lista.
Incremente la propiedad Height para mostrar más elementos
de la lista.
vbComboDrop-DownList 2 Lista desplegable. Este estilo sólo permite la selección desde la
lista desplegable.
Ejemplo
En la siguiente interfaz se ilustra el uso del control ComboBox y la propiedad Style.
lblGaseosa
cboGaseosas
Style=0
cboEncuestad
os
Style=1 lblEncuestado
lblCiudad
cboCiudades
Style=2
Procedimientos
Existen dos tipos de procedimientos con los que se trabaja en Visual Basic: los
procedimientos de evento y los procedimientos generales.
Procedimientos de Evento
Visual Basic invoca automáticamente procedimientos de evento en respuesta a acciones
del teclado, del ratón o del sistema. Por ejemplo, los botones de comando tienen un
procedimiento de evento Click. El código que se escriba en el procedimiento de evento
Click es ejecutado cuando el usuario haga clic en un botón de comando.
Cada control tiene un conjunto fijo de procedimientos de evento. Los procedimientos de
evento para cada control son mostrados en un cuadro de lista despegable en la ventana de
código.
Procedimientos Generales
Los procedimientos generales son procedimientos Sub o Function que son creados para
que lleven a cabo tareas específicas, estos deben ser invocados de manera explícita.
Para crear un procedimiento general, se debe abrir la ventana de código y hacer clic en la
orden Agregar procedimiento del menú Herramientas. También se puede crear un
nuevo procedimiento escribiendo el encabezado de procedimiento Sub, seguido por el
nombre del procedimiento, en una línea en blanco dentro de la ventana de código.
Si se tiene código duplicado en varios procedimientos de evento, se puede colocar el
código en un procedimiento general y luego invocar al procedimiento general desde los
procedimiento de evento.
Procedimientos Sub
Los procedimientos Sub no retornan valores. Por ejemplo:
Los procedimientos Sub son invocados especificando sólo el nombre del procedimiento, o
empleando la instrucción Call con el nombre del procedimiento. Por ejemplo:
Call Seleccionar(Text1)
Procedimientos Function
Los procedimientos Function devuelven valores. En el siguiente ejemplo, el procedimiento
Function recibe un número y devuelve ese número al cuadrado.
Cuadrado 5
Los procedimientos declarados como Private pueden ser llamados o invocados sólo por
otros procedimientos localizados en ese formulario, módulo o clase.
End Sub
Form1.MiProc
MiProc
Module1.MiProc
Herramientas de Depuración
Visual Basic proporciona herramientas interactivas para localizar errores en tiempo de
ejecución y errores en la lógica del programa. Se puede acceder a todas las herramientas
de depuración empleando el menú Depuración o la barra de herramientas Depuración.
Las herramientas de depuración en Visual Basic incluyen:
Expresiones de inspección
Emplee las expresiones de inspección para examinar una variable o expresión en
particular. El valor de cada expresión de inspección es actualizado en los puntos de
interrupción
Pila de llamadas
Emplee Pila de llamadas para visualizar todas las llamadas a procedimientos activas y
rastrear la ejecución de una serie de procedimientos anidados.
La ventana inmediato
En modo de interrupción, se puede probar una sentencia ejecutable escribiéndola en la
ventana inmediato. Visual Basic ejecuta la sentencia inmediatamente de modo que se
pueda evaluar el código.
La ventana locales
Esta ventana automáticamente visualiza todas las variables declaradas en el
procedimiento actual, junto con sus valores.
El siguiente código previene que los usuarios ingresen sólo valores numéricos en un cuadro
de texto.
El siguiente código habilita el botón Aceptar luego de ingresar datos en todos los campos.
Notas:
Cuando se cierra un objeto MDIForm, el evento QueryUnload ocurre primero para el
formulario MDI principal y después en todos los formularios secundarios MDI. Si
ningún formulario cancela el evento QueryUnload, ocurre el evento Unload primero
en todos los demás formularios y después en un formulario MDI principal. Cuando un
formulario secundario o un objeto Form se cierra, el evento QueryUnload de ese
formulario ocurre antes que el evento Unload del formulario.
Cuando una aplicación se cierra, puede utilizar los procedimientos de evento
QueryUnload o Unload para establecer la propiedad Cancel a True, deteniendo el
proceso de cierre. Sin embargo, el evento QueryUnload ocurre en todos los
formularios antes de que se descargue ninguno de ellos y el evento Unload ocurre
conforme se descarga cada formulario.
ManipulaErr:
If Err.Number = 53 Then
MsgBox "No se encontro la aplicación"
If MsgBox("¿Desea intentarlo nuevamente?", vbYesNo) _
= vbYes Then
NombreAplic = InputBox _
("Ingrese el nombre de la aplicación:")
Resume 'Intentar nuevamente
Else
Resume Next 'Ejecutar la siguiente instrucción
End If
Else
MsgBox "Error desconocido"
End If
End Sub
La propiedad Description es una cadena que contiene una descripción del error.
La propiedad Source contiene el nombre del objeto aplicación que generó el error. Es útil
cuando se emplea Automatización. Por ejemplo, si se trabaja con Microsoft Excel y genera
un error, Microsoft Excel establecerá Err.Number al código de error apropiado y
establecerá Err.Source a Excel.Application.
El método Raise genera un error en tiempo de ejecución. Por ejemplo, se podría emplear
este método para probar el código de manipulación de errores.
Instrucción Descripción
Resume Regresa a la instrucción que generó el error. Emplee Resume para
repetir una operación luego de corregir el error.
Instrucción Descripción
Resume Next Regresa a la instrucción inmediatamente siguiente a la que generó el
error.
Resume línea La ejecución continúa en la línea especificada en el argumento
obligatorio línea.
Nota:
Si utiliza una instrucción Resume en otro sitio que no sea una rutina de manipulación
de errores, ocurre un error.
Opción Descripción
Modo de interrupción en todos Si se selecciona esta opción, Visual Basic ignora
cualquiera de las instrucciones On Error GoTo e
ingresa en modo de Interrupción si tiene lugar
algún error en tiempo de ejecución.
Interrupción en módulos de clase Si se selecciona esta opción, Visual Basic ejecutará
las instrucciones On Error GoTo para manipular
errores en tiempo de ejecución.
Interrupción en errores no controlados Visual Basic ingresa a modo de
Interrupción en cualquier error para el cual no se
haya establecido una rutina de manipulación.
Además del archivo ejecutable, se debe de proporcionar diversas DLL's y otros archivos
a los usuarios. Se debería crear un programa de instalación que instale la aplicación en
la computadora del usuario.
El Asistente para instalar aplicaciones de Visual Basic hace sencilla la tarea de
crear discos o una carpeta de distribución para una aplicación. Los usuarios pueden
luego ejecutar el programa de instalación en sus computadoras para instalar y registrar
los archivos apropiados.
Propiedades
Drive Devuelve o establece la unidad seleccionada en tiempo de ejecución. No está
disponible en tiempo de diseño.
List Contiene la lista de conexiones de unidad efectivas.
ListCount Devuelve el número de conexiones con unidades de disco.
ListIndex Devuelve o establece el índice del elemento seleccionado actualmente en el
control. No está disponible en tiempo de diseño.
Eventos
Change Ocurre cuando el usuario selecciona una nueva unidad o cuando se cambia la
configuración de la propiedad Drive mediante código.
Propiedades
List Contiene una lista de todos los directorios.
ListCount Devuelve el número de subdirectorios del directorio actual.
ListIndex Indica el índice de la ruta de acceso actual.
Path El valor de la propiedad Path es una cadena que indica una ruta de acceso, como
C:\Ob o C:\Windows\System.
Eventos
Change Ocurre cuando el usuario hace doble clic en un nuevo directorio o cuando se
cambia la configuración de la propiedad Path mediante código.
Propiedades
FileName Devuelve o establece el nombre de un archivo seleccionado.
List Contiene una lista con los archivos del directorio expandido actualmente que
coinciden con la propiedad Pattern. No se incluye la ruta de acceso.
ListCount Devuelve el número de archivos del directorio actual que coinciden con el valor
de la propiedad Pattern.
ListIndex Devuelve o establece el índice del elemento seleccionado actualmente.
Path El valor de la propiedad Path es una cadena que indica una ruta de acceso, como
C:\Ob o C:\Windows\System.
Pattern Devuelve o establece un valor que indica los nombres de archivo mostrados en
un control FileListBox en tiempo de ejecución.
Eventos
Click Ocurre cuando el usuario presiona y suelta un botón del ratón en un control
FileListBox.
Propiedades
PictureDevuelve o establece un gráfico que se mostrará en el control. También se le puede
asignar un gráfico devuelto por la función LoadPicture.
Stretch True/False. Devuelve o establece un valor que indica si un gráfico cambia su
tamaño para ajustarse al de un control Image.
Comentarios
El control Image utiliza menos recursos del sistema y actualiza con más rapidez que un
control PictureBox, pero sólo admite un subconjunto de las propiedades, los eventos y los
métodos de PictureBox. Use la propiedad Stretch para determinar si el gráfico se escala
para ajustarse al control o viceversa. Aunque puede colocar un control Image dentro de un
contenedor, un control Image no puede actuar como contenedor.
Función LoadPicture()
Carga un gráfico en un objeto Picture, un control PictureBox o un control Image.
Formato:
LoadPicture(NombreDeArchivoGráfico)
drvUnidad Frame1
El
dirDirectorio
Image1
filLista
Propiedades
Enabled True/False. Activa o desactiva el control. Si se desactiva el control Timer,
estableciendo Enabled a False, se cancelará la cuenta atrás establecida por la
propiedad Interval del control.
Interval Devuelve o establece el número de milisegundos entre las llamadas al evento
Timer de un control Timer. Los valores admitidos para milisegundos son 0, que
desactiva el control Timer, o de 1 a 65535. El máximo, 65535 milisegundos,
equivale a poco más de un minuto.
Eventos
Timer Ocurre cuando ha transcurrido un intervalo preestablecido para el control Timer.
Timer1
Interval=100
0
Enabled=Fals
e
Minimiza el
txtHora
txtMensaje
Compara la hora actual con la hora ingresada en el cuadro txtHora cada segundo
y muestra el mensaje establecido en caso de que sean iguales, desactiva el
control temporizador y restaura la ventana a su tamaño normal.
Librerías ODBC
Estas librerías permiten que se llame a la interface de programación de aplicaciones
(API) de ODBC directamente y están disponibles como un producto separado.
Registros
Un registro contiene información acerca de un solo ingreso en una tabla. Generalmente, no
se desea que dos registros en una tabla tengan los mismos datos. Por ejemplo, un registro
en la tabla Empleados contiene información acerca de un único empleado.
Campos
Cada campo en una tabla contiene una parte de la información. Por ejemplo, la tabla
Empleados incluye campos para el Id del empleado, Apellidos, Nombre, etc.
Indices
Los índices de una tabla de una base de datos son listas ordenadas que son más rápidas
para las búsquedas que las tablas en sí. Para habilitar un acceso más rápido a una base de
datos, la mayoría de bases de datos emplean uno o más índices. Por ejemplo, la tabla
Empleados tiene un índice para la columna IdEmpleado.
Nota: Para acceder a una base de datos dBase, Paradox, o Btrieve, se debe establecer la
propiedad DatabaseName a la carpeta que contiene los archivos de la base de datos, y la
propiedad Connect al tipo apropiado de base de datos.
Enlazar Controles
Después de establecer los valores de las propiedades para el control Data, es necesario
enlazar al control Data controles individuales y después especificar qué campo de la tabla
mostrará cada control.
La Propiedad Connect
Esta propiedad especifica el tipo de base de datos a abrir. Puede incluir argumentos tales
como un nombre de usuario (user ID) y una contraseña.
La Propiedad Exclusive
La propiedad Exclusive determina si se tiene o no un uso exclusivo de la base de datos. Si
esta propiedad se establece a True, y luego se abre sin problemas la base de datos,
ninguna otra aplicación podrá abrirla hasta que sea cerrada.
La Propiedad ReadOnly
Esta propiedad determina si se puede o no actualizar o grabar cambios en la base de
datos. Si no se tiene planeado hacer cambios en la base de datos, es más eficiente
establecer la propiedad ReadOnly a True.
La Propiedad Recordset
La propiedad Recordset es un objeto que contiene el conjunto de registros devueltos por
el control Data. Esta propiedad contiene a su vez propiedades y métodos que pueden ser
usados para trabajar con los registros devueltos.
El Método Refresh
El método Refresh renueva el objeto Recordset. Si se cambia la propiedad
RecordSource en tiempo de ejecución, se debe invocar al método Refresh para renovar
el recordset.
El siguiente código muestra como emplear el método Refresh.
El Objeto Recordset
En una aplicación de base de datos, los usuarios trabajan con el control Data para
desplazarse entre registros dentro de la base de datos. Los usuarios pueden hacer clic en
Sintaxis
El evento Validate tiene la siguiente sintaxis:
El Argumento Action
El argumento action indica la operación que provocó el evento Validate. El evento Validate
se produce como resultado de realizar las operaciones siguientes:
El Argumento Save
El control DBGrid tiene varias propiedades que especifican cómo se comporta el control.
Por ejemplo, si asigna a la propiedad AllowUpdate el valor True, un usuario puede
modificar los datos del control. También puede establecer propiedades para columnas
individuales del control DBGrid.
Puede cambiar el título de la columna, cambiar el campo de datos al que se enlaza la
columna, agregar valores predeterminados, etc.
MsgBox DBGrid1.Columns(DBGrid1.Col).Text
Para cambiar la información del control DBGrid, cambie el objeto Recordset asociado. Por
ejemplo, si el control DBGrid está enlazado al recordset Data1, se ejecutaría el siguiente
código:
Data1.Recordset.Edit
Data1.Recordset.Fields("NombreProducto") = "Disco duro"
Data1.Recordset.Update
Por ejemplo, para combinar las celdas en la tabla Detalles de pedidos, añada el siguiente
código al formulario donde se encuentra el control MSFlexGrid.