SlideShare ist ein Scribd-Unternehmen logo
1 von 76
Downloaden Sie, um offline zu lesen
DEPARTAMENTO DE INFORMÁTICA

                                        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.




Profesor David Molina S.© 2009                    1
COLEGIO MARISTA DE ALAJUELA

         Descripción de la pantalla Principal



                                                                                                         Barra de
   Barra                                                                                                  Menús
  Estándar


                                                                                                         Explorador de
                                                                                                           proyectos
 Cuadro de
Herramientas




                                                                                                         Ventana de
Formulario                                                                                               Propiedades




                                                                                                           Ventana
                                                                                                         Posición del
                                                                                                          formulario




               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.




         Profesor David Molina S.© 2009                   2
DEPARTAMENTO DE INFORMÁTICA

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.
                                                                Campos donde el usuario puede
               TextBox
                                                                digitar datos.
                                                                Subdivisiones dentro de un
                Frame
                                                                formulario.
         CommandButton                                          Botones que efectúan acciones.
                                                                Casillas de verificación que
             CheckBox
                                                                permiten la selección múltiple.
                                                                Botones de opción que solo
           OptionButton
                                                                permiten una única selección.
                                                                Campo de datos que posee una
             ComboBox
                                                                lista desplegable con opciones.
                                                                Campo de datos con barras de
               ListBox
                                                                desplazamiento.
                                                                Barra de desplazamiento
             HScrollBar
                                                                horizontal.
             VScrollBar                                         Barra de desplazamiento vertical.
                                                                Cronómetro para ejecutar
                 Timer
                                                                acciones por lapsos.
                                                                ComboBox, se usa para
           DriveListBox
                                                                seleccionar una unidad de disco.
                                                                ListBox, permite seleccionar
             DirListBox                                         directorios de una unidad de
                                                                disco.
                                                                ListBox, se utiliza para
             FileListBox                                        seleccionar archivos de una
                                                                unidad de disco.
                                                                PictureBox, agrega una imagen
             PictureBox                                         con el tamaño establecido cuando
                                                                se genera el objeto.
                                                                Image, agrega una imagen y la
                Image
                                                                muestra en su tamaño original.




Profesor David Molina S.© 2009                 3
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 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:



   Nombre del objeto: Label1
   Tipo de objeto: Label
                                                                        La lista de atributos de un
                                                                        objeto se puede ver en
                                                                        orden alfabético o por
                                                                        categorías.

         Lista de atributos del
         objeto




Información general de un
atributo seleccionado de la
lista



Profesor David Molina S.© 2009                 4
DEPARTAMENTO DE INFORMÁTICA

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.
                                            Activa o desactiva los botones de minimizar,
                 ControlBox
                                            maximizar y cerrar.
                                            Consigue colocar un icono junto al texto de la
                      Icon
                                            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
                                                        Ajusta el texto a la izquierda, derecha o al
                        Alignment
                                                        centro.
                        AutoSize                        Ajusta el tamaño del cuadro de texto.
                        BackColor                       Establece un color de fondo.
                         Caption                        Modifica el texto del Label.
                                                        Si se encuentra en False no permite modificar
                          Enabled
                                                        el texto en modo de ejecución.
                                                        Permite elegir el tipo de letra dentro del
                             Font
                                                        TextBox.
                        ForeColor                       Color del texto.
                                                        Establece si por defecto el TextBox se
                          Visible
                                                        muestra.




Profesor David Molina S.© 2009                      5
COLEGIO MARISTA DE ALAJUELA

Propiedades del TextBox

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

              Nombre de la Propiedad                                    Descripción
                                                     Justifica el texto a la izquierda, derecha o al
                        Alignment
                                                     centro.
                                                     Si se encuentra en False no permite modificar
                          Enabled
                                                     el texto.
                                                     Se utiliza para elegir el tipo de letra dentro del
                            Font
                                                     TextBox.
                        ForeColor                    Color del texto.
                                                     Si se encuentra en False no permite modificar
                          Locked
                                                     el texto pero sí seleccionarlo.
                                                     Establece el número de dígitos máximos que
                        MaxLength                    se pueden digitar, si está en cero no hay límite
                                                     de dígitos.
                                                     Permite que el texto sea agregado en más de
                         MultiLine
                                                     una línea.
                                                     Convierte el TextBox en un campo de clave,
                                                     es decir, todos los dígitos serán sustituidos por
                      PasswordChar
                                                     el carácter que se coloque en este campo, el
                                                     usual es el asterisco (*).
                                                     Agrega barras de desplazamiento al TextBox.
                        ScrollBars
                                                     La opción Multicine debe estar en True.
                         TabIndex                    Indica el orden de tabulación del TextBox.
                                                     Inserta el texto que tendrá el TextBox por
                            Text
                                                     defecto.
                                                     Agrega texto de ayuda sobre que datos se
                       ToolTipText                   deben digitar en el campo. El texto aparece
                                                     cuando se coloca el cursor cerca del TextBox.
                                                     Establece si por defecto el TextBox se
                          Visible
                                                     muestra.




