2. 2
GUIA DE ESTUDIO
VISUAL BASIC 6.0
Visual Basic es un lenguaje de programación de cuarta generación que soporta las
características de orientación a objetos y mantiene las sentencias de manera homóloga al
Basic tradicional. Algunos estudiosos han asegurado de que Visual Basic hasta la versión 6.0
no es orientado a objetos, sino orientado a eventos, ya que en el modelo POO se deben
presentar de manera explícita la herencia, encapsulamiento y polimorfismo.
La herencia se refiere al hecho de que un objeto puede contener las características o
propiedades de un objeto padre. En VB la herencia está presente de manera implícita. Por
ejemplo, los rasgos heredados de los padres hacia los hijos.
El encapsulamiento: consiste en el hecho de que el código asociado a un objeto es privado
para dicho objeto y queda asociado exclusivamente a éste. Por ejemplo, el código del evento
cmdGuardar_Click() estará asociado exclusivamente a ese objeto.
El polimorfismo indica que un objeto puede contener métodos que pueden tener el mismo
nombre, pero desencadenar diferentes comportamientos. Por ejemplo, en un teléfono, cuando
se presiona un botón para digitar un número, se marcará dicho número, sin embargo, aunque
esencialmente la función es la misma, al discar el uno (1), de marcará este dígito, ocurriendo lo
mismo con el dos (2) y el resto de los números; es decir, el resultado varía dependiendo de
cada botón, aunque todos respondan a la misma acción (presionar).
PROPIEDADES, MÉTODOS Y EVENTOS
Una propiedad es una característica de un objeto; por ejemplo, el nombre, color, tamaño,
posición, etc.
Un método es un comando o acción al cual, el objeto puede responder. Por ejemplo, cuando se
le dice al objeto “Muévete a la izquierda” o “Agrega un elemento a este objeto”.
Un evento es un suceso de programa que puede ocurrir en cualquier momento. Por ejemplo:
cuando el usuario pasa el Mouse por encima del objeto o hace clik sobre él.
EL ENTORNO DE PROGRAMACIÓN (IDE) DE VISUAL BASIC 6.0
Visual Basic 6.0 ofrece un entorno integrado de desarrollo provisto de los siguientes elementos:
Formulario
Cuadro de
controles
Explorador
de proyectos
Ventana
Propiedades
Barra de Menús y Herramientas
3. 3
Barra de Menús y Herramientas: De manera homóloga a los programas diseñados para
Windows, permiten desplegar una lista de opciones que el usuario puede utilizar para diseñar,
depurar y ejecutar los programas entre otras posibilidades.
Formulario: Es el formulario base donde el diseñador o programador trabajará para diseñar la
interfaz de usuario.
Cuadro de Controles: Representa cada uno de los objetos que el usuario puede insertar
dentro de los formularios.
Ventana Propiedades: Representa cada una de las propiedades de los objetos.
Explorador de Proyectos: Muestra cada uno de los elementos que componen un proyecto en
visual Basic como formularios, módulos, etc.
Un proyecto es un conjunto de formularios, módulos, módulos de clase y otros archivos que
forman parte de la aplicación final (programa compilado). Dicho proyecto tiene extensión .vbp
hasta que se compila y genera un programa ejecutable .exe compatible con Windows.
El proyecto por defecto tiene el nombre “Proyecto1” y puede cambiarse su nombre por otro
más descriptivo asociado a su contenido. Este nombre prevalecerá hasta la generación del
ejecutable.
LOS FORMULARIOS Y OBJETOS EN VISUAL BASIC
Un formulario es un objeto básico contenedor de otros objetos, que permite el diseño de las
interfaces de usuario. En todos los programas Windows cada ventana está representada por lo
menos por un formulario dentro del cual, se encuentran los botones de comando, cuadros de
texto, listas desplegables y otros objetos que pueden ser accedidos por los usuarios.
Los objetos en visual Basic pueden ser intrínsecos (vienen preestablecidos por el lenguaje) o
externos (diseñados por otros fabricantes). Este último tipo de objetos son los denominados
ActiveX u .OCX.
Puntero: Es el objeto preestablecido utilizado para seleccionar otros objetos
Textbox: Permite el ingreso de texto por parte del usuario
Checkbox: Permite marcar como verdadero o falso (sí o no) el estado del objeto.
Listbox: Muestra una lista abierta de elementos.
Timer: Permite repetir instrucciones de acuerdo al reloj del procesador.
DirListBox: Muestra una lista de archivos de directorios.
Image: Permite insertar imágenes en el formulario.
Label: Permite asignar una leyenda o etiqueta para indentificar otros objetos.
CommandButton: Permite desencadenar acciones diversas al ser presionado.
ComboBox: Muestra una lista desplegable de elementos al clickear en la flecha
derecha
PictureBox: Permite insertar imágenes en el formulario
Frame: Delimita una región del formulario para agrupar otros objetos
4. 4
OptionButton: Muestra un grupo de opciones de las cuales, el usuario sólo puede elegir una
de ellas.
ANTES DE COMENZAR A PROGRAMAR LA APLICACIÓN
Existen una serie de consideraciones importantes antes de empezar a programar. Lo primero
que debemos tomar en cuenta es que Visual Basic 6 es la existencia del Administrador de
proyectos y la ventana propiedades.
Un proyecto en visual basic es la integración de una serie de archivos como formularios,
módulos y otros elementos que al trabajar como un todo dan origen a nuestra aplicación o
programa de una manera totalmente funcional.
El formulario es la ventana base sobre la cual se colocan los objetos del programa, mientras
que el módulo es un archivo que contiene instrucciones que complementan nuestro programa.
El explorador de proyectos es una ventana que se encuentra en el entorno de desarrollo de
Visual Basic y presenta una lista de todos los elementos que están incluidos en la aplicación y
la Ventana Propiedades permite visualizar y editar los valores de las características de los
objetos como su nombre, título, color, etc.
La ventana propiedades se muestra presionando F4 y el explorador de proyectos al presionar
CONTROL+R.
EL ACCESO A DATOS DESDE VB
Para acceso a datos, Visual Basic 6.0 incluye un control intrínseco llamado “Data”. Este permite
conectarse a diversos motores de bases de datos como DBF, Acces, Paradox o Excel. Sin
embargo, para conectarse con motores de bases de datos más recientes y robustos, se
incluyen los controles ActiveX ADO y RDO.
El ADO genera una cadena de conexión donde se indica el motor de la base de datos,
dirección en el disco donde se encuentra y otros parámetros que permiten establecer la
conectividad.
En cuanto al RDO (Objetos de Datos Remotos) se utiliza para conectar BD remotas a través de
un DSN (Servidor de Nombres de Dominio de datos) que debe ser creado en la máquina local
para establecer la conexión.
En este curso, se utilizará el control de datos ADO.
1. Para llamar el control de datos ADO, se debe presionar la combinación “Control+T” y
muestra la lista de todos los componentes de Visual Basic.
2. Se debe seleccionar el componente
“Microsoft ADO Data Control 6.0 y
presionar “Aceptar”
Al hacer esto, se inserta un control en el
cuadro de controles que hace referencia
a este componente.
3. En este momento, ya el entorno está
preparado para manejar datos. En este
sentido, es necesario dibujar nuestro
formulario, tal como se observa a
continuación:
5. 5
4. Para insertar un objeto (por
ejemplo el Label Cedula, deberá
hacer doble clic sobre el control
del cuadro de controles. Esto
ubicará el objeto Label1 en el
centro del formulario.
5. Luego, muévalo hasta la parte
superior del form tal como se
muestra en la figura
6. Busque la propiedad Caption en
la ventana Propiedades y escriba
Cédula para asignar el valor de la
propiedad.
El objeto quedará así:
7. Inserte el cuadro de texto (textbox) haciendo doble clic sobre el control
TextBox del cuadro de controles . Este se colocará en el centro del
formulario y deberá arrastrarlo hacia al lado del Label Cedula, tal como se
muestra en la figura:
8. En la ventana propiedades, busque la propiedad Text y borre el valor que tiene en ese
momento (Text1). Al mismo tiempo, busque la propiedad (Nombre) que es la primera que
aparece en la lista de propiedades y escriba txtcedula. Presione enter para aceptar el valor y
prosiga con el resto de objetos y propiedades de acuerdo al siguiente cuadro:
Propiedades de los Objetos:
Objeto Propiedad Valor
Form Name
Caption
BorderStyle
StartUpPosition
frmAlumnos
Alumnos
1. Fixed Single
2. CenterScreen
Label1, Label2, Label3,
Label4, Label5
Caption Cedula, Nombre, Apellido,
Dirección, Telefono
Text1, Text2, Text3, Text4,
Text5
Name
Text
Enabled
txtCedula, txtNombre,
txtApellido, txtDireccion,
txtTelefono
“” (Vacío)
False
6. 6
CommandButon1…
CommandButton7
Name
Caption
Enabled
cmdNuevo, cmdEditar,
cmdBuscar, cmdEliminar,
cmdGuardar, cmdCancelar,
cmdCerrar
Nuevo, Modificar, Eliminar,
Cerrar, Guardar, Cancelar,
Consultar
True (cmdGuardar y
cmdCancelar = False)
En resumen, nuestro formulario tendrá 5 Labels, 5 textboxes y 7 Command buttons.
NOTA MUY IMPORTANTE: Verifique minuciosamente que todas las propiedades de los
objetos están bien asignadas, ya que de no ser así, tendrá problemas al momento de agregar
el código.
SIGNIFICADO DE LAS PROPIEDADES UTILIZADAS:
Name: Indica el Nombre del Objeto. El nombre es único y sólo se utiliza a nivel de código. No
se debe confundir con el Caption. Se recomienda utilizar prefijos para identificar al tipo de
objeto. Los más utilizados son:
cmd CommandButton
txt TextBox
cmb ComboBox
lbl Label
pic PictureBox
frm Formulario
chk CheckBox
opt OptionButton
Los nombres de objeto no pueden comenzar con números ni contener espacios en blanco ni
caracteres especiales. Tampoco se pueden utilizar palabras reservadas del lenguaje.
Caption: Indica la leyenda o título del objeto que el usuario observa durante la ejecución del
programa
BorderStyle: Sólo aplica para el objeto Form. Estilo del borde (Ninguno, Sencillo, Ajustable,
Cuadro de diálogo, como barra de herramientas flotante o fija)
Enabled: Indica si el objeto está activo durante la ejecución del programa o no. De no estar
activo, el usuario no podrá ingresar ningún dato ni manipular dicho objeto.
Tag: Almacena cualquier valor que el usuario desee. En este curso, se utilizará para efectos de
optimizar el código de programa al limpiar, activar o desactivar objetos.
Text: En un objeto textbox o combobox, guarda el valor ingresado por el usuario.
PERSPECTIVA DEL PROGRAMA (¿CÓMO SE DESEA QUE FUNCIONE?)
El programa debe permitir el ingreso, actualización, eliminación y consulta de datos de los
alumnos de un colegio. Al inicio, todos los cuadros de texto deben estar desactivados y sólo se
activarán cuando el usuario desee agregar o modificar datos. En tal caso, los únicos botones
que deben quedar activos son Guardar y Cancelar, ya que durante una operación de edición o
agregación sólo se pueden almacenar los datos o deshacerlos.
Al inicio, los botones Nuevo, Modificar, Eliminar, Cerrar y Consultar deben estar activos ya que
se espera que el usuario desencadene una de estas acciones, estando inactivos los botones
Guardar y Cancelar.
7. 7
Luego de una operación de agregación o modificación, cuando el usuario selecciona Guardar o
Cancelar, se regresan todos los cuadros de texto a su estado inactivo y los botones Nuevo,
Modificar, Eliminar, Cerrar y Consultar, se activan; desactivando entonces a Guardar y
Cancelar.
ABRIENDO LA BASE DE DATOS DESDE VB
Para abrir la base de datos, utilizaremos una variable global llamada “db” que declararemos en
un módulo. Esto lo realizamos de la siguiente manera:
1. Hacemos click con el botón derecho en el área blanca del administrador de proyectos.
2. Seleccionamos Agregar Módulo y aparecerá una
pantalla como la siguiente:
3. Seleccionamos Abrir y se mostrará una pantalla en
blanco en la que escribiremos el siguiente código:
'Declara las variables que hacen referencia
'a la base de datos y al recordset (conjunto de registros)
'Se declaran global para que esten al alcance de todo el proyecto
Global db As New ADODB.Connection
Global rst As New ADODB.Recordset
'Ahora se escribe el procedimiento inicial
Sub main()
'Abre la conexión a la base de datos utilizando una cadena de conexión...
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:SISTEMACENTRAL.mdb;Persist Security Info=False"
db.Open
'e invoca al formulario de alumnos con el metodo show
frmAlumnos.Show
End Sub
4. Guardamos el módulo con el nombre modInicial.bas.
Importante: Los proyectos en visual basic 6.0 tienen extensión.vbp mientras que los
formularios son .frm y los módulos son .bas.
Al momento de abrir un proyecto, siempre hacerlo con el archivo .vbp. Es un error común abrir
el archivo .frm
Como pudo observarse, se declararon 2 variables globales que hacen referencia a nuestra
base de datos (db) y recordset (rst) y se realiza de esta manera para que estén “visibles” en
todos los objetos del proyecto.
También notemos la existencia del sub main() que es el procedimiento de inicio. Debemos
entonces indicarle a Visual Basic que la primera rutina que llamará al iniciar es el sub main().
Para ello, vamos al menú proyecto y luego elegimos la opción Propiedades de proyecto. Allí
aparecerá la siguiente ventana:
8. 8
Alli, clickearemos en la lista desplegable
Objeto Inicial y seleccionaremos Sub
Main. También le colocaremos como
Nombre de proyecto “Sistema” y
presionamos Aceptar para guardar los
cambios.
Ahora, la próxima vez que se inicie el
proyecto, se invocará al sub main(), por lo
cual, se acostumbra que en esta rutina, se
llame al formulario que contiene el menú
principal del sistema. Por ahora, sólo
invocará al formulario frmAlumnos.
INFORMACIÓN IMPORTANTE SOBRE LA DECLARACIÓN DE VARIABLES.
Habrá visto que en el sub main() declaramos dos variables con la palabra Global. Una variable
es un objeto de programa que puede contener datos y los mismos varían a lo largo de la
ejecución del programa. Las variables pueden ser de tipo entero, con decimales, de cadena de
caracteres, de tipo objeto, entre otros.
La declaración de una variable es como sigue:
Dim nombre_var as tipo_de_dato:
Dim es la palabra reservada que reserva el espacio en la memoria RAM para la variable.
Nombre_var es el nombre que se le da a la variable (no debe comenzar con números, ni
contener caracteres especiales ni espacios en blanco)
Tipo_de_dato es el tipo de dato que se le asigna a la variable (integer, string, doublé, etc)
También se puede utilizar la declaración implícita (sin usar dim) y utilizar la variable justo en el
momento que se declara. Por ejemplo
Cedula$=”15069973”
Esta instrucción crea la variable “Cedula” de tipo cadena (el símbolo $ significa que se declara
como una cadena de caracteres) y luego, se asigna el valor de una cédula cualquiera.
El símbolo (%) significa “entero”, mientras que el símbolo (#) significa “doublé”. Puede revisar la
ayuda de Visual Basic 6 par mayores detalles.
ADICIÓN DEL CÓDIGO
1. Para agregar el código a un objeto, se debe clickear sobre dicho objeto y luego, aparecerá el
editor de código. Allí se muestra una lista con los objetos del formulario (en el lado izquierdo) y
los eventos que puede soportar (en el lado derecho).
2. Ingresemos en el código del objeto cmdCerrar haciendo doble click sobre el botón Cerrar
Al hacer esto, se mostrará la ventana código asociada a dicho botón. Es de hacer notar que en
la lista superior izquierda aparece el nombre del objeto y en la derecha el evento que
estaremos programando (en este caso: click), También aparecen unas líneas de código
automáticas que indican inico y fin de un procedimiento asociado al objeto cmdCerrar,
específicamente el evento click. Dichas líneas no deben borrarse.
9. 9
3. Ubiquese debajo de la palabre Private
y pegue allí el siguiente código:
End
Y luego, cierre dicha ventana
La instrucción End implica que cuando el usuario haga click sobre el botón Cerrar del
formulario, se terminará por completo la ejecución del programa.
4. Es el momento de ingresar el código de los botones cmdNuevo y cmdEditar.
Private Sub cmdNuevo_Click()
'Primero se activan todos los cuadros de texto
'porque escribiremos sobre ellos los valores que les asignaremos
'a los campos de la tabla ALUMNOS
Me.txtApellido.Enabled = True
Me.txtCedula.Enabled = True
Me.txtDireccion.Enabled = True
Me.txtNombre.Enabled = True
Me.txtTelefono.Enabled = True
'Cuando comienza la creación, sólo se podrán Guardar o Cancelar los cambios
'Por eso cmdCancelar y cmdGuardar se activan
'Y el resto de los Botones de comando, se desactivan...
Me.cmdGuardar.Enabled = True
Me.cmdCancelar.Enabled = True
Me.cmdBuscar.Enabled = False
Me.cmdCerrar.Enabled = False
Me.cmdEditar.Enabled = False
Me.cmdNuevo.Enabled = False
Me.cmdEliminar.Enabled = False
End Sub
Para el botón Editar, inserte el siguiente código: (Doble click sobe el botón cmdEditar)
Private Sub cmdEditar_Click()
'Verifica que se esté mostrando un reg en pantalla...
'Si se está mostrando un registro, el texbox cedula tiene algún valor...
If Me.txtCedula.Text = "" Then
'Si no es así, muestra un error
MsgBox "Debe cargar un registro para modificarlo", vbCritical
Exit Sub
End If
'Activa los cuadros de texto porque estamos editando...
Me.txtApellido.Enabled = True
Me.txtCedula.Enabled = True
Me.txtDireccion.Enabled = True
Me.txtNombre.Enabled = True
Me.txtTelefono.Enabled = True
'Desactiva todos los Botones de comando,
'dejando activos solamente cmdGuardar y cmdCancelar
'porque al editar sólo se pueden salvar o cancelar los cambios...
Me.cmdBuscar.Enabled = False
Me.cmdCerrar.Enabled = False
Me.cmdEditar.Enabled = False
Me.cmdNuevo.Enabled = False
Me.cmdEliminar.Enabled = False
Me.cmdGuardar.Enabled = True
Me.cmdCancelar.Enabled = True
End Sub
5. Cierre las ventanas de edición de código y haga doble click sobre el objeto cmdBuscar del
formulario
6. Es el momento de ingresar el código del botón cmdBuscar que se indica a continuación:
10. 10
Private Sub cmdBuscar_Click()
Dim cedula As String 'Declara la variable cedula como cadena...
'Muestra un cuadro de mensaje solicitando la cédula que desea buscar...
'Y lo asigna a la variable cedula
cedula = InputBox("Ingrese la Cédula a Buscar")
'Si la variable no contiene nada, se muestra un error
'Y sale de este procedimiento...
If Trim(cedula) = "" Then
MsgBox "La cédula ingresada es inválida", vbCritical
Exit Sub
End If
'Pero si el usuario ingresa una cédula,
'Abre un RecordSet y verifica si existe...
rst.CursorLocation = adUseClient 'Siempre se coloca para que el RecordCount funcione
correctamente
'Esta instrucción abre un recordset que es una colección de registros de una o varias
tablas...
rst.Open "SELECT * FROM alumnos WHERE cedula='" + Trim(cedula) + "'", db,
adOpenDynamic, adLockOptimistic
If rst.RecordCount > 0 Then 'Si ha encontrado alguna coincidencia...
Me.txtApellido = rst!apellido 'Asigna los valores a los cuadros de texto
Me.txtCedula = rst!cedula
Me.txtDireccion = rst!Dir
Me.txtTelefono = rst!telf
Me.txtNombre = rst!nombre
Else 'De lo contrario, muestra un mensaje de que no se encontró ningun registro
MsgBox "No se encontró el alumno con esta cédula", vbCritical
End If
rst.Close
End Sub
Veamos lo que hemos hecho hasta ahora…
El botón nuevo activa todos los cuadros de texto para que el usuario pueda teclear la cédula,
nombre, apellido, etc del alumno que está registrando.
Dado que está “creando” un nuevo registro, sólo se podrán Guardar los cambios o
Cancelarlos, de allí que sólo se dejan activos los botones cmdGuardad y cmdCancelar,
mientras que cmdNuevo, cmModificar, cmdBuscar, cmdEliminar y cmdCerrar se
desactivan.
Lo mismo ocurre cuando se presiona el botón Modificar ya que se está tratando de editar
registros. La única diferencia notoria es el hecho de que para poder editar, el usuario debe
haber buscado un registro primeramente y luego, con los datos del mismo en el formulario,
presionar editar, es decir, obligatoriamente debe estarse visualizando un registro en la
pantalla. Por esta razón se verifica primero si el txtCedula.text tiene algún valor, porque esto
indica que se ha cargado previamente un registro para su modificación.
Nótese la utilización de la estructura condicional if que sirve para tomar una decisión en base al
resultado de una condición… Por ejemplo; si el txtcedula.text tiene “algo”, entonces, continuar,
de lo contrario, mostrar un error.
En cuanto al botón cmdBuscar, lo primero que se realiza pedirle al usuario cuál cédula desea
buscar. Para ello, se utiliza la función InputBox que muestra un cuadro de mensaje con una
región editable. Allí, el usuario escribirá la cédula a buscar y luego, se buscará en la tabla de
alumnos si existe alguna coincidencia con el valor ingresado.
La función InputBox() Muestra un mensaje en un cuadro de diálogo, espera que el usuario
escriba un texto o haga clic en un botón.
InputBox(mensaje[, titulo])