You are on page 1of 59

Especialidad

:

COMPUTACIÓN E INFORMÁTICA
CICLO I

ASIGNATURA:

Programación Visual I
Lima - Perú

2
SILABO ACADÉMICO I. Identificadores del programa Carrera: Computación e Informática – PROGRAMACIÓN VISUAL I (VISUAL BASIC I) Ciclo: II Código: Tipo: Curso Sesión: 5 hrs. Sesiones x Horas: 100 pedagógicas Semana: 2 Totales : 100 Teoría : 20 Práctica : 80 II. Ubicación del programa Antecedentes Algoritmos Requisitos: Algoritmos III. Contenidos Contenido I. Fundamentos de programación Orientada a objetos 1. Algoritmo vs programas 2. Algoritmos y Pseudo código 3. Conceptos fundamentales 3.1. identificadores 3.2 Tipos de datos 3.3 Variables 3.4 Constantes 4. Ingreso a Visual Basic. 5. Ejercicios II. Instrucciones básicas de programación. 1. Instrucciones de Asignación 2. Instrucciones de entrada 3. Instrucciones de salida 4. Operadores aritméticos 5. Operadores relacionales 6. Operadores lógicos 7. Operadores de concatenación 8. Ejercicios III. Introducción a la programación visual Basic 1. Conceptos básicos: Objetivos y Propiedades. Nombres de Objetos. Eventos, Métodos. 2. Proyectos y Archivos. 3. El Entorno de Programación Visual Basic. 4. Formularios y Controles Básicos (Label, Textbox, Commanbutton) 5. Propiedades, Eventos y Métodos Principales de los Controles Básicos 6. Funciones de Entrada y Salida (Inputbox, Msgbox) Actividad Usar el pseudo código para representar la solución de un problema. Reconocer los conceptos fundamentales de programación. Aprender a usar las variables y constantes. Conocer la forma de ingresar a Visual Basic. Emplear las instrucciones básicas de programación. Aprender a manejar las instrucciones de entrada y salida Entender y manejar los operadores aritméticos, relacionales, lógicos y de concatenación. Reconocer y entender el entorno de programación de Visual Basic. Reconocer y usar los controles Básicos de Visual Basic para la Creación de interfaces graficas de usuario. Aplicar los conceptos básicos de programación para la construcción de programas. Semana

Consecuentes Programación Visual II (Visual Basic II), Taller de Programación I

1

2

3

Carrera: Computación e Informática

Curso: Visual Basic

3
7. Aplicaciones paso paso

IV. 1. 2. 3. 4. 5. 6. 7. 8. V.

Características del Lenguaje Visual Basic Tipos de Datos Nombre de Variables Ámbito de las Variables Operadores Formularios y Múltiples Formularios Métodos : Show y Hide Comentarios Aplicaciones paso a paso Primera práctica calificada

Aplicar los conocimientos sobre el manejo de la información y de los tipos de datos. Aprender a usar las variables y las constantes

4

VI. 1. 2. 3. 4. 5. 6. VII. 1. 2. 3. 4. VIII.

Estructuras de Control Condicional Uso del If…….Then Uso del Select Case Uso de los controles OptionButton, CheckBox y Frame Los operadores logicos AND, OR,NOT Ejemplos Ejercicios Funciones Incorporadas Funciones de Fecha-Ejemplos Funciones de Cadena-Ejemplos Funciones de Conversación de tipo-Ejemplos Otras funciones Estructuras de Bucles o Repetitivas con Condición / Contador While – Wend Do Loop Formas While y Until For ….. Next For Each … Next

Medir el nivel alcanzado por el alumno en las primeras cuatro semanas de clase Aprender y evaluar los procesos Condicionales Asociar sentencias condicionales Anidadas Analizar y evaluar los procesos Selectivos Realizar aplicaciones que permitan hacer uso de procesos de alternativas Reconocer y usar las funciones del Visual Basic Aplicar las funciones de Visual Basic en el proyecto

5

6

7

1. 2. 3. 4. 5. IX.

Aprender y ejecutar los procesos, repetir mientras una condición sea Verdadera/falsa. Comprender cuales son las ventajas de una estructura con respecto a la otra. Aplicar y ejecutar los procesos repetitivos - for Aplicar los controles de lista y/o combo en los procesos repetitivos Emplear el poder multiplicado de anidar procesos repetitivos

8

Manejo de lista 1. Uso de loa controles listBox y ComboBox 2. Métodos AddtIem, Removeltem y Clear 3. La propiedad Multiselect 4. Mostrando múltiples columnas de ingresos 5. Aplicaciones de Bucles

9

Carrera: Computación e Informática

Curso: Visual Basic

4
X. EXAMEN PARCIAL Medir el nivel de conocimiento alcanzado por los alumnos al finalizar la primera unidad formativa Reconocer y usar controles Avanzados de Visual Basic como los controles de archivos, temporizador y otros controles 10

XI. Empleo de Controles Avanzados y Personalizados 1. Controles de manejo de archivos (DriveListBox, DirListBox, FileListBox) 2. Control temporizador (Timer) 3. Controles Sstab, ProgessBar, Shape 4. Control CommonDialog XII. Formularios Múltiples 1. Apertura de controles de forma modal 2. La interfaz de Documentos Múltiples (MOI) 3. Propiedades de los formularios MDI 4. Referencias a los formularios ActiveFrom y Me} 5. Colocación de Formularios Hijo XIII. Diseño de Menús 1. Editor de Menús 2. Añadir códigos a los menús 3. Menús Contextuales (Menú Popup) 4. Controles : ToolBar, ImageList XIV. Funciones y Procedimientos (Módulos) 1. definición y creación 2. Uso de parámetros 3. Uso de módulos 4. Uso de los Procedimientos y Funciones : Privados Calificada XV. SEGUNDA PRACTICA CALIFICADA

11

Aplicar t manejar los diferentes tipos de ventanas Manejar y usar varios formularios 12

Reconocer y Usar los menús en una aplicación 13

Crear y usar las funciones de usuario en una aplicación 14

XVI. 1. 2. XVII. 1. 2. 3. 4. 5.

XVIII. 1.

Arrays de Variables Definición. Declaración de Arrays Arrays : Estáticos y Dinámicos Arrays de Controles Definición de un arreglo de controles Uso del For Each … Next Uso del Exit For Manejo de propiedades y eventos en un arreglo de controles Uso de los comandos Load y Unload para la creación de arreglos de controles dinámicos Controles Activex Creación de Interfaces mas complejas con controles Activex o Componentes

Medir el nivel alcanzado por los alumnos durante las sesiones 11 a 14 Usar arreglos de datos

15

16 Usar arreglos de controles con datos

17

Crear y usar Controles Activex en aplicaciones

18

Carrera: Computación e Informática

Curso: Visual Basic

5
2. Cambiando apariencia de Control Activex 3. Aplicación XIX. EXAMEN FINAL

XX. EXAMEN SUSTITUTORIO

Medir el nivel de conocimiento alcanzado por el alumno durante toda la segunda unidad formativa Medir el nivel de conocimiento alcanzado por el alumno durante todo el curso.

19

20

IV. Criterios de evaluación y acreditación Institucionales de acreditación: Matriculado Mensualidad al día Asistencia mínima de 70% de las clases programadas. Entrega oportuna de trabajos. Certificación con calificación mínima de 13.00 (Trece) y Constancia con calificación de 11.00 (Once) Evaluación del módulo: Practicas Calificadas (PC) Exámenes: parcial (EP), final (EF) Trabajos encargados (TE)

P.U. = (PC+Part)*0.5 + EP 2 S.U. = (PC+Part)*0.5+Trab+EF 3

Carrera: Computación e Informática

Curso: Visual Basic

6 IT .Expert Secretariado Ejecutivo de Sistemas Contabilidad Computarizada Computación e Informática Diseño Gráfico COMPUTACIÓN E INFORMÁTICA Ensamblaje mantenimiento y Reparación de PC. Fast Office Asistente de Gerencia PROGRAMACION VISUAL I Carrera: Computación e Informática Secretariado Ejecutivo Computarizado Curso: Visual Basic .

desde siempre. . en otros bloques llamados Funciones. Es lo que se se llama Análisis de la aplicación. y otras partes asociadas a los objetos que forman la interface gráfica. Es la primera fase que debe tener siempre un programa y es tambien la más olvidada entre los programadores noveles. En una aplicación Visual Basic. Una aplicación no se inicia con el teclado. Creación de un interface de usuario. Desde su salida al mercado. Teniendo en cuenta el año de su nacimiento. Visual-Basic se ha convertido en la primera herramienta de desarrollo de aplicaciones en entorno Windows. sino que responden a un evento producido durante la ejecución del programa. y todas las características necesarias a los controles que hayamos colocado en ese formulario. cada versión supera y mejora la anterior. este lenguaje cubría casi todas las necesidades para la ejecución de programas. Un programa puede hacerse solamente con la programación de los distintos procedimientos que acompañan a cada objeto. posición. una tecla pulsada. sino sobre un papel. Estos Procedimientos no responden a un evento acaecido a un control o formulario. Características Generales de Visual-Basic Visual-Basic es una herramienta de diseño de aplicaciones para Windows. doble click.Generación del código del programa. buscando una forma sencilla de realizar programas. Los autores fueron los científicos John G. Generación del código asociado a los eventos que ocurran a estos controles. etc. VARIABLES. Este código puede introducirse en unos bloques llamados Módulos. Es el studio de las necesidades que han dado origen a la creación de ese programa. Dados los buenos resultados a nivel profesional de este producto. Estas propiedades determinarán la forma estática de los controles. al contrario de otros sistemas de programación. y el apoyo prestado por el fabricante para la formación de programadores. Será necesario partir de una o varias ventanas . tanto para salida de datos como para entrada. A la respuesta a estos eventos (click.Formularios .a las que le iremos añadiendo los controles necesarios. en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. La creación de un programa bajo Visual Basic lleva los siguientes pasos: Análisis . Kemeny (Budapest. es decir. como son los controles y para qué sirven.) le llamamos Procedimiento. no exigió la definición previa de Carrera: Computación e Informática Curso: Visual Basic .0 de este producto. Sin embargo. el programa está formado por una parte de código puro. DEFINICION Y ENTORNO Basic. Este interface será la principal vía de comunicación hombre máquina. Actualmente se está comercializando la versión 6. 1926 – USA 1992) y Thomas E. Definición de las propiedades de los controles – Se dará la forma.7 CAPITULO I Introducción a la Programación Visual Basic El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code) nació en el año 1964 como una herramienta destinado a principiantes. Kurtz (Illinois 1928) Su trabajo original se llamó True BASIC. y otros llamados Procedimientos. y deberá generarse de acuerdo a las necesidades del programa. VB ofrece la posibilidad de establecer un código de programa separado de estos eventos.

Una variable. en un programa consistente en la toma de datos de los alumnos de un centro escolar. Cuando no declaramos el tipo de variables. Por lo tanto es normal encontrar. si Basic encuentra estas instrucciones Salario=50000000 Nombre ="Pedro" Teléfono = "1234567" entiende que Salario. el programa dará una comunicación de error. Es posible. que Salario es un número (No hemos metido su valor entre comillas).8 una variable. como Vd. Estas variables pueden tener nombre tales como: Nombre Apellido1 Teléfono Salario La variable Nombre tomará valores distintos según vayamos introduciendo los datos de los distintos alumnos. que un programa comienza de la siguiente forma: Declare Declare Declare Declare Declare Declare Nombre As String Apellido1 As String Apellido2 As String Dirección As String Teléfono As String Salario As Número Le dice que Nombre es una sucesión de letras Le dice que Teléfono es una sucesión de letras Le dice que Salario es un número Por ejemplo. Otras herramientas exigen que se haga así. Nombre y Teléfono son variables. esta variable Nombre valga: José Pedro María Luis Decíamos que Basic no exige la definición previa de las variables. Basic ha pensado en ese problema. Ese dato podrá cambiar. Carrera: Computación e Informática Curso: Visual Basic . seguro que conoce. De no haberla declarado antes de usarla. Piense por ejemplo. en otros sistemas de programación. Existirán varias variables para poder introducir los datos de los alumnos. pero a costa de ocupar mucho mas espacio en la memoria que si la hubiese declarado con el tipo correcto para el dato que va a meter en ella. En ese tipo podrá meter cualquier tipo de variable. y se puede solucionar con esta que será la primera instrucción BASIC que vamos a estudiar: OPTION EXPLICIT Obliga a declarar previamente las variables que se vayan a usar. que a lo largo de la ejecución del programa. y que Nombre y Teléfono son sucesiones de caracteres alfanuméricos (su valor está entre comillas) El peligro de no declarar las variables no termina en esa posibilidad de error. es un nombre que en el programa le asignamos a un dato. Visual Basic supone que la variable es de un tipo que soporta cualquier tipo de datos : una variable tipo Variant.

Los caracteres que definen cada tipo de variable son: Carrera: Computación e Informática Curso: Visual Basic . Esta técnica.9 Esta declaración debe ponerla al comienzo de la sección de declaraciones de cada formulario y módulo que contenga su aplicación. pues existe un serio peligro de error. será VB quien ponga la sentencia Option Explicit en el lugar correcto. Haga click en Herramientas | Opciones de la barra de menú del VB y le aparecerá este cuadro.1) TIPOS DE VARIABLES Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria. está en desuso en VB. eso es potestativo del programador y de sus costumbres. donde debe marcar las casilla Requerir declaración de variables.) Tipo de datos Integer (Entero) Long (Entero Largo) Single (Simple) Double(Doble) Currency (Moneda) String (Cadena de caracteres) Byte Boolean (Boleano) Date(Fecha) Object(Objecto) Variant Tamaño 2 bytes 4 bytes 4 bytes 8 bytes 8 bytes 1 byte por carácter 1 byte 2 bytes 8 bytes 4 bytes 16 bytes + 1 byte por cada carácter Caracter % & ! # @ $ Puede declarar el tipo de la variable mediante un carácter después del nombre de la variable. Pero no se preocupe de ello puesto que VB lo ha hecho por Vd. 1. Basta que lo programe en las opciones del VB. A partir de ahora. obligatoria en Quick-Basic. (Fig. De cualquier forma. No es recomendable definir el tipo de esta forma.

En este segundo caso. VB aceptará cualquier número de caracteres. esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre. debe introducir el código oportuno para producir el aviso. Puede emplearse en un Procedimiento. procedimiento o módulo. Formulario o Módulo. debe declarar su número. el ámbito de la variable será el explicado anteriormente para una variable declarada como Privada. no es necesario declarar su longitud. pero NO fuera del Formulario o Módulo donde se declaró. Puede emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma: nombrevariableAs Integer (o el tipo que sea) Dim Declarando una variable con la sentencia DIM. Por ejemplo : Dim Var1 as String Dim Var2 as String * 15 Var1 puede tener cualquier número de caracteres Var2 puede tener un máximo de 15 caracteres. procedimiento ó módulo donde se declaró. Carrera: Computación e Informática Curso: Visual Basic . cuando declaramos una variable como String (Cadena de caracteres). si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres. Sentencia PUBLIC Es la forma de declarar una variable como Pública. esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones). Visual basic no presenta ningún aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. La sentencia Private no puede usarse en un procedimiento o función. en un formulario. Es decir. La sintaxis es de la siguiente forma: nombrevariable As Tipovariable Public Declarando una variable de esta forma en la sección de declaraciones de un Módulo. Puede emplearse solamente en la sección de declaraciones de un Formulario o Módulo. Var2 tomará solamente los 15 primeros. esa variable no sale del formulario. Si desea que el usuario conozca esa circunstancia. procedimiento o módulo. Tipos de declaración de variables. esa variable tomará el valor cero (si es numérica) o nulo (si es string). Sentencia PRIVATE Es la forma de declarar una variable como Privada. Función. Cada vez que entremos al formulario. Sentencia DIM Es la forma mas común de declarar una variable como Privada.10 % # Integer Double @ & Long $ ! String Single Currency Ejemplos Prácticos de declaración de variables En Visual Basic. La sintaxis es de la siguiente forma: nombrevariableAs Tipovariable Private Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo. Función. Si desea evitar que se puedan introducir más de un determinado número de caracteres.

