You are on page 1of 76

DEPARTAMENTO DE INFORMTICA VISUAL BASIC 6.

0 Iniciar un proyecto en Visual Basic Se deben ejecutar los siguientes pasos para iniciar la aplicacin: 1. 2. 3. 4. Seleccionar el botn Inicio de Windows Elegir la carpeta Programas Localizar la carpeta Microsoft Visual Studio 6.0 Dar clic sobre el icono Microsoft Visual Basic 6.0

Luego de haber iniciado Visual Basic debemos indicarle a la aplicacin que tipo de proyecto nuevo deseamos crear. Elegimos del cuadro de dilogo Nuevo Proyecto la opcin EXE estndar que se encuentra en la cejilla Nuevo, finalmente presionamos el botn Abrir.

Profesor David Molina S. 2009

COLEGIO MARISTA DE ALAJUELA Descripcin de la pantalla Principal

Barra Estndar

Barra de Mens

Cuadro de Herramientas

Explorador de proyectos

Formulario

Ventana de Propiedades

Ventana Posicin del formulario

1. Explorador de proyectos: permite visualizar los elementos (formularios, mdulos, etc.) que contiene un determinado proyecto. 2. Ventana de Propiedades: muestra los elementos que caracterizan a un determinado objeto en tiempo de diseo y permite modificarlos. 3. Ventana Posicin del formulario: permite establecer en que lugar de la pantalla aparecer un determinado formulario. 4. Cuadro de Herramientas: muestra los objetos estndares que pueden ser agregados a un formulario. Se puede agregar ms objetos e inclusive separarlos por categoras.

Profesor David Molina S. 2009

DEPARTAMENTO DE INFORMTICA Objetos del Cuadro de Herramientas Entre los objetos ms usados del Cuadro de Herramientas estn los siguientes: Nombre del Objeto Label TextBox Frame CommandButton CheckBox OptionButton ComboBox ListBox HScrollBar VScrollBar Timer DriveListBox DirListBox Icono Descripcin Cuadros de texto o etiquetas. Campos donde el usuario puede digitar datos. Subdivisiones dentro de un formulario. Botones que efectan acciones. Casillas de verificacin que permiten la seleccin mltiple. Botones de opcin que solo permiten una nica seleccin. Campo de datos que posee una lista desplegable con opciones. Campo de datos con barras de desplazamiento. Barra de desplazamiento horizontal. Barra de desplazamiento vertical. Cronmetro para ejecutar acciones por lapsos. ComboBox, se usa para seleccionar una unidad de disco. ListBox, permite seleccionar directorios de una unidad de disco. ListBox, se utiliza para seleccionar archivos de una unidad de disco. PictureBox, agrega una imagen con el tamao establecido cuando se genera el objeto. Image, agrega una imagen y la muestra en su tamao original.

FileListBox

PictureBox Image

Profesor David Molina S. 2009

COLEGIO MARISTA DE ALAJUELA Agregar un objeto a un Form Para agregar un objeto lo seleccionamos del Cuadro de Herramientas y damos un clic sobre l mismo, de seguido sin soltar el botn del mouse se arrastra sobre el Form, para determinar el tamao del objeto y finalmente soltamos el botn izquierdo del mouse.

Tambin se puede agregar objetos dando doble clic sobre ellos en el Cuadro de Herramientas y luego modificar el tamao. La ventana de propiedades Luego de agregar un objeto a un formulario y seleccionarlo, podemos observar como en la ventana de propiedades se cargan los atributos propios de dicho objeto que pueden ser modificados en tiempo de diseo. Por ejemplo al agregar un objeto de tipo Label, la ventana de propiedades se vera de la siguiente manera:

Nombre del objeto: Label1 Tipo de objeto: Label La lista de atributos de un objeto se puede ver en orden alfabtico o por categoras. Lista de atributos del objeto

Informacin general de un atributo seleccionado de la lista

Profesor David Molina S. 2009

DEPARTAMENTO DE INFORMTICA Propiedades del Form Propiedades en tiempo de ejecucin ms comunes del Form: Nombre de la Propiedad BackColor Caption ControlBox Icon MaxButton MinButton Picture Propiedades del Label Propiedades en tiempo de ejecucin ms comunes del Label: Nombre de la Propiedad Alignment AutoSize BackColor Caption Enabled Font ForeColor Visible Descripcin Ajusta el texto a la izquierda, derecha o al centro. Ajusta el tamao del cuadro de texto. Establece un color de fondo. Modifica el texto del Label. Si se encuentra en False no permite modificar el texto en modo de ejecucin. Permite elegir el tipo de letra dentro del TextBox. Color del texto. Establece si por defecto el TextBox se muestra. Descripcin Cambia el color de fondo. Establece el texto en la barra de Ttulo. Activa o desactiva los botones de minimizar, maximizar y cerrar. Consigue colocar un icono junto al texto de la barra de titulo. Activa o desactiva el botn maximizar. Activa o desactiva el botn minimizar. Permite establecer una imagen como fondo.

Profesor David Molina S. 2009

COLEGIO MARISTA DE ALAJUELA Propiedades del TextBox Propiedades en tiempo de ejecucin ms usuales del TextBox: Nombre de la Propiedad Alignment Enabled Font ForeColor Locked MaxLength MultiLine Descripcin Justifica el texto a la izquierda, derecha o al centro. Si se encuentra en False no permite modificar el texto. Se utiliza para elegir el tipo de letra dentro del TextBox. Color del texto. Si se encuentra en False no permite modificar el texto pero s seleccionarlo. Establece el nmero de dgitos mximos que se pueden digitar, si est en cero no hay lmite de dgitos. Permite que el texto sea agregado en ms de una lnea. Convierte el TextBox en un campo de clave, es decir, todos los dgitos sern sustituidos por el carcter que se coloque en este campo, el usual es el asterisco (*). Agrega barras de desplazamiento al TextBox. La opcin Multicine debe estar en True. Indica el orden de tabulacin del TextBox. Inserta el texto que tendr el TextBox por defecto. Agrega texto de ayuda sobre que datos se deben digitar en el campo. El texto aparece cuando se coloca el cursor cerca del TextBox. Establece si por defecto el TextBox se muestra.

PasswordChar

ScrollBars TabIndex Text ToolTipText Visible

Profesor David Molina S. 2009

DEPARTAMENTO DE INFORMTICA Propiedades del CommandButton Propiedades en tiempo de ejecucin ms comunes del CommandButton: Nombre de la Propiedad Caption Enabled Font TabIndex ToolTipText Visible Orden de Tabulacin de los objetos Cuando se agrega en un Form objetos, conforme se van adicionando, se les asigna un valor en la propiedad TabIndex. Esta propiedad establece el orden en que sern accesados o enfocados durante la ejecucin cuando se presione la tecla de Tabulacin. En caso de que el desplazamiento no sea el deseado basta con variar el valor de la propiedad TabIndex. En el siguiente ejemplo se muestran tres campos y el valor de la propiedad TabIndex en cada campo. Descripcin Modifica el texto del CommandButton. Si se encuentra en False no permite utilizar el CommandButton. Se emplea para elegir el tipo de letra dentro del CommandButton. Indica el orden de tabulacin del CommandButton. Agrega texto de ayuda sobre la funcin del botn. El texto aparece cuando se coloca el cursor cerca del CommandButton. Establece si por defecto el CommandButton se muestra.

Al iniciar la aplicacin el cursor se posiciona aqu. Al presionar la tecla Tab el cursor se posiciona aqu. Al presionar la tecla Tab, nuevamente, el cursor se posiciona aqu.

