manual visual-basic-6-0

76
DEPARTAMENTO DE INFORMÁTICA Profesor David Molina S.© 2009 1 VISUAL BASIC 6.0 Iniciar un proyecto en Visual Basic Se deben ejecutar los siguientes pasos para iniciar la aplicación: 1. Seleccionar el botón Inicio de Windows 2. Elegir la carpeta Programas 3. Localizar la carpeta Microsoft Visual Studio 6.0 4. Dar clic sobre el icono Microsoft Visual Basic 6.0 Luego de haber iniciado Visual Basic debemos indicarle a la aplicación que tipo de proyecto nuevo deseamos crear. Elegimos del cuadro de diálogo Nuevo Proyecto la opción EXE estándar que se encuentra en la cejilla Nuevo, finalmente presionamos el botón Abrir.

Upload: cristianconchetumare

Post on 26-May-2015

6.356 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 1

VISUAL BASIC 6.0

Iniciar un proyecto en Visual Basic Se deben ejecutar los siguientes pasos para iniciar la aplicación:

1. Seleccionar el botón Inicio de Windows 2. Elegir la carpeta Programas 3. Localizar la carpeta Microsoft Visual Studio 6.0 4. Dar clic sobre el icono Microsoft Visual Basic 6.0

Luego de haber iniciado Visual Basic debemos indicarle a la aplicación que tipo de proyecto nuevo deseamos crear. Elegimos del cuadro de diálogo Nuevo Proyecto la opción EXE estándar que se encuentra en la cejilla Nuevo, finalmente presionamos el botón Abrir.

Page 2: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

2

Descripción de la pantalla Principal

1. Explorador de proyectos: permite visualizar los elementos (formularios, módulos, etc.) que contiene un determinado proyecto.

2. Ventana de Propiedades: muestra los elementos que caracterizan a un determinado objeto

en tiempo de diseño y permite modificarlos.

3. Ventana Posición del formulario: permite establecer en que lugar de la pantalla aparecerá un determinado formulario.

4. Cuadro de Herramientas: muestra los objetos estándares que pueden ser agregados a un

formulario. Se puede agregar más objetos e inclusive separarlos por categorías.

Explorador de proyectos

Barra de Menús Barra

Estándar

Ventana de Propiedades

Ventana Posición del formulario

Cuadro de Herramientas

Formulario

Page 3: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 3

Objetos del Cuadro de Herramientas Entre los objetos más usados del Cuadro de Herramientas están los siguientes:

Nombre del Objeto Icono Descripción

Label

Cuadros de texto o etiquetas.

TextBox

Campos donde el usuario puede digitar datos.

Frame Subdivisiones dentro de un formulario.

CommandButton Botones que efectúan acciones.

CheckBox Casillas de verificación que permiten la selección múltiple.

OptionButton Botones de opción que solo permiten una única selección.

ComboBox Campo de datos que posee una lista desplegable con opciones.

ListBox Campo de datos con barras de desplazamiento.

HScrollBar

Barra de desplazamiento horizontal.

VScrollBar Barra de desplazamiento vertical.

Timer Cronómetro para ejecutar acciones por lapsos.

DriveListBox ComboBox, se usa para seleccionar una unidad de disco.

DirListBox

ListBox, permite seleccionar directorios de una unidad de disco.

FileListBox

ListBox, se utiliza para seleccionar archivos de una unidad de disco.

PictureBox

PictureBox, agrega una imagen con el tamaño establecido cuando se genera el objeto.

Image Image, agrega una imagen y la muestra en su tamaño original.

Page 4: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

4

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 botón del mouse se arrastra sobre el Form, para determinar el tamaño del objeto y finalmente soltamos el botón izquierdo del mouse.

También se puede agregar objetos dando doble clic sobre ellos en el Cuadro de Herramientas y luego modificar el tamaño. 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 diseño. Por ejemplo al agregar un objeto de tipo Label, la ventana de propiedades se vería de la siguiente manera:

La lista de atributos de un objeto se puede ver en orden alfabético o por categorías.

Nombre del objeto: Label1 Tipo de objeto: Label

Lista de atributos del objeto

Información general de un atributo seleccionado de la lista

Page 5: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 5

Propiedades del Form Propiedades en tiempo de ejecución más comunes del Form:

Nombre de la Propiedad Descripción BackColor Cambia el color de fondo.

Caption Establece el texto en la barra de Título.

ControlBox Activa o desactiva los botones de minimizar, maximizar y cerrar.

Icon Consigue colocar un icono junto al texto de la barra de titulo.

MaxButton Activa o desactiva el botón maximizar.

MinButton Activa o desactiva el botón minimizar.

Picture Permite establecer una imagen como fondo.

Propiedades del Label Propiedades en tiempo de ejecución más comunes del Label:

Nombre de la Propiedad Descripción