Profesor David Molina S.© 2009                   6
DEPARTAMENTO DE INFORMÁTICA

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.
                                                    Si se encuentra en False no permite utilizar el
                          Enabled
                                                    CommandButton.
                                                    Se emplea para elegir el tipo de letra dentro
                            Font
                                                    del CommandButton.
                                                    Indica el orden de tabulación del
                         TabIndex
                                                    CommandButton.
                                                    Agrega texto de ayuda sobre la función del
                       ToolTipText                  botón. El texto aparece cuando se coloca el
                                                    cursor cerca del CommandButton.
                                                    Establece si por defecto el CommandButton
                          Visible
                                                    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.




      Al iniciar la aplicación el
      cursor se posiciona aquí.                                    TabIndex: 0


      Al presionar la tecla Tab el
      cursor se posiciona aquí.                                    TabIndex: 1

      Al presionar la tecla Tab,
      nuevamente, el cursor se                                     TabIndex: 2
      posiciona aquí.




Profesor David Molina S.© 2009                  7
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 código:


Nombre del                                                                    Procedimiento del
objeto.                                                                       objeto donde se va a
                                                                              programar.




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.




Profesor David Molina S.© 2009                 8
DEPARTAMENTO DE INFORMÁTICA

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




Profesor David Molina S.© 2009                   9
COLEGIO MARISTA DE ALAJUELA

Propiedades del ComboBox

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

              Nombre de la Propiedad                                 Descripción
                                                  Si se encuentra en False no permite utilizar el
                          Enabled
                                                  ComboBox
                                                  Permite elegir el tipo de letra dentro del
                            Font
                                                  ComboBox
                         TabIndex                 Indica el orden de tabulación del ComboBox
                           List                   Permite agregar elementos al ComboBox
                                                  Si se encuentra en False no permite modificar
                          Locked
                                                  el texto pero sí seleccionarlo.
                           Sorted                 Muestra los elementos de la lista en orden
                            Text                  Establece el texto por defecto en el ComboBox
                                                  Agrega texto de ayuda sobre la función del
                       ToolTipText                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

Profesor David Molina S.© 2009                  10
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009               11
COLEGIO MARISTA DE ALAJUELA

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
                                                  Si se encuentra en False no permite utilizar el
                          Enabled
                                                  ListBox.
                                                  Permite elegir el tipo de letra dentro del
                            Font
                                                  ListBox.
                         TabIndex                 Indica el orden de tabulación del ListBox.
                           List                   Agrega elementos al ListBox.
                                                  Activa la posibilidad de seleccionar más de un
                        MultiSelect
                                                  elemento de la lista.
                           Sorted                 Muestra los elementos de la lista en orden.
                                                  Agrega un checkbox a cada elemento de la
                            Style
                                                  lista.
                                                  Agrega texto de ayuda sobre la función del
                       ToolTipText                ListBox. El texto aparece cuando se coloca el
                                                  cursor cerca del objeto.
                          Visible                 Establece si por defecto el ListBox se muestra.



Profesor David Molina S.© 2009                  12
DEPARTAMENTO DE INFORMÁTICA

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:




       2. Agregamos el                                                   1. Damos clic
       dato y presionamos                                                sobre la flecha de
       la tecla Enter.                                                   la propiedad.

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.


Profesor David Molina S.© 2009                13
COLEGIO MARISTA DE ALAJUELA




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”


Profesor David Molina S.© 2009                  14
DEPARTAMENTO DE INFORMÁTICA

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"




Profesor David Molina S.© 2009                     15
COLEGIO MARISTA DE ALAJUELA

 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")


Profesor David Molina S.© 2009                   16
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009                 17
COLEGIO MARISTA DE ALAJUELA

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


Profesor David Molina S.© 2009                  18
DEPARTAMENTO DE INFORMÁTICA

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




Profesor David Molina S.© 2009                  19
COLEGIO MARISTA DE ALAJUELA

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




Profesor David Molina S.© 2009                20
DEPARTAMENTO DE INFORMÁTICA

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




Profesor David Molina S.© 2009                     21
COLEGIO MARISTA DE ALAJUELA

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
                                               Dim dato As Integer
                                               On Error GoTo Errores
                                               dato = CInt(Text1)
                                               Errores:
                      Identificación            If Err.Number = 13 Then
                                                  MsgBox "La identificación no es válida"
                                                  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 válido"
                       Salario Base            End If

                                               Errores:
                                                If Err.Number = 13 Then
                                                 MsgBox "Salario Base no es válido"
                                                End If