TabIndex: 0

TabIndex: 1

TabIndex: 2

Profesor David Molina S. 2009

COLEGIO MARISTA DE ALAJUELA Eventos de los objetos Para poder programar un evento en un determinado objeto (Form, TextBox, Label, Command Button, etc), se da doble clic sobre el elemento, cargando as la ventana de cdigo:

Nombre del objeto.

Procedimiento del objeto donde se va a programar.

En la imagen anterior podemos ver la ventana de cdigo para programar un evento del objeto Command1 cuando sea presionado. Cualquier lnea de cdigo que tenga como primer carcter un apstrofo ( ' ) se convierte en comentario, es decir no ser tomado en cuenta cuando se compile el cdigo. Esta opcin es muy til para documentar las aplicaciones o desactivar alguna lnea de cdigo de forma temporal.

Si deseamos cambiar el evento donde vamos a programar, solo es necesario dar un clic en la flecha de procedimientos (por defecto siempre se carga el evento Clic) y elegir el nuevo evento.

Profesor David Molina S. 2009

DEPARTAMENTO DE INFORMTICA Tipos de datos Todos los lenguajes de programacin manipulan los datos de una manera determinada dependiendo del tipo que ste sea. A continuacin se muestran los tipos de datos ms usados: Tipo Boolean Byte Integer Long Currency Single Double String Declaracin de variables Las variables son espacios en memoria donde podemos almacenar un dato de un determinado tipo. Para declarar una variable debemos utilizar la siguiente sintaxis: Rango True o False 0 a 255 -32.768 a 32767 -2.147.483.648 a 2.147.483.647 -922.337.203.685.477,5808 a 922.337.203.685.477,5807 -3.402823E+308 a 3.402823E+308 -1.79769313486232E+308 a 1.79769313486232E+308 1 a 65.400 caracteres

Dim <nombre de la variable> As <tipo de dato>


Conversin de datos Las siguientes Funciones nos permiten convertir el valor de un campo o variable a otro tipo de dato. Cuando se asignan valores que se encuentran en un TextBox, por ejemplo, es necesario convertir el dato del TextBox al tipo de dato de la variable, ya que los TextBox manejan todos los datos como String. Nombre de la Funcin CBool (expresin) CByte (expresin) CCur (expresin) CDbl (expresin) CInt (expresin) CLng (expresin) CSng (expresin) CStr (expresin) Tipo de dato al que convierte Booleano Byte Currency Double Integer Long Single String

Profesor David Molina S. 2009

COLEGIO MARISTA DE ALAJUELA Propiedades del ComboBox Propiedades en tiempo de ejecucin ms comunes del ComboBox: Nombre de la Propiedad Enabled Font TabIndex List Locked Sorted Text ToolTipText Visible Descripcin Si se encuentra en False no permite utilizar el ComboBox Permite elegir el tipo de letra dentro del ComboBox Indica el orden de tabulacin del ComboBox Permite agregar elementos al ComboBox Si se encuentra en False no permite modificar el texto pero s seleccionarlo. Muestra los elementos de la lista en orden Establece el texto por defecto en el ComboBox Agrega texto de ayuda sobre la funcin del ComboBox. El texto aparece cuando se coloca el cursor cerca del objeto. Establece si por defecto el ComboBox se muestra.

Agregar elementos al ComboBox en tiempo de Diseo Luego de agregar un objeto ComboBox a un Form, se debe modificar la propiedad List del ComboBox como se muestra a continuacin:

1. Clic sobre la flecha de la propiedad

2. Agregamos el dato y presionamos la tecla Enter


Profesor David Molina S. 2009

10

DEPARTAMENTO DE INFORMTICA Repetimos el procedimiento para agregar ms elementos al ComboBox.

El ComboBox en tiempo de ejecucin se ver como se muestra en la siguiente imagen:

Agregar elementos al ComboBox en tiempo de Ejecucin Los elementos que se agregan en tiempo de diseo siempre se cargarn cada vez que se ejecute una aplicacin, para agregar elementos en tiempo de ejecucin debemos programar un evento que lo realice, por ejemplo en un botn. Es importante tomar en cuenta que cuando el programa se cierra y se vuelve a abrir, solo los elementos que estn establecidos en tiempo de diseo aparecern en el ComboBox. Luego de agregar un ComboBox y CommandButton a un Form debemos agregar el siguiente cdigo al evento clic del CommandButton.

Profesor David Molina S. 2009

11

COLEGIO MARISTA DE ALAJUELA El mtodo AddItem del objeto Combo1 realiza la accin de agregar a la lista de opciones el texto que este digitado en el espacio del Combo1. La segunda lnea limpia el texto digitado. Nuestra aplicacin se muestra en la siguiente imagen:

Agregamos texto y presionamos el botn Agregar:

Propiedades del ListBox A continuacin se muestran las propiedades en tiempo de ejecucin ms comunes del ListBox: Nombre de la Propiedad Enabled Font TabIndex List MultiSelect Sorted Style ToolTipText Visible Descripcin Si se encuentra en False no permite utilizar el ListBox. Permite elegir el tipo de letra dentro del ListBox. Indica el orden de tabulacin del ListBox. Agrega elementos al ListBox. Activa la posibilidad de seleccionar ms de un elemento de la lista. Muestra los elementos de la lista en orden. Agrega un checkbox a cada elemento de la lista. Agrega texto de ayuda sobre la funcin del ListBox. El texto aparece cuando se coloca el cursor cerca del objeto. Establece si por defecto el ListBox se muestra.

Profesor David Molina S. 2009

12

DEPARTAMENTO DE INFORMTICA Agregar elementos al ListBox en tiempo de Diseo Luego de agregar un objeto ListBox a un Form, se debe modificar la propiedad List del ListBox como se muestra a continuacin:

2. Agregamos el dato y presionamos la tecla Enter. Repetimos el procedimiento para agregar ms elementos al ListBox.

1. Damos clic sobre la flecha de la propiedad.

El ListBox en tiempo de ejecucin se ver como en la siguiente imagen:

Agregar elementos al ListBox en tiempo de Ejecucin Para agregar elementos en tiempo de ejecucin tenemos que utilizar un TextBox y programar un evento para que se realice la accin. Al igual que el ComboBox, los elementos agregados en tiempo de ejecucin a un ListBox, no sern almacenados. Luego de agregar un TextBox, un ComboBox y un CommandButton a un Form debemos agregar el siguiente cdigo al evento clic del CommandButton.

Profesor David Molina S. 2009

13

COLEGIO MARISTA DE ALAJUELA

El mtodo AddItem del objeto List1 realiza la accin de agregar a la lista de opciones el texto que este digitado en el Text1. La segunda lnea limpia el texto digitado. Nuestra aplicacin se muestra en la siguiente imagen:

Agregamos texto y presionamos el botn Agregar:

Funcin MsgBox Esta opcin nos permite cargar un cuadro de mensaje en algn evento y controlar todos los elementos de dicho cuadro. La sintaxis de la Funcin MsgBox es la siguiente: MsgBox Texto del Mensaje, <icono>,Texto de la barra de titulo
Profesor David Molina S. 2009

14

DEPARTAMENTO DE INFORMTICA A continuacin se muestran los tipos de iconos ms utilizados: Estilo vbCritical vbExclamation vbInformation vbQuestion Descripcin Coloca un icono de mensaje crtico Coloca un icono de advertencia Coloca un icono de Informacin Coloca un icono de Interrogacin Icono

Algunos ejemplos de los cuadros de mensaje son los siguientes: MsgBox "Sistema no responde", vbCritical, "Error en la Aplicacin"

MsgBox "Los datos fueron guardados", vbInformation, "Control de Datos"

MsgBox "El total es: " & Total, vbInformation, "Control de Datos"

Profesor David Molina S. 2009

15

COLEGIO MARISTA DE ALAJUELA MsgBox "Este es un mensaje" & Chr(13) & "con doble lnea de texto", , "Ejemplo Doble Lnea"

Funcin InputBox Esta opcin permite cargar un cuadro de dilogo, el cual le admite al usuario digitar datos que son almacenados en una variable. La sintaxis de la Funcin InputBox es la siguiente:
< variable> = InputBox (Texto del Mensaje, Texto de la barra de titulo,dato por defecto)

La variable a la que se le asigna los valores que son digitados por el usuario, debe ser declarada previamente. A continuacin se muestran ejemplos del uso de los cuadros de dilogo:

Nombre = InputBox ("Digite el nombre del usuario", "Nombre del Usuario", "user")

Edad = InputBox ("Cal es su edad?", "Obtener Edad", "0")

Profesor David Molina S. 2009

16

DEPARTAMENTO DE INFORMTICA Ciclos Los ciclos son un conjunto de sintaxis que permiten repetir una o ms acciones hasta un determinado lmite. A continuacin analizaremos el manejo de los ciclos en Visual Basic. Ciclo For Para utilizar un ciclo For es necesario declarar una variable y asignarle el valor inicial, luego debemos indicar el valor final. Por defecto el rango de valores que tenga el ciclo ir aumentando de uno en uno, si queremos variar esta condicin debemos agregar la palabra Step y el valor del incremento que deseamos. La sintaxis del ciclo For es la siguiente: For <nombre de la variable> = <valor inicial> To <valor final> Step <valor del incremento> <accin 1> <accin 2> <accin > Next Algunos ejemplos del uso del ciclo For son los siguientes: For contador = 1 To 5 MsgBox "El valor del contador es: " & contador Next For contador = 1 To 10 Step 2 MsgBox "El valor del contador es: " & contador Next For contador = 0 To 100 Step 10 MsgBox "El valor del contador es: " & contador Next Ciclo While Este ciclo realiza las acciones una determinada cantidad de veces, con base en una condicin que se evala, si esta condicin es verdadera se ejecutan una vez ms las acciones. Para este ciclo es necesario tener una variable que cambie cada vez que se ejecuten las acciones para poder controlar el ciclo, si esta variable no existe el ciclo se realizar infinitamente y provocar un problema en la aplicacin.

Profesor David Molina S. 2009

17

COLEGIO MARISTA DE ALAJUELA La sintaxis del ciclo While es la siguiente: While (<condicin>) <accin 1> <accin 2> <accin > Wend Analicemos el siguiente ejemplo: Dim contador As Integer contador = 1 While (contador <= 5) InputBox ("Digite el nombre del cliente # " & contador) contador = contador + 1 Wend Se declara una variable contador de tipo entero y se inicializa en 1. El ciclo mostrara un InputBox solicitando el nombre del cliente y el nmero que corresponde a este cliente, tomando en cuenta el valor actual de la variable contador.Luego se incrementa el valor de la variable en uno, est lnea de sintaxis es muy importante, en su ausencia, provocara que el ciclo se repita en forma infinita. El incremento no necesariamente debe ser en uno, ya que si deseamos, por ejemplo, mostrar un conteo de dos en dos, el valor del incremento es dos. Otros ejemplos del ciclo While: Dim contador As Integer contador = 0 MsgBox "Valores del 1 al 20 de 2 en 2" While (contador <= 20) MsgBox (contador) contador = contador + 2 Wend Dim valor As Double Dim contador As Double Dim factorial As Double valor = InputBox ("Digite un nmero para obtener su factorial") contador = 1 factorial = valor While (contador < valor) factorial = factorial * contador contador = contador + 1 Wend MsgBox "El factorial de " & valor & " es: " & factorial

Profesor David Molina S. 2009

18

DEPARTAMENTO DE INFORMTICA Ciclo Do En el ciclo Do las instrucciones se ejecutan hasta que una condicin se cumpla. Al igual que el ciclo While es necesario una variable de control del ciclo para evitar que este se repita de forma infinita. Sintaxis del ciclo Do: Do Until (<condicin>) <accin 1> <accin 2> <accin > Loop Analicemos el siguiente ejemplo: Dim valor_secreto As Integer Dim valor_jugador As Integer valor_secreto = 5 valor_jugador = 0 Do Until (valor_secreto = valor_jugador) valor_jugador = InputBox("Advine el valor secreto") Loop

Se declaran dos variables enteras y hasta que una no sea igual a la otra se repetir el ciclo. Otro ejemplo de ciclo Do es el siguiente: Dim total As Integer Dim contador As Integer total = 0 valor = 0 contador = 1 Do Until (contador > 5) valor = InputBox("Digite el valor del producto # " & contador) total = total + valor contador = contador + 1 Loop MsgBox "El total es: " & total

Profesor David Molina S. 2009

19

COLEGIO MARISTA DE ALAJUELA Instrucciones de Seleccin Las instrucciones de seleccin permiten verificar si un dato cumple o no una condicin que se establezca y tiene la capacidad de ejecutar diferentes acciones, dependiendo del resultado de la revisin. Instruccin If Esta instruccin permite verificar si un dato cumple una condicin, si se cumple se lleva a cabo una accin de lo contrario, si se desea, se ejecuta otra accin. La sintaxis de la instruccin If es: If (<condicin>) Then <accin1> <accin2> <accin> Else <accin1> <accin2> <accin> End if Esta instruccin puede presentar algunas variantes, como por ejemplo, que si no se cumple la condicin no ocurre ninguna accin; o que hayan varias instrucciones if anidadas. A continuacin se muestra un ejemplo con dichas variantes: If ( total>10 ) Then MsgBox El valor es mayor a 10 end if

If ( valor=0 ) Then MsgBox El valor es 0 Else If ( valor>0 ) Then MsgBox El valor es positivo Else MsgBox El valor es negativo End if End if

Profesor David Molina S. 2009

20

DEPARTAMENTO DE INFORMTICA Instruccin Select Ejecuta un grupo de acciones dependiendo de los posibles valores que pueda tener una variable y si no concuerda con ningn valor tambin puede ejecutar alguna accin. La sintaxis de esta instruccin es la siguiente: Select Case <variable> Case <posible valor o valores> <accin1> <accin2> <accin> Case Else <accin1> <accin2> <accin> End Select Algunos ejemplos de la instruccin Select son los siguientes: Select Case Text1 Case 1 To 10 MsgBox "El nmero se encuentra entre 1 y 10" Case 11, 12, 13, 14, 15 MsgBox "El nmero se encuentra entre 11 y 15" Case Else MsgBox "El nmero es mayor a 15" End Select Select Case Text1 Case "NOMBRE" NOMBRE = InputBox ("DIGITE EL NOMBRE") MsgBox NOMBRE Case "APELLIDO 1" APELLIDO1 = InputBox ("DIGITE EL APELLIDO 1") MsgBox APELLIDO1 Case "APELLIDO 2" APELLIDO2 = InputBox ("DIGITE EL APELLIDO 2") MsgBox APELLIDO2 Case "EDAD" EDAD = InputBox ("DIGITE LA EDAD") MsgBox EDAD Case Else MsgBox "Opcin no es vlida" End Select

Profesor David Molina S. 2009

21

COLEGIO MARISTA DE ALAJUELA Validacin de Datos Cuando desarrollamos aplicaciones que manipulan datos para almacenarlos en algn archivo o base de datos es necesario verificar que estos datos correspondan con lo solicitado. A continuacin se muestra una pequea aplicacin con sus respectivas validaciones y el cdigo necesario:

Nombre del Campo

Identificacin

Salario Base

Cdigo de la Validacin Dim dato As Integer On Error GoTo Errores dato = CInt(Text1) Errores: If Err.Number = 13 Then MsgBox "La identificacin no es vlida" Text1.SetFocus Text1.SelLength = 0 End If Dim dato As Integer On Error GoTo Errores dato = CInt(Text2) If (Text2 < 0) Then MsgBox "Salario Base no es vlido" End If Errores: If Err.Number = 13 Then MsgBox "Salario Base no es vlido" End If

Profesor David Molina S. 2009

22

DEPARTAMENTO DE INFORMTICA

Aos de Laborar

Dim dato As Integer On Error GoTo Errores dato = CInt(Text3) If (Text3 < 0) Then MsgBox "Aos de laborar no es vlido" End If Errores: If Err.Number = 13 Then MsgBox "Aos de laborar no es vlido" End If Dim dato As Integer On Error GoTo Errores dato = CInt(Text4) If (Text4 < 0) Then MsgBox "Anualidad no es vlida" End If Errores: If Err.Number = 13 Then MsgBox "Anualidad no es vlida" End If Dim dato As Integer On Error GoTo Errores dato = CInt(Text5) If (Text5 < 0) Then MsgBox "Comisiones no es vlida" End If Errores: If Err.Number = 13 Then MsgBox "Comisiones no es vlida" End If

Anualidad

Comisiones

En el caso de esta pequea aplicacin, todos los datos digitados deben ser numricos, por lo que para validar que en el campo no haya un carcter, se declara en todos los casos una variable dato a la cual se le asigna el resultado de la funcin CInt, que toma el dato digitado y lo convierte en valor entero para almacenar en la variable. Si esto no ocurre, como en el caso de que sea una letra, Visual Basic mostrara una pantalla de error como la siguiente:

Profesor David Molina S. 2009

23

COLEGIO MARISTA DE ALAJUELA

Para sustituir una pantalla de este tipo por un Cuadro de Mensaje con las indicaciones que deseamos, debemos conocer el nmero del error, que en nuestro caso es el nmero 13. En el evento donde se est programando la validacin es necesario colocar la instruccin: On Error GoTo <lista de errores> En el espacio <lista de errores> podemos utilizar cualquier nombre, en el ejemplo se utiliz Errores, como identificador. Luego se coloca el identificador y el cdigo necesario para validar como se muestra en uno de los casos: Errores: If Err.Number = 13 Then MsgBox "Comisiones no es vlida" End If Otra validacin presente en esta aplicacin, se realiza en los campos Salario Base, Aos de laborar, Anualidad y comisiones. Estos campos adems de ser numricos deben ser mayores a 0 por lo que se utiliza el siguiente cdigo para dicho fin:

If (Text5 < 0) Then MsgBox "Comisiones no es vlida" End If Como se puede notar la instruccin If y la funcin MsgBox es vital para corroborar que los datos de las ampliaciones sean los correctos.

Profesor David Molina S. 2009

24

DEPARTAMENTO DE INFORMTICA Subprogramas Los subprogramas son un conjunto de instrucciones a las que se le asigna un nombre y por el cual pueden ser invocadas. Esto permite, por ejemplo, tener una sola validacin y llamarla cada vez que sea necesario. La sintaxis de los subprogramas es la siguiente: Sub <nombre del subprograma> ( ) <accin1> <accin2> <accin> End Sub La sintaxis de invocacin es: Call <nombre del subprograma> Un ejemplo de un Subprograma y su invocacin es el siguiente: Sub Validar ( ) If (Err.Number=13) then MsgBox Datos no son correctos End If End Sub Call Validar Un ejemplo detallado del uso de los Subprogramas es la siguiente aplicacin que calcula ecuaciones cuadrticas:

Profesor David Molina S. 2009

25

COLEGIO MARISTA DE ALAJUELA

Variables Globales

Subprograma Discriminante Subprograma Sol_X1 Subprograma Sol_X2

Subprograma Validar

Profesor David Molina S. 2009

26

DEPARTAMENTO DE INFORMTICA En esta aplicacin se puede notar que la mayora del cdigo no se encuentra declarado en un evento sino en una parte destinada a las declaraciones globales, esto implica que todo el cdigo que sea colocado en esta parte se podr acceder en cualquier momento y los valores de las variables se mantendrn en memoria hasta que la aplicacin se finalice. Las funciones de las variables en esta aplicacin son las siguientes. Nombre de la Variable Band A B C Dis X1 X2 Funcin Si los datos son correctos su valor se mantiene en False sino se vuelve True y detiene la ejecucin. Almacena el valor del campo Text1. Almacena el valor del campo Text2. Almacena el valor del campo Text3. Almacena el valor que se obtiene al calcular el discriminante. Almacena el valor que se obtiene al calcular la primera solucin de la ecuacin. Almacena el valor que se obtiene al calcular la segunda la solucin de la ecuacin.

Las funciones de los subprocesos son las siguientes: Nombre del Subproceso Discriminante Funcin Calcula el valor del discriminante con las variables A, B y C. Lo almacena en la variable Dis. Calcula el valor de la primera solucin de la ecuacin con las variables A, B, C y Dis. Lo almacena en la variable X1. Calcula el valor de la segunda solucin de la ecuacin con las variables A, B, C y Dis. Lo almacena en la variable X2. Verifica que los valores en los campos Text1, Text2 y Text3 sean nmeros y los almacena en las variables A, B y C. Si los datos no son correctos no se ejecutan el resto de los Subprogramas.

Sol_X1

Sol_X2

Validar

Los Subprogramas pueden utilizar parmetros. Los parmetros son datos con los que se trabaja en una aplicacin y que son enviados a un Subprograma para que este se ejecute y realice alguna operacin con ellos.

Profesor David Molina S. 2009

27

COLEGIO MARISTA DE ALAJUELA Un ejemplo detallado del uso de los Subprogramas con parmetros es la siguiente aplicacin para calcular un promedio de notas:

Profesor David Molina S. 2009

28

DEPARTAMENTO DE INFORMTICA Funciones Las funciones tienen un comportamiento similar a los Subprocesos, con la particularidad de que si se desea, retornan un valor que es asignado a una variable. A continuacin la sintaxis de una Funcin. Function <nombre de la funcin> ( ) as <tipo de dato que se retorna> <accin1> <accin2> <accin> End Function Un ejemplo de una aplicacin utilizando una funcin es el siguiente:

Profesor David Molina S. 2009

29

COLEGIO MARISTA DE ALAJUELA Mdulos Globales En los temas anteriores hemos visto como declarar variables, procedimientos y funciones que pueden ser utilizadas en cualquier parte del cdigo de un Form. Sin embargo si tuviramos ms de un Form y quisiramos, por ejemplo, utilizar la Funcin Validar que se encuentra en la parte de declaraciones Globales de la Form1 en la Form2, tendramos que recurrir a los mdulos globales, en dicho mdulo colocaramos todo el cdigo que posiblemente utilicemos en distintos lugares. Para crea un mdulo dentro de un proyecto realizamos los siguientes pasos: 1. Un clic con el botn derecho del mouse sobre el Explorador de proyectos, en el men emergente elegimos la opcin agregar y luego el mdulo.

Profesor David Molina S. 2009

30

DEPARTAMENTO DE INFORMTICA 2. En el cuadro de dilogo que aparece, presionamos sobre el botn Abrir.

3. Se cargara una pantalla de mdulo en blanco.

Profesor David Molina S. 2009

31

COLEGIO MARISTA DE ALAJUELA A partir de que tenemos el mdulo podemos agregar cualquier elemento y para invocarlo desde una Form se escribe primero el nombre del mdulo, un punto y el elemento que deseamos llamar. La siguiente aplicacin calcula el salario base de un empleado con base a la siguiente tabla de salarios: Hora Laborada Extra Diurno 1000 500 Nocturno 1200 600

Luego la aplicacin permite calcular el Salario Neto y generar la cuota mensual de un prstamo, si el empleado cuenta con uno.

Form1

Propiedad Locked: True

Propiedad Enabled: False

Form2

Profesor David Molina S. 2009

32

DEPARTAMENTO DE INFORMTICA Cdigo en Form1: Private Sub Command1_Click() On Error GoTo Errores ID = Text1 If (Combo1.Text <> "Diurno" And Combo1.Text <> "Nocturno") Then MsgBox "HORARIO NO ES VLIDO" Exit Sub End If If (Module1.Validar_sindatos(ID) = True) Then MsgBox "DEBE DIGITAR UNA IDENTIFICACIN" Exit Sub End If If (Module1.Validar_sindatos(Text2) = True) Then MsgBox "DEBE DIGITAR HORAS LABORADAS" Exit Sub End If If (Module1.Validar_sindatos(Text3) = True) Then MsgBox "DEBE DIGITAR HORAS EXTRA" Exit Sub End If If (Combo1.Text = "Diurno") Then S_BRUTO = ((CSng(Text2) * 1000) + (CSng(Text3) * 500)) Text4 = S_BRUTO Else If (Combo1.Text = "Nocturno") Then S_BRUTO = ((CSng(Text2) * 1200) + (CSng(Text3) * 600)) Text4 = S_BRUTO End If End If If (Module1.Validar_sindatos(Text4) = False) Then Command2.Enabled = True End If Errores: If (Err.Number = 13) Then MsgBox "DATOS NO VLIDOS" End If End Sub

Profesor David Molina S. 2009

33

COLEGIO MARISTA DE ALAJUELA Private Sub Command2_Click() Form2.Show End Sub

Cdigo en Form2: Dim S_NETO As Single Dim Cargas As Single Dim Cuota As Single Sub Calcular_Cuota() Cuota = 0 Cuota = (CSng(Text4) / CSng(Text6)) + ((CSng(Text5) * CSng(Text4)) / 100) Text7 = Cuota End Sub Private Sub Check1_Click() If (Check1.Value = 1) Then Text4.Enabled = True Text5.Enabled = True Text6.Enabled = True Else Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text4.Text = 0 Text5.Text = 0 Text6.Text = 0 Text7.Text = 0 End If End Sub Private Sub Command2_Click() S_NETO = S_BRUTO - (Cargas + Cuota) Text8 = S_NETO End Sub Private Sub Form_Load() Text1 = ID Text2 = S_BRUTO Cargas = (S_BRUTO * 0.09) Text3 = Cargas End Sub

Profesor David Molina S. 2009

34

DEPARTAMENTO DE INFORMTICA Private Sub Text7_GotFocus() Call Calcular_Cuota End Sub Cdigo en module1 Global S_BRUTO As Single Global ID As String Function Validar_sindatos(campo As String) As Boolean If (campo = "") Then Validar_sindatos = True End If End Function

Programacin en otros Eventos Normalmente hemos programado en los eventos Clic y Change de los objetos. Ahora nos dedicaremos a revisar los otros eventos que si bien, no san tan usados, pueden resultar muy tiles en una determinada tarea. Evento KeyPress del TextBox Este evento revisa constantemente cada uno de los dgitos que se vayan agregando al TextBox y con una instruccin If podemos generar alguna accin al momento de que se digite un carcter que especificamos. Es muy til cuando se esta llenando, por ejemplo, un formulario de datos de un cliente, y deseamos que se avance al siguiente campo cuando se presione la tecla enter.

Profesor David Molina S. 2009

35

COLEGIO MARISTA DE ALAJUELA

Evento GotFocus del TextBox Se ejecuta una accin cuando el cursor esta posicionado dentro del campo de texto. Puede convertirse en una opcin ms eficiente para programar eventos que normalmente se programaran en un CommandButton. La siguiente aplicacin solicita el ao actual y el ao de nacimiento, al posicionarse en el campo edad se genera el clculo respectivo.

Profesor David Molina S. 2009

36

DEPARTAMENTO DE INFORMTICA Evento LostFocus del TextBox Cuando el cursor esta posicionado en un campo y al momento de cambiar a otro objeto se ejecuta una accin. En el siguiente ejemplo, se hace uso de este evento y de la funcin UCase, que convirte el texto a mayscula. Si se quisiera cambiar texto a minscula se utiliza la funcin LCase.

Eventos MouseDown y MouseUp del Label Se programan acciones cuando se da un clic sostenido sobre un Label y cuando se deja de dar clic sostenido.

Profesor David Molina S. 2009

37

COLEGIO MARISTA DE ALAJUELA Editor de Mens Esta herramienta permite crear mens personalizados para las aplicaciones. Para acceder a la herramienta, se da clic sobre el icono siguiente cuadro de dilogo: que se encuentra en la barra Estndar y aparece el

Bsicamente para crear un Men debemos llenar los campos Caption (texto en el men) y Name (nombre con el que se manipula a nivel de cdigo), es recomendable que sea el mismo para evitar confusiones. Veamos un ejemplo para crear un men Cuadros de Mensaje que nos muestra dos casos de la funcin MsgBox. Para crear dicho men seguimos las siguientes instrucciones: 1. Digitamos en Caption: Cuadros de Mensaje y el Name: Cuadros_de_Mensaje. En name realizamos una pequea variante, utilizando el smbolo _ en lugar de los espacios ya que en esta propiedad no son permitidos.

2. Presionamos sobre el botn Siguiente, y ahora realizamos el mismo procedimiento para agregar las opciones: Informacin y Error.

Profesor David Molina S. 2009

38

DEPARTAMENTO DE INFORMTICA Luego de agregar los datos el Editor de mens debe lucir como se muestra a continuacin:

3. Como Informacin y Error son opciones que van dentro de Cuadros de Mensaje, damos un clic sobre Informacin y presionamos el botn procedimiento con Error. El resultado es el siguiente: . Ejecutamos el mismo

Profesor David Molina S. 2009

39

COLEGIO MARISTA DE ALAJUELA Luego de presionar en el botn Aceptar se crea el Men en la Form. Si presionamos sobre el men Cuadros de Mensaje se despliega un submen con las opciones Informacin y Error como se muestra a continuacin:

Para programar un evento en la opcin Informacin se procede dando un clic sobre el mismo para que aparezca la pantalla que permitir agregar el cdigo.

Tambin podemos generar mens que puedan aplicar cambios en las propiedades de un objeto, por ejemplo, una opcin que permita activar o desactivar un campo de texto. Como ambas opciones no pueden estar activas debe haber una por defecto, en este caso, Activar.Adems utilizaremos combinaciones de teclas que nos permitan activar o desactivar desde el teclado. La opcin Activar tendr la combinacin Ctrl+A y la opcin Desactivar la combinacin Ctrl+D

Profesor David Molina S. 2009

40

DEPARTAMENTO DE INFORMTICA

El men y la Form se vern de la siguiente manera:

El cdigo en cada evento es el siguiente:

Profesor David Molina S. 2009

41

COLEGIO MARISTA DE ALAJUELA La siguiente aplicacin utiliza diferentes mens para generar cambios de alineacin, estilo y tamao en un objeto Label.

La opcin Cambiar Texto invoca al siguiente InputBox:

Profesor David Molina S. 2009

42

DEPARTAMENTO DE INFORMTICA

Profesor David Molina S. 2009

43

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S. 2009

44

DEPARTAMENTO DE INFORMTICA Agregar otros objetos al cuadro de Herramientas Para agregar otros objetos al cuadro de Herramientas realizamos los siguientes pasos: 1. Damos un clic derecho sobre el cuadro de herramientas para desplegar un men emergente, en donde elegimos la opcin Componentes

2. En el cuadro de dilogo Componentes tenemos la posibilidad de elegir de una lista los objetos que deseamos agregar y luego presionar Aceptar. Los objetos correspondientes sern cargados de inmediato en el Cuadro de Herramientas.

Profesor David Molina S. 2009

45

COLEGIO MARISTA DE ALAJUELA

Objeto MaskEdBox Tiene un comportamiento similar a un TextBox con la particularidad de establecer un Formato o mscara de entrada. Para utilizarlo se debe agregar el componente: Microsoft Masked Box Control 6.0 La propiedad Format de este componente permite dar a los datos digitados dentro del MaskEdBox formatos como los siguientes:

Para elegir el formato se busca en la lista de propiedades el campo Format y luego el tipo de formato deseado:

Para establecer una mscara de entrada se utiliza la propiedad Mask, que utiliza smbolos para indicar que tipo de dato se debe digitar. Smbolo # & ? . , : / Significado Marcador de posicin numrico Marcador de posicin alfanumrico Marcador de posicin alfabtico Separador de miles Separador decimal Separador de hora Separador de Fecha

Profesor David Molina S. 2009

46

DEPARTAMENTO DE INFORMTICA Mscara de Entrada ###-### &&&&&& ????? ###.###,## ##:## ?? ##/##/#### Ejemplo 354-7504 ABC123 ABCDE 123.456,78 10:35 PM 25/05/1984

Objeto SSTab Permite crear en un Form fichas que pueden contener objetos. Para utilizar el SSTab es necesario agregar el componente: Microsoft Tabbed Dialog Control Control 6.0. Las propiedades ms importantes de este control son las siguientes: Nombre de la Propiedad TabOrientation Tabs TabsPerRow Descripcin Permite colocar en la parte superior, inferior, izquierda o derecha las cejillas de las fichas. Esta propiedad indica cuantas fichas van a aparecer. Indica cuantas cejillas se van a mostrar por columna.

La siguiente aplicacin permite agregar los datos de un estudiante y luego sus notas en dos fichas que tiene en comn el nmero de identificacin. Se utilizan objetos MaskEdBox para algunos campos.

Propiedad Mask: ######-# Propiedad Mask en blanco Propiedad Mask: ##/##/#### TextBox1 con barra de desplazamiento vertical Propiedad Mask: ###-####

Profesor David Molina S. 2009

47

COLEGIO MARISTA DE ALAJUELA

TextBox2

Propiedad Mask: ###,##

TextBox3

Objeto ToolBar

e ImageList

Ambos se utilizan en conjunto para crear Barras de Herramientas. Los objetos se encuentran en el componente: Microsoft Windows Common Control 6.0. Para crear una Barra de Herramientas, se efectan los siguientes pasos: 1. Insertar un objeto ImageList y un objeto ToolBar en la Form. No importa donde se ha colocado el ToolBar o el tamao que se le d, ya que ste automticamente es agregado en la parte superior de la Form con un tamao establecido. Con el tamao del ImageList ocurre algo similar pues no se puede variar, por otro lado la ubicacin no importa porque este solo es visible en tiempo de diseo.

Profesor David Molina S. 2009

48

DEPARTAMENTO DE INFORMTICA

2. Damos un clic derecho sobre el ImageList y elegimos la opcin propiedades del men emergente que aparece para cargar el siguiente cuadro de dalogo:

3. Seleccionamos la cejilla Imgenes para agregar las posibles imgenes de la Barra de Herramientas.

Profesor David Molina S. 2009

49

COLEGIO MARISTA DE ALAJUELA 4. Luego de haber agregado las imgenes para la barra de tareas es importante recordar el nmero de Index que se le asigna a cada imagen. Finalmente presionamos el botn Aceptar.

5. Damos clic con botn derecho del mouse sobre el ToolBar y elegimos la opcin Propiedades. Aparece el siguiente cuadro de dilogo:

Profesor David Molina S. 2009

50

DEPARTAMENTO DE INFORMTICA 6. La propiedad ImageList se encuentra por defecto en <ninguno>, se debe cambiar a ImageList1.

7. Para agregar un botn al ToolBar se debe elegir la cejilla Botones y dar clic en Insertar Botn. En el campo Index, digitamos el nmero de la imagen que se desea colocar. Para colocar texto, adems de la imagen, se llena el campo Caption.

Una barra de Herramientas se puede visualizar de la siguiente manera:

Profesor David Molina S. 2009

51

COLEGIO MARISTA DE ALAJUELA

Objeto MonthView Se utiliza para insertar un Calendario que permite seleccionar el da, mes y ao de una forma dinmica. No puede variar el tamao ya que esta establecido por defecto. Para agregarlo es necesario agregar el componente Microsoft Windows Common Control-2 6.0.

La siguiente aplicacin es un ejemplo del uso de este objeto:

CommandButton con un carcter Webdings en la propiedad Caption.

Profesor David Molina S. 2009

52

DEPARTAMENTO DE INFORMTICA Cdigo en Form1:

Cdigo en Form2:

Cdigo en Module1:

Profesor David Molina S. 2009

53

COLEGIO MARISTA DE ALAJUELA Objeto DTPicker Es la unin de un ComboBox con un MonthView. Para utilizarlo se debe activar el componente Microsoft Windows Common Control-2 6.0.

Manejo de Archivos Para poder almacenar datos de forma permanente en un dispositivo de almacenamiento secundario, se puede hacer uso de los archivos, los cuales son una manera rpida y sencilla de almacenar. Instruccin Open Est instruccin es la primera que se utiliza para el trabajo de archivos, establece el nombre del archivo, el modo de apertura, el nmero de identificacin dentro del cdigo. Los archivos deben tener una extensin, para el texto se utiliza la extensin .txt y para datos .dat Un ejemplo del uso de la instruccin Open es el siguiente: Open archivo.dat for Random As #1 Modos de apertura Modo Append Descripcin Si el archivo no existe se crea. Si el archivo existe y tiene informacin se agrega la nueva informacin al final del archivo.

Profesor David Molina S. 2009

54

DEPARTAMENTO DE INFORMTICA

Input Output

Si el archivo no existe se genera un error. Se abre el archivo para lectura Si el archivo no existe se crea. Abre un archivo para lectura y escritura. Sobrescribe la informacin si el archivo existe.

Instruccin Close Siempre que se abra un archivo dentro de un programa, se debe llegar a un punto en que debe ser cerrado. La instruccin Close es la encargada de realizar dicha accin. Se pueden cerrar archivos de dos maneras, especificando el nmero de archivo o cerrando todos los archivos abiertos en un determinado momento. Manejo de archivos de acceso secuencial En un archivo podemos realizar dos acciones: leer y escribir, estas acciones se reflejan en los comandos Input y Write o Print. El comando Input se encarga de leer la informacin mientras que Write y Print de escribirla, aunque ambos comando varan en la manera en que escriben. El comando Write delimita todo entre comas, encierra entre comillas los datos de tipo String y a los datos de tipo fecha entre diesis (#) y escribe la informacin boolena como #TRUE# y #FALSE# . Todas estas caractersticas facilitan la labor del comando Input. La sintaxis de los comandos para manejo de archivos de acceso secuencial es la siguiente: Print # <nmero del archivo>, <datos para escribir> Write # <nmero del archivo>, <datos para escribir> Input # <nmero del archivo>, <lugar donde almacenar valores ledos> Ejemplos: Print #1, Text1 Write #2, Tex2, Combo1.Text, Text4 Input #1, Dato1

Profesor David Molina S. 2009

55

COLEGIO MARISTA DE ALAJUELA Para comprender mejor el uso de los archivos de acceso secuencial se ir implementando una aplicacin por etapas. La primera etapa consta de un mantenimiento de usuarios que solicita los datos del empleado y genera un login y clave.

COMPUTO TESORERIA RRHH CONTABILIDAD AUDITORIA MERCADEO

La apertura, escritura y cierre del archivo se da en el evento clic del objeto Command1. Los eventos programados en los objetos Text1, Text2 y Text3 utilizan la funcin Ucase para convertir lo que se digite en esos campos en mayscula. La funcin Mid utiliza en los eventos de los campos Text4 y Text5, permite manipular las cadenas de caracteres de los campos Text1,Text2 y Text3. Los parmetros de dicha funcin son: la cadena que se va a manipular, desde cual carcter se va a iniciar y cuantos caracteres se van a copiar.

Profesor David Molina S. 2009

56

DEPARTAMENTO DE INFORMTICA La siguiente Form, siempre dentro de la misma aplicacin, permite realizar bsquedas de usuarios.

En la Form de MANTENIMIENTO DE USUARIOS se debe agregar un botn que cargue la Form BUSQUEDAS

El cdigo del bton Buscar Usuario es el siguiente:

Profesor David Molina S. 2009

57

COLEGIO MARISTA DE ALAJUELA

En esta Form se utiliza una matriz de control para el objeto Option1, esto significa que es el mismo objeto pero con diferentes estados, cada vez que se presiona sobre alguno de los estados se le asigna un valor a la variable opcion que esta declarada como global, no se tilda la palabra para evitar errores de memoria. La apertura del archivo y su lectura se da en el evento clic del botn Command1, el archivo es abierto como lectura (Input) ya que en este procedimiento no es necesario escribir ningn nuevo dato.

Profesor David Molina S. 2009

58

DEPARTAMENTO DE INFORMTICA Sin importar que clase de bsqueda se realizan, procedimientos similares en donde se recorre el archivo de principio a fin y se van comparando los datos para ver si coinciden con los solicitados. Se utiliza un ciclo While que avanza por el archivo hasta llegar al final. Por cada avance se compara el campo que se digit para la bsqueda con el que corresponde dentro del archivo, si son iguales se agregan todos los datos a la lista. La instruccin Input utiliza variables para cada campo que conforman un registro. Esto permite que el recorrido sea lnea por lnea y permita consultar en cualquier momento cualquier dato dentro del archivo. Por ltimo se va a implementar el proceso de eliminacin de un usuario que es programado en un botn dentro de la Form1. Es importante tener presente de que la eliminacin en forma secuencial consiste en tomar todos los datos del archivo menos el que se desea borrar y copiarlos a un archivo temporal, luego de este archivo a uno nuevo que volver a ser el principal. La Form1 debe verse como se muestra a continuacin:

El cdigo del botn Eliminar Usuario es el siguiente:

Profesor David Molina S. 2009

59

COLEGIO MARISTA DE ALAJUELA

Lo primero es asignar a las variables xnom, xap1,ap2 y xdep los datos del usuario que se va a eliminar. Se abre el archivo usuarios.dat como lectura y el archivo temporal.dat como escritura. Se inicia el recorrido del archivo usuarios.dat y se va copiando los datos al archivo temporal excepto el eliminado. Luego se cierran los archivos y se abre a usuarios.dat como escritura, lo que provoca que quede en blanco; por otro lado temporal.dat es abierto como lectura y se procede a copiar la informacin de este al nuevo usuarios.dat.Se cierran los archivos y para dejar en blanco a temporal.dat se abre por ltima vez como escritura y se cierra inmediatamente. El siguiente grfico muestra como se manipulan los archivos usuarios.dat y temporal.dat. Descripciones El archivo usuarios contiene todos los datos. El archivo temporal se encuentra vaco. Se inicia el copiado de datos del archivo usuarios a temporal. El archivo temporal contiene los mismos datos que usuarios excepto el usuario que se deseaba borrar. El archivo usuarios es creado de nuevo para que quede vaco. Se inicia el copiado de datos del archivo temporal a usuarios. El archivo temporal se crea de nuevo para que quede vaco. El archivo usuarios contiene los datos actualizados
Profesor David Molina S. 2009

Estado del Archivo usuarios.dat temporal.dat

60

DEPARTAMENTO DE INFORMTICA Manejo de Bases de Datos La implementacin de una base de datos para el almacenamiento permite que las aplicaciones sean ms eficientes y los datos ms fciles de manejar. Visual Basic por si solo no tiene un motor de bases de datos sino que se conecta a motores de bases de datos externos y en conjunto se manipulan los datos. Visual Basic tiene la posibilidad de enlazarse con poderosos sistemas como Oracle y SQL-Servers as como tambin puede hacerlo con motores sencillos como Access. Las bases de datos le dan un nuevo enfoque a las aplicaciones y aunque su dificultad depende del motor que se utiliza, las posibilidades de diseo y desarrollo son muy amplias. Las tecnologas para las conexiones tambin pueden ser muy variadas, pero entre ellas sobre sale la tecnologa ADO, la cual se utilizara para conectar a una base de datos en Access. Otro elemento importante del manejo de bases de datos es SQL, que se convierte en el lenguaje intermedio entre ambas aplicaciones (Visual Basic y Access). El siguiente ejemplo dirigido incluye la creacin de una base de datos en Access, la conexin con Visual Basic y el envo de transacciones a la base de datos. 1. Se crea una carpeta en la raz del disco duro con el nombre de Matricula y dentro de ella las subcarpetas BD, Forms, Proyecto y Mdulos. La estructura de carpetas debe ser como la mostrada a continuacin:

2. Se debe ingresar a Access y construir una base de datos en blanco con el nombre de matricula y almacenarla dentro de la subcarpeta BD de la carpeta Matricula. 3. Se crean las siguientes tablas dentro de la base de datos, todos los campos son de tipo texto y tamao 50.

Profesor David Molina S. 2009

61

COLEGIO MARISTA DE ALAJUELA Se disean las siguientes Forms y se guardan con los nombres que se indican en la subcarpeta Forms de la carpeta Matricula. Form1 Nombre para guardar: Estudiantes

Mask: # # # - # # # #

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog MultiLine: True ScrollBars: 2-Vertical Form2 Nombre para guardar: Profesores

Mask: # # # - # # # #

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog MultiLine: True ScrollBars: 2-Vertical

Profesor David Molina S. 2009

62

DEPARTAMENTO DE INFORMTICA Form3 Nombre para guardar: Cursos

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog Form4 Nombre para guardar: Matricula

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Form5 Nombre para guardar: Ingreso

PasswordChar: * Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Profesor David Molina S. 2009

63

COLEGIO MARISTA DE ALAJUELA Form6 Nombre para guardar: Usuarios

Ms Adelante se explicar la razn por la que se programan estos eventos

Form7 Nombre para guardar: Menu

Las letras de fondo del Form Menu son objetos Image y los archivos que contienen dichas letras se encuentran en la ruta: c:\Archivos de programa\Microsoft Office\Media\CntCD1\Animated

Profesor David Molina S. 2009

64

DEPARTAMENTO DE INFORMTICA Para enviar una transaccin desde Visual Basic a la base de datos en Access es necesaria una funcin que debe ser declarada en un mdulo y variables globales propias de ADO.

La variable CN es de tipo ADODB.Connection y es la que se encarga de iniciar la conexin para efectuar una transaccin. Las variables RS y RS2 de tipo ADODB.Recordset es la que permite recorrer los registros de las tablas en la base de datos. De estas variables se pueden tener todas las que se necesiten En las variables SQL y SQL2 se almacena la sintaxis de la accin que se desea ejecutar sobre la base de datos. De estas variables se pueden tener todas las que se necesiten La variable PASO contiene la ruta de ubicacin de la base de datos y parmetros para la conexin. La funcin Trans recibe como parmetro una instruccin SQL y retorna un valor boolenao. El mtodo BeginTrans inicia el proceso de comunicacin, el mtodo Execute enva a la base de datos la instruccin SQL, por ltimo el mtodo CommitTrans termina la transaccin y guarda los cambios.

Ms adelante se explicar el uso de la funcin Trans dentro de la aplicacin que se esta diseando y en las bases de datos en general.

Profesor David Molina S. 2009

65

COLEGIO MARISTA DE ALAJUELA Para establecer la conexin entre un formulario y una base de datos se debe agregar un objeto Adodc para obtener la ruta y parmetros de la base de datos. Se debe activar el componente: Microsoft ADO Data Control 6.0 (OLEDB).

Profesor David Molina S. 2009

66

DEPARTAMENTO DE INFORMTICA A continuacin se va a obtener la ruta de la base de datos agregando el objeto Adodc en la Form Ingreso (este paso se puede realizar desde cualquier Form) y luego presionando el botn derecho sobre dicho objeto para ingresar a las propiedades.

Clic aqu para generar la cadena de conexin

Profesor David Molina S. 2009

67

COLEGIO MARISTA DE ALAJUELA

Este es el proveedor para bases de datos en Access

Clic aqu para continuar

Clic aqu para buscar la base de datos

Luego de elegir la base de datos, se verifica la conexin Por ltimo clic en Aceptar
Profesor David Molina S. 2009

68

DEPARTAMENTO DE INFORMTICA

Luego de haberse generado la cadena de conexin, se selecciona y se presiona la combinacin de teclas ctrl. + C para copiarla, por ltimo clic en aceptar para volver a la Form.

Cuando se regresa a la Form se elimina el objeto Adodc ya que no se necesita y a continuacin se le asigna a la variable PASO la cadena de conexin que se copi del objeto Adodc, est asignacin se programa en el evento Load de la Form. La cadena de conexin debe ir encerrada entre comillas dobles ( ). Adems se debe agregar la sintaxis que genere la apertura de la variable PASO. Esta accin se lleva acabo con el mtodo Open de la variable CN quedando el comando: CN.Open PASO

En el evento Unload del Form se debe cerrar la conexin para ello, solo basta con escribir la instruccin: CN.Close. De esta manera se garantiza que la conexin este disponible durante todo el tiempo que el Form este abierto y que se cierre al finalizar el trabajo con la Form.

Profesor David Molina S. 2009

69

COLEGIO MARISTA DE ALAJUELA Hasta este punto ya se han realizado las tareas bsicas para conectar Visual Basic con una base de datos, ahora depende de los elementos de los Form y los campos de las tablas para programar eventos. Se inicia con el Form de Ingreso. En este caso al presionar el botn Ingresar se debe consultar la tabla Acceso para verificar si el usuario y la clave son correctos o no. El cdigo para realizar dicha tarea se muestra a continuacin:

Se inicia el cdigo declarando una bandera (b1) que se activa si se ha ingresado al sistema de lo contrario su estado False provoca un mensaje de error. Se declara el SQL que en este caso selecciona todos los campos de la tabla acceso. El RecordSet, que nos permite el desplazamiento por toda la tabla, abre la sintaxis SQL en la base de datos utilizando la variable de conexin. El ciclo Do se encarga de recorrer la tabla Acceso hasta que encuentre el final. Como el RecordSet se encarga del desplazamiento en la tabla, se indica con la expresin RS!<nombre del campo> el campo al que se desea tener acceso y se compara con los que digit el usuario, de existir una coincidencia se cierra la pantalla de ingreso, se abre el men principal de la conexin, se activa la bandera en True para evitar que muestre un mensaje de error y se finaliza el ciclo. La ltima sentencia (RS.Close) finaliza el uso del RecordSet. En el caso de la Form Ingreso solo se necesita consultar la existencia de datos, por lo tanto no es necesario invocar la funcin Trans.

Profesor David Molina S. 2009

70

DEPARTAMENTO DE INFORMTICA La siguiente Form que se va a programar es la de Mantenimiento de Usuarios. Nuevamente, en los eventos Load y Unload se han colocado las acciones antes explicadas, sin embargo en esta Form el evento Load tiene una llamada a la funcin Update como se muestra en la imagen.

Para uso interno en esta Form se declar una variable y las siguientes funciones:

Profesor David Molina S. 2009

71

COLEGIO MARISTA DE ALAJUELA Los eventos Agregar, Eliminar, Buscar y Modificar se programan de la siguiente manera:

El cdigo de los eventos de mantenimiento (Agregar, Eliminar, Buscar, Modificar) en las otras Forms, son muy similares, cambian en la cantidad y tipo de datos que se manipulan. En el ANEXO 1 se encuentra el cdigo completo de la aplicacin.

Profesor David Molina S. 2009

72

DEPARTAMENTO DE INFORMTICA Creacin de proyectos ejecutables Un proyecto ejecutable no es otra cosa que un archivo .exe, este mtodo es conveniente usarlo solo si los proyectos son pequeos (calculadoras, agendas, etc.) Si se usa dicho mtodo en proyectos muy grandes, l mismo presentar errores al ejecutarlo. Para generar dicha funcin se debe desplegar el men archivo y descender hasta la opcin Generar proyecto1.exe. Si ya se le ha puesto nombre al proyecto aparecer la palabra Generar seguida por el nombre del proyecto.

Cuando se ha seleccionado dicha opcin se despliega la siguiente ventana de dilogo, desde donde se indica la ubicacin y el nombre del nuevo archivo ejecutable.

Profesor David Molina S. 2009

73

COLEGIO MARISTA DE ALAJUELA Empaquetado de proyectos Cuando los proyectos son de un tamao apreciable, es conveniente usar el mtodo de empaquetamiento para poder transportar y ejecutar dichos proyectos. Esto se logra usando el Asistente para empaquetado y distribucin que se encuentra ubicado en la carpeta de acceso de Visual Basic que est en el men Inicio. En la siguiente imagen se muestra la forma de llegar a dicha aplicacin:

Profesor David Molina S. 2009

74

DEPARTAMENTO DE INFORMTICA Cuando se da clic en Herramientas de Microsoft Visual Basic 6.0 aparece la opcin Asistente para empaquetado y distribucin.

Al ejecutar dicho asistente se visualiza la ventana desde donde se selecciona el proyecto a empaquetar y luego solo se siguen los pasos sugeridos.

Profesor David Molina S. 2009

75

COLEGIO MARISTA DE ALAJUELA

ANEXO 1 CDIGO DE LA APLICACIN DEL SISTEMA DE MATRCULA

Profesor David Molina S. 2009

76