Your SlideShare is downloading. ×
Manual visual-basic-6-0
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Manual visual-basic-6-0

6,178
views

Published on

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,178
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
257
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DEPARTAMENTO DE INFORMÁTICA VISUAL BASIC 6.0Iniciar un proyecto en Visual BasicSe 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.0Luego de haber iniciado Visual Basicdebemos indicarle a la aplicación que tipode proyecto nuevo deseamos crear.Elegimos del cuadro de diálogo NuevoProyecto la opción EXE estándar que seencuentra en la cejilla Nuevo, finalmentepresionamos 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 deHerramientas Ventana deFormulario 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ÁTICAObjetos del Cuadro de HerramientasEntre 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 ALAJUELAAgregar un objeto a un FormPara agregar un objeto lo seleccionamos del Cuadro de Herramientas y damos un clic sobre élmismo, de seguido sin soltar el botón del mouse se arrastra sobre el Form, para determinar eltamañ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 yluego modificar el tamaño.La ventana de propiedadesLuego de agregar un objeto a un formulario y seleccionarlo, podemos observar como en laventana de propiedades se cargan los atributos propios de dicho objeto que pueden sermodificados en tiempo de diseño. Por ejemplo al agregar un objeto de tipo Label, la ventana depropiedades 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 objetoInformación general de unatributo seleccionado de lalistaProfesor David Molina S.© 2009 4
  • 5. DEPARTAMENTO DE INFORMÁTICAPropiedades del FormPropiedades 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 LabelPropiedades 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 ALAJUELAPropiedades del TextBoxPropiedades 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ÁTICAPropiedades del CommandButtonPropiedades 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 objetosCuando se agrega en un Form objetos, conforme se van adicionando, se les asigna un valor en lapropiedad TabIndex. Esta propiedad establece el orden en que serán accesados o enfocadosdurante la ejecución cuando se presione la tecla de Tabulación. En caso de que el desplazamientono 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 cadacampo. 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 ALAJUELAEventos de los objetosPara poder programar un evento en un determinado objeto (Form, TextBox, Label, CommandButton, etc), se da doble clic sobre el elemento, cargando así la ventana de código:Nombre del Procedimiento delobjeto. objeto donde se va a programar.En la imagen anterior podemos ver la ventana de código para programar un evento del objetoCommand1 cuando sea presionado.Cualquier línea de código que tenga como primer carácter un apóstrofo ( ) se convierte encomentario, 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 laflecha 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ÁTICATipos de datosTodos los lenguajes de programación manipulan los datos de una manera determinadadependiendo 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 caracteresDeclaración de variablesLas variables son espacios en memoria donde podemos almacenar un dato de un determinadotipo. Para declarar una variable debemos utilizar la siguiente sintaxis: Dim <nombre de la variable> As <tipo de dato>Conversión de datosLas siguientes Funciones nos permiten convertir el valor de un campo o variable a otro tipo dedato. Cuando se asignan valores que se encuentran en un TextBox, por ejemplo, es necesarioconvertir el dato del TextBox al tipo de dato de la variable, ya que los TextBox manejan todos losdatos 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) StringProfesor David Molina S.© 2009 9
  • 10. COLEGIO MARISTA DE ALAJUELAPropiedades del ComboBoxPropiedades 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ñoLuego de agregar un objeto ComboBox a un Form, se debe modificar la propiedad List delComboBox como se muestra a continuación: 1. Clic sobre la flecha de la propiedad 2. Agregamos el dato y presionamos la tecla EnterProfesor David Molina S.© 2009 10
  • 11. DEPARTAMENTO DE INFORMÁTICARepetimos 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ónLos elementos que se agregan en tiempo de diseño siempre se cargarán cada vez que se ejecuteuna aplicación, para agregar elementos en tiempo de ejecución debemos programar un evento quelo realice, por ejemplo en un botón. Es importante tomar en cuenta que cuando el programa secierra y se vuelve a abrir, solo los elementos que estén establecidos en tiempo de diseñoaparecerán en el ComboBox.Luego de agregar un ComboBox y CommandButton a un Form debemos agregar el siguientecódigo al evento clic del CommandButton.Profesor David Molina S.© 2009 11
  • 12. COLEGIO MARISTA DE ALAJUELAEl método AddItem del objeto Combo1 realiza la acción de agregar a la lista de opciones el textoque 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 ListBoxA 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ÁTICAAgregar elementos al ListBox en tiempo de DiseñoLuego de agregar un objeto ListBox a un Form, se debe modificar la propiedad List del ListBoxcomo 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ónPara agregar elementos en tiempo de ejecución tenemos que utilizar un TextBox y programar unevento para que se realice la acción. Al igual que el ComboBox, los elementos agregados entiempo de ejecución a un ListBox, no serán almacenados.Luego de agregar un TextBox, un ComboBox y un CommandButton a un Form debemos agregarel siguiente código al evento clic del CommandButton.Profesor David Molina S.© 2009 13
  • 14. COLEGIO MARISTA DE ALAJUELAEl método AddItem del objeto List1 realiza la acción de agregar a la lista de opciones el texto queeste 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 MsgBoxEsta opción nos permite cargar un cuadro de mensaje en algún evento y controlar todos loselementos 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ÁTICAA 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ónAlgunos 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 InputBoxEsta opción permite cargar un cuadro de diálogo, el cual le admite al usuario digitar datos queson 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 declaradapreviamente. 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ÁTICACiclosLos ciclos son un conjunto de sintaxis que permiten repetir una o más acciones hasta undeterminado límite. A continuación analizaremos el manejo de los ciclos en Visual Basic.Ciclo ForPara utilizar un ciclo For es necesario declarar una variable y asignarle el valor inicial, luegodebemos indicar el valor final. Por defecto el rango de valores que tenga el ciclo irá aumentandode uno en uno, si queremos variar esta condición debemos agregar la palabra Step y el valor delincremento 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 …>NextAlgunos ejemplos del uso del ciclo For son los siguientes:For contador = 1 To 5 MsgBox "El valor del contador es: " & contadorNextFor contador = 1 To 10 Step 2 MsgBox "El valor del contador es: " & contadorNextFor contador = 0 To 100 Step 10 MsgBox "El valor del contador es: " & contadorNextCiclo WhileEste ciclo realiza las acciones una determinada cantidad de veces, con base en una condición quese evalúa, si esta condición es verdadera se ejecutan una vez más las acciones. Para este ciclo esnecesario tener una variable que cambie cada vez que se ejecuten las acciones para podercontrolar el ciclo, si esta variable no existe el ciclo se realizará infinitamente y provocará unproblema en la aplicación.Profesor David Molina S.© 2009 17
  • 18. COLEGIO MARISTA DE ALAJUELALa sintaxis del ciclo While es la siguiente:While (<condición>)<acción 1><acción 2><acción …>WendAnalicemos el siguiente ejemplo:Dim contador As Integercontador = 1While (contador <= 5)InputBox ("Digite el nombre del cliente # " & contador)contador = contador + 1WendSe declara una variable “contador” de tipo entero y se inicializa en 1. El ciclo mostrara unInputBox solicitando el nombre del cliente y el número que corresponde a este cliente, tomandoen cuenta el valor actual de la variable “contador”.Luego se incrementa el valor de la variable enuno, está línea de sintaxis es muy importante, en su ausencia, provocaría que el ciclo se repita enforma infinita. El incremento no necesariamente debe ser en uno, ya que si deseamos, porejemplo, mostrar un conteo de dos en dos, el valor del incremento es dos.Otros ejemplos del ciclo While:Dim contador As Integercontador = 0MsgBox "Valores del 1 al 20 de 2 en 2"While (contador <= 20)MsgBox (contador)contador = contador + 2WendDim valor As DoubleDim contador As DoubleDim factorial As Doublevalor = InputBox ("Digite un número para obtener su factorial")contador = 1factorial = valorWhile (contador < valor) factorial = factorial * contador contador = contador + 1WendMsgBox "El factorial de " & valor & " es: " & factorialProfesor David Molina S.© 2009 18
  • 19. DEPARTAMENTO DE INFORMÁTICACiclo DoEn el ciclo Do las instrucciones se ejecutan hasta que una condición se cumpla. Al igual que elciclo While es necesario una variable de control del ciclo para evitar que este se repita de formainfinita.Sintaxis del ciclo Do:Do Until (<condición>) <acción 1> <acción 2> <acción …>LoopAnalicemos el siguiente ejemplo:Dim valor_secreto As IntegerDim valor_jugador As Integervalor_secreto = 5valor_jugador = 0Do Until (valor_secreto = valor_jugador) valor_jugador = InputBox("Advine el valor secreto")LoopSe declaran dos variables enteras y hasta que una no sea igual a la otra se repetirá el ciclo. Otroejemplo de ciclo Do es el siguiente:Dim total As IntegerDim contador As Integertotal = 0valor = 0contador = 1Do Until (contador > 5) valor = InputBox("Digite el valor del producto # " & contador) total = total + valor contador = contador + 1LoopMsgBox "El total es: " & totalProfesor David Molina S.© 2009 19
  • 20. COLEGIO MARISTA DE ALAJUELAInstrucciones de SelecciónLas instrucciones de selección permiten verificar si un dato cumple o no una condición que seestablezca y tiene la capacidad de ejecutar diferentes acciones, dependiendo del resultado de larevisión.Instrucción IfEsta instrucción permite verificar si un dato cumple una condición, si se cumple se lleva a cabouna 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 ifEsta instrucción puede presentar algunas variantes, como por ejemplo, que si no se cumple lacondición no ocurre ninguna acción; o que hayan varias instrucciones if anidadas. A continuaciónse muestra un ejemplo con dichas variantes:If ( total>10 ) Then MsgBox “El valor es mayor a 10”end ifIf ( 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 ifEnd ifProfesor David Molina S.© 2009 20
  • 21. DEPARTAMENTO DE INFORMÁTICAInstrucción SelectEjecuta un grupo de acciones dependiendo de los posibles valores que pueda tener una variable ysi 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 SelectAlgunos ejemplos de la instrucción Select son los siguientes:Select Case Text1Case 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 SelectSelect Case Text1Case "NOMBRE" NOMBRE = InputBox ("DIGITE EL NOMBRE") MsgBox NOMBRECase "APELLIDO 1" APELLIDO1 = InputBox ("DIGITE EL APELLIDO 1") MsgBox APELLIDO1Case "APELLIDO 2" APELLIDO2 = InputBox ("DIGITE EL APELLIDO 2") MsgBox APELLIDO2Case "EDAD" EDAD = InputBox ("DIGITE LA EDAD") MsgBox EDADCase Else MsgBox "Opción no es válida"End SelectProfesor David Molina S.© 2009 21
  • 22. COLEGIO MARISTA DE ALAJUELAValidación de DatosCuando desarrollamos aplicaciones que manipulan datos para almacenarlos en algún archivo obase de datos es necesario verificar que estos datos correspondan con lo solicitado. Acontinuación se muestra una pequeña aplicación con sus respectivas validaciones y el códigonecesario: 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 IfProfesor 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 IfEn el caso de esta pequeña aplicación, todos los datos digitados deben ser numéricos, por lo quepara validar que en el campo no haya un carácter, se declara en todos los casos una variable datoa la cual se le asigna el resultado de la función CInt, que toma el dato digitado y lo convierte envalor entero para almacenar en la variable. Si esto no ocurre, como en el caso de que sea unaletra, Visual Basic mostraría una pantalla de error como la siguiente:Profesor David Molina S.© 2009 23
  • 24. COLEGIO MARISTA DE ALAJUELAPara sustituir una pantalla de este tipo por un Cuadro de Mensaje con las indicaciones quedeseamos, debemos conocer el número del error, que en nuestro caso es el número 13. En elevento 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 validarcomo se muestra en uno de los casos:Errores: If Err.Number = 13 Then MsgBox "Comisiones no es válida" End IfOtra validación presente en esta aplicación, se realiza en los campos Salario Base, Años delaborar, Anualidad y comisiones. Estos campos además de ser numéricos deben ser mayores a 0por lo que se utiliza el siguiente código para dicho fin:If (Text5 < 0) Then MsgBox "Comisiones no es válida"End IfComo se puede notar la instrucción If y la función MsgBox es vital para corroborar que los datosde las ampliaciones sean los correctos.Profesor David Molina S.© 2009 24
  • 25. DEPARTAMENTO DE INFORMÁTICASubprogramasLos subprogramas son un conjunto de instrucciones a las que se le asigna un nombre y por el cualpueden ser invocadas. Esto permite, por ejemplo, tener una sola validación y llamarla cada vezque sea necesario.La sintaxis de los subprogramas es la siguiente:Sub <nombre del subprograma> ( )<acción1><acción2><acción…>End SubLa 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 IfEnd SubCall ValidarUn ejemplo detallado del uso de los Subprogramas es la siguiente aplicación que calculaecuaciones cuadráticas:Profesor David Molina S.© 2009 25
  • 26. COLEGIO MARISTA DE ALAJUELA Variables Globales Subprograma Discriminante Subprograma Sol_X1 Subprograma Sol_X2 Subprograma ValidarProfesor David Molina S.© 2009 26
  • 27. DEPARTAMENTO DE INFORMÁTICAEn esta aplicación se puede notar que la mayoría del código no se encuentra declarado en unevento sino en una parte destinada a las declaraciones globales, esto implica que todo el códigoque sea colocado en esta parte se podrá acceder en cualquier momento y los valores de lasvariables 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 enuna aplicación y que son enviados a un Subprograma para que este se ejecute y realice algunaoperación con ellos.Profesor David Molina S.© 2009 27
  • 28. COLEGIO MARISTA DE ALAJUELAUn ejemplo detallado del uso de los Subprogramas con parámetros es la siguiente aplicación paracalcular un promedio de notas:Profesor David Molina S.© 2009 28
  • 29. DEPARTAMENTO DE INFORMÁTICAFuncionesLas funciones tienen un comportamiento similar a los Subprocesos, con la particularidad de quesi se desea, retornan un valor que es asignado a una variable. A continuación la sintaxis de unaFunción.Function <nombre de la función> ( ) as <tipo de dato que se retorna><acción1><acción2><acción…>End FunctionUn ejemplo de una aplicación utilizando una función es el siguiente:Profesor David Molina S.© 2009 29
  • 30. COLEGIO MARISTA DE ALAJUELAMódulos GlobalesEn los temas anteriores hemos visto como declarar variables, procedimientos y funciones quepueden ser utilizadas en cualquier parte del código de un Form. Sin embargo si tuviéramos másde un Form y quisiéramos, por ejemplo, utilizar la Función Validar que se encuentra en la partede declaraciones Globales de la Form1 en la Form2, tendríamos que recurrir a los módulosglobales, en dicho módulo colocaríamos todo el código que posiblemente utilicemos en distintoslugares.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 ALAJUELAA partir de que tenemos el módulo podemos agregar cualquier elemento y para invocarlo desdeuna Form se escribe primero el nombre del módulo, un punto y el elemento que deseamosllamar.La siguiente aplicación calcula el salario base de un empleado con base a la siguiente tabla desalarios: Hora Diurno Nocturno Laborada 1000 1200 Extra 500 600Luego 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 Form2Profesor David Molina S.© 2009 32
  • 33. DEPARTAMENTO DE INFORMÁTICACódigo en Form1:Private Sub Command1_Click()On Error GoTo ErroresID = Text1If (Combo1.Text <> "Diurno" And Combo1.Text <> "Nocturno") Then MsgBox "HORARIO NO ES VÁLIDO" Exit SubEnd IfIf (Module1.Validar_sindatos(ID) = True) Then MsgBox "DEBE DIGITAR UNA IDENTIFICACIÓN" Exit SubEnd IfIf (Module1.Validar_sindatos(Text2) = True) Then MsgBox "DEBE DIGITAR HORAS LABORADAS" Exit SubEnd IfIf (Module1.Validar_sindatos(Text3) = True) Then MsgBox "DEBE DIGITAR HORAS EXTRA" Exit SubEnd IfIf (Combo1.Text = "Diurno") Then S_BRUTO = ((CSng(Text2) * 1000) + (CSng(Text3) * 500)) Text4 = S_BRUTOElse If (Combo1.Text = "Nocturno") Then S_BRUTO = ((CSng(Text2) * 1200) + (CSng(Text3) * 600)) Text4 = S_BRUTO End IfEnd IfIf (Module1.Validar_sindatos(Text4) = False) Then Command2.Enabled = TrueEnd IfErrores:If (Err.Number = 13) Then MsgBox "DATOS NO VÁLIDOS"End IfEnd SubProfesor David Molina S.© 2009 33
  • 34. COLEGIO MARISTA DE ALAJUELAPrivate Sub Command2_Click()Form2.ShowEnd SubCódigo en Form2:Dim S_NETO As SingleDim Cargas As SingleDim Cuota As SingleSub Calcular_Cuota()Cuota = 0Cuota = (CSng(Text4) / CSng(Text6)) + ((CSng(Text5) * CSng(Text4)) / 100)Text7 = CuotaEnd SubPrivate Sub Check1_Click()If (Check1.Value = 1) Then Text4.Enabled = True Text5.Enabled = True Text6.Enabled = TrueElse Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text4.Text = 0 Text5.Text = 0 Text6.Text = 0 Text7.Text = 0End IfEnd SubPrivate Sub Command2_Click()S_NETO = S_BRUTO - (Cargas + Cuota)Text8 = S_NETOEnd SubPrivate Sub Form_Load()Text1 = IDText2 = S_BRUTOCargas = (S_BRUTO * 0.09)Text3 = CargasEnd SubProfesor David Molina S.© 2009 34
  • 35. DEPARTAMENTO DE INFORMÁTICAPrivate Sub Text7_GotFocus()Call Calcular_CuotaEnd SubCódigo en module1Global S_BRUTO As SingleGlobal ID As StringFunction Validar_sindatos(campo As String) As BooleanIf (campo = "") Then Validar_sindatos = TrueEnd IfEnd FunctionProgramación en otros EventosNormalmente hemos programado en los eventos Clic y Change de los objetos. Ahora nosdedicaremos a revisar los otros eventos que si bien, no san tan usados, pueden resultar muy útilesen una determinada tarea.Evento KeyPress del TextBoxEste evento revisa constantemente cada uno de los dígitos que se vayan agregando al TextBox ycon una instrucción If podemos generar alguna acción al momento de que se digite un carácterque especificamos.Es muy útil cuando se esta llenando, por ejemplo, un formulario de datos de un cliente, ydeseamos que se avance al siguiente campo cuando se presione la tecla enter.Profesor David Molina S.© 2009 35
  • 36. COLEGIO MARISTA DE ALAJUELAEvento GotFocus del TextBoxSe ejecuta una acción cuando el cursor esta posicionado dentro del campo de texto. Puedeconvertirse en una opción más eficiente para programar eventos que normalmente seprogramarían en un CommandButton.La siguiente aplicación solicita el año actual y el año de nacimiento, al posicionarse en el campoedad se genera el cálculo respectivo.Profesor David Molina S.© 2009 36
  • 37. DEPARTAMENTO DE INFORMÁTICAEvento LostFocus del TextBoxCuando el cursor esta posicionado en un campo y al momento de cambiar a otro objeto seejecuta 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ónLCase. .Eventos MouseDown y MouseUp del LabelSe programan acciones cuando se da un clic sostenido sobre un Label y cuando se deja de darclic sostenido.Profesor David Molina S.© 2009 37
  • 38. COLEGIO MARISTA DE ALAJUELAEditor de MenúsEsta herramienta permite crear menús personalizados para las aplicaciones. Para acceder a laherramienta, se da clic sobre el icono que se encuentra en la barra Estándar y aparece elsiguiente 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 evitarconfusiones.Veamos un ejemplo para crear un menú “Cuadros de Mensaje” que nos muestra dos casos de lafunció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ÁTICALuego 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 ALAJUELALuego de presionar en el botón Aceptar se crea el Menú en la Form. Si presionamos sobre elmenú “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 mismopara 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 desactivardesde 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ÁTICAEl 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 ALAJUELALa siguiente aplicación utiliza diferentes menús para generar cambios de alineación, estilo ytamaño en un objeto Label.La opción “Cambiar Texto” invoca al siguiente InputBox:Profesor David Molina S.© 2009 42
  • 43. DEPARTAMENTO DE INFORMÁTICAProfesor David Molina S.© 2009 43
  • 44. COLEGIO MARISTA DE ALAJUELAProfesor David Molina S.© 2009 44
  • 45. DEPARTAMENTO DE INFORMÁTICAAgregar otros objetos al cuadro de HerramientasPara 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 ALAJUELAObjeto MaskEdBoxTiene un comportamiento similar a un TextBox con la particularidad de establecer un Formato omáscara de entrada. Para utilizarlo se debe agregar el componente: Microsoft Masked BoxControl 6.0La propiedad Format de este componente permite dar a los datos digitados dentro delMaskEdBox formatos como los siguientes:Para elegir el formato se busca en la lista de propiedades el campo Format y luego el tipo deformato deseado:Para establecer una máscara de entrada se utiliza la propiedad Mask, que utiliza símbolos paraindicar 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 FechaProfesor 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: ###,## TextBox3Objeto ToolBar e ImageListAmbos se utilizan en conjunto para crear Barras de Herramientas. Los objetos se encuentran enel 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 ALAJUELAObjeto MonthViewSe utiliza para insertar un Calendario que permite seleccionar el día, mes y año de una formadinámica. No puede variar el tamaño ya que esta establecido por defecto. Para agregarlo esnecesario 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ÁTICACódigo en Form1:Código en Form2:Código en Module1:Profesor David Molina S.© 2009 53
  • 54. COLEGIO MARISTA DE ALAJUELAObjeto DTPickerEs la unión de un ComboBox con un MonthView. Para utilizarlo se debe activar el componenteMicrosoft Windows Common Control-2 6.0.Manejo de ArchivosPara poder almacenar datos de forma permanente en un dispositivo de almacenamientosecundario, se puede hacer uso de los archivos, los cuales son una manera rápida y sencilla dealmacenar.Instrucción OpenEstá instrucción es la primera que se utiliza para el trabajo de archivos, establece el nombre delarchivo, el modo de apertura, el número de identificación dentro del código. Los archivos debentener una extensión, para el texto se utiliza la extensión .txt y para datos .datUn ejemplo del uso de la instrucción Open es el siguiente:Open “archivo.dat” for Random As #1Modos 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 CloseSiempre que se abra un archivo dentro de un programa, se debe llegar a un punto en que debe sercerrado. La instrucción Close es la encargada de realizar dicha acción. Se pueden cerrar archivosde dos maneras, especificando el número de archivo o cerrando todos los archivos abiertos en undeterminado momento.Manejo de archivos de acceso secuencialEn un archivo podemos realizar dos acciones: leer y escribir, estas acciones se reflejan en loscomandos Input y Write o Print. El comando Input se encarga de leer la información mientrasque 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 alos 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, Text1Write #2, Tex2, Combo1.Text, Text4Input #1, Dato1Profesor David Molina S.© 2009 55
  • 56. COLEGIO MARISTA DE ALAJUELAPara comprender mejor el uso de los archivos de acceso secuencial se irá implementando unaaplicación por etapas. La primera etapa consta de un mantenimiento de usuarios que solicita losdatos del empleado y genera un login y clave. COMPUTO TESORERIA RRHH CONTABILIDAD AUDITORIA MERCADEOLa apertura, escritura y cierre del archivo se da en el evento clic del objeto Command1. Loseventos programados en los objetos Text1, Text2 y Text3 utilizan la función Ucase paraconvertir lo que se digite en esos campos en mayúscula. La función Mid utiliza en los eventosde los campos Text4 y Text5, permite manipular las cadenas de caracteres de los camposText1,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ÁTICALa siguiente Form, siempre dentro de la misma aplicación, permite realizar búsquedas deusuarios.En la Form de “MANTENIMIENTO DE USUARIOS” se debe agregar un botón que cargue laForm “BUSQUEDAS”El código del bóton “Buscar Usuario” es el siguiente:Profesor David Molina S.© 2009 57
  • 58. COLEGIO MARISTA DE ALAJUELAEn esta Form se utiliza una matriz de control para el objeto Option1, esto significa que es elmismo objeto pero con diferentes estados, cada vez que se presiona sobre alguno de los estadosse le asigna un valor a la variable opcion que esta declarada como global, no se tilda la palabrapara evitar errores de memoria.La apertura del archivo y su lectura se da en el evento clic del botón Command1, el archivo esabierto como lectura (Input) ya que en este procedimiento no es necesario escribir ningún nuevodato.Profesor David Molina S.© 2009 58
  • 59. DEPARTAMENTO DE INFORMÁTICASin importar que clase de búsqueda se realizan, procedimientos similares en donde se recorre elarchivo de principio a fin y se van comparando los datos para ver si coinciden con lossolicitados. Se utiliza un ciclo While que avanza por el archivo hasta llegar al final. Por cadaavance se compara el campo que se digitó para la búsqueda con el que corresponde dentro delarchivo, 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 permiteque el recorrido sea línea por línea y permita consultar en cualquier momento cualquier datodentro del archivo.Por último se va a implementar el proceso de eliminación de un usuario que es programado enun botón dentro de la Form1. Es importante tener presente de que la eliminación en formasecuencial consiste en tomar todos los datos del archivo menos el que se desea borrar y copiarlosa 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 ALAJUELALo primero es asignar a las variables xnom, xap1,ap2 y xdep los datos del usuario que se va aeliminar. Se abre el archivo “usuarios.dat” como lectura y el archivo “temporal.dat” comoescritura. Se inicia el recorrido del archivo “usuarios.dat” y se va copiando los datos al archivotemporal excepto el eliminado. Luego se cierran los archivos y se abre a “usuarios.dat” comoescritura, lo que provoca que quede en blanco; por otro lado “temporal.dat” es abierto comolectura y se procede a copiar la información de este al nuevo “usuarios.dat”.Se cierran losarchivos y para dejar en blanco a “temporal.dat” se abre por última vez como escritura y secierra inmediatamente. El siguiente gráfico muestra como se manipulan los archivos“usuarios.dat” y “temporal.dat”. Estado del Archivo Descripciones usuarios.dat temporal.datEl archivo “usuarios” contiene todos los datos. El archivo“temporal” se encuentra vacío.Se inicia el copiado de datosdel archivo “usuarios” a“temporal”.El archivo “temporal”contiene los mismos datos que“usuarios” excepto el usuarioque se deseaba borrar.El archivo “usuarios” escreado de nuevo para quequede vacío.Se inicia el copiado de datosdel archivo “temporal” a“usuarios”.El archivo “temporal” se creade nuevo para que quedevacío. El archivo “usuarios”contiene los datos actualizadosProfesor David Molina S.© 2009 60
  • 61. DEPARTAMENTO DE INFORMÁTICAManejo de Bases de DatosLa implementación de una base de datos para el almacenamiento permite que las aplicacionessean más eficientes y los datos más fáciles de manejar. Visual Basic por si solo no tiene unmotor de bases de datos sino que se conecta a motores de bases de datos externos y en conjuntose manipulan los datos. Visual Basic tiene la posibilidad de enlazarse con poderosos sistemascomo Oracle y SQL-Servers así como también puede hacerlo con motores sencillos comoAccess. Las bases de datos le dan un nuevo enfoque a las aplicaciones y aunque su dificultaddepende 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 sobresale la tecnología ADO, la cual se utilizara para conectar a una base de datos en Access. Otroelemento importante del manejo de bases de datos es SQL, que se convierte en el lenguajeintermedio entre ambas aplicaciones (Visual Basic y Access).El siguiente ejemplo dirigido incluye la creación de una base de datos en Access, la conexióncon 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: CursosIcon: (Ninguno)BorderStyle: 3-Fixed Dialog Form4 Nombre para guardar: MatriculaIcon: (Ninguno) Form5BorderStyle: 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 seexplicará 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 OfficeMediaCntCD1AnimatedProfesor David Molina S.© 2009 64
  • 65. DEPARTAMENTO DE INFORMÁTICAPara enviar una transacción desde Visual Basic a la base de datos en Access es necesaria unafunció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 ALAJUELAPara establecer la conexión entre un formulario y una base de datos se debe agregar un objetoAdodc 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ÁTICAA continuación se va a obtener la ruta de la base de datos agregando el objeto Adodc en la FormIngreso (este paso se puede realizar desde cualquier Form) y luego presionando el botón derechosobre dicho objeto para ingresar a las propiedades. Clic aquí para generar la cadena de conexiónProfesor David Molina S.© 2009 67
  • 68. COLEGIO MARISTA DE ALAJUELAEste es el proveedorpara bases de datos enAccess 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ónse 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 encerradaentre comillas dobles (“ ”). Además se debe agregar la sintaxis que genere la apertura de lavariable PASO. Esta acción se lleva acabo con el método Open de la variable CN quedando elcomando: CN.Open PASOEn el evento Unload del Form se debe cerrar la conexión para ello, solo basta con escribir lainstrucción: CN.Close. De esta manera se garantiza que la conexión este disponible durante todoel 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 ALAJUELAHasta este punto ya se han realizado las tareas básicas para conectar Visual Basic con una basede datos, ahora depende de los elementos de los Form y los campos de las tablas para programareventos. Se inicia con el Form de Ingreso. En este caso al presionar el botón Ingresar se debeconsultar la tabla Acceso para verificar si el usuario y la clave son correctos o no. El código pararealizar 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 locontrario su estado False provoca un mensaje de error. Se declara el SQL que en este casoselecciona todos los campos de la tabla acceso.El RecordSet, que nos permite el desplazamiento por toda la tabla, abre la sintaxis SQL en la basede datos utilizando la variable de conexión.El ciclo Do se encarga de recorrer la tabla Acceso hasta que encuentre el final. Como elRecordSet se encarga del desplazamiento en la tabla, se indica con la expresión “RS!<nombre delcampo>” el campo al que se desea tener acceso y se compara con los que digitó el usuario, deexistir 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 senecesita 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ÁTICALa siguiente Form que se va a programar es la de “Mantenimiento de Usuarios”. Nuevamente, enlos eventos Load y Unload se han colocado las acciones antes explicadas, sin embargo en estaForm 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 ALAJUELALos 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 otrasForms, son muy similares, cambian en la cantidad y tipo de datos que se manipulan. En elANEXO 1 se encuentra el código completo de la aplicación.Profesor David Molina S.© 2009 72
  • 73. DEPARTAMENTO DE INFORMÁTICACreación de proyectos ejecutablesUn proyecto ejecutable no es otra cosa que un archivo .exe, este método es conveniente usarlosolo 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ónGenerar proyecto1.exe. Si ya se le ha puesto nombre al proyecto aparecerá la palabra Generarseguida por el nombre del proyecto.Cuando se ha seleccionado dicha opción se despliega la siguiente ventana de diálogo, desdedonde se indica la ubicación y el nombre del nuevo archivo ejecutable.Profesor David Molina S.© 2009 73
  • 74. COLEGIO MARISTA DE ALAJUELAEmpaquetado de proyectosCuando los proyectos son de un tamaño apreciable, es conveniente usar el método deempaquetamiento para poder transportar y ejecutar dichos proyectos. Esto se logra usando elAsistente para empaquetado y distribución que se encuentra ubicado en la carpeta de acceso deVisual 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ÁTICACuando se da clic en Herramientas de Microsoft Visual Basic 6.0 aparece la opción Asistentepara empaquetado y distribución. Al ejecutar dicho asistente se visualiza la ventana desde donde se selecciona el proyecto aempaquetar 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ÍCULAProfesor David Molina S.© 2009 76

×