Profesor David Molina S.© 2009               22
DEPARTAMENTO DE INFORMÁTICA



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

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

                                                  Errores:
                                                   If Err.Number = 13 Then
                                                     MsgBox "Anualidad no es válida"
                                                   End If
                                                  Dim dato As Integer
                                                  On Error GoTo Errores
                                                  dato = CInt(Text5)
                                                  If (Text5 < 0) Then
                                                   MsgBox "Comisiones no es válida"
                       Comisiones                 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:




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 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.




Profesor David Molina S.© 2009                24
DEPARTAMENTO DE INFORMÁTICA

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:




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 INFORMÁTICA

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
                                                   Si los datos son correctos su valor se mantiene
                            Band                   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.
                                                   Almacena el valor que se obtiene al calcular el
                             Dis
                                                   discriminante.
                                                   Almacena el valor que se obtiene al calcular la
                             X1
                                                   primera solución de la ecuación.
                                                   Almacena el valor que se obtiene al calcular la
                             X2
                                                   segunda la solución de la ecuación.

Las funciones de los subprocesos son las siguientes:

              Nombre del Subproceso                                   Función
                                                   Calcula el valor del discriminante con las
                      Discriminante                variables A, B y C. Lo almacena en la variable
                                                   Dis.
                                                   Calcula el valor de la primera solución de la
                          Sol_X1                   ecuación con las variables A, B, C y Dis. Lo
                                                   almacena en la variable X1.
                                                   Calcula el valor de la segunda solución de la
                          Sol_X2                   ecuación 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 números y los almacena en
                          Validar                  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.



Profesor David Molina S.© 2009                   27
COLEGIO MARISTA DE ALAJUELA

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




Profesor David Molina S.© 2009                28
DEPARTAMENTO DE INFORMÁTICA

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:




Profesor David Molina S.© 2009                 29
COLEGIO MARISTA DE ALAJUELA

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.




Profesor David Molina S.© 2009                30
DEPARTAMENTO DE INFORMÁTICA

      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.




Profesor David Molina S.© 2009                 31
COLEGIO MARISTA DE ALAJUELA

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




                            Propiedad Locked: True



                                 Propiedad Enabled: False
                                                                                 Form2




Profesor David Molina S.© 2009                          32
DEPARTAMENTO DE INFORMÁTICA

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




Profesor David Molina S.© 2009               33
COLEGIO MARISTA DE ALAJUELA

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




Profesor David Molina S.© 2009               34
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009                 35
COLEGIO MARISTA DE ALAJUELA




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.




Profesor David Molina S.© 2009                 36
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009                37
COLEGIO MARISTA DE ALAJUELA

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”.




Profesor David Molina S.© 2009                 38
DEPARTAMENTO DE INFORMÁTICA

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:




Profesor David Molina S.© 2009                  39
COLEGIO MARISTA DE ALAJUELA

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”




Profesor David Molina S.© 2009               40
DEPARTAMENTO DE INFORMÁTICA




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




El código en cada evento es el siguiente:




Profesor David Molina S.© 2009                41
COLEGIO MARISTA DE ALAJUELA

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:




Profesor David Molina S.© 2009                  42
DEPARTAMENTO DE INFORMÁTICA




Profesor David Molina S.© 2009               43
COLEGIO MARISTA DE ALAJUELA




Profesor David Molina S.© 2009               44
DEPARTAMENTO DE INFORMÁTICA

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.




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
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



Profesor David Molina S.© 2009                46
DEPARTAMENTO DE INFORMÁTICA


                                   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
                                                          Permite colocar en la parte superior, inferior,
                              TabOrientation
                                                          izquierda o derecha las cejillas de las fichas.
                                                          Esta propiedad indica cuantas fichas van a
                                     Tabs
                                                          aparecer.
                                                          Indica cuantas cejillas se van a mostrar por
                                TabsPerRow
                                                          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
                                                                                               en blanco
                                                                                               Propiedad Mask:
                                                                                               ##/##/####

                                                                                               Propiedad Mask:
TextBox1 con barra de                                                                          ###-####
desplazamiento vertical




         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 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.




Profesor David Molina S.© 2009                  48
DEPARTAMENTO DE INFORMÁTICA




      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.




Profesor David Molina S.© 2009               49
COLEGIO MARISTA DE ALAJUELA

      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:




Profesor David Molina S.© 2009                 50
DEPARTAMENTO DE INFORMÁTICA

      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:




Profesor David Molina S.© 2009                  51
COLEGIO MARISTA DE ALAJUELA


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.




Profesor David Molina S.© 2009                 52
DEPARTAMENTO DE INFORMÁTICA

Código en Form1:




Código en Form2:




Código en Module1:




Profesor David Molina S.© 2009               53
COLEGIO MARISTA DE ALAJUELA

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
                                                     •   Si el archivo no existe se crea.
                          Append                     •   Si el archivo existe y tiene información
                                                         se agrega la nueva información al final
                                                         del archivo.




Profesor David Molina S.© 2009                 54
DEPARTAMENTO DE INFORMÁTICA



                                                     •   Si el archivo no existe se genera un
                            Input                        error.
                                                     •   Se abre el archivo para lectura
                                                     •   Si el archivo no existe se crea.
                                                     •   Abre un archivo para lectura y
                           Output                        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




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
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.




                                                              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 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.




Profesor David Molina S.© 2009               56
DEPARTAMENTO DE INFORMÁTICA

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:




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


Profesor David Molina S.© 2009                58
DEPARTAMENTO DE INFORMÁTICA

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:




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 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

Profesor David Molina S.© 2009                 60
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009                 61
COLEGIO MARISTA DE ALAJUELA

  Se diseñan 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 INFORMÁTICA

                                                 Form3
                                       Nombre para guardar: Cursos




Icon: (Ninguno)
BorderStyle: 3-Fixed Dialog


                                                 Form4
                                      Nombre para guardar: Matricula




Icon: (Ninguno)                                 Form5
BorderStyle: 3-Fixed Dialog           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




   Más Adelante se
explicará la razón 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 programaMicrosoft OfficeMediaCntCD1Animated


Profesor David Molina S.© 2009                  64
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009                  65
COLEGIO MARISTA DE ALAJUELA

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)”.




Profesor David Molina S.© 2009               66
DEPARTAMENTO DE INFORMÁTICA

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




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
                                                                    conexión
       Por último clic
       en Aceptar

    Profesor David Molina S.© 2009               68
DEPARTAMENTO DE INFORMÁTICA




                                 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.


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.




Profesor David Molina S.© 2009                           69
COLEGIO MARISTA DE ALAJUELA

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.


Profesor David Molina S.© 2009                  70
DEPARTAMENTO DE INFORMÁTICA

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:




Profesor David Molina S.© 2009                  71
COLEGIO MARISTA DE ALAJUELA

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.


Profesor David Molina S.© 2009               72
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009               73
COLEGIO MARISTA DE ALAJUELA

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:




Profesor David Molina S.© 2009                 74
DEPARTAMENTO DE INFORMÁTICA

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.




Profesor David Molina S.© 2009               75
COLEGIO MARISTA DE ALAJUELA




                                       ANEXO 1

              CÓDIGO DE LA APLICACIÓN

           DEL SISTEMA DE MATRÍCULA




Profesor David Molina S.© 2009               76

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (7)

Laboratorio nº 2
Laboratorio nº 2Laboratorio nº 2
Laboratorio nº 2
 
Tutorial de Visual
Tutorial de  VisualTutorial de  Visual
Tutorial de Visual
 
Materia de informatica or
Materia de informatica orMateria de informatica or
Materia de informatica or
 
Visual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian PallaresVisual basic 6.0 Menu de Programas Cristian Pallares
Visual basic 6.0 Menu de Programas Cristian Pallares
 
Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0Guía básica de Visual Basic 6.0
Guía básica de Visual Basic 6.0
 
Cuaderno de Trabajo VB 6.0
Cuaderno de Trabajo VB 6.0Cuaderno de Trabajo VB 6.0
Cuaderno de Trabajo VB 6.0
 
Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion Visual Basic 6.0 progarmacion
Visual Basic 6.0 progarmacion
 

Ähnlich wie Manual visual-basic-6-0

Herramientas de Visual Basic
Herramientas de Visual BasicHerramientas de Visual Basic
Herramientas de Visual BasicJéssica Soria
 
Sena stiven urive portada
Sena stiven urive portadaSena stiven urive portada
Sena stiven urive portadaStiven Uribe
 
Curso De Microsoft Visual Fox Pro For Windows
Curso De Microsoft Visual Fox Pro  For WindowsCurso De Microsoft Visual Fox Pro  For Windows
Curso De Microsoft Visual Fox Pro For Windowsrtinoco89
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0Ayhli123
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0Ayhli123
 
Visual Basic
Visual BasicVisual Basic
Visual BasicNiltonusp
 
Trabajo Informatica Brayan Camilo Velasco Victor Hugo Ruiz
Trabajo Informatica Brayan Camilo Velasco  Victor Hugo Ruiz Trabajo Informatica Brayan Camilo Velasco  Victor Hugo Ruiz
Trabajo Informatica Brayan Camilo Velasco Victor Hugo Ruiz Victor Ruiz
 
controles y tipos de datos
controles y tipos de datos controles y tipos de datos
controles y tipos de datos isaacferrebus
 
Portafolio
PortafolioPortafolio
Portafoliovanegume
 