habrá que citarla por el nombre del Formulario. Si no estamos en ese Formulario. seguido del nombre de la variable.11 Si se declara de esta forma en la sección de declaraciones de un Formulario. la variable estará puesta a cero. esa variable puede usarse en toda el programa. Afortunadamente. Para nombrarla. separados por un punto : NombreFormulario. aunque no la podremos utilizar fuera de ese procedimiento o función. No la use. una variable declarada en un procedimiento pierde su valor al salir de él. si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si declarásemos una variable en un procedimiento o función. como estática. Sentencia STATIC Como se dijo anteriormente. esto último tiene solución. Esta declaración como estática se realiza mediante la instrucción Static Static nombrevariable As tipovariable En un Formulario (En su sección de declaraciones) Como Privada (Solamente se puede usar en ese Formulario) Dim Variable As Tipovariable Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable En un Módulo Como Privada (Solamente puede usarse en ese Módulo) Dim Variable As Tipovariable Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable Global Variable As Tipovariable ó ó ó Carrera: Computación e Informática Curso: Visual Basic . Esta sentencia se mantiene por compatibilidad con versiones anteriores de VB. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento.Nombrevariable En un Módulo puede usarse también la sentencia Global en vez de Public : Sentencia GLOBAL La sintaxis es: Global Declara una variable que es válida en todo el programa. cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. esa variable. nombrevariableAs tipovariable La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo.

Operadores en Visual Basic Operadores Matemáticos Visual Basic puede operar con números tal como lo haría cualquier persona. Los operadores que utiliza para las operaciones básicas son: + * / \ Mod ^ Suma Resta Multiplicación División División sin decimales Resto de una división Eleva a un exponente Ejemplos Resultado Resultado Resultado Resultado Resultado Resultado Resultado = = = = = = = 12 15 15 15 15 15 12 + 15 . Variable2 As String. Variable4 As String Esta declaración está MAL hecha.25 1 = 144 resultado = ( ( 4 * 3 ) / 2 ) ^ 2 Resultado = 36 Estos operadores se denominan Operadores aritméticos. y solamente Variable4 la supone como tipo String La forma correcta de hacerlo. Variable3 As String. Carrera: Computación e Informática Curso: Visual Basic . es la siguiente : Dim Variable1 As String.12 Error típico de un programador novel de Visual Basic Creo que esta costumbre viene del lenguaje C. Los operadores que realizan comparaciones se denominan Operadores relacionales.12 * 12 / 12 \ 12 Mod 12----> ^2 ----> Resultado ----> Resultado ----> Resultado ----> Resultado ----> Resultado resultado = 3 ----> Resultado ----> = = = = = 27 3 180 1. Variable4 As String. Conoce las 4 reglas. Variable2 y Variable3 son del tipo Variant. y puede utilizar paréntesis de la misma forma que los escribimos sobre el papel. si queremos declarar esas variables un una sola línea. Variable3. Existen otras operaciones que se pueden realizar con números: comparaciones. Se trata de declarar varias variables juntas en una misma línea : Dim Variable1. Pero no vale en VB. El resultado de las operaciones realizadas con estos operadores solamente admiten dos resultados: True (Cierto) o False (Falso) Estos operadores son: = <> < <= > >= Igual que No igual que Menor que Menor o igual que Mayor que Igual o mayor que Estos operadores se suelen utilizar en estructuras de programa donde se tome una decisión. Variable2. Visual Basic interpretará que Variable1.

Programas – Microsoft Visual Studio 6 – Microsoft Visual Basic 6 OJO: El ejecutable que abre el Visual Basic 6 se llama VB6. Entorno de Trabajo de Visual Basic Visual Basic es un entorno de desarrollo diseñado para la creación de aplicaciones para los entornos de trabajo Microsoft Windows 95. y otras partes asociadas a los objetos que forman la interface gráfica.EXE La primera pantalla que nos saldra sera Carrera: Computación e Informática Curso: Visual Basic . formada por una sucesión lineal de código estructurado. debemos inventar una palabra que la defina : PROGRAMACION VISUAL. el programa está formado por una parte de código puro. 98. Este lenguaje auna las posibilidades de un lenguaje de alto nivel con las herramientas de diseño gráfico.13 El operador = puede usarse también para comparar cadenas o fechas. lo cual nos dá acceso a todas las funciones de los sistemas anteriormente citados. En una aplicación Visual Basic. Operadores Lógicos Operador And Or Not Devuelve True si A=True y B=True A=True o B=True A=False Devuelve False si Cualquier otro caso A=False y B=False A=True CAPITULO II Características del Lenguaje Visual Basic Visual-Basic es una herramienta de diseño de aplicaciones para Windows. Combina ambas tendencias. Para entrar a desarrollar en visual basic nos vamos al menu Inicio. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación. y la programación orientada a objetos. Es por tanto un termino medio entre la programación tradicional. NT y 2000. en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica.

14 la sgte: Aquí escogemos el tipo de proyecto que queremos realizar que en este caso sera EXE STANDARD ya que es el ideal para crear aplicaciones OJO: Los otros tipos de proyecto permite crear cosas distintas como por ejemplo ActiveX Control Crea un control para poder usarlo en tus aplicaciones e incluso en una página WEB. Una vez que hemos escogido el proyecto a desarrollar el sistema nos respondera de la siguiente manera: Barra de Menu Barra de Herramientas standard Explorador de Proyecto Diseñador de Formulario Ventana de Propiedades Cuadro de Herramientas Los elementos del entrono de desarrollo de Visual Basic son: Carrera: Computación e Informática Curso: Visual Basic . DLL ActiveX Crea Librerias dinamicas que se podra utilizar desde cualquier lenguaje que tenga compatibilidad.

Un control Label es un control gráfico que puede utilizar para mostrar texto que el usuario no podrá cambiar directamente. Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o más. Cada formulario de una aplicación aparecerá en su propia ventana. Puede crear cuadros de diálogo que permitan al usuario abrir un archivo de una lista de un disco en cualquier unidad Carrera: Computación e Informática Curso: Visual Basic . Puede utilizar una barra de desplazamiento como dispositivo de entrada o como indicador de velocidad o cantidad. así como un metarchivo mejorado. Utilice un control CommandButton para comenzar. Utilice este control para ofrecer al usuario una opción de tipo Verdadero o Falso o Sí o No. o introducida por el usuario en tiempo de ejecución. 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. en ella se pueden agregar controles gráficos e imágenes. muestra información introducida en tiempo de diseño. Las barras de desplazamiento (HscrollBar y VscrollBar) permiten explorar fácilmente una larga lista de elementos o una gran cantidad de información. Para mostrarla debemos hacer doble clic al formulario el cual queremos diseñar Cuadro de herramientas En el cuadro de herramientas podemos encontrar un conjunto de herramientas que permiten insertar los objetos o controles en el formulario durante en tiempo de diseño. los objetos más comunes son botones(command). imágenes(Image). Un control Timer puede ejecutar código a intervalos periódicos de tiempo produciendo un evento Timer. etiqueta (label). También puede utilizar un control Frame para subdividir un formulario funcionalmente. nos permite simular multitarea.. Si hacemos doble click con el ratón sobre alguno de ellos se insertará automáticamente en la ventana del formulario. Cuando está activado. un archivo JPEG o un archivo GIF. algunas de ellas o ninguna. Un control OptionButton muestra una opción que se puede activar o desactivar y también permite colocar un conjunto de alternativas de las cuales se puede seleccionar una sola a la vez. Un control TextBox. Un control Frame permite agrupar un conjunto de controles. Un control DriveListBox permite al usuario seleccionar una unidad de disco válida en tiempo de ejecución. para controlar el volumen de un juego de PC o para ver el tiempo transcurrido en un proceso temporizado. Un control ComboBox combina las características de un control TextBox y un control ListBox. para separar grupos de controles OptionButton. Puede utilizar controles CheckBox en grupos para mostrar múltiples opciones entre las cuales el usuario puede seleccionar todas. también denominado control de campo de edición o control de edición.. por ejemplo. proporcionan una representación análoga de la posición actual. Utilice este control para mostrar una lista de todas las unidades válidas del sistema de un usuario. un CommandButton aparece presionado y se le denomina botón de comando. Recorta el gráfico si el control no es lo bastante grande para mostrar la imagen completa. Un control CheckBox muestra un check cuando está activado. cuadros de imagen(Picture). etc. el check desaparece cuando el control CheckBox se desactiva. se agregará automáticamente una barra de desplazamiento al control ListBox. por ejemplo. un icono o un metarchivo. Si el número de elementos supera el número que puede mostrarse. la ejecución de las tareas se hará en segundo plano sin alterar para nada la ejecución de la aplicación que esta en primer plano. interrumpir o terminar un proceso. Además.15 Barra de herramientas: Permite un acceso rápido a los comando más utilizados Si en caso no se muestra la barra Nos vamos al Menu Ver-Barra de Herramientas-Estándar Diseñador de formularios Es la ventana en la que se diseñará la interfaz de la aplicación. Un control PictureBox puede mostrar un gráfico a partir de un mapa de bits.

Un control DirListBox muestra directorios y rutas de acceso en tiempo de ejecución. Utilice el control Image para mostrar una imagen. posición. Line es un control gráfico que se muestra líneas de diferente tipo. un círculo. una elipse. Puede crear cuadros de diálogo que. métodos y eventos. permitan al usuario seleccionar un archivo o un grupo de archivos. Para sacar las propiedades se hace clic derecho y propiedades o se pulsa F4. permitan a un usuario abrir un archivo desde una lista de archivos de todos los directorios disponibles. etc. etc. autosize. Data es un control para enlace de datos con una tabla de una Base de Datos. Label. comportamiento y apariencia del objeto. etc. Se creará una ventana de código para cada formulario o módulo de la aplicación. un cuadrado. ect.. Así un objeto puede moverse.16 disponible. Ventana de propiedades Los objetos tiene asociados unas propiedades que describen sus atributos. dobleclicke . Que suceda algo o no como respuesta a este evento dependerá de que hayas programado alguna acción en el correspondiente procedimiento de evento. etc. Ejemplo de Metodos: show. Los métodos son pequeños programas que actúan sobre un determinado objeto y que establecen su comportamiento. Utilice este control para mostrar una lista jerárquica de directorios. ocultarse. tamaño. name. así como un metarchivo mejorado. como por ejemplo una línea horizontal. la forma más sencilla es hacer doble click sobre el formulario o sobre el objeto al cual quiera incluir código. Así. Los eventos son las situaciones que se producen y que nos interesan identificar para establecer algún tipo de de respuesta por parte del objeto. Explorador de proyectos Contiene la lista de los archivos que forman parte de la aplicación Ventana editor de código En esta ventana es donde se incluye el código de la apliación.. Objetos en Visual Basic Un objeto en Visual Basic se caracteriza por tres componentes: propiedades. caption.. El control FileListBox encuentra y muestra los archivos del directorio especificado por la propiedad Path en tiempo de ejecución. Un control Image puede mostrar una imagen desde un mapa de bits. Puede crear cuadros de diálogo en la aplicación que.mousemove. Puedes utilizar cualquier método que forme parte del objeto. Ejemplo de Eventos: click. Ejemplo de Propiedades: alignment. Etc. Shape es un control gráfico que se muestra una figura geométrica como un rectángulo. creando de esta forma un evento reconocible por el objeto. Las propiedades son aquellas características o atributos que permiten establecer la apariencia de un objeto como el color. un icono o un metarchivo. NOTA: Los objetos vienen a ser los controles como TextBox. por ejemplo. keypress. hide. un archivo JPEG o archivos GIF. Existen propiedades que sólo están disponibles en tiempo de diseño y otras que sólo están disponibles en tiempo de ejecución. vertical o diagonal... Carrera: Computación e Informática Curso: Visual Basic . maximizado. un rectángulo redondeado o un cuadrado redondeado. Utilice este control para mostrar una lista de los archivos seleccionados por tipo. O el estado del mismo: activo. El control Data del formulario primario y sus objetos relacionados.. etc. puedes hacer click sobre un determinado objeto. Para tener acceso a la ventana de edició. valores. permiten relacionar o enlazarse con la Base de datos mediante los objetos Database y Recordset. por ejemplo.

para ello deberemos crear primero el marco y despueés los controles que queremos que contenga dentro del marco. Permite introducir más de una línea de texto en el cuadro Estable el caracter que se muestra al realizar una entrada en el control. el tamaño del texto es fijo al no permitir la propiedad autosize. Permiten al El control del cuadro de texto es: Los cuadros de texto son semejantes a las etiquetas. El control de etiqueta es: Algunas propiedades del control etiqueta son: Propiedad Alignment Autosize Caption BackStyle Definición Establece la alineación del texto de la etiqueta(derecha. * Command o Botones. Algunas propiedades del objeto cuadro de texto son: Propiedad Alignment Multiline PasswordChar ScrollBars Text Definición Alineación de la información introducida. TextBox.17 Controles Propiedades Label. Frame y sus * Label o Etiquetas .Se utiliza para agrupar ciertos controles.datos en Visual Basic.- Las etiquetas son controles que nos permiten mostrar texto en los formularios y que tienen la particularidad de que el usuario no puede modificar solo muestra información acerca de algo. es muy sencillo. por lo que no tienes que establecer muchas propiedades. Carrera: Computación e Informática Curso: Visual Basic . Al mover un marco también se mueve los controles que contenga.- El botón de comando (CommandButton). La única propiedad interesante de un control marco es la propiedad Caption. Con la propiedad Caption establecemos el texto que aparecerá en el botón. que se refiere al texto que se presenta en la parte superior izquierda del control. Sólo se mostrará dicho carácter(Por defecto esta vacio) Muestra barras de desplazamiento(Esto solo funciona si la propiedad multiline esta en True) Texto que se visualiza en el control * Frame o Marcos.  Bloquear controles Cuando estén situados los controles en el formulario se pueden bloquear para que no puedan moverse de forma accidental. También se pueden crear teclas de acceso al botón. pero con la diferencia que el usuario puede modificar su contenido. Cuando se recupera un valor de una caja de texto asi se haya ingresado un numero tomará el valor de una cadena.. * TextBox o Caja de Textos. A diferencia de la etiqueta. Los cuadro de texto son el control estándar de entrada de usuario de la aplicación introducir información. El uso principal de los botones de comando es realizar acciones en la aplicación. El texto que se introduce puede ser tanto numérico como alfanumérico (números y letras). izquierda y centro) Si su valor es True. el tamaño de la etiqueta se adapta automáticamente a su contenido Texto que se visualiza en la etiqueta Establece si el fondo del label sera opaco o transparente. CommandButton. El control marco actúa como contenedor de otros controles.

