Seminario de Visual Basic ¿QUÉ ES VISUAL BASIC? La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario (GUI). En lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación de los elementos de la interfaz, simplemente puede arrastrar y colocar objetos prefabricados en su lugar dentro de la pantalla. Si ha utilizado alguna vez un programa de dibujo como Paint, ya tiene la mayor parte de las habilidades necesarias para crear una interfaz de usuario efectiva. La palabra "Basic" hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code), un lenguaje utilizado por más programadores que ningún otro lenguaje en la historia de la informática o computación. Visual Basic ha evolucionado a partir del lenguaje BASIC original y ahora contiene centenares de instrucciones, funciones y palabras clave, muchas de las cuales están directamente relacionadas con la interfaz gráfica de Windows. Los principiantes pueden crear aplicaciones útiles con sólo aprender unas pocas palabras clave, pero, al mismo tiempo, la eficacia del lenguaje permite a los profesionales acometer cualquier objetivo que pueda alcanzarse mediante cualquier otro lenguaje de programación de Windows. El lenguaje de programación Visual Basic no es exclusivo de Visual Basic. La Edición para aplicaciones del sistema de programación de Visual Basic, incluida en Microsoft Excel, Microsoft Access y muchas otras aplicaciones Windows, utilizan el mismo lenguaje. La inversión realizada en el aprendizaje de Visual Basic le ayudará a abarcar estas otras áreas. Si su objetivo es crear un pequeño programa para su uso personal o para su grupo de trabajo, un sistema para una empresa o incluso aplicaciones distribuidas de alcance mundial a través de Internet, Visual Basic dispone de las herramientas que necesita. • Las características de acceso a datos le permiten crear bases de datos y aplicaciones cliente para los formatos de las bases de datos más conocidas, incluidos Microsoft SQL Server y otras bases de datos de ámbito empresarial. • Las tecnologías ActiveX™ le permiten utilizar la funcionalidad proporcionada por otras aplicaciones, como el procesador de textos Microsoft Word, la hoja de cálculo Microsoft Excel y otras aplicaciones Windows. Puede incluso automatizar las aplicaciones y los objetos creados con la Edición profesional o la Edición empresarial de Visual Basic. • Las capacidades de Internet facilitan el acceso a documentos y aplicaciones a través de Internet desde su propia aplicación. • La aplicación terminada es un auténtico archivo .exe que utiliza una biblioteca de vínculos dinámicos (DLL) de tiempo de ejecución que puede distribuir con toda libertad. Pág. 1 Seminario de Visual Basic Ediciones de Visual Basic Visual Basic se encuentra disponible en tres versiones, cada una de las cuales está orientada a unos requisitos de programación específicos. • • • La Edición de aprendizaje de Visual Basic permite a los programadores crear robustas aplicaciones para Microsoft Windows 95 y Windows NT®. Incluye todos los controles intrínsecos, además de los controles de cuadrícula, de fichas y los controles enlazados a datos. La documentación que se proporciona con esta edición incluye Learn VB Now (un CD-ROM multimedia), un Manual del programador impreso, la Ayuda en pantalla y los Libros en pantalla de Visual Basic. La Edición profesional proporciona a los profesionales un completo conjunto de herramientas para desarrollar soluciones para terceros. Incluye todas las características de la Edición de aprendizaje, así como controles ActiveX adicionales, incluidos controles para Internet y el Generador de informes de Crystal Reports. La documentación que se proporciona con la Edición profesional incluye el Manual del programador, la Ayuda en pantalla, la Guía de herramientas componentes y el Manual del usuario de Crystal Reports para Visual Basic. La Edición empresarial permite a los profesionales crear sólidas aplicaciones distribuidas en un entorno de equipo. Incluye todas las características de la Edición profesional, la Galería de objetos, las herramientas de administración de bases de datos, etc. La documentación impresa que se proporciona con la Edición empresarial incluye toda la documentación de la Edición profesional, y la Guía para la creación de aplicaciones cliente-servidor con Visual Basic y el Manual del usuario de SourceSafe. Programación orientada a Objetos y Eventos Clase: Es la definición formal o muerta de un objeto. La clase define las propiedades de un objeto. La clase es el conjunto de características de un objeto. Ejemplo: La especie humana. Objetos: Es la ejecución de una clase. Un objeto es una entidad que tiene asociado un conjunto de métodos, eventos y propiedades. Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier línea es un objeto. Propiedades: Son las características o atributos que posee un objeto o un formulario (ventana de Windows). Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox, …. Métodos: Son las acciones que realiza el objeto. Los métodos son funciones internas de un determinado objeto que permite realizar funciones sobre él o sobre otro objeto. Pág. 2 Seminario de Visual Basic Ejemplo : Deseamos poner en la ventana Windows de nuestra aplicación "Hola mundo", por tanto pondremos el método -> Ventana.Print "Hola mundo" Eventos: Son las acciones que recaen sobre un objeto. Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratón. A estos eventos se les puede asociar código para que se ejecute al producir el evento. Un programa Visual Basic es un POE (Programa orientado a eventos). Todo lo que hacemos en un programa Visual Basic está generado por medio de eventos Explicación integrada y ejemplo de Objetos, Propiedades, Métodos y Eventos. Los formularios y controles de Visual Basic son objetos que exponen sus propios métodos, propiedades y eventos. Las propiedades se pueden considerar como atributos de un objeto, los métodos como sus acciones y los eventos como sus respuestas. Un objeto de uso diario como el globo de un niño tiene también propiedades, métodos y eventos. Entre las propiedades de un globo se incluyen atributos visibles como el peso, el diámetro y el color. Otras propiedades describen su estado (inflado o desinflado) o atributos que no son visibles, como su edad. Por definición, todos los globos tienen estas propiedades; lo que varía de un globo a otros son los valores de estas propiedades. Un globo tiene también métodos o acciones inherentes que puede efectuar. Tiene un método inflar (la acción de llenarlo de helio) o un método desinflar (expeler su contenido) y un método elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar estos métodos. Los globos tienen además respuestas predefinidas a ciertos eventos externos. Por ejemplo, un globo respondería al evento de pincharlo desinflándose o al evento de soltarlo elevándose en el aire. Los objetos tienen propiedades, responden a eventos y ejecutan métodos: Si se pudiera programar un globo, el código de Visual Basic podría ser como el siguiente. Para establecer las propiedades del globo: Globo.Color = Rojo Globo.Diámetro = 10 Globo.Inflado = True Observe la sintaxis del código: el objeto (Globo) seguido de la propiedad (Color) seguida de la asignación del valor (Rojo). Podría modificar el color del globo desde el código si repitiera esta instrucción y sustituyera el valor por otro diferente. Las propiedades también se pueden establecer en la ventana Propiedades mientras se está diseñando la aplicación. Pág. 3 Seminario de Visual Basic Los métodos de un globo se invocan de esta forma: Globo.Inflar Globo.Desinflar Globo.Elevar 5 La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un método (un verbo). En el tercer ejemplo hay un elemento adicional, llamado argumento, que indica la distancia que se eleva. Algunos métodos tendrán uno o más argumentos para describir más a fondo la acción que se va a ejecutar. El globo puede responder a un evento como se muestra a continuación: Sub Globo_Pinchazo() Globo.Desinflar Globo.HacerRuido "Bang" Globo.Inflado = False Globo.Diámetro = 1 End Sub En este caso, el código describe el comportamiento del globo cuando se produce un evento Pinchazo: invoca el método Desinflar y luego invoca el método HacerRuido con un argumento “Bang” (el tipo de ruido que se va a hacer). Como el globo ya no está inflado, la propiedad Inflado tiene el valor False y la propiedad Diámetro adopta un nuevo valor. Si bien no puede programar un globo, sí puede programar un formulario o un control de Visual Basic. Como programador, tiene el control: decide qué propiedades se deben modificar, qué métodos se deben invocar o a qué eventos hay que responder para conseguir la apariencia y el comportamiento deseados Terminología usada en Programación orientada a Objetos y Eventos Tiempo de Diseño: Es el momento en que se esta diseñando o creando las pantallas o procedimientos de una Aplicación. Tiempo de Ejecución: Es el momento en que se está ejecutando la Aplicación. Forma o Formulario: Es una ventana o cuadro de diálogo que forma parte de la interfaz de usuario. Existen formularios múltiples e independientes. MDI(Multiple Document Interface): Es una ventana donde se pueden poner múltiples ventanitas. Con la MDI las otras ventanas no se van a la barra de tareas de windows sino que se van a la MDI. Control: Es la representación gráfica de un objeto. Permite la manipulación del usuario. Clase, Objeto, Propiedad, Método, Evento. Pág. 4 Seminario de Visual Basic Ambiente de desarrollo de Visual Basic Barra de Título, Barra de menú y Barra de Herramientas. En la ventana del programa, podemos hacer todas las funciones normales que nos permite el compilador Visual Basic. Ventana de Proyecto. Pulse "Ctrl+R" (Ver -> Proyecto) y se abrirá la ventana de proyectos. En esta ventana tenemos todos los ficheros del proyecto Visual Basic en el que vamos a trabajar. Forma o Formulario. Al principio y por defecto, el programa abre un formulario con el nombre Form1 que es la ventana Windows de nuestra aplicación. Ventana de Propiedades. Pulsando la tecla "F4", aparecerá la ventana propiedades . Esta ventana es fundamental, ya contiene todas las propiedades de cada objeto insertaremos en nuestro formulario, así como propiedades del formulario en sí. de que que las Pág. 5 Seminario de Visual Basic Caja de Herramientas. La ventana caja de herramientas contiene todos los objetos que podemos incluir en nuestro formulario. Esta ventana se puede abrir en el menú principal (Ver -> Caja de herramientas). Ventana de Código. En esta ventana se codifican todos los procesos a ejecutarse por los eventos. Pasos para crear una aplicación 1. 2. 3. 4. 5. 6. 7. Crear interfase de usuario Fijar propiedades de los objetos Escribir código para eventos Grabar el Proyecto Prueba y Depuración Crear archivo .EXE Crear el Setup Pág. 6 Seminario de Visual Basic Los controles y sentencias iniciales Forma o Formulario. Los formularios tienen sus propios eventos, propiedades y métodos con los que se puede controlar su apariencia y comportamiento. El primer paso para diseñar un formulario consiste en establecer sus propiedades. Puede establecer las propiedades de un formulario en tiempo de diseño en la ventana Propiedades o en tiempo de ejecución, escribiendo código. Nota: En tiempo de diseño, que es cualquier momento mientras está desarrollando una aplicación en el entorno de Visual Basic, se trabaja con formularios y controles, se establecen propiedades y se escribe código para los eventos. Tiempo de ejecución es cualquier momento mientras se ejecuta realmente la aplicación y se interactúa con ella como lo haría un usuario. Propiedades más importantes de los formularios. Muchas propiedades de un formulario afectan a su apariencia física. La propiedad Caption determina el texto que muestra la barra de título del formulario y la propiedad Icon establece el icono que aparece cuando se minimiza un formulario. Las propiedades MaxButton y MinButton determinan si el formulario se puede maximizar o minimizar. Cambiando la propiedad BorderStyle puede controlar el comportamiento de cambio de tamaño del formulario. Las propiedades Height y Width determinan el tamaño inicial de un formulario, mientras que las propiedades Left y Top determinan la ubicación del formulario en relación con la esquina superior izquierda de la pantalla. Con la propiedad WindowState puede establecer si el formulario se inicia en estado maximizado, minimizado o normal. BackColor determina el color de fondo de un objeto (Forma), ForeColor determina el color de primer plano o del texto visualizado. Font determina el tipo de letra, su tamaño y estilo MousePointer establece la forma del puntero del ratón y MouseIcon determina el ícono del ratón. Moveable determina si se puede mover la Forma. Utiliza los valores True Y False. Picture determina el gráfico mostrado en un control. La propiedad Name establece el nombre con el que hará referencia al formulario en el código. De forma predeterminada, cuando se agrega un formulario por primera vez a un proyecto, su nombre es Form1, Form2, etc. Es conveniente establecer la propiedad Name a algo más significativo, como “frmEntry” para un formulario de entrada de pedidos. La mejor manera de familiarizarse con las numerosas propiedades de los formularios es experimentar. Cambie algunas propiedades de un formulario en la ventana Propiedades y ejecute la aplicación para ver su efecto. Puede aprender más sobre cada propiedad si la selecciona y presiona F1 para ver Ayuda contextual. Eventos Iniciales del Formulario Cuando el usuario ejecuta una Aplicación que ha desarrollado en Visual Basic, suele ver el formulario inicial que ha diseñado. Sin embargo, en segundo plano, hay muchas cosas más, entre las cuales tenemos las siguientes: Pág. 7 Seminario de Visual Basic Evento Form_Initialize: Inicializar formulario. Este evento es el primero que ocurre y solo ocurre una vez. Visual Basic genera este evento cuando se crea por primera vez el formulario. El evento initialize ocurre antes que el evento Load y como su nombre lo indica, el evento initialize es donde se escribe el código que establece las propiedades iniciales del formulario. La utilidad mas común de este procedimiento es inicializar variables a nivel de formulario y cambiar los valores por omisión de los controles. Evento Form_Load: Cargar formulario. El evento Load se genera cuando se abre un formulario y ocurre después del evento Initialize. Cajas de Texto. TextBox Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario. Las propiedades de las que dispone el control son las siguientes:(para obtener el cuadro de propiedades, seleccionar el control y pulsar F4 o pulsar con el botón derecho para obtener el menú contextual y marcar Properties) Text: Aquí indicamos el texto que aparecerá en el control. Podemos asignarle cualquier texto en tiempo de diseño o ejecución. También podemos tomar el texto que haya introducido el usuario para tratarlo durante la ejecución. Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso Text1 y es el nombre con el que se conocerá el control cuando lo utilicemos en el código. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la función que tiene el control en la aplicación para que el código quede más claro. Ejemplo, si en el textbox vamos a introducir la dirección de una persona podemos asignarle a esta propiedad el valor Dirección. MultiLine: Permite que introduzcamos varias líneas de texto en el control en lugar de sólo una. Alignment: Alineación que tendrá el texto dentro del control: izquierda, centro o derecha. Para que funcione la propiedad MultiLine debe estar con el valor true. Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede introducir ni modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario pueda modificarlos por error. MaxLength: Determina la cantidad máxima de caracteres a introducir. PasswordChar: Determina si se muestran los caracteres de marcadores de posición o los escritos por el usuario. TabIndex: Determina el orden de tabulación de un objeto dentro del formulario. Etiquetas Label Pág. 8 Seminario de Visual Basic Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario. La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el tamaño que queramos y asignarle un texto en tiempo de diseño o de ejecución esta vez sin utilizar la propiedad text puesto que no la incorpora, sino utilizando la propiedad caption. Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad de los demás controles que tengamos en la aplicación o para indicarnos acciones que podemos realizar. En el ejemplo anterior donde aparecía un textbox en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en un control label: Propiedades: Caption: Es el texto que contendrá el control. Alignment: Alineación del texto contenido en el control. BorderStyle: Si queremos que aparezca un borde alrededor del control activaremos esta propiedad. AutoSize: Para que el tamaño del control cambie automáticamente de acuerdo al tamaño de su contenido. BackStyle: Determina si el fondo del control es transparente u opaco. ToolTipText: Determina el texto que se mostrará cuando el ratón se sitúe sobre el control. Botones de Comandos CommandButton Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos. En el ejemplo anterior podemos añadir un control de este tipo para salir de la aplicación sin tener pulsar sobre la equis de la esquina superior derecha. Pero sólo con introducir un control de este tipo con el texto salir que se introduce a través de la propiedad caption no basta. Habrá que asociarle un código que nos permita salir de la aplicación en el evento adecuado. Y el evento por excelencia de este control es click. Pág. 9 Seminario de Visual Basic Así pues accederemos al código del control y la sentencia nos permitirá salir de la aplicación es End, simplemente tecleamos esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicación al pulsar sobre dicho botón. Propiedades: Caption: Aquí pondremos el letrero que queremos que aparezca en el botón: aceptar, cancelar, salir, etc... Enabled: Esta es una nueva propiedad, cuando su valor es true el botón funciona normalmente, cuando su valor es false el botón se encuentra desactivado, no responde a los eventos producidos sobre él y el texto aparece en un gris claro advirtiéndonos de su estado. Podemos utilizar esta propiedad para activar o desactivar un botón dependiendo del estado de otros controles. Por ejemplo, en un botón Aceptar, no activarlo hasta que se haya introducido una cantidad en un control textbox, ya que ese botón nos calculará el IVA de la cantidad. Visible: Determina si un objeto es visible o no usando los valores True y False. Evento: Click: Es el evento típico de este control y el que más se utiliza. Función QBColor Determina el código de color RGB(Red, Green, Blue) correspondiente a un numero de color. Usa valores entre 0 y 15. (0 Negro, 1 Azul, 2 Verde, 3 Agua Marina, 4 Rojo, 5 Fucsia, 6 Amarillo, 7 Blanco, 8 Gris, 9 Azul Claro, 10 Verde Claro, 11 Agua Marina Claro, 12 Rojo Claro, 13 Fucsia Claro, 14 Amarillo Claro, 15 Blanco Brillante) APLICACION DE EJEMPLO Para practicar con los controles que hemos visto vamos a realizar una pequeña aplicación que consistirá en poner titulo al formulario, cambiar su color y presentar una leyenda sobre una etiqueta. El formulario donde estarán todos los controles es el siguiente: Pág. 10 Seminario de Visual Basic La propiedad Caption de cada uno de los controles es la que se muestra en el formulario. Lo que habrá que hacer ahora es asociar código a cada uno de los botones que es de donde se van a realizar las operaciones: Para el botón Command1 que es el que nos mostrará el título del Formulario Para el botón Command2 que es el que nos mostrará la leyenda en el control Label1 Para el botón Command3 que es el que cambiará el color de fondo del Formulario Para el botón Command4 que es el que cerrará la Aplicación Pág. 11 Seminario de Visual Basic Variables Alcance de las variables. El alcance de una variable define qué partes del código son conscientes de su existencia. Cuando declara una variable en un procedimiento, sólo el código de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un alcance que es local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance más general, como aquella cuyo valor está disponible para todos los procedimientos del mismo módulo o incluso para todos los procedimientos de toda la aplicación. Visual Basic le permite especificar el alcance de una variable cuando la declara. Establecimiento del alcance de las variables. Dependiendo de donde y cómo se declara, una variable tiene como alcance un procedimiento (local) o un módulo. Alcance Nivel de procedimiento Nivel de módulo Privado Las variables son privadas del procedimiento en el que aparecen. Público No es aplicable. No puede declarar variables públicas dentro de un procedimiento. Las variables son privadas Las variables están del módulo en el que disponibles para todos los aparecen. módulos. Variables utilizadas en un procedimiento Las variables a nivel de procedimiento sólo se reconocen en el procedimiento en el que se han declarado. Se las conoce también como variables locales. Se declaran mediante las palabras clave Dim o Public. Por ejemplo: Dim X As Integer Definición o Declaración de variables La forma de declarar las variables es la siguiente: Dim | Public nombre_variable As tipo Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al ámbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sería accesible desde los demás procedimientos o formularios. Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación. Para crear un módulo de código en el menú principal de Visual Basic marcamos en PROYECTO/INSETAR MÓDULO y aparecerá junto a los demás formularios Pág. 12 Seminario de Visual Basic de la ventana de proyecto aunque con un icono distinto indicando que se trata de un módulo de código. Declaración de Arreglos Para declarar arreglos debemos colocar entre paréntesis el número de elementos de los que constará a continuación del nombre de la variable: Dim medidas(9) as integer De esta forma tenemos un arreglo de 10 elementos identificados del 0 al 9 Podemos obligar a que el primer elemento de un arreglo tenga el índice con valor 1. Esto lo haremos colocando la instrucción Option Base 1 en la sección declarations de nuestro formulario. También podemos indicar los límites inferior y superior del arreglo: Dim medidas(5 to 14) as integer es un arreglo de 10 elementos cuyos índices van del 5 al 14 Los arreglos multidimensionales se declaran de la siguiente forma: Dim medidas(1 to 10, 1 to 10) as integer Tipos de Datos (variables) TIPO BOOLEAN BYTE INTEGER LONG SINGLE DOUBLE CURRENCY STRING DATE COMENTARIO Sólo admite 2 valores TRUE o FALSE admite valores entre 0 y 255 admite valores entre -32768 y 32767 admite valores entre -2.147.483.648 y 2.147.483.647 admite valores decimales con precisión simple admite valores decimales de doble precisión válido para valores de tipo moneda cadenas de caracteres fechas, permite operar con ellas CONSIDERACIONES Al trabajar con Visual Basic es preferible que activemos la opción que nos obligue a declarar todas las variables que utilicemos, de esta forma nos ahorraremos errores inesperados como el de trabajar con una variable ya utilizada anteriormente produciéndose un conflicto difícil de resolver. En cambio si intentamos declarar 2 variables con el mismo nombre, en el mismo formulario o procedimiento se produce un error en tiempo de edición avisándonos de la situación. Para activar esta opción debemos ir a la opción del menú Herramientas y Opciones. Pág. 13 Seminario de Visual Basic La opción que nos interesa activar es Requerir declaración de variables. De esta forma en cada sección declarations de cada formulario aparecerá la sentencia Option Explicit Otra opción que es interesante activar, es la de Guardar los cambios en la ficha entorno, la cual te guarda una copia del código antes de ejecutarlo por si acaso luego no podemos, se bloquea la aplicación etc... no suele pasar pero nunca se sabe. De esta forma te aseguras que lo último que hayas ejecutado lo tienes guardado en el disco. La opción Comprobación automática de sintaxis normalmente viene activada por defecto, no conviene desactivarla puesto que te avisa de errores de sintaxis conforme vas escribiendo el código: Si te falta el then después del if, el do antes del while etc... Constantes Las constantes se definen con la palabra reservada Const, Ejemplo: Const B = 100 Tipos de Datos definidos por el Usuario Para definir un tipo de dato definido por el usuario que contiene uno o más elementos se usa la instrucción Type, cuyo formato es el siguiente: Private | Public Type nombre_dato Nombre_elemento As tipo Nombre_elemento As tipo End Type Para luego usar el tipo de dato definido por el usuario en la declaración de las variables, ejemplo: Dim A As nombre_dato Sintaxis sentencia If...Then...Else...End If If condición Then Sentencias [Else] Sentencias End If If condición Then Sentencia Sintaxis de Estructuras de control For...Next For contador = valor_inicial To valor_final [Step incremento] Sentencias [Exit For] Next [contador] Pág. 14 Seminario de Visual Basic La instrucción Exit For proporciona una manera alternativa de salir del For. Do While / Until...Loop Do While / Until condición Sentencias [Exit Do] Loop Do Sentencias [Exit Do] Loop While / Until condición La instrucción Exit Do proporciona una manera alternativa de salir del Do. Select Case...End Select Select Case expresión Case valor1 sentencias Case valor2 sentencias [Case Else sentencias] End Select Ejemplo: Select Case N Case 1, 2, 3 x=0 Case 4 to 50 x=1 Case 51, 52, 60 to 70 x=2 End Select Cuadros de mensajes: MsgBox Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario. Sintaxis MsgBox(prompt[, buttons][, title]) La sintaxis de la función MsgBox consta de estos argumentos con nombre: -prompt: Requerido. Expresión de cadena que representa el prompt en el cuadro de diálogo. La longitud máxima de prompt es de aproximadamente 1024 caracteres, según Pág. 15 Seminario de Visual Basic el ancho de los caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13)) o un carácter de avance de línea (Chr(10)), o una combinación de caracteres de retorno de carro-avance de línea (Chr(13) y Chr(10)) entre cada línea y la siguiente. -buttons: Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0. -title: Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite title, en la barra de título se coloca el nombre de la aplicación. Valores El argumento buttons tiene estos valores: Constante Valor Descripción vbOKOnly 0 Muestra solamente el botón Aceptar. VbOKCancel 1 Muestra los botones Aceptar y Cancelar. VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar. VbYesNoCancel 3 Muestra los botones Sí, No y Cancelar. VbYesNo 4 Muestra los botones Sí y No. VbRetryCancel 5 Muestra los botones Reintentar y Cancelar. VbCritical 16 Muestra el icono de mensaje crítico. VbQuestion 32 Muestra el icono de pregunta de advertencia. VbExclamation 48 Muestra el icono de mensaje de advertencia. VbInformation 64 Muestra el icono de mensaje de información. El primer grupo de valores (0 a 5) describe el número y el tipo de los botones mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono. Cuando se suman números para obtener el valor final del argumento buttons, se utiliza solamente un número de cada grupo. Nota Estas constantes las especifica Visual Basic for Applications. Por tanto, el nombre de las mismas puede utilizarse en cualquier lugar del código en vez de sus valores reales. Valores devueltos Constante Valor vbOK 1 vbCancel 2 vbAbort 3 vbRetry 4 vbIgnore 5 vbYes 6 vbNo 7 Descripción Aceptar Cancelar Anular Reintentar Ignorar Sí No Ejemplo: Dim X As Integer X = MsgBox(“Desea Salir?”, VBYesNo + VBQuestion, “Sistema”) If X = VBYes then End End If ‘El usuario pulso el boton Si Pág. 16 Seminario de Visual Basic Cuadros de entrada: InputBox Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto. Sintaxis InputBox(prompt[, title][, default][, xpos][, ypos]) La sintaxis de la función InputBox consta de estos argumentos con nombre: -Prompt: Requerido. Expresión de cadena que se muestra como mensaje en el cuadro de diálogo. La longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13)), un carácter de avance de línea (Chr(10)) o una combinación de los caracteres de retorno de carro-avance de línea (Chr(13) y Chr(10)) entre cada línea y la siguiente. -title: Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite title, en la barra de título se coloca el nombre de la aplicación. -default: Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de texto vacío. -xpos: Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de diálogo se centra horizontalmente. -ypos: Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el borde superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite ypos, el cuadro de diálogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde superior de la misma. Ejemplo: Dim N As String N = InputBox(“Ingrese Nombre”, “Entrada”, “Nombre”) If N = “Ana” then MsgBox “Usuario Correcto” End If Controles Estándares Botón de Opción (OptionButton) Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente. Facilita la introducción de datos por parte del usuario: De todas las opciones que se nos ofrece, en este caso los 4 colores, sólo podremos activar una. Si activamos cualquier otra opción, se desactivará automáticamente la última que teníamos activada. Pág. 17 Seminario de Visual Basic El marco que está alrededor de los 4 controles optionbutton se trata del control Frame , es opcional, aunque es conveniente colocarlo siempre que hagamos uso de las opciones. No sólo por motivos de presentación sino porque de esta manera podremos establecer grupos de controles optionbutton independientes en los que en cada grupo sólo pueda haber una opción activada a la vez. También, al mover el marco se moverán los controles incluidos en él facilitándonos las modificaciones. Para que los controles Optionbutton queden englobados dentro de un control Frame, primero tendremos que colocar el control Frame en el formulario con el tamaño adecuado y después ir colocando los controles Optionbutton dentro del Frame. Del control Frame la única propiedad que nos interesará es caption, que es el texto que aparecerá en el encabezado, en el ejemplo anterior: colores. PROPIEDADES DE OPTIONBUTTON Caption: El texto que aparecerá al lado del control: Rojo, verde, etc... Value: Es el valor que tendrá el control: True si se encuentra activado y False si no lo está. Para comprobar que opción ha activado el usuario comprobaremos el estado de esta propiedad. Alignment: Alineación del texto respecto al control: Left Justify: el control aparece a la izquierda del texto. Es el ejemplo anterior.Right Justify: el control aparece a la derecha del texto. APLICACION DE EJEMPLO Para practicar con los controles que hemos visto vamos a realizar una pequeña aplicación que consistirá en realizar con 2 números que introduzcamos, una operación que seleccionemos y mostrar el resultado. El formulario donde estarán todos los controles es el siguiente: Pág. 18 Seminario de Visual Basic La propiedad Caption de cada uno de los controles es la que se muestra en el formulario. He modificado la propiedad Name de cada control para que al utilizarlos desde el código sepamos cual es el control con el que trabajamos: Los controles TextBox tienen los nombres: Num1, Num2 y Resul. Los controles Optionbutton tienen cada uno de ellos el mismo nombre que su caption Los controles CommandButton tienen los nombres: Calcular, Limpiar y Salir. A los controles Label y al Frame no hace falta cambiarles el nombre. Lo primero que haremos es declarar las variables a usar en la General_Declaraciones Dim A, B, R As Double Lo que habrá que hacer ahora es asociar código a cada uno de los botones que es de donde se van a realizar las operaciones: Para el botón Calcular que es el que nos mostrará el resultado según la operación seleccionada, se ha utilizado la instrucción If Then Else. Private Sub Calcular_Click() A = Val(Num1.Text) B = Val(Num2.Text) R=0 If Suma.Value = True then R=A+B End If If Resta.Value = True then R=A-B End If If Producto.Value = True then R=A*B End If If Division.Value = True then R=A/B End If If Potencia.Value = True then R=A^B End If Pág. 19 Seminario de Visual Basic Resul.Text = R End Sub El botón Limpiar Datos nos va a servir para borrar de una forma rápida los datos introducidos por el usuario y el resultado preparando los controles para introducir nuevos datos. El código que tendremos que introducir es muy simple: Private Sub Limpiar_Click() Num1.Text = “” Num2.Text = Clear Resul.Text = “” Suma.Value = False Resta.Value = False Producto.Value = False Division.Value = False Potencia.Value = False End Sub El botón Salir únicamente contendrá la sentencia End. Casillas de Verificación (Check Box) La casilla de verificación se diferencia de los botones de opción en que, independientemente del número de casillas de verificación que se incluyan en un formulario, estas pueden activarse y desactivarse por separado. Para determinar si una casilla está activada o desactivada se utiliza la propiedad Value (1 Activado, Cero Desactivado) APLICACIÓN DE EJEMPLO Diseñar una aplicación de venta de ordenador con sus agregados. Pág. 20 Seminario de Visual Basic Codificación General Declaraciones Option Explicit Const PVP = 300000 Const supMemo = 15000 Const supDVD = 20000 Const supKit = 30000 Const supMonitor = 50000 Private Sub Check1_Click() If Check1.Value = 1 Then lbSuplemento.Caption = supMemo lbTotal.Caption = Val(lbTotal.Caption) + supMemo Else lbSuplemento.Caption = supMemo lbTotal.Caption = Val(lbTotal.Caption) - supMemo End If End Sub Private Sub Check2_Click() If Check2.Value = 1 Then lbSuplemento.Caption = supDVD lbTotal.Caption = Val(lbTotal.Caption) + supDVD Else lbSuplemento.Caption = supDVD lbTotal.Caption = Val(lbTotal.Caption) - supDVD End If End Sub Private Sub Check3_Click() If Check3.Value = 1 Then lbSuplemento.Caption = supKit lbTotal.Caption = Val(lbTotal.Caption) + supKit Else lbSuplemento.Caption = supKit lbTotal.Caption = Val(lbTotal.Caption) - supKit End If End Sub Private Sub Check4_Click() If Check4.Value = 1 Then lbSuplemento.Caption = supMonitor lbTotal.Caption = Val(lbTotal.Caption) + supMonitor Else lbSuplemento.Caption = supMonitor lbTotal.Caption = Val(lbTotal.Caption) - supMonitor End If End Sub Private Sub Command1_Click() End Pág. 21 Seminario de Visual Basic End Sub Cuadro de Lista (List Box) Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox. Si no se selecciona ningún elemento, el valor de la propiedad ListIndex será -1. El primer elemento de la lista es ListIndex 0 y el valor de la propiedad ListCount siempre es uno más que el mayor valor de ListIndex. Para agregar o eliminar elementos de un control ListBox, use el método AddItem o RemoveItem. Establezca las propiedades List, ListCount y ListIndex para permitir que un usuario tenga acceso a elementos del ListBox. También puede agregar elementos a la lista mediante la propiedad List en tiempo de diseño. Lista Combo (Combo Box) Un control ComboBox combina las características de un control TextBox y un control ListBox; los usuarios pueden introducir información en la parte del cuadro de texto o seleccionar un elemento en la parte de cuadro de lista del control. Para agregar o eliminar elementos en un control ComboBox, use el método AddItem o RemoveItem. Establezca las propiedades List, ListCount y ListIndex para permitir a un usuario tener acceso a los elementos de un control ComboBox. Como alternativa, puede agregar elementos a la lista mediante la propiedad List en tiempo de diseño. APLICACION DE EJEMPLO Diseñar una aplicación que permita realizar una “Compra Interactiva” de una PC, donde se pueda seleccionar el Tipo de Computador, sus Periféricos y los Equipos de Oficina. Cuando se cancela en Efectivo se realiza un descuento del 2% y si es a Crédito se realiza un incremento del 5% a la venta. El formulario es el de la pagina siguiente: General Declaraciones Option Explicit Dim Total, Oficina As Single Const Pc = 800 Const Mac = 700 Const Porta = 1000 Const DiscoDuro = 30 Const Impresora = 300 Const Antena = 60 Const Contesta = 150 Const Calcu = 20 Const Foto = 250 Private Sub Sumar() Total = Val(lbCompu) + Val(lbPeri) + Oficina lbSubtotal = Total End Sub Pág. 22 Seminario de Visual Basic Private Sub Form_Load() ltPeri.AddItem "Disco Duro" ltPeri.AddItem "Impresora" ltPeri.AddItem "Antena" ltPeri.AddItem "Ninguno" cbPago.AddItem "Efectivo" cbPago.AddItem "Credito" Total = 0 Oficina = 0 End Sub Private Sub opPc_Click() Total = Pc lbCompu = Total Sumar End Sub Private Sub opMac_Click() Total = Mac lbCompu = Total Sumar End Sub Private Sub opPorta_Click() Total = Porta lbCompu = Total Sumar End Sub Private Sub ckContesta_Click() If ckContesta.Value = 1 Then Oficina = Oficina + Contesta Else Oficina = Oficina - Contesta End If lbOficina = Contesta Sumar End Sub Private Sub ckCalcu_Click() If ckCalcu.Value = 1 Then Oficina = Oficina + Calcu Else Oficina = Oficina - Calcu End If lbOficina = Calcu Sumar End Sub Private Sub ckFoto_Click() If ckFoto.Value = 1 Then Oficina = Oficina + Foto Else Oficina = Oficina - Foto End If lbOficina = Foto Sumar End Sub Pág. 23 Seminario de Visual Basic Private Sub ltPeri_Click() Select Case ltPeri.ListIndex Case 0 lbPeri = DiscoDuro Case 1 lbPeri = Impresora Case 2 lbPeri = Antena Case 3 lbPeri = "" End Select Sumar End Sub Private Sub cbPago_Click() Select Case cbPago.ListIndex Case 0: Total = Total - 0.02 * Total Label5 = -0.02 * Total Case 1: Total = Total + 0.05 * Total Label5 = "+" & Str(0.05 * Total) End Select lbTotal = Total End Sub Image (imagen) Private Sub cmOtra_Click() opPc.Value = False opMac.Value = False opPorta.Value = False ckContesta.Value = 0 ckCalcu.Value = 0 ckFoto.Value = 0 ltPeri.ListIndex = -1 cbPago.ListIndex = -1 Label5 = "" lbCompu = "" lbPeri = "" lbOficina = "" lbSubtotal = "" lbTotal = "" End Sub Private Sub cmSalir_Click() End End Sub PictureBox Utilice el control Image para mostrar un gráfico. Un control Image puede mostrar un gráfico desde un mapa de bits, un icono o un metarchivo, así como un metarchivo mejorado, un archivo JPEG o archivos GIF. El control Image utiliza menos recursos del sistema y actualiza con más rapidez que un control PictureBox, pero sólo admite un subconjunto de las propiedades, los eventos y los métodos de PictureBox. Use la propiedad Picture para especificar el gráfico a mostrar y la propiedad Stretch para determinar si el tamaño del gráfico se ajusta al tamaño del control o viceversa. Aunque puede colocar un control Image dentro de un contenedor, un control Image no puede actuar como contenedor. Procedimientos y Funciones Funciones para manejo de texto Len: Devuelve la longitud de una cadena Lcase: Convierte todos los caracteres de una cadena a minúscula Ucase: Convierte todos los caracteres de una cadena a mayúscula Ltrim, Rtrim, Trim: Elimina los espacios en blanco de la izquierda, derecha y ambos lados Mid: Extrae una copia de cada uno de los caracteres de una cadena C = MID(“VISUAL”,2,3) Pág. 24 Seminario de Visual Basic Funciones para manejo de fechas Date: Devuelve la fecha del sistema Time: Devuelve la hora del sistema Now: Devuelve la fecha y hora del sistema DateAdd: Determina un valor de fecha a la que se le ha agregado un intervalo de tiempo especificado A = DATEADD(INTERVALO, NUMERO, #FECHA#) Intervalo yyyy q m d ww h n s año quimestre mes día semana hora minuto segundo Ejemplo: nf = DateAdd(“m”, 2, #4/30/2003#) DateDiff: Determina el número de intervalos de tiempo entre dos fechas A = DATEDIFF(INTERVALO, #FECHA1#, #FECHA2#) Ejemplo: min = DateDiff(“n”, #9:20#, #20:30#) Funciones de conversión de tipo de datos Str: Devuelve la representación de cadena de un número Val: Devuelve los números contenidos en una cadena como un valor numérico CBool(expresión), CByte(expresión), CCur(expresión), CDate(expresión) CDbl(expresión), CDec(expresión), CInt(expresión), CLng(expresión) CSng(expresión), CVar(expresión), CStr(expresión) Función Format Da formatos a valores usando formatos definidos por el usuario y formatos con nombre Label1 = Format(Time, “long time”) Label1 = Format(Time, “short time”) Label1 = Format(Date, “long date“) Label1 = Format(Date, “short date“) Label1 = Format(5459.4, “##,##0.00“) Label1 = Format(2300, "$###,##0.00") Label1 = Format(0.05, "0.00%") ! Label1 = Format(“HOLA”, "<") ! Label1 = Format(“hola”, ">") ! ! 11:54:28 pm ! 23:54 ! Martes, 18 de Febrero de 2003 ! 18/02/03 ! 5,459.40 ! $2,300.00 5.00% “hola” “HOLA” Pág. 25 Seminario de Visual Basic Procedimientos. Un procedimiento Sub es un bloque de código que se ejecuta como respuesta a un evento. Al dividir el código de un módulo en procedimientos Sub, es más sencillo encontrar o modificar el código de la aplicación. La sintaxis de un procedimiento Sub es la siguiente: [Private|Public] Sub nombre_procedimiento ([ByRef] ByVal argumentos [tipo_dato]) instrucciones End Sub Cada vez que se llama al procedimiento se ejecutan las instrucciones que hay entre Sub y End Sub. Se pueden colocar los procedimientos Sub en módulos estándar y módulos de formulario. De forma predeterminada, los procedimientos Public Sub son públicos para todos los módulos, lo que significa que se les puede llamar desde cualquier parte de la aplicación. Los argumentos de un procedimiento son como las declaraciones de variables; se declaran valores que se pasan desde el procedimiento que hace la llamada. Llamadas a Procedimientos La llamada a un procedimiento Sub es una instrucción única. Además, un procedimiento Sub no devuelve un valor en su nombre como hace una función. Sin embargo, al igual que Function, un procedimiento Sub puede modificar los valores de las variables que se le pasan. Hay dos formas de llamar a un procedimiento Sub: ' Ambas instrucciones llaman a un Sub denominado MiProc. Call MiProc (PrimerArgumento, SegundoArgumento) MiProc PrimerArgumento, SegundoArgumento Observe que cuando utiliza la sintaxis Call, debe poner los argumentos entre paréntesis. Si omite la palabra clave Call, deberá también omitir los paréntesis alrededor de los argumentos. Ejemplo: Option Explicit Dim x, y, z As Integer Private Sub sumar(ByVal a, ByVal b, ByRef c) c=a+b End Sub Private Sub Form_Load() x=2 y=3 z=0 sumar x, y, z End Sub Nota: ByRef es el modo predeterminado Pág. 26 Seminario de Visual Basic Funciones. Al igual que un procedimiento Sub, un procedimiento Function es un procedimiento diferente que puede tomar argumentos, realizar una serie de instrucciones, cambiar el valor de los argumentos y devolver un valor en su nombre. La sintaxis de un procedimiento Function es la siguiente: [Private|Public] Function nombre_procedimiento (argumentos) [As tipo] instrucciones End Function Ejemplo: Option Explicit Dim x, y, z As Integer Private Function Producto(ByVal a, ByVal b) As Integer Producto = a * b End Function Private Sub Form_Load() x=2 y=3 z = Producto(x, y) End Sub Validaciones. Las validaciones de ingreso de datos en las cajas de texto se las realiza usando la función IsNumeric o usando el evento KeyPress de las cajas de texto. IsNumeric: Esta función sirve para determinar si una expresión puede convertirse en número. Devuelve True ó False. SetFocus: Mueve el enfoque al control o formulario especificado Ejemplo: Private Sub Command1_Click() If Not IsNumeric(Text1) Then MsgBox "Ingrese un Numero", 16 Text1 = "" Text1.SetFocus End If End Sub KeyPress: Este evento se activa cada vez que el usuario presiona una tecla. El parámetro KeyAscii devuelve el número interno de la tecla pulsada. Cambiar KeyAscii a 0 cancela la pulsación de la tecla, de forma que el objeto no recibe ningún carácter. “0”...”9” “A”...”Z” “a”...”z” “.” (48 - 57) (65 - 90) (97 - 122) (46) Pág. 27 Seminario de Visual Basic Exit Sub: Sale inmediatamente del procedimiento Sub en el que aparece Ejemplo: Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57, 8 Exit Sub Case 13 Text2.SetFocus Exit Sub Case Else KeyAscii = 0 End Select End Sub Bases de Datos Una Base de Datos es un conjunto de datos relacionados por un tema o propósito específico. Una Base de Datos contiene Tablas e Indices Objeto DataBase. Un objeto DataBase es una representación lógica de una Base de Datos física Objeto Recordset. Un objeto Recordset es una representación de una Tabla que puede usarse para añadir, cambiar o borrar registros en esa Tabla. Método OpenDataBase: Abre una Base de Datos específica. Método OpenRecordset: Abre una Tabla específica. Método AddNew: Crea un nuevo registro Método UpDate: Guarda el contenido del búfer de copia en un objeto Recordset Método Delete: Elimina el registro activo de un objeto Recordset. Propiedad Index: Determina el nombre del objeto Index dentro de un Recordset. Método Seek: Busca el registro de un objeto indexado que cumpla el criterio específico para el índice activo y lo convierte en el registro activo. Propiedad NoMatch: Determina si un registro particular se encontró utilizando el método Seek o uno de los métodos Find Método Close: Cierra una Base de Datos o un objeto Recordset. Métodos MoveFirst, MoveLast, MoveNext, MovePrevious: Mueve el puntero de registro al primero, último, siguiente o anterior registro y lo convierte en el registro activo Método Move: Mueve la posición del registro activo. Rs.Move 3, 2. Rs.Move -2 Pág. 28 Seminario de Visual Basic Propiedad BOF: Devuelve True si la posición del registro activo es anterior al primer registro caso contrario devuelve False Propiedad EOF: Devuelve True si la posición del registro activo es posterior al último registro caso contrario devuelve False App.Path: Determina la ruta de acceso actual de la Aplicación. Data Control Proporciona acceso a datos almacenados en bases de datos. El control Data le permite desplazarse de un registro a otro, así como presentar y manipular datos de los registros en controles enlazados. Sin un control Data los controles enlazados a datos (vinculados) de un formulario no pueden tener acceso a los datos automáticamente. Propiedad DataBaseName: Determina el nombre y la ubicación del origen de datos en un Control Data Data1.DataBaseName = app.path & “\Personal.Mdb” Propiedad RecordSource: Determina la Tabla para el control Data Data1.RecordSource = “Maestro” Método Refresh: Fuerza a volver a dibujar un formulario o un control completo Data1.Refresh Evento Reposition: Se produce cuando un registro se convierte en el registro actual Control MsFlexGrid. Malla Flexible de Microsoft El control MsFlexGrid muestra una serie de filas y columnas. La intersección de una fila y una columna es una celda. Puede leer y establecer el contenido de cada celda en código. Para disponer de este control en la Aplicación es necesario agregarlo mediante PROYECTO/COMPONENTES y luego en la pestaña CONTROLES marcar el control Microsoft FlexGrid Control. Propiedades Cols, Rows: Determina el número total de columnas y filas de un control MsFlexGrid. MsFlexGrid1.Cols = 4 Propíedades FixedCols, FixedRows: Determina el número total de columnas y filas fijas de un control MsFlexGrid. MsFlexGrid1.FixedCols = 0 Propiedad ScrollBars: Determina si el control MsFlexGrid desplazamiento horizontal (1), vertical (2), ambas (3) o ninguna (0) MsFlexGrid1.ScrollBars = 2 tiene barras de Pág. 29 Seminario de Visual Basic Propiedades Col, Row: Determina la columna y fila activa de un control MsFlexGrid. Activando fila y columna se activa una celda específica. MsFlexGrid1.Row = 2 MsFlexGrid1.Col = 3 MsFlexGrid1.Text = “HOLA” Propiedad Text: Determina el texto contenido en una celda. Propiedad ColWidth: Determina el ancho en twips de una columna específica. MsFlexGrid1.ColWidth(0) = 500 Propiedad DataSource: Determina el control Data a través del cual esta enlazado a la Base de Datos. No está disponible en tiempo de ejecución Métodos para Formularios. Show: Muestra el formulario en la pantalla. Visual Basic primero comprueba si el formulario está cargado en la memoria, si no lo está, lo carga. Form1.Show. Load: Carga el formulario en la memoria pero no lo presenta. Load Form2 Hide: Retira el formulario de la pantalla pero no lo descarga de la memoria. Form1.Hide Unload: Borra el formulario de la memoria. Unload Form2 Pág. 30