programacion. visual basic 6.0
programacion. visual basic 6.0programacion. visual basic 6.0
programacion. visual basic 6.0dicnorimar cedeño
 
Tutorial luisa.1
Tutorial luisa.1Tutorial luisa.1
Tutorial luisa.1YESSIPA
 

Ähnlich wie Manual visual-basic-6-0 (20)

Unidad 1 margara
Unidad 1 margaraUnidad 1 margara
Unidad 1 margara
 
Herramientas de Visual Basic
Herramientas de Visual BasicHerramientas de Visual Basic
Herramientas de Visual Basic
 
Sena stiven urive portada
Sena stiven urive portadaSena stiven urive portada
Sena stiven urive portada
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visual basic
Visual basicVisual basic
Visual basic
 
Curso De Microsoft Visual Fox Pro For Windows
Curso De Microsoft Visual Fox Pro  For WindowsCurso De Microsoft Visual Fox Pro  For Windows
Curso De Microsoft Visual Fox Pro For Windows
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
V.b
V.bV.b
V.b
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Trabajo Informatica Brayan Camilo Velasco Victor Hugo Ruiz
Trabajo Informatica Brayan Camilo Velasco  Victor Hugo Ruiz Trabajo Informatica Brayan Camilo Velasco  Victor Hugo Ruiz
Trabajo Informatica Brayan Camilo Velasco Victor Hugo Ruiz
 
visual basic
visual basicvisual basic
visual basic
 
IntroduccióN Bea
IntroduccióN BeaIntroduccióN Bea
IntroduccióN Bea
 
controles y tipos de datos
controles y tipos de datos controles y tipos de datos
controles y tipos de datos
 
10 herramientas de visual basic
10 herramientas de visual basic10 herramientas de visual basic
10 herramientas de visual basic
 
Portafolio
PortafolioPortafolio
Portafolio
 
Clase01net
Clase01netClase01net
Clase01net
 
programacion. visual basic 6.0
programacion. visual basic 6.0programacion. visual basic 6.0
programacion. visual basic 6.0
 
Tutorial luisa.1
Tutorial luisa.1Tutorial luisa.1
Tutorial luisa.1
 

Mehr von cristianconchetumare (15)

Asistencia tecnicas
Asistencia tecnicasAsistencia tecnicas
Asistencia tecnicas
 
Prueba lab soft_2_nombre apellido - b
Prueba lab soft_2_nombre apellido - bPrueba lab soft_2_nombre apellido - b
Prueba lab soft_2_nombre apellido - b
 
Isomería en química orgánica disertacion
Isomería en química orgánica disertacionIsomería en química orgánica disertacion
Isomería en química orgánica disertacion
 
Linea de tiempo independencia
Linea de tiempo independenciaLinea de tiempo independencia
Linea de tiempo independencia
 
Texto de matemática 2012
Texto de matemática 2012Texto de matemática 2012
Texto de matemática 2012
 
Guia movimiento rectilineo.doc2009
Guia movimiento rectilineo.doc2009Guia movimiento rectilineo.doc2009
Guia movimiento rectilineo.doc2009
 
Rifa 2ºa
Rifa 2ºaRifa 2ºa
Rifa 2ºa
 
Lguia expe movimiento 2m2012
Lguia expe movimiento 2m2012Lguia expe movimiento 2m2012
Lguia expe movimiento 2m2012
 
Formato laboratorio 2012nnnn
Formato laboratorio 2012nnnnFormato laboratorio 2012nnnn
Formato laboratorio 2012nnnn
 
Ranking general por promedios segundos
Ranking general por promedios segundosRanking general por promedios segundos
Ranking general por promedios segundos
 
Ranking general por asistencia segundos
Ranking general por asistencia segundosRanking general por asistencia segundos
Ranking general por asistencia segundos
 
Ranking 2 a por promedios
Ranking 2 a por promediosRanking 2 a por promedios
Ranking 2 a por promedios
 
Ranking 2a por asistencia
Ranking 2a por asistenciaRanking 2a por asistencia
Ranking 2a por asistencia
 
Dispositivos para la placa
Dispositivos para la placaDispositivos para la placa
Dispositivos para la placa
 
Placa para sirena
Placa para sirenaPlaca para sirena
Placa para sirena
 