Graphical para que se pueda ver la imagen lo mismo es para darle un color de Fondo.Si esta en True el Form se podrá mover . Height .Establece el tipo de borde del control. BorderStyle .-Establece el orden de tabulación fijado para el control(Esta propiedad sirve para casi todos los controles en VB) TabStop..-Establece la distancia que hay desde el borde izquierdo del formulario hasta donde se encuentra el control Icon . Top . Otras Propiedades Name .Establece el ancho y el alto del control.Establece el color de fondo del control.Establece si el control se verá(True) en tiempo de ejecución o no(False).si esta en false será lo contrario(solo para los formularios) Convención para nombrar objetos en Visual Basic OBJETO Form CheckBox ComboBox Data-bound combobox Command Button Data Directory list box Drive List Box File List Box Frame Grid Data-bound grid Horizontal scrollbar Image Label Line OLE Container PictureBox Shape Text Box Timer Vertical scroll bar OBJETO ESPAÑOL PREFIJO Formulario frm Casilla de verificación chk Cuadro combinado cbo Cuadro combinado enlazado a datosdbc Botón de comando cmd Control de datos dat Cuadro lista de directorios dir Cuadro lista de unidades drv Cuadro lista de archivos fil Marco frm Rejilla grd Rejilla enlazada a datos dbg Barra de desplazamiento horizontal hsb Imagen img Etiqueta lbl Linea lin Contenedor OLE ole Cuadro de imagen pic Forma shp Cuadro de texto txt Temporizador tmr Barra de desplazamiento vertical vsb La caja de Mensajes.. tamaño. etc. Visible . Width.-Indica si al utilizar el tabulador se puede desplazar entre los controles del formulario ToolTipText..-Permite o no que se puedan realizar acciones sobre el control(esta en True por defecto si esta en False no se podra utilizar el control) TabIndex...-Establece la fuente. Forecolor .-Establece un texto que se mostrar cuando se pase el mouse por el control como si fuera un comentario.Para ver o no ver los botones de minimizar y maximizar (solo para los formularios) Moveable . Backcolor ..-Establece la distancia que hay desde el borde superior del formulario hasta donde se encuentra el control Left .Establece el color del texto del control. Nota: Si el control es un commandbutton la propiedad STYLE debera estar en 1. Enabled.Establece la imagen de un icono (Solo esta disponible para los formularios) MinButton.. MessageBox o MsgBox Carrera: Computación e Informática Curso: Visual Basic ... Picture ..Establece una imagen de fondo al control..18 Para esto deberemos hacer clic derecho Bloquear Controles Para desbloquear se hace lo mismo. MaxButton .(a mayor numero mas ancho o alto) Font.Quizas la mas importante da el nombre al control.

El aviso con espera de respuesta. Mensaje de información.19 Las cajas de mensajes o MessageBox. la caja de mensaje será similar a esta: Debe darse cuenta de algunas cosas: En primer lugar el mensaje. y por último el título de la ventana."Ejemplo" . la instrucción MsgBox "Hola". que es la de mostrar una determinada información. Nada tan fácil como este código por ejemplo: MsgBox "Hola" & vbCrLf & "Esto es un ejemplo. 2 . también debe darse cuenta del botón Aceptar que tiene el Focus de la ventana activa y que sólo hay ese botón. por eso.El aviso es sí. Por defecto. Podemos modificar estos parámetros para alcanzar nuestros objetivos. pero es posible que deseemos escribir un mensaje en varias líneas con salto de párrafo. "Ejemplo". debe ir un número que representará el icono a mostrar. puede ser por ejemplo. .". Una caja de mensaje. Existen cuatro iconos diferentes además de la posibilidad de no mostrar ninguno. aviso. vamos a escribir ahora este código: MsgBox "Hola". Hay 2 formas diferentes de mostrar información: 1 . Los iconos son: Estos iconos corresponden a los siguientes mensajes: Mensaje crítico. El resultado es: Supongo que se habrá percatado de que entre el mensaje y el título de la ventana. esto es porque entre las comas. la caja de mensaje posee un título Ejemplo y el mensaje. o pregunta para que el usuario tenga conocimiento de ella y actúe. tienen una función clara. Carrera: Computación e Informática Curso: Visual Basic . Mensaje exclamativo. hemos escrito dos comas. que tiene por objetivo mostrar una información de interés. El resultado es: Como podemos apreciar en el código. "Hola" que se escribe a continuación de la palabra MsgBox. Mensaje de pregunta. . que muestra una información esperando que el usuario seleccione una de las respuestas posibles para que el programa la trate.

VbCritical VbQuestion ó VbExcalamqtion ó VbInformation ó ó 32 48 64 16 Note que es lo mismo insertar VbCritical o 16. Vamos a ver un ejemplo añadiendo un icono al último ejemplo: MsgBox "Hola" & vbCrLf & "Esto es un ejemplo. pero es posible que deseemos que lo tenga el botón No por ejemplo. VbQuestion . en este caso el Focus lo tiene el botón Sí. "Ejemplo" El resultado es: Ahora bien. de información. es posible que queramos mostrar algún otro botón que o bien no sea el de Aceptar o que además del botón de Aceptar haya más botones. Así por ejemplo: MsgBox "Hola" & vbCrLf & "Esto es un ejemplo. Reintentar.". No y Cancelar vbYesNoCancel ó Sí y No vbYesNo ó Reintentar y Cancelar vbRetryCancel ó 5 Aplicación modal vbApplicationModal 0 ó ó 3 4 ó 1 2 0 (Es la caja de mensaje sin icono) La forma de hacer esto es sumar al parámetro del icono que queremos mostrar el valor de los botones que deseamos que aparezcan. tenemos los siguientes parámetros: Aceptar vbOKOnly ó Aceptar y Cancelar vbOKCancel Anular. "Ejemplo" El resultado es: Aún así. Para este propósito.". es posible que deseemos que el Focus lo adquiera otro un botón determinado. exclamativo.". de pregunta. Por ejemplo. "Ejemplo" Carrera: Computación e Informática Curso: Visual Basic . VbQuestion + vbYesNo . Ignorar vbAbortRetryIgnore Sí. VbQuestion + vbYesNo + vbDefaultButton2. Esto se consigue con los siguientes parámetros: Primer botón predeterminado vbDefaultButton1 ó Segundo botón predeterminado vbDefaultButton2 Tercer botón predeterminado vbDefaultButton3 ó 0 ó 512 256 Por ejemplo: MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.20 Para mostrar el icono en cuestión o para que Visual Basic lo entienda. es necesario escribir lo siguiente: Mensaje Mensaje Mensaje Mensaje crítico.

(por ejemplo el tercero). Ahora bien. el usuario debe saber combinar los códigos. Ahora bien. si decidimos mostrar un mensaje esperando una respuesta. "Ejemplo") If Resp = 6 Then MsgBox "Ha pulsado SI" Else MsgBox "Ha pulsado NO" End If Tiene el resultado siguiente: Si pulsamos el botón Sí obtendremos una acción. sabiendo que un MsgBox posee la siguiente sintaxis principal: MsgBox Mensaje. Visual Basic seleccionará el primer botón. y si pulsamos el otro botón otra acción.". Botones.21 El resultado es: Si no se señala el botón predeterminado. el siguiente código: Dim Resp As Integer Resp = MsgBox("Hola" & vbCrLf & "Esto es un ejemplo. Título de la ventana Carrera: Computación e Informática Curso: Visual Basic . Visual Basic seleccionará el primero. VbQuestion + vbYesNo + vbDefaultButton2. o queremos saber que botón ha pulsado el usuario. para elegir o seleccionar un evento o acción. esto lo podemos conseguir mediante el siguiente código de respuestas: Aceptar vbOK ó Cancelar vbCancel Anular vbAbort Reintentar vbRetryó Ignorar vbIgnore ó Sí vbYes No vbNo 1 ó ó 4 5 ó ó 2 3 6 7 Así por ejemplo. En caso de seleccionar como predeterminado un botón que no existe.

