Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Tutorial de-visual basic
Next
Download to read offline and view in fullscreen.

2

Share

Manual visual-basic-6-0

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Manual visual-basic-6-0

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 26. COLEGIO MARISTA DE ALAJUELA Variables Globales Subprograma Discriminante Subprograma Sol_X1 Subprograma Sol_X2 Subprograma Validar Profesor David Molina S.© 2009 26
  27. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 43. DEPARTAMENTO DE INFORMÁTICA Profesor David Molina S.© 2009 43
  44. 44. COLEGIO MARISTA DE ALAJUELA Profesor David Molina S.© 2009 44
  45. 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. 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. 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. 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. 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. 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. 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. 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. 53. DEPARTAMENTO DE INFORMÁTICA Código en Form1: Código en Form2: Código en Module1: Profesor David Molina S.© 2009 53
  54. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 76. COLEGIO MARISTA DE ALAJUELA ANEXO 1 CÓDIGO DE LA APLICACIÓN DEL SISTEMA DE MATRÍCULA Profesor David Molina S.© 2009 76
  • malditoch

    Feb. 10, 2014
  • yajitachivis

    Apr. 28, 2013

Views

Total views

7,460

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

285

Shares

0

Comments

0

Likes

2

×