Kürzlich hochgeladen

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Kürzlich hochgeladen (15)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Manual visual-basic-6-0

  • 1. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 1
  • 2. COLEGIO MARISTA DE ALAJUELA Descripción de la pantalla Principal Barra de Barra Menús Estándar Explorador de proyectos Cuadro de Herramientas Ventana de Formulario Propiedades Ventana Posición del formulario 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. Profesor David Molina S.© 2009 2
  • 3. DEPARTAMENTO DE INFORMÁTICA 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. Campos donde el usuario puede TextBox digitar datos. Subdivisiones dentro de un Frame formulario. CommandButton Botones que efectúan acciones. Casillas de verificación que CheckBox permiten la selección múltiple. Botones de opción que solo OptionButton permiten una única selección. Campo de datos que posee una ComboBox lista desplegable con opciones. Campo de datos con barras de ListBox desplazamiento. Barra de desplazamiento HScrollBar horizontal. VScrollBar Barra de desplazamiento vertical. Cronómetro para ejecutar Timer acciones por lapsos. ComboBox, se usa para DriveListBox seleccionar una unidad de disco. ListBox, permite seleccionar DirListBox directorios de una unidad de disco. ListBox, se utiliza para FileListBox seleccionar archivos de una unidad de disco. PictureBox, agrega una imagen PictureBox con el tamaño establecido cuando se genera el objeto. Image, agrega una imagen y la Image muestra en su tamaño original. Profesor David Molina S.© 2009 3
  • 4. 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 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: Nombre del objeto: Label1 Tipo de objeto: Label La lista de atributos de un objeto se puede ver en orden alfabético o por categorías. Lista de atributos del objeto Información general de un atributo seleccionado de la lista Profesor David Molina S.© 2009 4
  • 5. DEPARTAMENTO DE INFORMÁTICA 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. Activa o desactiva los botones de minimizar, ControlBox maximizar y cerrar. Consigue colocar un icono junto al texto de la Icon 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 Ajusta el texto a la izquierda, derecha o al Alignment centro. AutoSize Ajusta el tamaño del cuadro de texto. BackColor Establece un color de fondo. Caption Modifica el texto del Label. Si se encuentra en False no permite modificar Enabled el texto en modo de ejecución. Permite elegir el tipo de letra dentro del Font TextBox. ForeColor Color del texto. Establece si por defecto el TextBox se Visible muestra. Profesor David Molina S.© 2009 5
  • 6. COLEGIO MARISTA DE ALAJUELA Propiedades del TextBox Propiedades en tiempo de ejecución más usuales del TextBox: Nombre de la Propiedad Descripción Justifica el texto a la izquierda, derecha o al Alignment centro. Si se encuentra en False no permite modificar Enabled el texto. Se utiliza para elegir el tipo de letra dentro del Font TextBox. ForeColor Color del texto. Si se encuentra en False no permite modificar Locked el texto pero sí seleccionarlo. Establece el número de dígitos máximos que MaxLength se pueden digitar, si está en cero no hay límite de dígitos. Permite que el texto sea agregado en más de MultiLine una línea. Convierte el TextBox en un campo de clave, es decir, todos los dígitos serán sustituidos por PasswordChar el carácter que se coloque en este campo, el usual es el asterisco (*). Agrega barras de desplazamiento al TextBox. ScrollBars La opción Multicine debe estar en True. TabIndex Indica el orden de tabulación del TextBox. Inserta el texto que tendrá el TextBox por Text defecto. Agrega texto de ayuda sobre que datos se ToolTipText deben digitar en el campo. El texto aparece cuando se coloca el cursor cerca del TextBox. Establece si por defecto el TextBox se Visible muestra. Profesor David Molina S.© 2009 6
  • 7. DEPARTAMENTO DE INFORMÁTICA 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. Si se encuentra en False no permite utilizar el Enabled CommandButton. Se emplea para elegir el tipo de letra dentro Font del CommandButton. Indica el orden de tabulación del TabIndex CommandButton. Agrega texto de ayuda sobre la función del ToolTipText botón. El texto aparece cuando se coloca el cursor cerca del CommandButton. Establece si por defecto el CommandButton Visible 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. Al iniciar la aplicación el cursor se posiciona aquí. TabIndex: 0 Al presionar la tecla Tab el cursor se posiciona aquí. TabIndex: 1 Al presionar la tecla Tab, nuevamente, el cursor se TabIndex: 2 posiciona aquí. Profesor David Molina S.© 2009 7
  • 8. 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 código: Nombre del Procedimiento del objeto. objeto donde se va a programar. 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. Profesor David Molina S.© 2009 8
  • 9. DEPARTAMENTO DE INFORMÁTICA 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 Profesor David Molina S.© 2009 9
  • 10. COLEGIO MARISTA DE ALAJUELA Propiedades del ComboBox Propiedades en tiempo de ejecución más comunes del ComboBox: Nombre de la Propiedad Descripción Si se encuentra en False no permite utilizar el Enabled ComboBox Permite elegir el tipo de letra dentro del Font ComboBox TabIndex Indica el orden de tabulación del ComboBox List Permite agregar elementos al ComboBox Si se encuentra en False no permite modificar Locked el texto pero sí seleccionarlo. Sorted Muestra los elementos de la lista en orden Text Establece el texto por defecto en el ComboBox Agrega texto de ayuda sobre la función del ToolTipText 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 Profesor David Molina S.© 2009 10
  • 11. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 11
  • 12. COLEGIO MARISTA DE ALAJUELA 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 Si se encuentra en False no permite utilizar el Enabled ListBox. Permite elegir el tipo de letra dentro del Font ListBox. TabIndex Indica el orden de tabulación del ListBox. List Agrega elementos al ListBox. Activa la posibilidad de seleccionar más de un MultiSelect elemento de la lista. Sorted Muestra los elementos de la lista en orden. Agrega un checkbox a cada elemento de la Style lista. Agrega texto de ayuda sobre la función del ToolTipText ListBox. El texto aparece cuando se coloca el cursor cerca del objeto. Visible Establece si por defecto el ListBox se muestra. Profesor David Molina S.© 2009 12
  • 13. DEPARTAMENTO DE INFORMÁTICA 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: 2. Agregamos el 1. Damos clic dato y presionamos sobre la flecha de la tecla Enter. la propiedad. 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. Profesor David Molina S.© 2009 13
  • 14. COLEGIO MARISTA DE ALAJUELA 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” Profesor David Molina S.© 2009 14
  • 15. DEPARTAMENTO DE INFORMÁTICA 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" Profesor David Molina S.© 2009 15
  • 16. COLEGIO MARISTA DE ALAJUELA 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") Profesor David Molina S.© 2009 16
  • 17. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 17
  • 18. COLEGIO MARISTA DE ALAJUELA 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 Profesor David Molina S.© 2009 18
  • 19. DEPARTAMENTO DE INFORMÁTICA 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 Profesor David Molina S.© 2009 19
  • 20. COLEGIO MARISTA DE ALAJUELA 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 Profesor David Molina S.© 2009 20
  • 21. DEPARTAMENTO DE INFORMÁTICA 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 Profesor David Molina S.© 2009 21
  • 22. COLEGIO MARISTA DE ALAJUELA 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 Dim dato As Integer On Error GoTo Errores dato = CInt(Text1) Errores: Identificación If Err.Number = 13 Then MsgBox "La identificación no es válida" 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 válido" Salario Base End If Errores: If Err.Number = 13 Then MsgBox "Salario Base no es válido" End If Profesor David Molina S.© 2009 22
  • 23. DEPARTAMENTO DE INFORMÁTICA Dim dato As Integer On Error GoTo Errores dato = CInt(Text3) If (Text3 < 0) Then MsgBox "Años de laborar no es válido" Años de Laborar End If Errores: If Err.Number = 13 Then MsgBox "Años de laborar no es válido" End If Dim dato As Integer On Error GoTo Errores dato = CInt(Text4) If (Text4 < 0) Then MsgBox "Anualidad no es válida" Anualidad End If Errores: If Err.Number = 13 Then MsgBox "Anualidad no es válida" End If Dim dato As Integer On Error GoTo Errores dato = CInt(Text5) If (Text5 < 0) Then MsgBox "Comisiones no es válida" Comisiones 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: Profesor David Molina S.© 2009 23
  • 24. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 24
  • 25. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 25
  • 26. COLEGIO MARISTA DE ALAJUELA Variables Globales Subprograma Discriminante Subprograma Sol_X1 Subprograma Sol_X2 Subprograma Validar Profesor David Molina S.© 2009 26
  • 27. DEPARTAMENTO DE INFORMÁTICA 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 Si los datos son correctos su valor se mantiene Band 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. Almacena el valor que se obtiene al calcular el Dis discriminante. Almacena el valor que se obtiene al calcular la X1 primera solución de la ecuación. Almacena el valor que se obtiene al calcular la X2 segunda la solución de la ecuación. Las funciones de los subprocesos son las siguientes: Nombre del Subproceso Función Calcula el valor del discriminante con las Discriminante variables A, B y C. Lo almacena en la variable Dis. Calcula el valor de la primera solución de la Sol_X1 ecuación con las variables A, B, C y Dis. Lo almacena en la variable X1. Calcula el valor de la segunda solución de la Sol_X2 ecuación 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 números y los almacena en Validar 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. Profesor David Molina S.© 2009 27
  • 28. COLEGIO MARISTA DE ALAJUELA Un ejemplo detallado del uso de los Subprogramas con parámetros es la siguiente aplicación para calcular un promedio de notas: Profesor David Molina S.© 2009 28
  • 29. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 29
  • 30. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 30
  • 31. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 31
  • 32. COLEGIO MARISTA DE ALAJUELA 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 Propiedad Locked: True Propiedad Enabled: False Form2 Profesor David Molina S.© 2009 32
  • 33. DEPARTAMENTO DE INFORMÁTICA 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 Profesor David Molina S.© 2009 33
  • 34. COLEGIO MARISTA DE ALAJUELA 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 Profesor David Molina S.© 2009 34
  • 35. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 35
  • 36. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 36
  • 37. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 37
  • 38. COLEGIO MARISTA DE ALAJUELA 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”. Profesor David Molina S.© 2009 38
  • 39. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 39
  • 40. COLEGIO MARISTA DE ALAJUELA 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” Profesor David Molina S.© 2009 40
  • 41. DEPARTAMENTO DE INFORMÁTICA El menú y la Form se verán de la siguiente manera: El código en cada evento es el siguiente: Profesor David Molina S.© 2009 41
  • 42. COLEGIO MARISTA DE ALAJUELA 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: Profesor David Molina S.© 2009 42
  • 43. DEPARTAMENTO DE INFORMÁTICA Profesor David Molina S.© 2009 43
  • 44. COLEGIO MARISTA DE ALAJUELA Profesor David Molina S.© 2009 44
  • 45. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 45
  • 46. COLEGIO MARISTA DE ALAJUELA 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 Profesor David Molina S.© 2009 46
  • 47. DEPARTAMENTO DE INFORMÁTICA 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 Permite colocar en la parte superior, inferior, TabOrientation izquierda o derecha las cejillas de las fichas. Esta propiedad indica cuantas fichas van a Tabs aparecer. Indica cuantas cejillas se van a mostrar por TabsPerRow 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 en blanco Propiedad Mask: ##/##/#### Propiedad Mask: TextBox1 con barra de ###-#### desplazamiento vertical Profesor David Molina S.© 2009 47
  • 48. 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 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. Profesor David Molina S.© 2009 48
  • 49. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 49
  • 50. COLEGIO MARISTA DE ALAJUELA 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: Profesor David Molina S.© 2009 50
  • 51. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 51
  • 52. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 52
  • 53. DEPARTAMENTO DE INFORMÁTICA Código en Form1: Código en Form2: Código en Module1: Profesor David Molina S.© 2009 53
  • 54. COLEGIO MARISTA DE ALAJUELA 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 • Si el archivo no existe se crea. Append • Si el archivo existe y tiene información se agrega la nueva información al final del archivo. Profesor David Molina S.© 2009 54
  • 55. DEPARTAMENTO DE INFORMÁTICA • Si el archivo no existe se genera un Input error. • Se abre el archivo para lectura • Si el archivo no existe se crea. • Abre un archivo para lectura y Output 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 Profesor David Molina S.© 2009 55
  • 56. COLEGIO MARISTA DE ALAJUELA 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. 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 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. Profesor David Molina S.© 2009 56
  • 57. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 57
  • 58. 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 botón Command1, el archivo es abierto como lectura (Input) ya que en este procedimiento no es necesario escribir ningún nuevo dato. Profesor David Molina S.© 2009 58
  • 59. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 59
  • 60. 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 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 Profesor David Molina S.© 2009 60
  • 61. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 61
  • 62. COLEGIO MARISTA DE ALAJUELA Se diseñan 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
  • 63. DEPARTAMENTO DE INFORMÁTICA Form3 Nombre para guardar: Cursos Icon: (Ninguno) BorderStyle: 3-Fixed Dialog Form4 Nombre para guardar: Matricula Icon: (Ninguno) Form5 BorderStyle: 3-Fixed Dialog Nombre para guardar: Ingreso PasswordChar: * Icon: (Ninguno) BorderStyle: 3-Fixed Dialog Profesor David Molina S.© 2009 63
  • 64. COLEGIO MARISTA DE ALAJUELA Form6 Nombre para guardar: Usuarios Más Adelante se explicará la razón 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 programaMicrosoft OfficeMediaCntCD1Animated Profesor David Molina S.© 2009 64
  • 65. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 65
  • 66. COLEGIO MARISTA DE ALAJUELA 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)”. Profesor David Molina S.© 2009 66
  • 67. DEPARTAMENTO DE INFORMÁTICA 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 Profesor David Molina S.© 2009 67
  • 68. 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 conexión Por último clic en Aceptar Profesor David Molina S.© 2009 68
  • 69. DEPARTAMENTO DE INFORMÁTICA 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. 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. Profesor David Molina S.© 2009 69
  • 70. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 70
  • 71. DEPARTAMENTO DE INFORMÁTICA 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: Profesor David Molina S.© 2009 71
  • 72. COLEGIO MARISTA DE ALAJUELA 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. Profesor David Molina S.© 2009 72
  • 73. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 73
  • 74. COLEGIO MARISTA DE ALAJUELA 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: Profesor David Molina S.© 2009 74
  • 75. DEPARTAMENTO DE INFORMÁTICA 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. Profesor David Molina S.© 2009 75
  • 76. COLEGIO MARISTA DE ALAJUELA ANEXO 1 CÓDIGO DE LA APLICACIÓN DEL SISTEMA DE MATRÍCULA Profesor David Molina S.© 2009 76