Alignment Ajusta el texto a la izquierda, derecha o al centro.

AutoSize Ajusta el tamaño del cuadro de texto.

BackColor Establece un color de fondo.

Caption Modifica el texto del Label.

Enabled Si se encuentra en False no permite modificar el texto en modo de ejecución.

Font Permite elegir el tipo de letra dentro del TextBox.

ForeColor Color del texto.

Visible Establece si por defecto el TextBox se muestra.

Page 6: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

6

Propiedades del TextBox Propiedades en tiempo de ejecución más usuales del TextBox:

Nombre de la Propiedad Descripción

Alignment Justifica el texto a la izquierda, derecha o al centro.

Enabled Si se encuentra en False no permite modificar el texto.

Font Se utiliza para elegir el tipo de letra dentro del TextBox.

ForeColor Color del texto.

Locked Si se encuentra en False no permite modificar el texto pero sí seleccionarlo.

MaxLength Establece el número de dígitos máximos que se pueden digitar, si está en cero no hay límite de dígitos.

MultiLine Permite que el texto sea agregado en más de una línea.

PasswordChar

Convierte el TextBox en un campo de clave, es decir, todos los dígitos serán sustituidos por el carácter que se coloque en este campo, el usual es el asterisco (*).

ScrollBars Agrega barras de desplazamiento al TextBox. La opción Multicine debe estar en True.

TabIndex Indica el orden de tabulación del TextBox.

Text Inserta el texto que tendrá el TextBox por defecto.

ToolTipText Agrega texto de ayuda sobre que datos se deben digitar en el campo. El texto aparece cuando se coloca el cursor cerca del TextBox.

Visible Establece si por defecto el TextBox se muestra.

Page 7: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 7

Propiedades del CommandButton Propiedades en tiempo de ejecución más comunes del CommandButton:

Nombre de la Propiedad Descripción Caption Modifica el texto del CommandButton.

Enabled Si se encuentra en False no permite utilizar el CommandButton.

Font Se emplea para elegir el tipo de letra dentro del CommandButton.

TabIndex Indica el orden de tabulación del CommandButton.

ToolTipText Agrega texto de ayuda sobre la función del botón. El texto aparece cuando se coloca el cursor cerca del CommandButton.

Visible Establece si por defecto el CommandButton se muestra.

Orden de Tabulación 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 serán accesados o enfocados durante la ejecución cuando se presione la tecla de Tabulación. 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.

TabIndex: 0

TabIndex: 2

TabIndex: 1

Al iniciar la aplicación 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í.

Page 8: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

8

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 código:

En la imagen anterior podemos ver la ventana de código para programar un evento del objeto Command1 cuando sea presionado. Cualquier línea de código que tenga como primer carácter un apóstrofo ( ' ) se convierte en comentario, es decir no será tomado en cuenta cuando se compile el código. Esta opción es muy útil para documentar las aplicaciones o desactivar alguna línea de código 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.

Nombre del objeto.

Procedimiento del objeto donde se va a programar.

Page 9: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 9

Tipos de datos Todos los lenguajes de programación manipulan los datos de una manera determinada dependiendo del tipo que éste sea. A continuación se muestran los tipos de datos más usados:

Tipo Rango Boolean True o False

Byte 0 a 255

Integer -32.768 a 32767

Long -2.147.483.648 a 2.147.483.647

Currency -922.337.203.685.477,5808 a 922.337.203.685.477,5807

Single -3.402823E+308 a 3.402823E+308

Double -1.79769313486232E+308 a 1.79769313486232E+308

String 1 a 65.400 caracteres

Declaración 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:

Dim <nombre de la variable> As <tipo de dato> Conversión 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 Función Tipo de dato al que convierte CBool (expresión) Booleano

CByte (expresión) Byte

CCur (expresión) Currency

CDbl (expresión) Double

CInt (expresión) Integer

CLng (expresión) Long

CSng (expresión) Single

CStr (expresión) String

Page 10: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

10

Propiedades del ComboBox Propiedades en tiempo de ejecución más comunes del ComboBox:

Nombre de la Propiedad Descripción

Enabled Si se encuentra en False no permite utilizar el ComboBox

Font Permite elegir el tipo de letra dentro del ComboBox

TabIndex Indica el orden de tabulación del ComboBox

List Permite agregar elementos al ComboBox

Locked Si se encuentra en False no permite modificar el texto pero sí seleccionarlo.

Sorted Muestra los elementos de la lista en orden

Text Establece el texto por defecto en el ComboBox

ToolTipText Agrega texto de ayuda sobre la función del ComboBox. El texto aparece cuando se coloca el cursor cerca del objeto.

Visible Establece si por defecto el ComboBox se muestra.

Agregar elementos al ComboBox en tiempo de Diseño Luego de agregar un objeto ComboBox a un Form, se debe modificar la propiedad List del ComboBox como se muestra a continuación:

1. Clic sobre la flecha de la propiedad

2. Agregamos el dato y presionamos la tecla Enter

Page 11: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 11

Repetimos el procedimiento para agregar más elementos al ComboBox.

El ComboBox en tiempo de ejecución se verá como se muestra en la siguiente imagen:

Agregar elementos al ComboBox en tiempo de Ejecución Los elementos que se agregan en tiempo de diseño siempre se cargarán cada vez que se ejecute una aplicación, para agregar elementos en tiempo de ejecución debemos programar un evento que lo realice, por ejemplo en un botón. Es importante tomar en cuenta que cuando el programa se cierra y se vuelve a abrir, solo los elementos que estén establecidos en tiempo de diseño aparecerán en el ComboBox. Luego de agregar un ComboBox y CommandButton a un Form debemos agregar el siguiente código al evento clic del CommandButton.

Page 12: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

12

El método AddItem del objeto Combo1 realiza la acción de agregar a la lista de opciones el texto que este digitado en el espacio del Combo1. La segunda línea limpia el texto digitado. Nuestra aplicación se muestra en la siguiente imagen:

Agregamos texto y presionamos el botón Agregar:

Propiedades del ListBox A continuación se muestran las propiedades en tiempo de ejecución más comunes del ListBox:

Nombre de la Propiedad Descripción

Enabled Si se encuentra en False no permite utilizar el ListBox.

Font Permite elegir el tipo de letra dentro del ListBox.

TabIndex Indica el orden de tabulación del ListBox.

List Agrega elementos al ListBox.

MultiSelect Activa la posibilidad de seleccionar más de un elemento de la lista.

Sorted Muestra los elementos de la lista en orden.

Style Agrega un checkbox a cada elemento de la lista.

ToolTipText Agrega texto de ayuda sobre la función del ListBox. El texto aparece cuando se coloca el cursor cerca del objeto.

Visible Establece si por defecto el ListBox se muestra.

Page 13: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 13

Agregar elementos al ListBox en tiempo de Diseño Luego de agregar un objeto ListBox a un Form, se debe modificar la propiedad List del ListBox como se muestra a continuación:

Repetimos el procedimiento para agregar más elementos al ListBox.

El ListBox en tiempo de ejecución se verá como en la siguiente imagen:

Agregar elementos al ListBox en tiempo de Ejecución Para agregar elementos en tiempo de ejecución tenemos que utilizar un TextBox y programar un evento para que se realice la acción. Al igual que el ComboBox, los elementos agregados en tiempo de ejecución a un ListBox, no serán almacenados. Luego de agregar un TextBox, un ComboBox y un CommandButton a un Form debemos agregar el siguiente código al evento clic del CommandButton.

1. Damos clic sobre la flecha de la propiedad.

2. Agregamos el dato y presionamos la tecla Enter.

Page 14: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

14

El método AddItem del objeto List1 realiza la acción de agregar a la lista de opciones el texto que este digitado en el Text1. La segunda línea limpia el texto digitado. Nuestra aplicación se muestra en la siguiente imagen:

Agregamos texto y presionamos el botón Agregar:

Función MsgBox Esta opción nos permite cargar un cuadro de mensaje en algún evento y controlar todos los elementos de dicho cuadro. La sintaxis de la Función MsgBox es la siguiente: MsgBox “Texto del Mensaje”, <icono>,”Texto de la barra de titulo”

Page 15: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 15

A continuación se muestran los tipos de iconos más utilizados:

Estilo Descripción Icono

vbCritical Coloca un icono de mensaje crítico

vbExclamation Coloca un icono de advertencia

vbInformation Coloca un icono de Información

vbQuestion Coloca un icono de Interrogación

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

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

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

Page 16: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

16

MsgBox "Este es un mensaje" & Chr(13) & "con doble línea de texto", , "Ejemplo Doble Línea"

Función InputBox Esta opción permite cargar un cuadro de diálogo, el cual le admite al usuario digitar datos que son almacenados en una variable. La sintaxis de la Función 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 continuación se muestran ejemplos del uso de los cuadros de diálogo:

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

Edad = InputBox ("¿Cúal es su edad?", "Obtener Edad", "0")

Page 17: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 17

Ciclos Los ciclos son un conjunto de sintaxis que permiten repetir una o más acciones hasta un determinado límite. A continuación 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 condición 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> <acción 1> <acción 2> <acción …> 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 condición que se evalúa, si esta condición es verdadera se ejecutan una vez más 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 aplicación.

Page 18: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

18

La sintaxis del ciclo While es la siguiente: While (<condición>) <acción 1> <acción 2> <acción …> 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 número 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á línea de sintaxis es muy importante, en su ausencia, provocaría 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 número 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

Page 19: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 19

Ciclo Do En el ciclo Do las instrucciones se ejecutan hasta que una condición 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 (<condición>) <acción 1> <acción 2> <acción …> 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

Page 20: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

20

Instrucciones de Selección Las instrucciones de selección permiten verificar si un dato cumple o no una condición que se establezca y tiene la capacidad de ejecutar diferentes acciones, dependiendo del resultado de la revisión. Instrucción If Esta instrucción permite verificar si un dato cumple una condición, si se cumple se lleva a cabo una acción de lo contrario, si se desea, se ejecuta otra acción. La sintaxis de la instrucción If es: If (<condición>) Then <acción1> <acción2> <acción…> Else <acción1> <acción2> <acción…> End if Esta instrucción puede presentar algunas variantes, como por ejemplo, que si no se cumple la condición no ocurre ninguna acción; o que hayan varias instrucciones if anidadas. A continuación 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

Page 21: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 21

Instrucción Select Ejecuta un grupo de acciones dependiendo de los posibles valores que pueda tener una variable y si no concuerda con ningún valor también puede ejecutar alguna acción. La sintaxis de esta instrucción es la siguiente: Select Case <variable> Case <posible valor o valores> <acción1> <acción2> <acción…> Case Else <acción1> <acción2> <acción…> End Select Algunos ejemplos de la instrucción Select son los siguientes: Select Case Text1 Case 1 To 10 MsgBox "El número se encuentra entre 1 y 10" Case 11, 12, 13, 14, 15 MsgBox "El número se encuentra entre 11 y 15" Case Else MsgBox "El número 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 "Opción no es válida" End Select

Page 22: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

22

Validación de Datos Cuando desarrollamos aplicaciones que manipulan datos para almacenarlos en algún archivo o base de datos es necesario verificar que estos datos correspondan con lo solicitado. A continuación se muestra una pequeña aplicación con sus respectivas validaciones y el código necesario:

Nombre del Campo Código de la Validación

Identificación

Dim dato As Integer On Error GoTo Errores dato = CInt(Text1) Errores: If Err.Number = 13 Then MsgBox "La identificación no es válida" Text1.SetFocus Text1.SelLength = 0 End If

Salario Base

Dim dato As Integer On Error GoTo Errores dato = CInt(Text2) If (Text2 < 0) Then MsgBox "Salario Base no es válido" End If Errores: If Err.Number = 13 Then MsgBox "Salario Base no es válido" End If

Page 23: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 23

Años de Laborar

Dim dato As Integer On Error GoTo Errores dato = CInt(Text3) If (Text3 < 0) Then MsgBox "Años de laborar no es válido" End If Errores: If Err.Number = 13 Then MsgBox "Años de laborar no es válido" End If

Anualidad

Dim dato As Integer On Error GoTo Errores dato = CInt(Text4) If (Text4 < 0) Then MsgBox "Anualidad no es válida" End If Errores: If Err.Number = 13 Then MsgBox "Anualidad no es válida" End If

Comisiones

Dim dato As Integer On Error GoTo Errores dato = CInt(Text5) If (Text5 < 0) Then MsgBox "Comisiones no es válida" End If Errores: If Err.Number = 13 Then MsgBox "Comisiones no es válida" End If

En el caso de esta pequeña aplicación, todos los datos digitados deben ser numéricos, por lo que para validar que en el campo no haya un carácter, se declara en todos los casos una variable dato a la cual se le asigna el resultado de la función 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 mostraría una pantalla de error como la siguiente:

Page 24: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

24

Para sustituir una pantalla de este tipo por un Cuadro de Mensaje con las indicaciones que deseamos, debemos conocer el número del error, que en nuestro caso es el número 13. En el evento donde se está programando la validación es necesario colocar la instrucción: 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 código necesario para validar como se muestra en uno de los casos: Errores: If Err.Number = 13 Then MsgBox "Comisiones no es válida" End If Otra validación presente en esta aplicación, se realiza en los campos Salario Base, Años de laborar, Anualidad y comisiones. Estos campos además de ser numéricos deben ser mayores a 0 por lo que se utiliza el siguiente código para dicho fin: If (Text5 < 0) Then MsgBox "Comisiones no es válida" End If Como se puede notar la instrucción If y la función MsgBox es vital para corroborar que los datos de las ampliaciones sean los correctos.

Page 25: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 25

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 validación y llamarla cada vez que sea necesario. La sintaxis de los subprogramas es la siguiente: Sub <nombre del subprograma> ( ) <acción1> <acción2> <acción…> End Sub La sintaxis de invocación es: Call <nombre del subprograma> Un ejemplo de un Subprograma y su invocación 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 aplicación que calcula ecuaciones cuadráticas:

Page 26: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

26

Variables Globales

SubprogramaDiscriminante

Subprograma Sol_X1

Subprograma Sol_X2

SubprogramaValidar

Page 27: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 27

En esta aplicación se puede notar que la mayoría del código no se encuentra declarado en un evento sino en una parte destinada a las declaraciones globales, esto implica que todo el código que sea colocado en esta parte se podrá acceder en cualquier momento y los valores de las variables se mantendrán en memoria hasta que la aplicación se finalice. Las funciones de las variables en esta aplicación son las siguientes.

Nombre de la Variable Función

Band Si los datos son correctos su valor se mantiene en False sino se vuelve True y detiene la ejecución.

A Almacena el valor del campo Text1.

B Almacena el valor del campo Text2.

C Almacena el valor del campo Text3.

Dis Almacena el valor que se obtiene al calcular el discriminante.

X1 Almacena el valor que se obtiene al calcular la primera solución de la ecuación.

X2 Almacena el valor que se obtiene al calcular la segunda la solución de la ecuación.

Las funciones de los subprocesos son las siguientes:

Nombre del Subproceso Función

Discriminante Calcula el valor del discriminante con las variables A, B y C. Lo almacena en la variable Dis.

Sol_X1 Calcula el valor de la primera solución de la ecuación con las variables A, B, C y Dis. Lo almacena en la variable X1.

Sol_X2 Calcula el valor de la segunda solución de la ecuación con las variables A, B, C y Dis. Lo almacena en la variable X2.

Validar

Verifica que los valores en los campos Text1, Text2 y Text3 sean números y los almacena en las variables A, B y C. Si los datos no son correctos no se ejecutan el resto de los Subprogramas.

Los Subprogramas pueden utilizar parámetros. Los parámetros son datos con los que se trabaja en una aplicación y que son enviados a un Subprograma para que este se ejecute y realice alguna operación con ellos.

Page 28: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

28

Un ejemplo detallado del uso de los Subprogramas con parámetros es la siguiente aplicación para calcular un promedio de notas:

Page 29: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 29

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 continuación la sintaxis de una Función. Function <nombre de la función> ( ) as <tipo de dato que se retorna> <acción1> <acción2> <acción…> End Function Un ejemplo de una aplicación utilizando una función es el siguiente:

Page 30: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

30

Módulos Globales En los temas anteriores hemos visto como declarar variables, procedimientos y funciones que pueden ser utilizadas en cualquier parte del código de un Form. Sin embargo si tuviéramos más de un Form y quisiéramos, por ejemplo, utilizar la Función Validar que se encuentra en la parte de declaraciones Globales de la Form1 en la Form2, tendríamos que recurrir a los módulos globales, en dicho módulo colocaríamos todo el código que posiblemente utilicemos en distintos lugares. Para crea un módulo dentro de un proyecto realizamos los siguientes pasos:

1. Un clic con el botón derecho del mouse sobre el Explorador de proyectos, en el menú emergente elegimos la opción agregar y luego el módulo.

Page 31: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 31

2. En el cuadro de diálogo que aparece, presionamos sobre el botón Abrir.

3. Se cargara una pantalla de módulo en blanco.

Page 32: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

32

A partir de que tenemos el módulo podemos agregar cualquier elemento y para invocarlo desde una Form se escribe primero el nombre del módulo, un punto y el elemento que deseamos llamar. La siguiente aplicación calcula el salario base de un empleado con base a la siguiente tabla de salarios:

Hora Diurno Nocturno Laborada 1000 1200

Extra 500 600

Luego la aplicación permite calcular el Salario Neto y generar la cuota mensual de un préstamo, si el empleado cuenta con uno.

Form1

Form2

Propiedad Locked: True

Propiedad Enabled: False

Page 33: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 33

Código 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 VÁLIDO" Exit Sub End If If (Module1.Validar_sindatos(ID) = True) Then MsgBox "DEBE DIGITAR UNA IDENTIFICACIÓN" 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 VÁLIDOS" End If End Sub

Page 34: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

34

Private Sub Command2_Click() Form2.Show End Sub Código 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

Page 35: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 35

Private Sub Text7_GotFocus() Call Calcular_Cuota End Sub Código 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 Programación 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 dígitos que se vayan agregando al TextBox y con una instrucción If podemos generar alguna acción al momento de que se digite un carácter 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.

Page 36: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

36

Evento GotFocus del TextBox Se ejecuta una acción cuando el cursor esta posicionado dentro del campo de texto. Puede convertirse en una opción más eficiente para programar eventos que normalmente se programarían en un CommandButton. La siguiente aplicación solicita el año actual y el año de nacimiento, al posicionarse en el campo edad se genera el cálculo respectivo.

Page 37: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 37

Evento LostFocus del TextBox Cuando el cursor esta posicionado en un campo y al momento de cambiar a otro objeto se ejecuta una acción. En el siguiente ejemplo, se hace uso de este evento y de la función UCase, que convirte el texto a mayúscula. Si se quisiera cambiar texto a minúscula se utiliza la función 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.

Page 38: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

38

Editor de Menús Esta herramienta permite crear menús personalizados para las aplicaciones. Para acceder a la

herramienta, se da clic sobre el icono que se encuentra en la barra Estándar y aparece el siguiente cuadro de diálogo:

Básicamente para crear un Menú debemos llenar los campos Caption (texto en el menú) y Name (nombre con el que se manipula a nivel de código), 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 función 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 pequeña variante, utilizando el símbolo _ en lugar de los espacios ya que en esta propiedad no son permitidos.

2. Presionamos sobre el botón Siguiente, y ahora realizamos el mismo procedimiento para agregar las opciones: “Información” y “Error”.

Page 39: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 39

Luego de agregar los datos el Editor de menús debe lucir como se muestra a continuación:

3. Como “Información” y “Error” son opciones que van dentro de “Cuadros de Mensaje”,

damos un clic sobre “Información” y presionamos el botón . Ejecutamos el mismo procedimiento con “Error. El resultado es el siguiente:

Page 40: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

40

Luego de presionar en el botón Aceptar se crea el Menú en la Form. Si presionamos sobre el menú “Cuadros de Mensaje” se despliega un submenú con las opciones “Información” y “Error” como se muestra a continuación:

Para programar un evento en la opción “Información” se procede dando un clic sobre el mismo para que aparezca la pantalla que permitirá agregar el código.

También podemos generar menús que puedan aplicar cambios en las propiedades de un objeto, por ejemplo, una opción 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”.Además utilizaremos combinaciones de teclas que nos permitan activar o desactivar desde el teclado. La opción “Activar” tendrá la combinación “Ctrl+A” y la opción “Desactivar” la combinación “Ctrl+D”

Page 41: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 41

El menú y la Form se verán de la siguiente manera:

El código en cada evento es el siguiente:

Page 42: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

42

La siguiente aplicación utiliza diferentes menús para generar cambios de alineación, estilo y tamaño en un objeto Label.

La opción “Cambiar Texto” invoca al siguiente InputBox:

Page 43: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 43

Page 44: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

44

Page 45: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 45

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 opción “Componentes”

2. En el cuadro de diálogo “Componentes” tenemos la posibilidad de elegir de una lista los objetos que deseamos agregar y luego presionar Aceptar. Los objetos correspondientes serán cargados de inmediato en el Cuadro de Herramientas.

Page 46: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

46

Objeto MaskEdBox Tiene un comportamiento similar a un TextBox con la particularidad de establecer un Formato o máscara 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 máscara de entrada se utiliza la propiedad Mask, que utiliza símbolos para indicar que tipo de dato se debe digitar.

Símbolo Significado # Marcador de posición numérico

& Marcador de posición alfanumérico

? Marcador de posición alfabético

. Separador de miles

, Separador decimal

: Separador de hora

/ Separador de Fecha

Page 47: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 47

Máscara 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 más importantes de este control son las siguientes:

Nombre de la Propiedad Descripción

TabOrientation Permite colocar en la parte superior, inferior, izquierda o derecha las cejillas de las fichas.

Tabs Esta propiedad indica cuantas fichas van a aparecer.

TabsPerRow Indica cuantas cejillas se van a mostrar por columna.

La siguiente aplicación permite agregar los datos de un estudiante y luego sus notas en dos fichas que tiene en común el número de identificación. Se utilizan objetos MaskEdBox para algunos campos.

Propiedad Mask: # # # # # # - #

Propiedad Mask: # # / # # / # # # #

Propiedad Mask: # # # - # # # #

Propiedad Mask en blanco

TextBox1 con barra de desplazamiento vertical

Page 48: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

48

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 efectúan 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 tamaño que se le dé, ya que éste automáticamente es agregado en la parte superior de la Form con un tamaño establecido. Con el tamaño del ImageList ocurre algo similar pues no se puede variar, por otro lado la ubicación no importa porque este solo es visible en tiempo de diseño.

TextBox3

TextBox2

Propiedad Mask: # # # , # #

Page 49: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 49

2. Damos un clic derecho sobre el ImageList y elegimos la opción propiedades del menú emergente que aparece para cargar el siguiente cuadro de díalogo:

3. Seleccionamos la cejilla Imágenes para agregar las posibles imágenes de la Barra de Herramientas.

Page 50: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

50

4. Luego de haber agregado las imágenes para la barra de tareas es importante recordar el número de Index que se le asigna a cada imagen. Finalmente presionamos el botón Aceptar.

5. Damos clic con botón derecho del mouse sobre el ToolBar y elegimos la opción Propiedades. Aparece el siguiente cuadro de diálogo:

Page 51: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 51

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

7. Para agregar un botón al ToolBar se debe elegir la cejilla Botones y dar clic en Insertar Botón. En el campo Index, digitamos el número de la imagen que se desea colocar. Para colocar texto, además de la imagen, se llena el campo Caption.

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

Page 52: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

52

Objeto MonthView Se utiliza para insertar un Calendario que permite seleccionar el día, mes y año de una forma dinámica. No puede variar el tamaño ya que esta establecido por defecto. Para agregarlo es necesario agregar el componente Microsoft Windows Common Control-2 6.0.

La siguiente aplicación es un ejemplo del uso de este objeto:

CommandButton con un carácter Webdings en la propiedad Caption.

Page 53: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 53

Código en Form1:

Código en Form2:

Código en Module1:

Page 54: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

54

Objeto DTPicker Es la unión 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 rápida y sencilla de almacenar. Instrucción Open Está instrucción es la primera que se utiliza para el trabajo de archivos, establece el nombre del archivo, el modo de apertura, el número de identificación dentro del código. Los archivos deben tener una extensión, para el texto se utiliza la extensión .txt y para datos .dat Un ejemplo del uso de la instrucción Open es el siguiente: Open “archivo.dat” for Random As #1 Modos de apertura

Modo Descripción

Append

• Si el archivo no existe se crea. • Si el archivo existe y tiene información

se agrega la nueva información al final del archivo.

Page 55: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 55

Input • Si el archivo no existe se genera un

error. • Se abre el archivo para lectura

Output

• Si el archivo no existe se crea. • Abre un archivo para lectura y

escritura. • Sobrescribe la información si el

archivo existe.

Instrucción Close Siempre que se abra un archivo dentro de un programa, se debe llegar a un punto en que debe ser cerrado. La instrucción Close es la encargada de realizar dicha acción. Se pueden cerrar archivos de dos maneras, especificando el número 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 información mientras que Write y Print de escribirla, aunque ambos comando varían 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 información boolena como #TRUE# y #FALSE# . Todas estas características facilitan la labor del comando Input. La sintaxis de los comandos para manejo de archivos de acceso secuencial es la siguiente:

Print # <número del archivo>, <datos para escribir> Write # <número del archivo>, <datos para escribir> Input # <número del archivo>, <lugar donde almacenar valores leídos> Ejemplos: Print #1, Text1 Write #2, Tex2, Combo1.Text, Text4 Input #1, Dato1

Page 56: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

56

Para comprender mejor el uso de los archivos de acceso secuencial se irá implementando una aplicación por etapas. La primera etapa consta de un mantenimiento de usuarios que solicita los datos del empleado y genera un login y clave.

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 función Ucase para convertir lo que se digite en esos campos en mayúscula. La función 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 parámetros de dicha función son: la cadena que se va a manipular, desde cual carácter se va a iniciar y cuantos caracteres se van a copiar.

COMPUTO TESORERIA RRHH CONTABILIDAD AUDITORIA MERCADEO

Page 57: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 57

La siguiente Form, siempre dentro de la misma aplicación, permite realizar búsquedas de usuarios.

En la Form de “MANTENIMIENTO DE USUARIOS” se debe agregar un botón que cargue la Form “BUSQUEDAS”

El código del bóton “Buscar Usuario” es el siguiente:

Page 58: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

58

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 botón Command1, el archivo es abierto como lectura (Input) ya que en este procedimiento no es necesario escribir ningún nuevo dato.

Page 59: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 59

Sin importar que clase de búsqueda 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 búsqueda con el que corresponde dentro del archivo, si son iguales se agregan todos los datos a la lista. La instrucción Input utiliza variables para cada campo que conforman un registro. Esto permite que el recorrido sea línea por línea y permita consultar en cualquier momento cualquier dato dentro del archivo. Por último se va a implementar el proceso de eliminación de un usuario que es programado en un botón dentro de la Form1. Es importante tener presente de que la eliminación 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 continuación:

El código del botón “Eliminar Usuario” es el siguiente:

Page 60: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

60

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 información 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 gráfico muestra como se manipulan los archivos “usuarios.dat” y “temporal.dat”.

Estado del Archivo Descripciones usuarios.dat temporal.dat

El archivo “usuarios” contiene todos los datos. El archivo

“temporal” se encuentra vacío.

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 vacío.

Se inicia el copiado de datos del archivo “temporal” a “usuarios”.

El archivo “temporal” se crea de nuevo para que quede vacío. El archivo “usuarios” contiene los datos actualizados

Page 61: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 61

Manejo de Bases de Datos La implementación de una base de datos para el almacenamiento permite que las aplicaciones sean más eficientes y los datos más fáciles 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 también 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 diseño y desarrollo son muy amplias. Las tecnologías para las conexiones también pueden ser muy variadas, pero entre ellas sobre sale la tecnología 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 creación de una base de datos en Access, la conexión con Visual Basic y el envío de transacciones a la base de datos.

1. Se crea una carpeta en la raíz del disco duro con el nombre de “Matricula” y dentro de ella las subcarpetas “BD”, “Forms”, “Proyecto” y “Módulos”. La estructura de carpetas debe ser como la mostrada a continuación:

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 tamaño 50.

Page 62: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

62

Se diseñan las siguientes Forms y se guardan con los nombres que se indican en la subcarpeta Forms de la carpeta Matricula.

Mask: ### -####

MultiLine: True ScrollBars: 2-Vertical

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Form1 Nombre para guardar: Estudiantes

Form2 Nombre para guardar: Profesores

Mask: ###-####

MultiLine: True ScrollBars: 2-Vertical

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Page 63: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 63

Form3 Nombre para guardar: Cursos

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Form4 Nombre para guardar: Matricula

Form5 Nombre para guardar: Ingreso

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

Icon: (Ninguno) BorderStyle: 3-Fixed Dialog

PasswordChar: *

Page 64: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

64

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

Form6 Nombre para guardar: Usuarios

Form7 Nombre para guardar: Menu

Más Adelante se explicará la razón por la que se programan

estos eventos

Page 65: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 65

Para enviar una transacción desde Visual Basic a la base de datos en Access es necesaria una función que debe ser declarada en un módulo y variables globales propias de ADO.

• La variable CN es de tipo ADODB.Connection y es la que se encarga de iniciar la conexión para efectuar una transacción.

• 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 acción 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 ubicación de la base de datos y parámetros para la conexión.

• La función Trans recibe como parámetro una instrucción SQL y retorna un valor

boolenao.

• El método BeginTrans inicia el proceso de comunicación, el método Execute envía a la base de datos la instrucción SQL, por último el método CommitTrans termina la transacción y guarda los cambios.

Más adelante se explicará el uso de la función Trans dentro de la aplicación que se esta diseñando y en las bases de datos en general.

Page 66: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

66

Para establecer la conexión entre un formulario y una base de datos se debe agregar un objeto Adodc para obtener la ruta y parámetros de la base de datos. Se debe activar el componente: “Microsoft ADO Data Control 6.0 (OLEDB)”.

Page 67: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 67

A continuación 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 botón derecho sobre dicho objeto para ingresar a las propiedades.

Clic aquí para generar la cadena de conexión

Page 68: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

68

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 conexión

Por último clic en Aceptar

Page 69: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 69

Cuando se regresa a la Form se elimina el objeto Adodc ya que no se necesita y a continuación se le asigna a la variable PASO la cadena de conexión que se copió del objeto Adodc, está asignación se programa en el evento Load de la Form. La cadena de conexión debe ir encerrada entre comillas dobles (“ ”). Además se debe agregar la sintaxis que genere la apertura de la variable PASO. Esta acción se lleva acabo con el método Open de la variable CN quedando el comando: CN.Open PASO

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

Luego de haberse generado la cadena de conexión, se selecciona y se presiona la combinación de teclas ctrl. + C para copiarla, por último clic en aceptar para volver a la Form.

Page 70: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

70

Hasta este punto ya se han realizado las tareas básicas 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 botón Ingresar se debe consultar la tabla Acceso para verificar si el usuario y la clave son correctos o no. El código para realizar dicha tarea se muestra a continuación:

Se inicia el código 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 conexión. 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 expresión “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 conexión, 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 función Trans.

Page 71: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 71

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 función Update como se muestra en la imagen.

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

Page 72: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

72

Los eventos Agregar, Eliminar, Buscar y Modificar se programan de la siguiente manera:

El código 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 código completo de la aplicación.

Page 73: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 73

Creación de proyectos ejecutables Un proyecto ejecutable no es otra cosa que un archivo .exe, este método es conveniente usarlo solo si los proyectos son pequeños (calculadoras, agendas, etc.) Si se usa dicho método en proyectos muy grandes, él mismo presentará errores al ejecutarlo. Para generar dicha función se debe desplegar el menú archivo y descender hasta la opción 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 opción se despliega la siguiente ventana de diálogo, desde donde se indica la ubicación y el nombre del nuevo archivo ejecutable.

Page 74: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

74

Empaquetado de proyectos Cuando los proyectos son de un tamaño apreciable, es conveniente usar el método de empaquetamiento para poder transportar y ejecutar dichos proyectos. Esto se logra usando el Asistente para empaquetado y distribución 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 aplicación:

Page 75: Manual visual-basic-6-0

DEPARTAMENTO DE INFORMÁTICA

Profesor David Molina S.© 2009 75

Cuando se da clic en Herramientas de Microsoft Visual Basic 6.0 aparece la opción Asistente para empaquetado y distribución.

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

Page 76: Manual visual-basic-6-0

COLEGIO MARISTA DE ALAJUELA

Profesor David Molina S.© 2009

76

ANEXO 1

CÓDIGO DE LA APLICACIÓN

DEL SISTEMA DE MATRÍCULA