2ª línea del código anterior ) Ahora bien. valor o dato para que el programa lo trate y lo ejecute. Por ejemplo: Dim Val As String Val = InputBox("Deme su nombre". como por ejemplo: Dim Val As String Val = InputBox("Deme su nombre".Mundo Visual . ValorPredeterminado) Val almacenará el texto escrito por el usuario.y hace click en Aceptar. cadena string. El mensaje que quiere que aparezca se realiza de forma casi idéntica al MessageBox. Es importante que el usuario interactúe con la aplicación para ser el protagonista de esta. Puede escribirse varias líneas de texto seguidas por la constante de Visual Basic vbCrLf o salto de línea o párrafo. Titulo. El InputBox nos permite sacar una caja donde el usuario pasará un parámetro. … etc. "Ejemplo") MsgBox "Su nombre es: " & Val Tiene como resultado: (El usuario teclea el nombre . La sentencia es: Val = InputBox (Mensaje. A continuación se muestra el MsgBox . que puede ser una cantidad.22 InputBox El InputBox o caja de entrada es otra de las partes más utilizadas para la interacción del usuario con la aplicación. "Ejemplo". podemos determinar un texto predeterminado a la caja de entrada. "Mundo Visual") MsgBox "Su nombre es: " & Val Obtendremos como resultado: Carrera: Computación e Informática Curso: Visual Basic .

Son las sentencias por las que empieza cualquier texto de Basic. Estos parámetros se ponen a continuación del ValorPredeterminado. o se cumple una condición y ejecuta unas determinadas instrucciones. se abra un abanico de dos o tres posibilidades. o no se cumple.23 Es importante determinar que si el usuario elige el botón Cancelar. Así de fácil es programar en Basic. caso de no cumplirse la condicion primera. La caja de entrada puede ser sin embargo más personalizada mediante dos parámetros como son la posición de la ventana de entrada de datos en la pantalla. el programa devolverá una cadena de caracteres igual a 0. y este no va ser menos. La sentencia condicional tendría entonces la forma: If condición 1 Then Instrucciones ElseIf Condición 2 Carrera: Computación e Informática Curso: Visual Basic . La sentencia condicional más usada es: Si se cumple una condición Entonces Realiza estas instrucciones Si no se cumple Realiza estas otras instrucciones Fin de la sentencia. CAPITULO III Estructuras de control Sentencias condicionales. Puede ocurrir que. es decir. Lo que ocurre es que esta herramienta habla inglés. Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condición. y lo descrito anteriormente toma la forma: If condición Then Instrucciones Else Otras instrucciones End If En este ejemplo. y ejecuta otras instrucciones distintas. Val ="".

24. si tiene 100 valores posibles. B=3. En realidad Switch es una función (las funciones las veremos muy pronto) A = Switch (B=1. todos por parejas. El segundo es el valor que tiene que devolver. 25. disponemos de otras dos funciones: Choose y Switch.e. 5. 2 y 3.24 Otras instrucciones ElseIf Condición 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1. B=2. 23. End If Como decíamos anteriormente. Switch toma una serie de parámetros. y el tratamiento es igual para varios de ellos. El primer término de cada pareja es la expresión a evaluar. 2 ó 3) Carrera: Computación e Informática Curso: Visual Basic . 7. dependiendo del caso. Then Else Puede agrupar varios valores en una misma línea. 26 Instrucciones Case Is > 26 Instrucciones End Select Cuando lo que queremos es elegir un valor. no ejecutar instrucciones como hacíamos anteriormente. un determinado juego de instrucciones: Select Case variable ' variable es una variable que puede tomar los valores (p. Por ejemplo. Existe otra sentencia condicional muy usada: Select Case Su nombre casi nos define lo que es: Selecciona.) de 1 a 4 Case 1 Instrucciones Case 2 Instrucciones Case 3 Instrucciones Case 4 Instrucciones Case Else Instrucciones anteriores End Select a ejecutar en caso de que variable = 1 a ejecutar en caso de que variable = 2 a ejecutar en caso de que variable = 3 a ejecutar en caso de que variable = 4 a ejecutar en caso de que variable sea distinta a los valores Este procedimiento resulta mucho mas sencillo y rápido que las sentencias If vistas anteriormente. 22. 11) Esta instrucción obtiene un valor para A que dependerá del valor que tome B entre los valores posibles (1. puede agruparlos así: Select Case Valor Case Is < 20 Instrucciones Case Is = 20 Instrucciones Case Is = 21. cuando el margen de elección es mayor que 2. este es el tipo de sentencia condicional mas usada.

Vea que poco a poco vamos metiendo cosas aunque no las conocemos todavía. 7. deberá vigilar que no se produzcan efectos no deseados. 2 ó 3 en nuestro caso). Por esta razón. Es muy común utilizar bucles a lo largo de un programa. Fíjese que hemos declarado MiVariable como String. cambia solamente la forma.Text) > 100. "Es mayor". Mas tarde las conocerá.. 5. "Es menor") Label1 = MiVariable End Sub Al ejecutar el programa. Como ejemplo. en el formulario de nuestro primer programa introduzca un nuevo botón de comando. Un bucle es una sucesión repetitiva de Carrera: Computación e Informática Curso: Visual Basic . Haga doble click sobre el botón de comando e introduzca el siguiente código : Private Sub Command2_Click() Dim MiVariable As String MiVariable = IIf(Clng(Text1. La misma intrucción anterior puede realizarse con Choose de la siguiente forma: A = Choose ( B. Valor o expresión devuelta si Expresión es True. Switch y Choose. si el valor de B no coincide con ninguno de los valores que se le habían establecido (1. si al evaluar SiEsFalso se produce un error de división entre cero.25 La sentencia Choose es casi igual. debe introducir un valor numérico en Text1. Use preferentemente If End If y Select Case. Si ese valor numérico es menor que 100. El valor que toma la variable puede verlo en Label1. . se generará un error aunque Expresión dé como resultado True. obtener resultados de operaciones. Esto puede producir algún error si no se contempla esa posibilidad.. por lo que MiVariable tomará el valor “Es mayor”. El TextBox tendrá por nombre Text1. SiEsFalso) Expresión es la expresión a evaluar. Sintaxis Iif (Expresión. cambiar las propiedades de un objeto. Las sentencias Switch y Choose no se usan mucho en programación. dependiendo de la evaluación de una expresión. Por ejemplo. Valor o expresión devuelta si Expresión es False.Text > 1000). la sentencia devuelve el valor Nulo ( Null ). ya que va a contener un dato tipo cadena de caracteres. Sentencias de bucle. se cumple esa condición. SiEsCierto. aunque sólo vaya a devolver una de ellas. SiEsCierto SiEsFalso Observaciones IIf siempre evalúa SiEsCierto y SiEsFalso. Otra sentencia condicional: IIF Devuelve uno de entre dos valores. 11 ) En estas sentencias.. Le garantizo que puede llegar a ser un gran programador sin necesidad de utilizarlas. Introduzca también un TextBox. Parece que los programadores o no las conocen o se lían (y es comprensible) al utilizarlas. Si introduce una cantidad mayor. MiVariable tomará el valor “Es menor” (No se cumple la condición expresada en el primer parámetro Text1. Con estas sentencias condicionales es posible realizar bifurcaciones del programa.

que es donde se detuvo el programa. Acabamos de realizar un temporizador. Para terminar bien el programa anterior utilizaremos la condición de While (Mientras se cumpla la Carrera: Computación e Informática Curso: Visual Basic .caption = Chr ( N ) Next N Este "programa" nos presentará en una caja (Label) los caracteres cuyo número ASCII vaya desde el 65 (A) al 90 (Z) Comenzará presentando el correspondiente al número 65. Es el denominado bucle por contador. Por ejemplo. Bucles por condición Ejecuta las instrucciones del bucle mientras se cumple una condición X=0 Do While X < 1000 X=X+1 Loop El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero.26 instrucciones. posiblemente no nos diese tiempo de ver cada una de las letras que iban apareciendo en la pantalla. realiza el bucle hasta que se cumpla (o deje de cumplirse) una condición. donde visualizábamos los caracteres A a la Z. e incrementa su valor una unidad. donde se parará. Bucle por contador Realiza el bucle tantas veces como le indiquemos. la sentencia será: X=0 Do Until X > 1000 X=X+1 Loop Observe que la diferencia entre una y otra es la condición. sale del bucle.. e irá presentando sucesivamente el 66. Así hasta que X ya no sea menor que 1000. Con el primer bucle. Es tan sencillo como esto: Mientras condición Instrucciones Fin del bucle Existen dos formas de bucle: Una. y Until para indicar Mientras no se cumpla que . Como final de lección. y también de exponer las sentencias condicionales y los bucles. While para indicar Mientras se cumpla que . que realiza un número determinado de recorridos por el bucle. Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condición. vuelve a realizar el bucle. y solamente veríamos la Z. Al dejar de cumplirse que X sea menor que 1000.. se propone un problema. Con los dos bucles vistos anteriormente ya podemos hacerlo.. etc. inicio de cualquier curso de Basic.. en este bucle nos va a presentar las 26 letras mayúsculas del alfabeto inglés For N=65 To 90 Label1. el 67.. dado que cambiaría con mucha velocidad. y si es cierto. Podemos poner un temporizador cada vez que presente una letra. Otra. que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. en la etiqueta Label1. Es el llamado bucle por condición. Analiza si el valor de X es menor que 1000.. hasta llegar al 90. y así nos dará tiempo a verla.

introducir una etiqueta. porque ya hemos encontrado lo que estabamos buscando. Tardaría menos tiempo que en uno a 66. contar hasta 1000 para luego continuar el programa. bien porque se ha cumplido la condición (Bucles por condición) o a que se haya llegado al final de la cuenta (Bucles por contador). Para ello. por ejemplo.caption = Chr ( N ) Label1. Private Sub Command1_Click() For N=65 To 90 Label1. para que en los comienzos de su carrera como programador pueda ver el contenido de una etiqueta. Aparecerá el procedimiento Click. el control MSComm1 detectará la señal DSR que le envía el otro equipo y deberemos salir inmediatamente del bucle para. Escriba en ese procedimiento este código. y sería una pérdida de tiempo seguir ejecutando el bucle cuando ya hemos obtenido lo que buscamos. Haga doble click sobre el botón.caption = Chr ( N ) Label1..27 condición) For N=65 To 90 Label1. Solo nos queda pensar donde introducimos el código anterior. To Ejemplos En el siguiente ejemplo pretendemos parar el programa cierto tiempo.RefreshN X=0 Do While X < 1000 X=X+1 Loop Next N End Sub ' Esta ' Esta línea sale automáticamente ' Refresca la etiqueta ' Bucle de temporización (*) ' Termina el bucle de temporización línea sale automáticamente Hemos puesto nuestra primera piedra en Visual Basic. Podemos introducir un botón de comando (Command Button) que saldrá con el nombre por defecto de Command1. (*) Las temporizaciones no se hacen realmente así. Pero puede ocurrir que interese salir del bucle sin haber terminado la ejecución total del mismo. Visual Basic es tan sencillo como este ejemplo.. (Label) que llevará el nombre por defecto de Label1. por ejemplo. basta con ejecutar la sentencia Exit Do (Cuando hemos comenzado el bucle con Do Until o Do While. a la espera que otro equipo se conecte a través del puerto serie. Y lo que es peor. en un ordenador a 300 MHz. Esta misma función puede hacerla con Sleep que la verá mas adelante. Este ejemplo es muy sencillo. Este procedimiento es el que se realiza cuando hacemos click sobre ese botón. atender a ese puerto serie) Contador = 0 Do While Contador < 1000 Carrera: Computación e Informática Curso: Visual Basic . Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo. o con Exit For cuando lo hemos comenzado con For . su ordenador estaría detenido realizando una función bastante triste. Si lo hiciera de esta forma. (Cuando se conecte. podemos esperar a que se complete.RefreshN X=0 Do While X < 1000 X=X+1 Loop Next N ' Refresca la etiqueta Nos falta la interface gráfica. que es la forma limpia y elegante de hacer una temporización Formas de salir de un bucle Para salir de un bucle. El ejemplo anterior no deja de ser una forma sencilla de detener el programa.

si tuviese menos de 20 caracteres End If End Sub Carrera: Computación e Informática Curso: Visual Basic . veamos como salir de un procedimiento usando también esa “vía rápida”. Si el usuario ha introducido mas de 20 caracteres. y la condición pasa de True a False.Text If Len(Mivariable) > 20 Then MsgBox "El Campo Nombre debe tener como máximo 20 caracteres" Text1. 20 caracteres. En el ejemplo siguiente. Para salir de un procedimiento basta con ejecutar la sentencia Exit Sub. deseamos salir del bucle: For I = 1 To 1000 If MSComm1. deseamos transmitir por el puerto serie una serie de números. del 1 al 1000. debemos salir del procedimiento donde se introduce ese dato sin ejecutarlo de forma íntegra: Private Sub BotonLeerNonbre_Click() Mivariable = Text1.DSRHolding = False Then Exit Do MSComm1. pero siempre y cuando que el equipo que está al otro lado de la línea serie esté a la escucha (Condición MSComm1. usamos el botón BotonLeerNombre para introducir el dato Nombre en una base de datos.DSRHolding = True) Si se desconecta ese equipo. Lo entenderá perfectamente unos capítulos mas adelante.28 Contador = Contador + 1 DoEvents If MSComm1.DSRHolding = True Then Exit Do Sleep (1000) Loop „Aquí comenzamos a atender al puerto serie En el siguiente ejemplo.Text = "" Exit Sub „Con esta instrucción saldríamos de este procedimiento Else 'Aqui vendrían las lineas de instrucciones donde trataríamos 'el contenido de Text1.Output = Str(I) Next I No se preocupe que no entienda esto del MSComm. Pero ese campo puede tener como máximo. Salir de un procedimiento antes de terminar su ejecución Y ya que explicamos como se sale de un bucle por la vía rápida. Lo importante es que entienda la idea de salir de un bucle por la vía rápida.

5.40. Una cadena es también una sucesión de números. VI) y la carrera (CI.20. V.Al finalizar solo se debe mostrar el monto de la pensión.00 y por cada minuto adicional se paga 0.00 Secretariado = 170. o II y por ultimo si es del turno “N” se la hará un descuento del 15 % . pero también tiene una presentación escrita.50. Internacional). Realizar un programa donde se ingrese por teclado el día de nacimiento y el mes de nacimiento de una persona al hacer clic se deberá mostrar su signo zodiacal así como también deberá aparecer la imagen del signo Zodiacal en un control PictureBox. Así. o III ciclo.30. 4. Realizar un programa donde se deberá ingresar el nombre de un alumno y se deberá escoger el turno en el que estudia (M . 2.60. Pero esa información no es un número legible por el usuario. o incluso en binario) de ese número. o hexadecimal.Se visualizara el importe de la llamada sabiendo que por los 3 primeros minutos se paga S/ 1.00 Además que dependiendo del ciclo en el que están se pagara un recargo del precio de 10. Secretariado) se deberá calcular el pago de su pensión en base a los siguientes datos: el precio por carrera es: CI = 220. Lo que sí es legible por el usuario es la representación en numeración decimal (u octal. II.00 Contabilidad = 180. el número nueve. T y N) así como también el ciclo (I.29 Ejercicios Propuestos 1. Realizar un programa donde se ingresara por teclado en una caja de texto la hora en formato de 24 horas y en otra caja de texto la cantidad de minutos al hacer clic en un botón deberá salir la hora en formato de 12 horas por ejemplo si se ingresa 23 en una caja y en la otra 12 el resultado seria 11:12 PM 3. IV. El valor es algo que estará en el ordenador como una sucesión de bits. Dependiendo de como lo hayamos declarado. Axial como también si es del turno “M” se deberá recargar 10% mas solo si esta en I.50 en caso sea local si es nacional se incrementa el 25% y si es internacional se incrementa el 60% a los precios por minuto. Una cadena puede tener uno o varios caracteres alfanuméricos. Desarrollar un programa donde se ingrese la cantidad total de minutos hablados por una persona y escoja el tipo de llamada (Local. II. tendrá mas o menos bits. Esa representación del número en un determinado sistema de numeración es una cadena. que en la memoria del ordenador será una sucesión de bits. nos lo podrá presentar como: Carrera: Computación e Informática Curso: Visual Basic . CAPITULO IV Funciones incorporadas de Visual Basic Funciones de cadena Se denomina CADENA a una sucesión de caracteres. Contabilidad. III. Ejemplo de cadenas: Curso de Visual Basic abcdefghijklmnopqrstuvwxyz1234567890 123456789 Hagamos una distinción entre una cadena que contenga números y un número. Realizar un programa donde se ingrese un número y visualícelo en romano. si es del turno “T” se recarga el 15 % mas solo si esta en I. Nacional. Un número tiene un valor.

Caption = Str (Variablenumerica) Este ejemplo pondría en la etiqueta Label1 los caracteres correspondientes al valor que tuviese la variable Variablenumerica . Cuando introducimos un valor numérico por teclado o pantalla. por ejemplo. sino que convierte cualquier tipo de variable a una variable tipo String (cadena). el ordenador para hacer operaciones con él. por ejemplo).30 9 9 11 1001 En En En En numeración numeración numeración numeración decimal hexadecimal octal binaria Esas formas de presentarnos el número son CADENAS de caracteres.Caption = Falso Carrera: Computación e Informática Curso: Visual Basic . como hace Str. y asocia este número a la variable Variablenumerica. Para presentar un número en la pantalla. el ordenador debe convertirlo previamente a una cadena.Caption = 1 si Check1 está activado Label2.Caption = Verdadero Label3. Variablenumerica tomaría el valor 0. Obtiene el valor (el número) correspondiente a esa Variablenumerica = Val (TextBox1.Caption = Verdadero Label1. En estos casos devuelve 0 y 1 para el CheckBox (Desactivado / Activado) y Verdadero ó Falso para el OptionButton (Activado / Desactivado) label1. Esta función no solamente transforma un número a una cadena. Estas consideraciones nos llevan a las dos primeras funciones con cadenas: Str Val Ejemplos (número) decimal.Caption = Falso Label2 = CStr(Check1.Value) Label2. Se trata de Cstr. Esta función transforma.Text) Este ejemplo convierte la cadena de caracteres (numéricos) que hubiese en la caja de texto TextBox1 en un número.Value) Label3. Label1. y “Falso” si es False. Existe una función mas amplia que Str. devolviendo la cadena “Verdadero” si el valor de la variable booleana es True. Puede también transformar a una cadena de caracteres el valor de un CheckBox o de un OptionButton.Caption = CStr(booleana) Label1. Si el contenido de la caja de textos no fuesen caracteres numérico (abcd. una variable tipo Booleana en una variable de cadena. Convierte un número a una cadena en numeración (cadena numérica) cadena. El valor del número dentro del ordenador es un NUMERO.Caption = 0 si Check1 está desactivado Label3 = CStr(Option1. debe transformarlo a un número.

31 Si se aplica Cstr a una variable tipo Fecha/Hora devuelve la fecha / Hora en formato corto. siendo el primer carácter extraído el que ocupa el lugar m. (UCase = Upper Case) Resultado = UCase (cadena) ---->Resultado = CURSO DE VISUAL BASIC Len (cadena) Devuelve la longitud de la cadena Resultado = Len (cadena) ----> Resultado = 21 Space (n) Devuelve una cadena formada por n espacios. n) Extrae lo n últimos caracteres de la cadena Resultado = Right (cadena. n) Extrae n caracteres de la cadena. Elimina los espacios que tenga una cadena. Elimina los posibles espacios que tenga una cadena por Su derecha. m. comenzando por la izquierda. pero con todos loscaracteres en mayúsculas. 10) ----> Resultado = sual Basic Mid (cadena. 10) ----> Resultado = rso de Vis LCase (cadena) Devuelve otra cadena igual. (LCase = Lower Case) Resultado = Lcase (cadena) ----> Resultado = curso de visual basic UCase (cadena) Devuelve otra cadena igual. (Vea Instrucción Mid mas abajo) Resultado = Mid (cadena. Mas funciones de cadena: Left (cadena. tanto por su izquierda como por su derecha. 10) (Para todos los ejemplos) ----> Resultado = Curso de V Right (cadena. pero con todos los caracteres en minúsculas. 3. (No elimina los espacios centrales de la cadena) Rtrim Trim Carrera: Computación e Informática Curso: Visual Basic . n) Extrae los n primeros caracteres de una cadena. Si cadena = Curso de Visual Basic Resultado = Left (cadena. Resultado = "A" + Space (6)+ "B" LTrim ----> Resultado = A B Elimina los posibles espacios que tenga una cadena por Su izquierda.

Observe la sutileza entre Mid como Función de cadena y Mid como Instrucción. LowerCase) ----> Resultado = curso de visual Resultado = StrConv (cadena. ocurrirá un error en tiempo de ejecución. cadena1) Busca la cadena1 dentro de cadena y devuelve el número de orden dentro de cadena donde se encuentra la primera letra de cadena1 Resultado = InStr (cadena. o poner la primera letra de todas las palabras de la cadena en mayúsculas. En lugar de Carrera: Computación e Informática Curso: Visual Basic . longitud]) = cadena2 ---.2)=”AB” Si la cadena que vamos a introducir tuviera más caracteres. La Instrucción Mid reemplaza un número especificado de caracteres en una variable de cadena con caracteres de otra cadena. tomará solamente los primeros Mid (cadena. Puede sustituir a UCase o LCase si la instrucción es UpperCase o LowerCase respectivamente.2)=”ABCDE” ---.> Resultado = Curso AB Visual Basic Funciones Asc y Chr Estas funciones se utilizan para obtener el número ASCII de un carácter. Tienen especial importancia cuando se toman los datos de un archivo o base de datos. si la instrucción es ProperCase.32 Estas tres funciones se emplean para quitar los posibles espacios que pueden resultar de una entrada de datos. hallar el carácter correspondiente. Sintaxis MiVariable = Asc (Cadena) Cadena es cualquier expresión de cadena válida. según las instrucciones que le sigan. 7.> Resultado = Curso AB Visual Basic Mid (cadena. ProperCase) ----> Resultado = Curso De Visual basic Instrucción Mid Basic Mid puede usarse también para cambiar el contenido de una cadena. Resultado = StrConv (cadena. donde fueron introducidos por otro programa. 7. Ejemplo : Nota Label1 = Asc (“ABCD”) Label1 presentará 65 Hay otra función (AscB) que puede usarse con bytes contenidos en una cadena. sabiendo el número ASCII. inicio[. "sua") StrConv ----> Resultado = 12 Convierte una cadena de caracteres en otra. Si la cadena no contiene caracteres. Sintaxis Mid(cadena1. Función Asc Devuelve el código de carácter correspondiente a la primera letra de una cadena de caracteres. y para. UpperCase) ----> Resultado = CURSO DE VISUAL BASIC Resultado = StrConv (cadena. InStr (cadena.

4 en -9. Fix Devuelven la parte entera de un número con decimales Int y Fix eliminan la fracción de un número y devuelven el valor entero resultante. (Fecha / Hora) Cos Tan Atn Función Cdate Otras Funciones Una función curiosa Carrera: Computación e Informática Curso: Visual Basic . inclusive. que identifica a un carácter.4 en -8.33 devolver el código del carácter para el primer carácter. Abs Sgn Sqr Exp Devuelve el valor absoluto de un número Devuelve el signo de un número Devuelve la raíz cuadrada de un número Devuelve el número elevado al exponente indicado Devuelve el logaritmo natural de ese número Log Funciones Trigonométricas Sin Devuelve el valor del seno de un ángulo (Expresado en radianes) Devuelve el coseno de un ángulo (En radianes) Devuelve la tangente de un ángulo Devuelve un arco cuya tangente sea el número (Angulo en radianes) Convierte una expresión al tipo de datos Date. Ejemplo Label1 = Chr (65) Label1 contendrá el carácter A Como ejemplos de números de caracteres algo especiales se debe señalar el carácter 10 (avance de línea) y el carácter 13 (Retroceso de carro). Int convierte -8. Función Chr Devuelve el carácter asociado con el código de carácter especificado. La tecla ENTER produce ambos caracteres cada vez que se pulsa. y Fix convierte -8. Sintaxis Chr (CódigoCarácter) El argumento CódigoCarácter es un número en el intervalo de 0 a 255. mientras que Fix devuelve el primer entero negativo mayor o igual a número. La diferencia entre Int y Fix es que si el número es negativo. AscB devuelve el primer byte. Int devuelve el primer entero negativo menor o igual a número. Otros caracteres importantes son. Por ejemplo. el Backspace (carácter 8). y el espacio (carácter 32) Otras Funciones con números Int .

49 Loop Do While A < 1 A = A + 49 Loop Label1. se puede obtener una sucesión de números aleatorios. Devuelve la hora actual. una fecha y una hora o una hora solamente. No es necesario ejecutar la instrucción Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd. Esta fecha la toma del reloj del ordenador. Las fechas son cadenas especiales. Devuelve el día de la semana (En número. Dispone para ello de una declaración de variable: Date.) Obtiene el día. 1=Domingo..click Randomize Timer A = Rnd * 100 A = CInt(A) Do While A > 49 A = A . Generación de números aleatorios Randomize (Numero) Inicia el generador aleatorio tomando como dato de partida el Numero.. Date Time Now WeekDay Day Month Year Hour Devuelve la fecha de hoy.caption = A End Sub Funciones con fechas. a partir de una fecha Obtiene el mes a partir de una fecha. En el procedimiento click de Command1 pondremos el siguiente código: Private Sub Command1. Randomize Timer La función Randomize devuelve una variable Rnd con un número comprendido entre 0 y 1 (Nunca será 0 ni 1) Leyendo el valor de la variable sucesivas veces. Devuelve el resultado en una variable llamada Rnd. 2=Lunes. Obtiene la hora a partir de una hora Carrera: Computación e Informática Curso: Visual Basic . Devuelve la fecha y hora actual. Visual Basic sabe obtener y tratar la información relativa a la fecha y la hora.34 Timer Tiempo acumulado Devuelve el tiempo (en segundos) que ha pasado desde las 12 de la noche. Una variable declarada como date puede contener una fecha. un botón de comando de nombre Command1.. Generador de números para la Lotería Primitiva Supongamos que tenemos un formulario con una etiqueta de nombre Label1. Obtiene el año a partir de una fecha. Un ejemplo. Cuando hagamos click sobre el botón de comando deberá generar un número comprendido entre el 1 y el 49.

primerasemanaaño]]) Valor para Intervalo q m y d w ww h n s Obtendremos el Trimestre Mes Día del año Día Día de la semana Semana Hora Minuto Segundo El parámetro Primerdíasemana puede ser un número o una constante (veremos a lo largo de todo el curso. etc. trimestre.) Compone una fecha a partir de parámetros relativos Compone una hora a partir de parámetros relativos. Devuelve una fecha a partir de un dato que se le parezca y VB pueda obtener de él una fecha válida Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. semana. fecha[. Con esta función podemos averiguar el mes. una instrucción que le sacará mucho provecho Fecha = DateValue (12-07-96) Fecha = DateValue (12 07 96) Fecha =12/07/96 La función DatePart Merece estudio aparte. Por ejemplo.35 Minute Second DateAdd DateDiff DatePart DateSerial TimeSerial DateValue Obtiene el minuto a partir de una hora. día del año. Añade un intervalo de tiempo a una fecha Obtiene el intervalo de tiempo entre dos fechas Devuelve una parte de una fecha(semana. La sintaxis de esta función es : VariableNumérica = DatePart (Intervalo. para obtener el día de hoy solamente: Día = Day (Now) Día será un número El día de la semana lo obtendríamos Diasemana = WeekDay (Now) Diasemana será un número DateValue. que VB usa constantes que son palabras reservadas por VB que generalmente comienzan por vb) que indica que día es para nosotros el primero de la semana Constante vbSunday vbMonday Número 1 2 Primer día de la semana Domingo (predeterminado) Lunes Carrera: Computación e Informática Curso: Visual Basic . etc. trimestre. Obtiene el segundo a partir de una hora. primerdíasemana[.

pero solamente vale para el día de hoy. vbMonday. fecha en la que se ha escrito este texto. "22/9/98".Predeterminado) variable = DatePart ("w". y el resultado sigue siendo 39. variable = DatePart("ww". vbFirstFourDays) Estas tres formas de expresar la fecha funcionan perfectamente. Permite establecer el Formato de esa cadena. Función FORMAT Esta función permite presentar cadenas numéricas o fechas de una determinada forma. Now) variable = DatePart ("y". vbFirstFourDays) Con las comillas dobles puede incluso no poner el año. Now. La sintaxis que presenta es : Carrera: Computación e Informática Curso: Visual Basic . Now) Variable = 10 Variable = 3 Variable = 22 Variable = 265 Variable = 3 (Martes. y usar el formato especificado para el país : variable = DatePart("ww". Now) variable = DatePart ("w". Puede expresar la fecha metiéndola entre dos signos #. pues el primer día de la semana era el domingo . vbMonday. Cuidado con como se escriben las fechas. Now) variable = DatePart ("q". vbFirstFourDays) Pero lo mas fácil para el formato de fecha usado en España es meter la fecha entre comillas dobles. y tomando como referencia para todos los ejemplos el día 22 de Septiembre de 1998. Now. Si recurre a la ayuda de VB acerca de esta función se va a enterar muy poco de lo que puede dar de sí. que indica el número de la semana dentro del año. Ejemplo : variable = DatePart("ww". Now) variable = DatePart ("d". (Now = 22/09/1998). Una posibilidad es la usada en los ejemplos.36 vbTuesday vbWednesday vbThursday vbFriday vbSaturday 3 4 5 6 7 Martes Miércoles Jueves Viernes Sábado Para el parámetro primerasemanaaño podemos emplear uno de los siguientes números o constantes: Constante vbFirstJan1 vbFirstFourDays vbFirstFullWeek Valor 1 2 3 Descripción Empieza con la semana en la que se encuentra el 1 de enero (predeterminado). vbMonday) Variable = 2 (Primer día semana = lunes) variable = DatePart ("ww". Por ejemplo. tenemos : Variable = DatePart (“m”. Empieza con la primera semana que tenga al menos cuatro días en el año nuevo. pero en ese caso debe estar expresada en el formato mm/dd/yy (mes/día/año). "22/9". vbFirstFourDays) Variable = 39. el año en curso. #9/22/98#. vbMonday. (Standard ISO 8086) Empieza con la primera semana contenida completamente en el año nuevo. vbMonday. al igual que cuando lo hacíamos con Now. En este caso le pone por defecto.

23E+06) Para fechas (Observe que usamos el ejemplo Format(Now.234. no un punto. siempre entre comillas dobles : General Number Currency Fixed Standard Percent Scientific . Para poner los números separados por millares : Variable = Format(1234567. eso si.###. Las posibilidades de Format llegan también al campo de las cadenas numéricas.567 (Cada carácter # indica que ahí va un número.456. Primero para números Observe que usamos la expresión Variable = Format (1234567.00%) Usa notación científica (1.567.456 Pts Variable = 123. formato[.00 Veamos ahora con un poco mas de conocimiento la sintaxis de Format Variable = Format (expresión[. "Standard") Variable = 123. Centrémonos mas en el parámetro Formato.00) Multiplica el número por cien y lo presenta cono porcentaje(123456700. primerasemanadelaño]]]) FechadeHoy = Format (Now. Si hubiésemos puesto la expresión FechadeHoy = Format (Now. firstdayofweek[. “Formato”) siendo Now la fecha y hora actual (21/07/98 a las 22:16:00 ) General Date Long Date Medium Date Short Date yyyy-mm-dd yy-mm-dd Long Time Medium Time Short Time hh :mm :ss hh :mm 21/07/98 22:16:00 martes 21 de julio de 1998 21-jul-98 21/07/98 1998-05-21 98-07-21 22:19:53 10:20 PM 22:20 22 :21 :29 22 :21 Carrera: Computación e Informática Curso: Visual Basic . No lo usará con frecuencia. Veamos los principales. "Currency") Variable = Format(123456. Muestra el número tal como lo tecleó En formato de la moneda de su sistema operativo Sin separador de millar y dos decimales (1234567. Por ejemplo la cifra 123456 se transformará en las siguientes expresiones.###") Variable = 1. formato[. "##.”Formato”) para todos los ejemplos de números. “yyyy-mm-dd”) la variable FechadeHoy tendrá el valor 1998-05-21.00) Con separador de millares y dos decimales (1. que se refiere al día 21 de mayo de 1998.37 Format(expresión[.234. según como empleemos la función Format Variable = Format(123456. aunque esto depende del idioma que esté usando) Puede poner una de estas expresiones. firstweekofyear]]]) No se complique la vida con el tema del primer día de la semana ni la primera semana del año. primerdíadesemana[. El separador debe ser una coma. “dd/mm/yy”) . Puede tomar muchos valores. según el formato recomendado por la norma ISO-8601 para la presentación de fechas. la variable FechadeHoy contendría el valor 21/05/98 referido al día citado.

0) pondrá el fondo del formulario activo de color rojo. un formulario MDI tiene las siguiente propiedades : AutoShowChildren. Una vez que tiene un formulario MDI puede introducir tantos formularios hijo como desee. y tenga los tres documentos en la pantalla al mismo tiempo. ActiveForm Mediante esta propiedad podemos conocer el formulario activo dentro de una aplicación de documentos múltiples.38 CAPITULO V Formularios Múltiples Lo que se va a explicar en este capítulo le será bastante familiar aunque nunca haya reparado en ello. y puede actuar sobre uno u otro simplemente eligiendo el deseado mediante el mecanismo que le proporciona su procesador de textos. lo primero que hay que hacer es introducir en ella un formulario MDI. En esta Guía del Estudiante se usarán indistintamente una u otra denominación. comienza a escribir otro documento. y antes de terminar de escribir esa carta. el formulario cargado se verá inmediatamente. Si está a False. Muestra los formularios hijo nada mas cargarlos. ActiveForm. Carrera: Computación e Informática Curso: Visual Basic .Backcolor = RGB (255. bien en ventanas escalonadas. En una aplicación MDI pueden coexistir formularios hijo y formularios normales.0. Propiedades de los formularios MDI Aparte de las propiedades de un formulario normal. La única diferencia entre un formulario normal y un formulario Hijo es que éste tiene la propiedad MDIChild a True. Al formulario padre le denominamos Formulario MDI. bien en ventanas en forma de mosaico. Para introducirlo.caption MiVariable contendrá el Caption (Barra de Titulo) del formulario activo. o simplemente tapando unas a otras completamente. y posiblemente otro. Solamente se puede tener un formulario MDI en una aplicación. a este tipo de aplicaciones las denominamos MDI Para crear una aplicación MDI debe hacerse mediante un Formulario Padre al que se le añaden tantos Formularios Hijo como documentos tengamos. Posiblemente haya utilizado un procesador de texto en el que está escribiendo una carta. será necesario ejecutar la sentencia NombreFormularioHijo. basta con hacer click en Insertar | Formulario MDI de la barra de menú. (El formulario activo es aquel que tiene el foco) MiVariable = ActiveForm. Los tres documentos están en su procesador de textos. la palabra Formulario MDI del submenú Insertar queda deshabilitada. y a los formularios hijo en Visual Basic se les denomina formularios MDIChild. En programación. Puede observar que una vez que ha introducido uno. Para realizar una aplicación MDI.Show para presentarlo. Para que un formulario sea formulario hijo basta con poner a True su propiedad MDIChild. Esta propiedad puede verse si se carga un formulario hijo mediante la sentencia : Load NombreFormularioHijo Si la propiedad AutoShowChildren está a True. (cascada). Este sistema no es ni mas ni menos que una interface de documentos múltiples.

Pongámosle un nombre y ya está creada la clase. Cuando existe la línea de Menú en un Formulario MDI y en el Formulario Hijo que introduzcamos en él. la propiedad MDIChild. Puede ser la réplica de un Formulario. A esas “fotocopias” de un formulario las llamamos Instancias. que lo seguimos manteniendo intacto para volver a copiarlo si fuese necesario. En segundo caso. Lo que introducimos en la aplicación son precisamente esas “fotocopias”. para poder introducir cualquier control (TextBox. Barra de herramientas montada sobre un Picture.. y por lo tanto sus Instancias saldrán igualmente con esa propiedad a True. Línea de Menú. a la barra de título se le añadirá la barra de Título del Formulario Hijo entre paréntesis. cada una con un documento. Título. Un objeto Visual Basic puede ser un Formulario. aparece a False). la línea de menú del Formulario MDI se sustituye por la línea de menú del Formulario Hijo introducido. (Caso del procesador de texto que tiene varias ventanas de texto.) Puede también darse el caso de introducir un número indeterminado de ventanas iguales para realizar varias veces la misma función. Label. Lo que desconocemos a priori es el número de documentos que vamos a editar) Para el primer caso. Este sería el caso de una aplicación con varias pantallas. Le podemos poner un Menú y cambiar a nuestro antojo todas sus propiedades. Left o Right) El control Picture puede trabajar como contenedor de otros controles. pero no el original. La Instancia es la réplica de una clase. será necesario crear cada una de las ventanas. todas ellas colocadas sobre una pantalla fija (Formulario MDI) del que se aprovecha quizás alguna parte como parte común de toda la aplicación (Menú. cuando las dimensiones de áste superan las de aquel. (Excepto la propiedad Visible. Para hacer que un Formulario sea un formulario hijo basta con ponerle su propiedad MDIChild a True. ¿podemos saber como se crea una Clase de un formulario ? O dicho de manera mas coloquial. realizar tantas “fotocopias” de ese formulario como ventanas necesitemos. y sobre el. etc. Pero si el Formulario Hijo insertado dentro de él está maximizado (ocupa toda la extensión del Formulario MDI). Cuando se varía una propiedad de una Instancia. un control. Entre ellas.39 ScrollBars Hace que el Formulario MDI (padre) muestre barras de Scroll para presentar en toda su extensión a un formulario hijo. e introducirlas y quitarlas según pida la aplicación. Bottom. bastará con crear un formulario hijo con todas las partes necesarias para su correcto funcionamiento. Con el formulario vacío que tengamos en el proyecto (Insertemos un Formulario si fuese necesario) pongámosle todos los controles que deseemos. pero sobre ventanas diferentes. Data. que siempre. (Picture. Aparte de estas propiedades que diferencian un Formulario MDI de un Formulario normal. Supongamos que ese nombre es FormularioHijo Carrera: Computación e Informática Curso: Visual Basic ..) será necesario introducir un control Picture. Puede preparar los formularios hijo uno a uno e introducirlos dentro del formulario MDI según las necesidades de la aplicación. Por lo tanto. Si vamos a introducir las Instancias de ese Formulario en un Formulario MDI esa propiedad debe estar a True. Inserción de Controles Solamente podrán introducirse en un formulario MDI aquellos controles que tengan la propiedad Align. poner los controles que se necesiten. y luego. La Barra de Título del Formulario MDI se conserva siempre. CommandButton . ¿Cómo se crea un Formulario para poder hacer varias “fotocopias” de él ? La respuesta es obligatoriamente mas sencilla que la teoría. En realidad una Clase es la definición de un objeto Visual Basic. Al original le llamaremos Clase. Después de toda esta teoría. La Instancia lleva las mismas Propiedades que la clase. de un control o de otro objeto. DBGrid) y solo permiten que se presenten con alineación a uno de los lados del Formulario (Top. Se dice que hereda las propiedades. no se altera el valor de esa propiedad en la Clase ni en ninguna de las restantes Instancias. por defecto. los Formularios MDI presentan otras particularidades. un objeto de acceso a datos. Barra de Título.

e. Ese procedimiento quedará de la siguiente forma : Static contador As Integer Dim MiVentana As New FormularioHijo MiVentana. Por lo tanto no podemos nombrarlas con ese nombre. (Vea Ambito de las Variables) La sentencia a utilizar para la declaración será Dim. Sería prudente distinguir un formulario de otro mediante su Caption. si el formulario es un documento de texto. Una vez declarada como variable puede hacerla igual a un objeto existente que servirá de modelo (Una Clase) que estará definida por un nombre: (P. Para ello podemos crear un contador en el mismo procedimiento en el que creamos una nueva instancia. ActiveForm nos va a indicar cual es el formulario que está actualmente activo. Para declarar que una variable es un Formulario basta con declararla de la siguiente forma : Dim MiVentana As Form Esta variable debe declararla en sitio adecuado para su aplicación. caso de introducirse varios formularios hijo iguales. sino que también se carga en la memoria si no estuviese previamente cargado.40 Para crear ahora Instancias de ese Formulario podemos hacerlo de dos formas : Declarar una variable tipo Objeto. independientemente de como esté esa propiedad. Si el código donde vamos a nombrar ese formulario está fuera de él (P. es decir mediante su barra de título. Documento 1. y el ámbito de esa variable objeto será el mismo que para cualquier tipo de variable. El Caption es una propiedad y por lo tanto todas las instancias heredan el Caption de la Clase. Un formulario está activo cuando estamos trabajando sobre él. En realidad mediante el método Show un formulario no solamente se muestra. En ese momento tiene el foco. Documento 3. Para cargarlo debemos emplear la sentencia Load MiVentana.Show Referencias a los Formularios. Private. Cada vez que hacemos una operación sobre una parte de un formulario éste se pondrá activo. en el Formulario Padre) deberemos referirnos al formulario hijo mediante ActiveForm. No se asuste. basta con ejecutar MiVentana. FormularioHijo) Set MiVentana = New FormularioHjo Podemos hacer las dos operaciones a un tiempo : declarar y crear la copia : Dim MiVentana As New FormularioHijo Una vez creado la instancia del formulario debemos cargarlo en el Formulario Padre.Caption = “Documento “ & Str (contador) MiVentana.Show. Documento 2.e. etc. hasta que activamos otro formulario. ActiveForm y Me Si queremos nombrar un Formulario Hijo dentro de una aplicación MDI el primer problema con el que nos encontramos es que todos los formularios hijo (Instancias de la misma Clase) tienen el mismo nombre. Para que se muestre. ya que la aplicación no sabría a cual de ellas nos referimos. y contiene el texto en un RichTextBox de nombre Carrera: Computación e Informática Curso: Visual Basic . Es sencillo reconocer cual es el formulario activo pues tiene su barra de título con el color vivo. Public o Global tal como se explicó para las variables. pero. y poner el Caption de cada nuevo Formulario siguiendo un orden numeral. dependiendo de como está la propiedad AutoShowChildren del Formulario Padre se mostrará o no se mostrará. Por ejemplo. Permanece activo desde que hacemos click con el ratón sobre cualquiera de sus partes. con lo que quedará cargado en la memoria. Por lo tanto podíamos habernos ahorrado la instrucción anterior para cargarlo Load MiVentana Es muy práctico poner un Caption distinto a cada formulario que se introduzca.

Arrange distribución Las ventanas o los iconos se pueden distribuir incluso si el objeto MDIForm está minimizado. ZOrder es un método que no solamente se puede emplear con formulario hijo. Los resultados son visibles cuando el objeto MDIForm se maximiza. NFMDI.SelBold = True ya que siempre estaremos seguro de que el Formulario Activo es aquel en el que acabamos de seleccionar el texto. si queremos hacer una operación con el texto desde un botón colocado en el formulario padre (poner en negrita el texto seleccionado). pues hay (o puede haber) varios. Carrera: Computación e Informática Curso: Visual Basic . Me siempre se refiere al formulario que contiene al procedimiento donde está esa palabra. Sintaxis NFH. Sintaxis donde NFMDI = Nombre del Formulario MDI distribución puede tomar los siguientes valores o constantes : Constante vbCascade vbTileHorizontal vbTileVertical VbArrangeIcons Valor 0 1 2 3 Descripción Dispone todos los formularios MDI secundarios no minimizados en cascada. Su nombre será (con los ejemplos anteriores) MiVentana.RTB1. Dispone los iconos de los formularios MDI minimizados. Si es 1 el formulario se coloca en el fondo del eje Z. Si el botón donde hemos puesto el botón no es el formulario padre. si tenemos un botón en el formulario hijo con la instrucción : Me. Podemos colocar un formulario hijo en la parte frontal del montón de formularios (para que se vea completamente) o llevarle a la posición mas atrás mediante el Método ZOrder. sino el hijo. Tampoco lo podemos nombrar con ActiveForm. Pero lea detenidamente la Ayuda de este método. tantos como documentos hayamos introducido. y pueden existir varios formularios con ese nombre. Pueden colocarse en cascada. tenemos un problema similar.ZOrder posición Donde NFH = Nombre del Formulario Hijo posición puede se 0 ó 1. No podemos por tanto nombrarlo con su nombre.SelBold = True Me se refiere concretamente a ese formulario. Dispone todos los formularios MDI secundarios no minimizados en mosaico vertical. Por lo tanto. mosaico horizontal. sino con cualquier instancia. Si es 0 (o si se omite) el formulario se coloca en primer plano. Puede emplearlo también con cualquier control. unos ocultan a los otros. Colocación de los Formularios Hijo Método ARRANGE Mediante el método Arrange podemos distribuir los formularios hijo dentro del formulario padre. La solución es nombrarle mediante Me. mosaico vertical o como iconos. ya que esta propiedad corresponde al Formulario Padre. Dispone todos los formularios MDI secundarios no minimizados en mosaico horizontal. Mucho mas si los formularios están maximizados. Posición de los Formularios en el Eje Z Método ZOrder Cuando tenemos varios formularios hijo. haríamos lo siguiente : ActiveForm.RTB1. ya que no todos los controles la admiten.41 RTB1.

con lo que se puede conseguir una cantidad de palabras tan grande como necesitemos. Si se pretende activar para mas de una dará un error). y sobre cada palabra. En las figuras anteriores pueden verse tres formas distintas de ver el mismo Menú. Pero en las palabras que sirven para desplegar un menú no tiene sentido que se ponga ningún código en su procedimiento. desplegado en su totalidad. Cada palabra de la Barra de Menú lleva anexo un único procedimiento. En la tercera puede verse el Menú desplegable de la palabra Archivo de la Barra de Menú. Sobre cada una de estas puede a su vez desplegarse otro conjunto de palabras. en un menú desplegable. Para cada palabra se produce el evento click. esa palabra que tiene activada la propiedad WindowList mostrará al hacer click sobre ella. Será en las palabras finales donde se colocará el código correspondiente. puede desplegarse un Menú desplegable con mas palabras. La Barra de Menú es un componente de un Formulario. etc.Propiedad WindowList Al explicar el Editor de menús casi se pasó por alto una propiedad del menú : WindowList. La Barra de Menú puede tener tantas palabras como se desee. En la primera figura el Menú está sin desplegar. donde pueden verse distintos nombres. el Caption (Barra de Título) de todos los formularios hijo cargados en ese instante en la aplicación. Puede apreciarse en este menú desplegable una línea que separa las palabras Guardar Como y SALIR. ya que están ahí justamente para desplegar otras palabras. CAPITULO VI Diseño de Menú El Menú o Barra de Menú es la segunda línea de cualquier ventana Windows. En la segunda figura puede verse un árbol de Menú largo.42 Mostrar los Formularios existentes mediante el Menú -. Esta línea separadora es muy práctica para separar dos temas distintos Carrera: Computación e Informática Curso: Visual Basic . Cuando se activa esta propiedad (Puede activarse para una sola palabra del menú. Pueden estar incluso minimizados. que se ejecutará al hacer click sobre la palabra.

Para introducir estas propiedades basta con teclearlas directamente en cada una de las casillas al efecto del cuadro del editor de menús. Si se quita la marca de esa casilla. permite introducir un número de contexto para la ayuda de Windows. Solamente puede existir una palabra en un menú con esta propiedad activada. Existen otras propiedades aparte del Caption y Name que se introducen directamente en las casillas al efecto. puede hacerse bien con el cursor del ratón. Para crear un menú debe usarse el Editor de Menú. Al hacer click sobre esta palabra. basta con pulsar ENTER. Tan distintos como las operaciones de Abrir y Guardar respecto a la última orden del menú desplegable que es SALIR de la aplicación. basta con citar por su nombre a esa palabra (por su Name. esa palabra aparecerá por defecto deshabilitada. Puede cambiarse en WindowList Indica si esa palabra es la que va a mostrar todos los formularios abiertos en una aplicación de documentos múltiples (MDI).43 dentro de un Menú desplegable. Habilitado. por lo que esta propiedad puede usarse para deshabilitar ciertas funciones de la aplicación. Como su nombre indica. (En principio vacío) Cada palabra del menú tiene su Caption (La palabra que aparece en el menú). su Name (Nombre). Para colocar el cursor de escritura en una u otra casilla. Esta propiedad no puede variarse en tiempo de ejecución. Le aparecerá el siguiente cuadro. Para cambiar una de estas propiedades en tiempo de ejecución. dependiendo de la evolución de la propia aplicación. Para pasar a la siguiente línea de edición (crear una nueva palabra). bien con el tabulador. La presentación en el menú cuando está deshabilitada es con color pálido. tiempo de ejecución. Visible. que sea visible o no lo sea. Enabled. y puede tener Index (si existen varias palabras con el mismo Name). HelpContextID Igual que esta propiedad en el resto de los controles. no por su Caption). e igualar a True o False su valor : Carrera: Computación e Informática Curso: Visual Basic . Esta propiedad puede leerse y cambiarse en tiempo de ejecución. se desplegará un submenú con todos los Caption de los Formularios hijo abiertos en ese momento. que se encuentra en la Barra de Menú de VB en Herramientas | Editor de menús.

44 nmuDocumentos. seguido del Caption de esa palabra. &Archivo) están completamente a la izquierda de la ventana. hay que hacer click en el botón en forma de flecha a la derecha que está sobre la ventana de edición: Situandonos sobre una de las líneas ya editadas. Carrera: Computación e Informática Curso: Visual Basic . Esta propiedad admite varias combinaciones de teclas para acceder al procedimiento click de esa palabra sin necesidad de usar el ratón. Puede tener los valores 0 (Predeterminado) Ninguno. No está disponible en tiempo de ejecución. Las palabras que están completamente a la izquierda son las que figurarán en la barra de menú de forma permanente. Documentos. El menú editado con los datos de la figura anterior tendrá esta forma en tiempo de ejecución : Observe que tiene cuatro palabras en la línea superior. 1 Izquierda. Como es lógico. 2 Medio.recomiendo no usar acentos e los Names de VB). La solución puede ser cualquiera. Otras propiedades Shortcut Atajo. Las que están separadas (tabuladas) corresponden a las que aparecerán en los menús desplegables. y las demás están separadas de la parte izquierda por unos guiones. El menú no se muestra en la barra de menús cuando el objeto está activo. El menú se muestra en medio de la barra de menús cuando el objeto está activo. Las combinaciones de teclas posibles se muestran haciendo click en la flecha hacia abajo que tiene esa casilla. en la parte de abajo donde están todos los Caption de las palabras del menú. y por otra. por una parte. Para elegir una de estas combinaciones.Hay otra que no se vé. que ese nombre corresponde a una de las palabras del menú. El autor de estos apuntes propone poner las letras mnu (o menu . a que palabra se refiere. un menú desplegable debe colgar de una palabra de las de la barra de menú. 3 Derecha. al lado de la palabra (Véase figura siguiente.Visible = False El nombre usado para nombrar a una de las palabras del menú puede ser cualquiera. Ayuda . Sin embargo es prudente usar un nombre que nos pueda identificar. y haciendo click sobre el botón con flecha hacia la izquierda. El menú se muestra a la derecha de la barra de menús cuando el objeto está activo. y que “colgando” de la primera aparece un menú desplegable. basta con hacer click sobre la línea que la contiene. El menú se muestra a la izquierda de la barra de menús cuando el objeto está activo. Esta combinación de teclas aparecerá en el menú. SALIR Ctrl + X) NegotiatePosition. Se desplegará una lista con todas ellas. quitamos la tabulación. Observará que algunas de ellas (&Edicion. Establece un valor que determina si los controles Menu de nivel superior se muestran en la barra de menús mientras un objeto vinculado o incrustado de un formulario está activo y mostrando sus menús. Para tabular las palabras. Para conseguir un menú desplegable fíjese en la figura del Editor. La palabra de la que cuelga el submenú es la palabra sin tabular inmediatamente anterior.

x. Para crear un menú emergente o PopUpMenu es necesario tener en el menú de ese formulario una palabra de la que se despliegue un submenú con las mismas palabras que queremos que aparezcan en el PopUpMenu. como se describe a continuación : Constante (posición) Valor Descripción Carrera: Computación e Informática Curso: Visual Basic . Un valor o constante que especifica la posición y el comportamiento del menú emergente. negrita Donde NombreFormulario es el nombre del formulario donde presentamos el PopUpMenu. indics. de la que se desplegaba el Submenú Copiar. Parámetro opcional. Podemos hacer varios niveles de submenús a base de introducir varias tabulaciones. POPUP MENÚS Un PopUpMenú o Menú Emergente es un menú que despliega en cualquier punto de un Formulario (MDI o normal) con varias opciones. Una de ellas es el carácter & que está delante de los Caption de Archivo y Edición. existía una palabra Edición. Justamente la letra que está subrayada en la palabra del menú. Quedan un par de cosas. Puede ir en el medio de la palabra. las palabras tenían el siguiente Caption y Name : Caption Edición Copiar Cortar Pegar Name mnuEdicion mnuCopiar mnuCortar mnuPegar Tabulada NO SI SI SI Recuerde que las palabras del menú que estaban tabuladas son las que aparecían en el menú desplegable. Indics. Cortar y Pegar. Este método pesenta un menú emergente en un objeto MDIForm o Form en la posición actual del mouse o en las coordenadas especificadas. Por ejemplo. El editor de menús solamente le permite el guión en una palabra de menú desplegable (Tabulada). Otra cosa. El carácter & no tiene porqué ir precisamente al comienzo de la palabra. Para ello utilizaremos el Método PopupMenu. Es normal en los procesadores de texto que se obtenga un menú emergente pulsando el botón derecho del ratón. Cortar y Pegar. Puede omitirse. No se olvide de poner el Name incluso para este guión.PopupMenu nombremenú. Al comienzo de este capítulo puede ver un ejemplo de ello. se logra introduciendo como Caption un guión ( . Este parámetro es requerido. Esta línea. Esas mismas serán las que aparezcan en el PopUpMenu. La palabra del menú a que se refiere Nombremenú debe tener al menos un submenú. que solamente tiene efectos estéticos. y.45 Los botones con flecha hacia arriba o abajo nos permiten variar el orden de las líneas ya editadas. Si analizamos la edición realizada. Nombremenú. Este carácter nos permite acceder al procedimiento click de esa palabra pulsando la tecla Alt + la tecla correspondiente a la letra que está detrás del carácter &. Puede verse en el menú desplegado de la figura anterior una línea entre Guardar Como y SALIR. Es el Name de la palabra del menú de donde cuelga el menú desplegable. De esta forma se subrayará una letra intermedia. en el menú que hemos editado como ejemplo anteriormente. La sintaxis de este método es la siguiente : NombreFormulario. donde aparecen las tres palabras mágicas de Copiar.).

La forma mas habitual de presentar un menú emergente es mediante el botón derecho del ratón. Iríamos al procedimiento MouseUp del Formulario y escribiríamos : Private Sub Form_MouseUp(Button As Integer. Es decir. X. Además. Ahora es posible que le cueste un poco de trabajo. Eso sí. Las unidades de medida de las coordenadas x e y se definen mediante la propiedad ScaleMode. . y las coordenadas x e y (el menú emergente aparecerá donde esté situado el cursor del ratón). no se verán en el menú emergente. Ponga la propiedad Visible del elemento del menú desde el que se va a desplegar el submenú a False. Pero este ejercicio lo va a repetir con casi todas las aplicaciones que realice en su vida profesional. (Vea mas atrás). por lo tanto. sólo puede presentarse un menú emergente al mismo tiempo. Parámetro opcional que especifica el nombre de un control menú del menú emergente para presentar su título en negrita. vbPopupMenuRightButton 2 Para combinar la los valores de indics de posición y comportamiento basta con sumar los valores. No puede activar la propiedad WindowList en un elemento que forma parte de un menú emergente. con un menú que diga Copiar | Cortar | Pegar donde pueda utilizar el portapapeles. Observe también que las comas separadoras de los parámetros hay que colocarlas. las llamadas a este método se ignoran si el menú emergente está presentado actualmente o si un menú desplegable está abierto. Shift As Integer. Ejercicio propuesto: un editor de texto. que colgaban en el menú de la palabra Edición. según las necesidades de su aplicación. Si queremos presentar un menú emergente es necesario tener ese menú en el menú del formulario. No se verá ya en la barra de menú ni esa palabra ni el submenú que de ella se despliega. Puede aprovechar esta circunstancia para hacer menús emergentes con mas o menos elementos. Si les pone esa propiedad a False. negrita. Copiar y Pegar del ejemplo anterior. ningún control del menú aparece en negrita. y Parámetro(s) opcionales que especifican las coordenadas x e y donde va a aparecer el menú emergente. Concretamente en el editor Word que estoy utilizando para escribir estos apuntes ocurre cuando se levanta el botón derecho del ratón. Cuando se presenta un menú emergente. No es problema. El menú emergente se centra en x. aparecerá donde esté el puntero del mouse. mnuCopiar End If End Sub Observe que se ha omitido el nombre del Formulario (Opcional). Queremos también que la palabra Copiar salga resaltada en negrita. Imaginemos que queremos presentar en un menú emergente las palabras Cortar. El problema puede ser que no queramos que esté en la barra de menú. X As Single. con la condición de que Button=2. También puede poner la propiedad Enabled a False si así lo precisa. El lado derecho del menú se sitúa en x. las palabras del submenú deben tener la propiedad Visible = True. Si se omite. Los elementos del menú emergente reaccionan a los clic del mouse cuando se usen los botones primario o secundario. Carrera: Computación e Informática Curso: Visual Basic . . Valor 0 Descripción (Predeterminado) Los elementos del menú emergente sólo reaccionan a los clic del mouse cuando se use el botón primario del mouse. el código que sigue a la llamada al método PopupMenu no se ejecuta hasta que el usuario elige un comando del menú (en cuyo caso se ejecuta antes el código del procedimiento de evento Click) o cancela el menú. en el evento MouseUp. Si no se especifican. . el parámetro indics. Y As Single) If Button = 2 Then PopupMenu mnuEdicion.46 vbPopupMenuLeftAlign vbPopupMenuCenterAlign 4 vbPopupMenuRightAlign 8 Constante (comportamiento) vbPopupMenuLeftButton 0 (Predeterminado) El lado izquierdo del menú se sitúa en x.

Dependiendo de donde se haya insertado el Procedimiento (Formulario o Módulo). y esta tarea se repite muchas veces en ese programa. Para crear un Procedimiento basta con hacer click en la Barra de Menú de VB en Insertar | Procedimiento.). podemos. Si queremos realizar una determinada tarea en un programa. puede citarse solamente por su nombre.. Form_Load.. Observará que la palabra Procedimiento del Menú desplegable está deshabilitada si no está abierta ninguna ventana de código. En tipo debe elegir la opción Procedimiento (Veremos mas adelante la Función y en otro capítulo las opciones Propiedad y Evento) y en el Ambito debe elegir Public o Private dependiendo del ámbito que quiera darle : Public. Puede citarse también por el nombre del módulo seguido por el nombre del procedimiento. Uno a cada uno de sus eventos. creando con él un Procedimiento. Podemos hacer otra cosa mas práctica y elegante. con el consiguiente incremento de trabajo y del volumen de la aplicación. abra la ventana de código del Formulario o Módulo donde quiere insertar el nuevo Procedimiento. Escribir ese código una sola vez. Un procedimiento es el código que asociamos a un evento de un control (CommandButton_Click. Una vez hecho Click en Insertar | Procedimiento le aparecerá esta ventana : En esta ventana debe teclear el nombre que quiere dar al Procedimiento. . muchos procedimientos asociados. Un control puede tener por lo tanto. Si el procedimiento tiene por nombre NombreProcedimiento y se ha insertado en el Módulo1 puede citarse de las dos formas siguientes en cualquier parte del programa: NombreProcedimiento Carrera: Computación e Informática Curso: Visual Basic . Este Procedimiento tendrá un nombre. Un procedimiento puede insertarse en un Módulo o en Formulario.47 CAPITULO VII Funciones y procedimientos Procedimientos Un Procedimiento en Visual Basic es un trozo de código que realiza una determinada tarea. Esto nos llevaría a escribir líneas y líneas repetidas en nuestras aplicaciones. y cada vez que queramos que se ejecute ese código bastará con nombrar por ese nombre al Procedimiento. separando ambos por un punto. Para habilitarla. Se podrá acceder a él desde cualquier Formulario o Módulo del programa. repetir el código tantas veces como sea necesario en los puntos del programa que así lo pidan. por ejemplo. debe citarse de la siguiente forma : Si se ha insertado en un Módulo.

El código de los Procedimientos se guarda en el General del Formulario o Módulo donde se han insertado : Para llamar a un procedimiento desde cualquier parte del código basta con escribir en una línea el nombre del procedimiento. y creo que es una buena razón. sólo se podrá acceder a ese Procedimiento desde el Formulario o Módulo donde se haya insertado. Me parece muy bien. separados por un punto. Los datos que se puedan generar en un procedimiento debe extraerlos de ese procedimiento mediante variables. Puede ahorrarnos un poco de código.48 Modulo1. se lleva a ese procedimiento la condición de tratamiento de errores que existe en el procedimiento desde el que se llamó. Pero no existe otra razón para ello. aunque Visual Basic lo admite. Verá que con las funciones es distinto. La caja de opción (Check) que pone Todas las variables locales como estáticas nos va a poner todas las variables declaradas dentro del procedimiento como estáticas (No ponen a cero o nulo su valor cuando salimos y volvemos a entrar en ese procedimiento).NombreProcedimiento Si se ha insertado en un Formulario. Si elige este ámbito. Por ejemplo: Private Sub Boton1_Click() On Error GoTo RutErr Lineas de código de este procedimiento „Llamada al Procedimiento Calcula_Dietas Carrera: Computación e Informática Curso: Visual Basic . siempre se enteran mejor de que están llamando a un procedimiento. Desde otro Formulario o Módulo. Algunos programadores me dicen que al poner Call. seguido del nombre del procedimiento. Private. desde ese Formulario basta con citarle por su nombre. hay que citarlo mediante el nombre del Formulario donde está insertado. fpublico Muchos programadores anteponen la palabra Call Call fpublico No hace falta poner Call. Cuando se llama a un procedimiento.

y que el primero será una cadena de caracteres y el segundo un integer. inicie este procedimiento con una instrucción que anule la condición de tratamiento de errores: Public Sub Calcula_Dietas() On Error Goto 0 ……………. Para llamar a una Función son válidos igualmente los criterios expuestos para los Procedimientos en cuanto a la sentencia Call. No tienen porqué coincidir con los nombres que tengan las variables que contienen esos valores en otras partes del programa. Si se declara Privada. ByVal La función MiFuncion sabe que debe recibir dos parámetros. . Para insertar una Función se procede de igual forma que para un Procedimiento. Parámetros de una Función Se dijo anteriormente que a una Función se le pasan uno o varios parámetros con los que va a realizar alguna operación.49 Calcula_Dietas Mas líneas de código de este procedimiento RutErr: End Sub Si al ejecutarse el procedimiento Calcula_Dietas ocurre un error. de que tipo son (String. Integer. Los nombres Variable1 y Variable2 son los nombres que usa la Función internamente. solamente en el Formulario o Módulo donde se haya insertado. Este resultado puede leerse desde otra parte de la aplicación en una variable que tienen el mismo nombre que la función.) y cómo se le van a pasar (ByVal. al detectarse ese error interceptable. El ámbito de una Función es el mismo que el un Procedimiento. En realidad es un procedimiento al que le pasamos una o varios parámetros con los que realizará una operación (cualquier operación. Al declarar la Función. el programa salta a ejecutar la línea RutErr del procedimiento Boton1_Click. Este resultado se le introduce en una variable que tiene el mismo nombre que la función. como verá un poco más adelante. y que se pare la ejecución del programa en la línea del procedimiento Calcula_Dietas en la que se produjo el error. Ens Sub Funciones Una función es una forma especial de realizar un procedimiento.. Para evitar que suceda eso. no tiene porqué ser matemática) y obtendrá un resultado de esos parámetros. ya que la declaración de la función lleva implícito que exista una variable con ese nombre. ByRef. Boolean. Carrera: Computación e Informática Curso: Visual Basic . Esta variable no hace falta declararla. Si se declara Pública puede usarse en toda la aplicación. Esto puede producirse serios problemas a la hora de depurar su programa. hay que decirle el nombre de los parámetros que se le van a pasar. Esto hay que introducírselo en la propia declaración Public Function MiFuncion(ByVal Variable2 as Integer) End Function Variable1 as String. pero marcando el botón de opción Tipo Función en la caja de diálogo de la figura anterior. La forma de obtener los datos de la función es llamar directamente a esa función. ParamArray). Una función siempre da un resultado..

Veamos esto de una forma muy sencilla : Vamos a hacer una función que multiplica dos números. Visual Basic le invitará a introducir los parámetros citándole su nombre. En un formulario. y sobre todo. Val(Text2. Pero dentro de la función vamos a cambiar uno de esos números.Caption = MiFuncion(Text1.Caption = Left(Text1. Insertemos dos Carrera: Computación e Informática Curso: Visual Basic . Esto quiere significa que le estamos diciendo a la función que su resultado es un String. ese cambio se mantiene fuera de la función. ByVal Variable2 As Integer) As String MiFuncion = Left(Variable1. y un Label (Label1) donde va a ver el resultado. 14) y Label1 tomará como Caption la cadena Guía del Estud Pruebe esto con una pequeña aplicación.Text)) y funcionaría igual. Para llamar a la función. Bastaría con poner en el botón Command1_Click el siguiente código : Label1.50 Imaginemos que lo que va a hacer la función de este ejemplo es tomar una cadena de caracteres (Variable1) y obtener de ella otra cadena con los caracteres iniciales de la primera. Nuestra función quedará de la forma : Public Function MiFuncion(ByVal Variable1 as String. por ejemplo. y Por Referencia (ByRef). caso del ejemplo anterior. ByVal Variable2 as Integer En cualquier parte del programa podemos poner : Label1. le pasásemos los valores : Variable1 = Guía del Estudiante Variable2 = 14 Obtendríamos como resultado la cadena Guía del Estud Ya se habrá dado cuenta de que debemos emplear Left para obtener los caracteres iniciales de una cadena. Cuando esté tecleando el código. Si se pasa por referencia (ByRef). aunque lo cambie la función internamente. Val(Text2. ByVal Variable2 as Integer) As String MiFuncion =Left (Variable1. otro TextBox donde va a introducir el número de caracteres a tomar. sumándole 2. Una vez realizada la operación presentamos el valor de los dos factores en dos Label a ver si ha cambiado. ese cambio no se manifiesta fuera de ella. ponga un TextBox (Text1) donde va a introducir la cadena original. ByVal Variable1 as String. cuando se va a repetir en muchos procedimientos. basta con citarla por su nombre y ponerle los parámetros necesarios. Lógicamente.Text. (En nuestro ejemplo.) Donde MiFuncion es una variable que se ve en todo el ámbito de la función. Hemos visto que los parámetros de la función pueden pasarse Por Valor (ByVal). y la función cambia el valor de esa variable. Efectivamente.Caption = MiFuncion (Guía del Estudiante. Inserte una función (MiFuncion) en ese formulario : Private Sub Command1_Click() Label1. Variable2) End Function Puede pensar que para hacer esta cosa tan elemental no merece la pena hacer una función. Ponga un Botón de comando (Command1) donde llamará a la función.Text. ¿Cuál es la diferencia ? La diferencia es que si le pasa un valor por valor (ByVal) ese valor. una función debe introducirse cuando vaya a realizar un código un poco mas complejo. tantos caracteres como nos indique la segunda variable (Variable2) Si. Variable2) End Function (Observe que hemos añadido la expresión As String al final de la declaración.Text)) End Sub Public Function MiFuncion(ByVal Variable1 As String.

5. 2. En MultiplicaA le introducimos los datos Por Valor y en MultiplicaB por Referencia. En MultiplicaB cambia al valor pepe+2 Private Sub Command1_Click() Dim pepe As Integer Dim juan As Integer pepe = Val(Text1) juan = Val(Text2) Label1 = MultiplicaA(pepe. se pone en Lable2 el valor pepe Private Sub Command2_Click() Dim pepe As Integer Dim juan As Integer pepe = Val(Text1) juan = Val(Text2) Label1 = MultiplicaB(pepe. Vamos a ver que sucede cuando queremos realizar una suma. se pone en Label2 el valor pepe + 2 MultiplicaB x1 = x1 + 2 (se mantienen el cambio realizado en la función No queda ahí la cosa. ByRef X2 As Integer) As Integer x1 = x1 + 2 MultiplicaB = x1 * x2 End Function Las dos funciones son idénticas. 7. juan) Label2 = pepe Label3 = juan End Sub Tras esto. ByVal X2 As Integer) As Integer x1 = x1 + 2 MultiplicaA = x1 * x2 End Function Public Function MultiplicaB(ByRef X1 As Integer. 3.Caption = suma End Sub Private Sub Command2_Click() sumacifras 1. En principio parece que esto ya es para nota. En principio no sabemos cuantos productos va a comprar un cliente. Al final del procedimiento click de cada uno de ellos presentamos las dos variables que se pasan a la función en sendos Label. juan) Label2 = pepe Label3 = juan End Sub Tras esto. 4. por lo tanto no sabemos a priori cuantos parámetros le tenemos que pasar. MultiplicaA y MultiplicaB. Pongamos un Botón de Comando para multiplicarlo con MultiplicaA y otro con MultiplicaB. Public Function MultiplicaA(ByVal X1 As Integer. Un valor puede pasarse también por ParamArray. 6. Para pode pasar un número indeterminado de parámetros se los pasamos como PamArray : Public Sub sumacifras(ParamArray cifra()) Dim I As Integer Dim suma As Integer For I = LBound(cifra) To UBound(cifra) suma = suma + CInt(cifra(I)) Next I Label1. 8 End Sub Carrera: Computación e Informática Curso: Visual Basic . excepto en la forma de pasarle los parámetros. No es para tanto. La suma de los importes de varios productos de un ticket de compra.51 funciones. Cuando se usa MultiplicaA el valor de X1 (pepe en el CommandButton) se mantiene.

Declarar la variable de tipo Connection Carrera: Computación e Informática Curso: Visual Basic .Text = NOMBRE & " " & APE1 & " " & APE2 End If End Function Los parámetros los tomamos de tres TextBox (TB1. En un botón de comando ponemos este código : Private Sub Command1_Click() If TB3 <> "" Then SUMANOMBRES TB1. 2. TB2 End If End Sub Salir de una función La forma natural de salir de una función es cuando se ejecuta todo su código. Si no se hace así. Para hacer un enlace a un Manejador de Base de Datos debemos declarar una variable de tipo connection para eso debemos hacer lo siguiente: 1. APE1 As String. Pero puede que algún parámetro no exista siempre.5 Library) Nota : Esta referencia es necesaria para objetos de tipo Connection y recordset. Cuando uno o varios de los parámetros que se pasan a una función son opcionales. es necesario pasárselos todos. si se cumple una determinada condición. Por ejemplo. Se pueden pasar uno o mas parámetros como Optional.Text = NOMBRE & " " & APE1 Else TB4. Primero hacer la referencia al ADO (Nos vamos al menú Proyecto – Referencias y se marca la opción Microsoft Actives DataObjects 2. El segundo apellido se lo pasamos como Opcional. Las condiciones para opcionales es que ocupen los últimos lugares y que sean del tipo Variant los parámetros Hagamos un ejemplo en el que vamos a poner en un TextBox (TB4) el nombre y apellidos de una persona. Optional APE2 _ As Variant) „ Debemos detectar si se le ha pasado el parámetro opcional. se puede salir de la función mediante la sentencia Exit Function CAPITULO VIII Uso del ADO (ActiveX Data Object) OBJETO CONNECTION. Usamos para ello IsMissing If IsMissing (APE2) Then TB4.Un objeto Connection representa el enlace o la conexión a algún manejador de Base de Datos.52 Este código nos suma las cifras 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 La variable que se pasa con ParamArray debe ser Variant Existe otra forma de pasar parámetros : Optional Cuando se declara una función con un determinado número de parámetros. TB2 y TB3. Al final siempre tiene la sentencia End Function Se puede salir de una función antes de que termine. siendo este último el que es opcional. TB3 Else SUMANOMBRES TB1. TB2. La declaración de la función será : Public Function SUMANOMBRES(NOMBRE As String. VB nos dará un error. se le pueden pasar como Optional.

Declarar la ubicación de la variable de tipo connection cn.mdb” Donde el proveedor indica que la conexión será con Access y el data source indica la ubicación y el nombre de la base de datos Para SQL Server la conexión sería: "Provider=sqloledb.OLEDB..aqui se esta declarando la variable y a la vez se esta instanciando (Observen la palabra New) 4..uid=sa.database=Mibase.Recordset . tipo de bloqueo donde tabla o consulta sql es el nombre de la tabla o la consulta sql al cual queremos acceder cn es el nombre de la variable de tipo connection Tipo de cursor hace referencia a como va a trabajar la variable de tipo recordset Tipo de Bloqueo hace referencia a como se va a bloquear la tabla cuando un usuario acceda a la tabla Carrera: Computación e Informática Curso: Visual Basic .Un objeto Recordset representa los registros de una tabla o una consulta a la cual nosotros queremos acceder..Datasource=d:\micarpeta\Mibase.Connection .donde la cadena de conexión puede variar según a que manejador de base de datos queremos conectarnos Para Acces La cadena de conexión sería: "Provider=Microsoft.Se instancia con la palabra NEW .instanciar y abrir una variable de tipo connection 2. Si la variable no es instanciada no se podrá utilizar Nota.Connection .. Ejemplo: Para utilizar una variable de tipo recordset lo que vamos a hacer es lo siguiente 1. En este caso vamos a trabajar de la mano con la variable de tipo connection entonces lo primero es declarar.. Abrir la conexión cn.open “tabla o consulta sql”.CursorLocation = tipo de cursor Estos pueden ser adUseClient o adUseServer si se escoge aduseClient el cursor se creara al lado del cliente si se escoge adUseServer el cursor se creara al lado del servidor 5..53 Dim cn As ADODB. Declarar la ubicación de la variable de tipo Recordset rs.server=a1_10” Donde el proveedor indica que la conexión es a SQL el UID hace referencia al usuario del SQL ya que SQL server maneja usuarios y el usuario SA es el usuario por defecto. Para manipular la información de una tabla nosotros debemos declarar una variable de tipo recordset y esta variable contendrá todos los campos y registros de la tabla o la consulta a la cual queremos acceder. Database hace referencia a la base de datos a la cual se quiere conectar y server el nombre de la maquina donde se encuentra la base de Datos.4.Recordset .cn . Abrir la variable de tipo Recordset rs.Se instancia con la palabra NEW . Instanciar la variable de tipo connection Set cn = New ADODB. OBJETO RECORDSET.Connection .Jet.open “cadena de conexión” .CursorLocation = tipo de cursor estos pueden ser adUseClient o adUseServer si se escoge aduseClient el cursor se creara al lado del cliente si se escoge adUseServer el cursor se creara al lado del servidor 5. Declarar la variable de tipo Recordset Dim rs As ADODB. Instanciar la variable de tipo Recordset Set rs = New ADODB. Si la variable no es instanciada no se podrá utilizar Nota.0..tipo de cursor.donde cn es el nombre de la variable de tipo connection 3..Los pasos 2 y 3 se pueden simplificar en uno solo Dim cn As New ADODB.aqui se esta declarando la variable y a la vez se esta instanciando (Observen la palabra New) 4.Recordset .donde rs es el nombre de la variable de tipo recordset 3..Los pasos 2 y 3 se pueden simplificar en unos solo Dim rs As New ADODB.

pero no se verá ningún cambio ocurrido en la tabla.Open “Alumnos”. lo mejor es utilizar el cursor por defecto ya que es el que consume menos recursos. Dependiendo de cómo se configuren las propiedades del tipo de cursor del objeto Recordset. Los cursores son especialmente útiles para recuperar y examinar registros.Open "Alumnos". Permite movernos en cualquier sentido.cn. Con este modo se asegura la integridad de los datos. no así si existen ingresos de nuevos registros. Los registros serán actualizados en modo batch. Permite observar las modificaciones en los datos del Recordset .Open “Select * from alumnos where sueldo > 100”.adLockOptimistic . Permite movernos hacia delante y atrás. se puede recorrer y actualizar los registros. y después realizar operaciones basadas en dichos registros.Aquí se esta abriendo la tabla alumnos de la base de datos a la cual se conecto la variable cn de tipo de cursor fue adOpenDynamic y el tipo de bloqueo fue adLockOptimistic Este ejemplo se puede definir también de las siguiente maneras: rs. Mediante la utilización de estos bloqueos podremos controlar el tipo de acceso que le daremos a los demás usuarios cuando alguien ya se encuentre modificando el Recordset. ingreso o eliminación de datos del Recordset. Los tipos de bloqueos que podremos utilizar son los siguientes: Tipo de Bloqueo Valor adLockReadOnly 1 adLockPessimisti 2 c adLockOptimistic 3 Descripción Es el bloqueo por defecto y no permite modificar los registros de la tabla.adOpenDynamic .cn. La tabla sólo será bloqueada a los demás usuarios mientras se ejecute una operación Update. Por el contrario. Si lo que necesitamos es recorrer el Recordset en forma secuencial. Los cursores de la base de datos se comportan como punteros que permiten encontrar un elemento específico de un conjunto de registros.LockType = adLockOptimistic rs.2. Permite movernos en cualquier sentido. ésta queda bloqueada para los demás usuarios. agilizando las operaciones. adOpenDynamic adOpenStatic 2 3 Tipos de Bloqueo del Recordset Los bloqueos deben ser utilizados casi obligatoramente en Recordset que hacen referencia a bases de datos con alta concurrencia de usuarios. y que señala la forma en que se podrá recorrer este objeto. Una vez que alguien abre la tabla. adBatchOptimisti 4 c Ejemplo 1: rs.CursorType = adOpenDynamic Ejemplo 2: Rs.3 En este ejemplo se esta abriendo la variable rs con una consulta sql Para acceder a un determinado campo de la variable de tipo recordset se puede hacer de la siguiente manera: Carrera: Computación e Informática Curso: Visual Basic . viendo cualquier modificación. si necesitamos recorrer el Recordset de otra forma.2.cn. estos son los tipos de cursores existentes: Tipo de Cursor adOpenForwardOnly adOpenKeySet Valor 0 1 Descripción Es el cursor por defecto y nos permite recorrer el Recordset en forma secuencial. De esta forma la tabla se bloqueará durante mucho menos tiempo que con el método anterior.cn rs.3 o rs.54 Tipos de Cursor del Recordset Un cursor corresponde a un tipo de restricción aplicable al Recordset.Open "Alumnos".

después del último registro.Fields(1). Crea un arreglo con el contenido del Recordset. Método Descripción AddNew Crea un nuevo registro en el Recordset.55 Ejemplo: vamos a suponer que la variable rs tiene dos campos cod y nom Rs(0) Rs. Ejemplo: rs. Nos permite recorrer secuencialmente el Recordset. o hacia abajo si le indicamos uno negativo.: rs.. ya sea de creación o de modificación de registros.Move -2 Nos lleva al primer registro del Recorset. También lo podemos utilizar para movernos a una determinada posición. Ejemplo: rs. Sólo será insertado en la tabla cuando se aplique el método Update. BOF EOF RecordCount Propiedades y colecciones del Recordset Ahora que hemos visto los aspectos básicos de un Recordset entregaremos al lector una guía con los principales métodos asociados a este objeto. Permite movernos hacia arriba si le indicamos un número positivo.AbsolutePosition = 5 Es True cuando nos encontramos al principio del Recordset. Si quieres aprender más sobre este método visita. Nos lleva al último registro del Recordset. antes del primer registro. CancelUpdate Clone Close Delete GetRows Move MoveFirst MoveNext MoveLast Carrera: Computación e Informática Curso: Visual Basic .AddNew rs(0) = "Rodrigo" rs(1) = "Rohland" rs. Elimina del Recordset el registro que estemos utilizando en ese momento.harían referencia al campo nom Metodos del Recordset.Clone Cierra el objeto Recordset utilizado.Para mover la variable de tipo Recordset he aquí los métodos que pueden ser empleados: Método MoveFirst MoveLast MoveNext MovePrevious Descripción Posiciona el cursor en el primer registro Posiciona el cursor en el último registro Avanza el cursor en un registro Retrasa el cursor en un registro Las propiedades relacionadas con el movimiento a través del Recordset son las siguientes: Propiedad AbsolutePosition Descripción Nos indica el número del registro en el que nos encontramos. Es True cuando nos encontramos al final del Recordset.Update Cancela un proceso de actualización. avanzando un registro hacia adelante. Ejemplo: Set rs2 = rs. Ej. de forma que se pueda profundizar en el estudio y utilización del objeto Recordset.Fields(0) Rs!cod harían referencia al campo cod (va 0 por que es el índice del campo todos los índices empiezan con 0) Rs(1) . Crea una copia del objeto Recordset. Nos señala el número de registros que contiene el objeto Recordset.Rs. Rs!nom .

Text = RsEmpleados(5) Text7.Text = RsEmpleados(2) Combo1.Text = RsEmpleados(6) Text8..Recordset Sub datos() Text1. observándose los cambios ocurridos en los datos. avanzando un registro hacia atrás.4.Text = RsEmpleados(7) Carrera: Computación e Informática Curso: Visual Basic .mdb" Form1. En algunos casos una consulta SQL puede devolver más de un Recordset.jet.Text = RsEmpleados(3) Text5.56 MovePrevious Nos permite recorrer en forma inversa el Recordset.7 Library Public cn As String Sub main() cn = "Provider=Microsoft.Text = RsEmpleados(0) Text2.Aquí se esta buscando el registro que tenga como codigo el „A001‟ si en caso existe el puntero se ubica en ese registro caso contrario se va al fin de archivo (EOF toma el avlor de True) Ejemplos Demostrativos 1: Mantenimiento de Datos Nota: Activar la referencia Microsoft ActiveX Data Objects 2. Rs.Filter = “sueldo > 100” .. NextRecordSet Open Requery Update Otras propiedades Filter . bloqueo Con este método se puede actualizar el objeto Recordset. Nos lleva al registro anterior. Cn.Find "cod='A001'" .Text = RsEmpleados(1) Text3.Sirve para buscar en base a un criterio.Show End Sub Dim RsEmpleados As New ADODB.Filter “Condicion de filtro” Ejemplo : rs. esta funcion hace que el puntero se ubique en la posición del registro que se ha buscado. cargando en él los resultados de la consulta efectuada a una o varias tablas.find “Condicion de Busqueda” Ejemplo : Rs.Open SQL. Ejemplo: rs.aquí se esta filtrando los datos de la variable Rs donde el sueldo sea mayor a 100 (la condicion va como cadena) Find . cursor. haciendo efectivos los cambios realizados. data source=c:\sistema\bdventas.Text = RsEmpleados(4) Text6. Actualiza la tabla a la que hace referencia el objeto Recordset.oledb...Sirve para filtrar la variable de tipo recordset Rs. Con este método borraremos el Recordset actual y avanzaremos al siguiente. Abre el objeto Recordset.0.

Enabled = False Text3.MovePrevious If RsEmpleados.AddItem ("Femenino") End Sub Private Sub Form_Unload(Cancel As Integer) Set RsEmpleados = Nothing End Sub Carrera: Computación e Informática Curso: Visual Basic .MoveLast Call datos End Sub Private Sub Command5_Click() Call limpiar End Sub Private Sub Command6_Click() Dim rpta As Integer rpta = MsgBox("Desea grabar los datos?". adLockOptimistic Set DataGrid1.Enabled = False Text7.Text = "" Text7.EOF Then RsEmpleados.Enabled = False Combo1.MoveFirst Call datos End Sub Private Sub Command2_Click() RsEmpleados.Text Val(Text6. "Aviso") If rpta = vbYes Then RsEmpleados. vbQuestion + vbYesNo.AddNew Call asignar RsEmpleados.Text) CDate(Text8. vbQuestion + vbYesNo.Enabled = False End Sub Private Sub Command1_Click() RsEmpleados.Open "select * from empleados".Text = "" Combo1.Enabled = False Text6.Text = "" Text1.Enabled = False Text5.MoveLast End If Call datos End Sub Private Sub Command4_Click() RsEmpleados.Text) Val(Text7.DataSource = RsEmpleados Combo1. adOpenDynamic.SetFocus End Sub Sub asignar() RsEmpleados(0) RsEmpleados(1) RsEmpleados(2) RsEmpleados(3) RsEmpleados(4) RsEmpleados(5) RsEmpleados(6) RsEmpleados(7) End Sub = = = = = = = = Text1.Delete Call deshabilitar RsEmpleados.Text = "" Text5.Text = "" Text3.MoveFirst End If Call datos End Sub Private Sub Command3_Click() RsEmpleados. "Aviso") Private Sub Command9_Click() Dim rpta As Integer rpta = MsgBox("Desea eliminar los datos?".MoveNext If RsEmpleados.Text Text2.MoveFirst Call datos End If End Sub Private Sub Command10_Click() End End Sub Private Sub Form_Load() RsEmpleados.Text = "" Text8.Text = "" Text6.AddItem ("Masculino") Combo1.Text = "" Text2.Enabled = False Text2.Text Text3.Text) If rpta = vbYes Then RsEmpleados.Update End If End Sub Private Sub Command7_Click() Call limpiar End Sub Private Sub Command8_Click() Call deshabilitar End Sub Sub deshabilitar() Text1.Text Text5. cn.57 End Sub Sub limpiar() Text1.CursorLocation = adUseClient RsEmpleados.Enabled = False Text8.Text Combo1.BOF Then RsEmpleados.

adOpenDynamic.Text = RsEmpleados(1) Text3.Open "select * from empleados". adOpenDynamic.Text = RsEmpleados(6) Text8.MoveFirst Do While True If RsEmpleados(1) = DataCombo1. cn.jet.Text = RsEmpleados(3) Text5.0. adLockOptimistic Rsclientes.Text = RsEmpleados(2) Text4.MoveNext Loop End Sub Private Sub Form_Load() Carrera: Computación e Informática Curso: Visual Basic . adLockOptimistic Form2.Text Then Text1.mdb" RsEmpleados.Show End Sub Consulta 1: En el formulario Private Sub DataCombo1_Change() RsEmpleados.Text = RsEmpleados(7) Exit Do End If RsEmpleados.4.Open "select * from Clientes".Text = RsEmpleados(0) Text2.Text = RsEmpleados(5) Text7.CursorLocation = adUseClient RsEmpleados. data source=c:\sistema\bdventas. cn.Recordset Sub main() cn = "Provider= Microsoft.oledb.CursorLocation = adUseClient Rsclientes.Text = RsEmpleados(4) Text6.Recordset Public Rsclientes As New ADODB.58 Ejemplos Demostrativos 2: En el modulo Public cn As String Public RsEmpleados As New ADODB.

RowSource = RsEmpleados DataCombo1.ListField = "nombre" End Sub Consulta 2: En el formulario Private Sub Command1_Click() RsEmpleados.AllowUpdate = False DataGrid1.".Requery Text1. .DataSource = RsEmpleados DataGrid1.. "Aviso" RsEmpleados.AllowDelete = False End Sub Private Sub Text1_Change() If Trim(Text1.Requery Else RsEmpleados.Text & "%" & "'") If RsEmpleados.Sort = "cod_emp" End Sub Private Sub Command2_Click() RsEmpleados.Text = "" End If End If End Sub Carrera: Computación e Informática Curso: Visual Basic .AllowAddNew = False DataGrid1.RecordCount = 0 Then MsgBox "No existen empleados.Sort = "nombre" End Sub Private Sub Form_Load() Set DataGrid1.Filter = adFilterNone RsEmpleados.59 Set DataCombo1.Filter = adFilterNone RsEmpleados.Text) = "" Then RsEmpleados..Filter = ("nombre like '" & Text1.