Manual Visual Basic
Manual Visual Basic
Introducción al Lenguaje
1
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ambiente Visual
Barra de menú
Barra de Herramientas
Explorador
de Proyectos
Ventana de
Cuadro de
Propiedades
herramientas
Ventana de
Posición de
formulario
2
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Conceptos Básicos
Eventos: Son las acciones que se producen y que nos interesan identificar para
establecer algún tipo de respuesta por parte del objeto.
Ejemplo de eventos:
- Hacer clic sobre el objeto
- Al Cargar el objeto
- Al Cerrar el objeto
3
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Variables y Constantes
Las variables en Visual Basic, deben limitarse a 255 caracteres, empezar con un
carácter alfabético y no pueden contener un punto. Tampoco se pueden usar nombres
de variables, las palabras reservadas como por ejemplo: Sub, End o Function.
Tipos de Variables
Declaraciones de variables
Sintaxis:
Dim “nombre” as “tipo de variable”
Ejemplo:
Dim ciudad as string
4
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Declaración Explícita
En Visual Basic no es necesario declarar una variable antes de utilizarla. Sin embargo,
esta forma de trabajar puede ser una fuente de errores.
Ejemplo:
Dim M As Integer, N As Integer
VarTEmp = M + N
N = VaTemp
Para evitar este tipo de errores, podemos indicar a Visual Basic que genere un mensaje
de error siempre que encuentre una variable no declarada explícitamente. Para ello,
escribiremos la sentencia siguiente en la sección de Declaraciones del formulario, del
módulo o de la clase:
Option Explicit
Esta sentencia opera sólo en el formulario o en el módulo donde se haya puesto. Para
tener esa opción activa para todo el código de una aplicación, ejecute la orden Opciones
del menú Herramientas, elija el dialogo Entorno y Seleccione la opción Declaración de
Variables Requerida. Seleccionada esta opción agrega la sentencia Option Explicit en
cualquier nuevo modulo que creemos.
El alcance de las variables se refiere al área del programa en las cuales es visible
la variable; es decir en áreas del proyecto tendremos disponible las variables.
5
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo
Public NoFactura as long
Ejemplo
Dim NoFactura as long
Con esta forma de declarar variables conseguiremos que las variables locales no se
creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas
sino que se mantenga su valor durante todo el periodo de ejecución de la aplicación.
De esta forma a entrar en algún procedimiento las variables recuerdan el valor que
tenían cuando se salió de él.
Ejemplo
Static Nombre
Alcance Declaración
A nivel del módulo, no hay diferencias entre Dim y private, pero se aconseja utilizar
private en contraste con Public
6
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Matrices
Constantes
Como su palabra lo dice es Información que no varía hace más fácil la comprensión del
código y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo:
7
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Operadores
Conversiones
Visual Basic nos proporciona varias funciones de conversión de datos, las cuales nos
permiten convertir el valor de una variable al tipo de variable correcto. Esto es
importante cuando trabajamos con datos Variant y queremos convertirlo a otro tipo de
variable más exacta o para realizar validaciones en los datos.
8
CURSO VISUAL BASIC 6.0 D. MOLINA S.
La Función Inputbox()
Sintaxis:
Valor = inputbox (Mensaje,Titulo,omisión,10,10,ArchAyuda,Context)
Ejemplo:
Valor = inputbox(“Mensaje”, “Prueba”, , 10,10)
Parámetros:
Mensaje : Mensaje del cuadro de texto
Titulo : Titulo del cuadro de texto
Omisión : Texto por omisión (default)
posx, posy : Posición donde deberá aparecer el cuadro de texto
ArchAyuda : Cuando se utiliza archivo de ayuda
Context : Índice del archivo de ayuda
Sintaxis
Resp = MsgBox(Mensaje, Tipo, Título, ArchAyuda, Contexto)
9
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo
MsgBox "Esta es una prueba", vbInformation, "Ejemplo"
Parámetros:
Mensaje : Mensaje ha desplegar en pantalla
Tipo : Tipo de Botón (Error, Información, Pregunta) + Tipo de Opciones (OK,
No, Cancel, Retry)
Titulo : Titulo del Cuadro de Mensajes
ArchAyuda : Archivo de Ayuda
Context : Indice de Ayuda
10
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Estructuras de Decisión
Estructuras de Ramificación
If...Else...EndIf
Ejemplo:
If ElseIf EndIf
11
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Este fragmento de código toma una decisión basada en tres valores mutuamente
excluyentes, VbYes, VbNo y VbCancel, para la variable Resp.
If
Esta función requiere tres argumentos, la condición para verificar, que devolver si la
condición es cierta y que devolver si es falsa.
En este caso, el color permanece igual mientras sea menor que 15, a menos que
sea mayor que 15, en cuyo caso obtiene el valor de 1.
Sintaxis
While condición
[instrucciones]
Wend
12
CURSO VISUAL BASIC 6.0 D. MOLINA S.
While i < 15
Print i
i = i + 1
Wend
La estructura Do....Loop proporciona una forma más adecuada y flexible para
ejecutar ciclos. Esta repite un bloque de código mientras una condición es True o a
partir de que la condición llegue a ser True.
Do Until rsClientes.EOF
Print rdClientes(“Nombre”)
RsClientes.movenext
Loop
Do
If (i = 10) Then
MsgBox "llegó 10"
Exit Do
Else
Print i
End If
i = i + 1
Loop Until i > 20
For I = 0 to 10
Print I
Next I
13
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Print Porc
Next Porc
Procedimientos y Funciones
Procedimiento
Ejemplo
Sub CentrarForma(F as form)
F.left = (screen.width – F.width)/2
F.Top = (screen.height – F.height)/2
End Sub
Para Hacer el llamado del procedimiento, se debe hacer usando la palabra reservada
Call y luego el nombre del procedimiento.
Ejemplo
Call CentrarForma(frmFicha)
Funciones
Ejemplo:
End Function
14
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Llamado de la función:
Z = Calcular( x , y )
Controles Básicos
CommandButton
Utilice un control CommandButon para comenzar, interrumpir o terminar un proceso.
Cuando está activado, un CommandButon aparece presionado y a veces se denomina
botón de comando.
Label
Un control Label es un control gráfico que permite mostrar un texto que un usuario no
puede modificar directamente. También conocido como etiqueta, este control se utiliza
para mostrar textos e instrucciones en las formas.
Line
Es un control gráfico que se muestra como una línea horizontal, vertical o diagonal.
Puede usar este control para dibujar líneas en formularios.
Shape
Shape, es un control gráfico que se muestra como rectángulo, un cuadrado, una elipse,
un círculo, un rectángulo redondeado o un cuadro redondeado. Utilice controles Shape
en tiempo de diseño para el diseño de formularios en lugar de los métodos Circle y
Line.
Picture
El objeto Picture le ofrece una forma de manipular mapa de bits, iconos, metarchivo
mejorados e imágenes GIF y JPEJ asignados a objetos que tengan la propiedad Picture.
15
CURSO VISUAL BASIC 6.0 D. MOLINA S.
CheckBox
OptionButton
Frame
Timer
El control Timer, invisible para el usuario, resulta útil para el procesamiento de fondo. No
existe ningún limite práctico en cuanto al número de controles Timer activos que puede
tener Visual Basic ejecutándose.
DTPicker
Utilice el control DTPicker para proporcionar un campo fecha con formato que facilite la
selección de fecha. Además, los usuarios pueden seleccionar una fecha a partir de una
interfaz de calendario desplegable similar a la del control MonthView.
16
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Formularios MDI
Muchas aplicaciones Windows son programas MDI. Excel, por ejemplo, puede
desplegar muchas hojas de calculo dentro de su misma ventana principal, todas sobre la
misma base, por así decirlo. Específicamente, un formulario MDI es una ventana que
actúa como la base de una aplicación y es el contenedor de otros formularios que tienen
la propiedad MDI Child establecida como True.
Usted crea un formulario MDI (padre) mediante la selección de MDI Form del
menú Project . Una aplicación sólo puede tener un formulario padre. Los formularios
MDI, sólo pueden contener objetos del menú, cuadros de dibujo, barras de
herramientas, barras de estado etc.
17
CURSO VISUAL BASIC 6.0 D. MOLINA S.
diseñan los menús principal y barras de herramientas del sistema que nos permitan
llamar a nuestros formularios de trabajo.
Si un formulario hijo tiene menús, la barra de menú del formulario hijo reemplaza
automáticamente a la barra del menú del objeto MDI, mientras este activo. La Barra del
menú que se diseña para un formulario hijo MDI se desplegará sobre el formulario padre
MDI en tiempo de ejecución, cuando el formulario hijo MDI este activo, aunque este
aparezca en el formulario hijo en tiempo de diseño.
Creación de Menús
Editor de Menú:
18
CURSO VISUAL BASIC 6.0 D. MOLINA S.
19
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Use los botones de esquema (flechas izquierda, derecha, arriba, abajo) para
ajustar los niveles (la jerarquía) de los submenú.
Barras de Herramientas
Lista de Imágenes
Control ImageList
Para Crear una barra de herramientas con iconos gráficos, primeramente se debe
utilizar el control ImageList, el cual tendrá el arreglo de imágenes que se utilizarán así
como las propiedades de los gráficos.
Entre las opciones que se deberá fijar están el tamaño de los gráficos, así como
indicar la ruta donde se encuentran ubicados los archivos gráficos y finalmente
nombrarlos y ponerles un número de índice con el cual los identificaremos en el control
ToolBar.
20
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Una vez fijado los gráficos, se procede a colocar el control ToolBar y a fijar las
propiedades del mismo, en las cuales se seleccionaran tipo de botón, relieve de la barra,
lista de imágenes que se usarán, acciones del mouse etc.
Dir1.Path = Drive1.Drive
File1.Path = Dir1.Path
21
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo:
Manejador de Errores
Hay errores de diferentes tipos: errores de sintaxis, los que ocurren cuando se
teclea un mal comando o falta un argumento; los errores en tiempo de ejecución, que
son causados por circunstancias fuera de control del programa, que no se previeron en
tiempo de diseño; y los errores lógicos, que provocan que su programa produzca
resultados incorrectos o inesperados.
Visual Basic manipula el primer tipo de error, los de sintaxis, detectando los
problemas de sintaxis cuando se escribe el código del programa. Los otros dos tipos de
errores, deben ser corregidos por usted. El manejo de errores en tiempo de ejecución es
el que aprenderemos a manejar a continuación, para evitar la interrupción del programa
en tiempo de ejecución.
Esta es la sintaxis:
On Error GoTo “procedimiento”
22
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo:
Exit Sub
Manejo:
MsgBox “Ha ocurrido un error”
Resume
End Sub
La instrucción Resume le permite volver a intentar la operación que causo el error. Esto
puede ser o no lo que usted desea, dependiendo de la naturaleza del error. De hecho, si
el error fue debido a algo en el que el usuario no puede hacer nada, Resume causará un
ciclo infinito.
Msgbox “Ha ocurrido el error No” & Err.Number & “ – “ & Err.Descripción
El manejo de errores proporciona una forma de que su programa tenga trato con los
procesos fallidos, de lo contrario la aplicación se cerrará completamente. Para practicar
el manejador de errores, se puede aplicar al ejemplo de los DriveListBox al error que
ocurre cuando se selecciona una unidad no válida.
23
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Bases de Datos
El Control de Datos (Data) es un control integrado para conectar una aplicación Visual
Basic con una fuente de datos que se selecciona. Los controles de datos proporcionan
una forma visual y fácil para navegar por los campos, registros y tablas de una o más
Bases de Datos. También se usan para enlazar algunos controles, como cuadros de
texto, etiquetas, cuadros de dibujo, etc. con los campos de tablas que se seleccionan en
su base de datos. Una vez que un control, como un cuadro de texto, está asociado a un
campo en particular, cualquier cambio en el contenido del cuadro de texto se registra
automáticamente en el campo asociado. En pocas palabras, los controles de datos
asociados permitirán que se creen aplicaciones de acceso de datos que requieran muy
poca o ninguna codificación.
Data
DBCombo
Se usa para crear una combinación asociada de cuadro de lista y cuadro de texto
o una simple lista desplegable. La lista puede llenarse automáticamente desde un
Control Data.
DBGrid
El Control Data tiene muchas propiedades, ocho de las cuales se listan en resumen
aquí:
24
CURSO VISUAL BASIC 6.0 D. MOLINA S.
25
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo:
Name dtaAutores
Align 2 – Align Bottom
DataBaseName Ruta
RecordSource Authors
26
CURSO VISUAL BASIC 6.0 D. MOLINA S.
27
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Podrá ver que se pueden consultar los datos de los Autores, uno a uno, se puede
navegar al siguiente, al anterior, al primero y al último y no fue necesario escribir
código alguno.
Para poder utilizar un DBCombo, se requiere que se haya agregado un control Data a la
forma.
Ejemplo
Name dtaAutores
Caption Autores
DatabaseName Ruta
ReadOnly Yes
Align 2 – Align Bottom
RecordSource Authors
Name dbcAutores
Caption
DataSource dtaAutores
RowSource dtaAutores
ListField Author
28
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Como podrá ver le aparece el listado de todos los autores, y de igual forma, no
fue necesario escribir código alguno.
29
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ejemplo:
Name dtaAutores
Caption Autores
DatabaseName Ruta
ReadOnly Yes
Align 2 – Align Bottom
RecordSource Authors
Name dbgAutores
Caption Consulta de Autores
DataSource dtaAutores
30
CURSO VISUAL BASIC 6.0 D. MOLINA S.
31
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Un objeto Database es una representación lógica de una base de datos física que
puede asignarse a una variable de tipo Database y ser manejada por ésta.
Una vez que añade un control Data válido a sus aplicaciones, ya está trabajando con un
objeto Database. Un Control Data tiene una propiedad Database (que no es la misma
que la propiedad DatabaseName) y contiene una referencia al objeto Database
asociado con el control actual.
Usted puede declarar variables de tipo Database en sus programas y ponerlas iguales a
la propiedad Database de un Control Data en particular, o puede asignarles valores
mediante el uso del método OpenDatabase(), que se trata a continuación.
El método OpenDatabase() abre una base de datos específica y regresa una referencia
al objeto Database que la representa. La programación con objetos de acceso a datos
consiste en la creación de variables objetos y su manipulación consiste en llamar a sus
métodos y establecer sus propiedades.
Aquí, dbVariables es una variable del tipo de datos del objeto Database que representa
la Base de datos que se abre. El argumento dbName es una expresión de cadena, el
nombre de un archivo de base de datos existente. Si el nombre de archivo de la base de
datos tiene una extensión, debe incluirla. Si su red lo permite, puede también especificar
una ruta de red totalmente calificada, como \\SERVIDOR\\DIR\\BD.MDB. Si dbName no
se refiere a una base de datos existente, o si se refiere a una base de datos que ya está
abierta para acceso exclusivo por otro usuario, ocurre un error.
También deberá observar el uso de un objeto de tipo Workspace . Este se utiliza para
transmitir transacciones simultáneas, de tal suerte que actúa como un contenedor para
bases de datos abiertas e identifica un contexto de seguridad para las operaciones en la
base de datos. Si Usted quiere abrir su base de datos desde el código en lugar de
hacerlo con un control Data, este es un fragmento de código que lo haría:
Una vez que obtiene una variable Database válida, puede usarla para ejecutar los
métodos Database, como Execute, que ejecuta una instrucción SQL sobre la base de
datos que se especifica, u OpenRecordset, que crea un nuevo objeto Recordset. Por
ejemplo, podría obtener acceso a su tabla si añade las siguientes líneas al código
anterior:
32
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Todos los objetos Recordset se contruyen mediante el uso de los registros (filas ) y los
campos (columnas) de tablas de bases de datos existentes. Existen tres tipo de objetos
Recordset:
Tipo Tabla Es una representación de una tabla base que puede usar
para añadir, cambiar o borrar registros de una sola tabla
sencilla de base de datos.
El argumento Tipo es opcional y se usa para indicar uno de los tres tipos de Recordset.
Si se omite el tipo, Visual Basic ( por medio de la máquina de base de datos Microsoft
Jet ) trata de crear un Recordset tipo tabla. Si esto no es posible, se crea un Recordset
tipo dynaset o tipo snapshot.
Una vez que establece una variable Recordset puede usar los métodos MoveNext,
MovePrevious, MoveFirst y MoveLast para navegar por los registros. Para los
33
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Recordset tipo dynaset y snapshot, puede usar también los métodos Find, como
FindFirst, para localizar un registro específico en base a un criterio.
Una instrucción SQL es una expresión de cadena que empieza con un comando de
lenguaje de consulta estructurado, como SELECT, UPDATE o DELETE y puede incluir
cláusulas de filtro y ordenamiento como WHERE y ORDER BY. Las instrucciones SQL,
SELECT Code, Contact, Pone FROM Contacts WHERE State = ‘NY’ ORDER BY Code
Si desea quitar todos los contactos de California de su tabla Contacts, use la siguiente
consulta de acción:
Si usa una consulta SQL para recuperar datos, el motor de base de datos de Visual
Basic crea un Recordset tipo dynaset o tipo snapshot, y nunca uno tipo tabla. Una vez
que se construye el Recordset, puede refinarlo mediante el uso de uno de los métodos
Find, o poner un ciclo para avanzar paso a paso por los registros de uno en uno. Hay
varias formas de ejecutar consultas SQL, que se resumen a continuación:
34
CURSO VISUAL BASIC 6.0 D. MOLINA S.
1. Diseñe la consulta SQL para que devuelva solamente los registros que Usted
desee.
2. Teclee la instrucción SQL de la consulta en la propiedad RecordSource del
control Data. Puede hacer esto en tiempo de diseño o de ejecución. Por
ejemplo, en tiempo de ejecución puede usar este código:
dtaQuery.Refresh
Si necesita ejecutar una consulta de acción para efectuar una operación que no
devuelva registros, como cuando inserta, borra o actualiza registros, puede usar la
instrucción SQL como un argumento en el método Execute. El método Execute puede
usarse con un Control Data o con un objeto Database abierto, siempre y cuando la
consulta no devuelva registros. Por ejemplo, para borrar registros de una tabla que
satisfagan criterios específicos, puede usar el siguiente código:
35
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Con el Diseñador de entorno de datos puede llevar a cabo las tareas siguientes:
36
CURSO VISUAL BASIC 6.0 D. MOLINA S.
1. En la ficha Nuevo del cuadro de diálogo Nuevo proyecto, elija proyecto EXE
estándar y, a continuación, haga clic en Abrir.
37
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Objetos Connection
Para tener acceso a los datos mediante el entorno de datos, debe crear un objeto
Connection. Por tanto, cada entorno de datos debería incluir al menos un objeto
Connection. Un objeto Connection representa una conexión a una base de datos
remota que se utiliza como un origen de datos.
38
CURSO VISUAL BASIC 6.0 D. MOLINA S.
4. Haga clic en Aceptar para aplicar las propiedades y cerrar el cuadro de diálogo
Propiedades de Connection.
39
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Objetos Command
Los objetos Command definen información de detalle específica acerca de cómo deben
recuperarse los datos mediante una conexión basada en datos. Es posible basar los
objetos Command en un objeto de base de datos (como una tabla, una vista, un
procedimiento almacenado o un sinónimo) o en una consulta SQL (Structured Query
Language). Asimismo, puede crear relaciones entre objetos Command para obtener un
conjunto de datos relacionados en forma de jerarquía.
Nota Para que un objeto Command sea válido, debe estar asociado con un objeto
Connection.
40
CURSO VISUAL BASIC 6.0 D. MOLINA S.
1. Haga clic con el botón secundario del mouse en el objeto Connection y elija
Propiedades para tener acceso al cuadro de diálogo Propiedades de
Command.
Elemento Propósito
Cambie el valor predeterminado de Nombre de comando por
Nombre de un nombre más descriptivo del objeto de base de datos. Por
comando ejemplo, podría modificar el título Command1 por "Clientes" si el
objeto Command se basa en una tabla llamada "Clientes".
Si creó el objeto Command a partir del menú contextual del
objeto Connection, se establece automáticamente el nombre
del objeto Connection. No obstante, es posible cambiar esta
Conexión
conexión.
Nota Para que sea válido, cada objeto Command debe estar
asociado con un objeto Connection.
41
CURSO VISUAL BASIC 6.0 D. MOLINA S.
5. Haga clic en Aceptar para aplicar las propiedades al nuevo objeto Command y
cerrar el cuadro de diálogo.
Si se creó correctamente el objeto Command de devolución de conjunto de
registros y la opción Mostrar campos está activada en el cuadro de diálogo
Opciones, puede hacer clic en el mecanismo de expansión (+) bitmap de la vista
esquema del diseñador de entorno de datos para mostrar una lista de campos. Si
no se ven campos, puede deberse a un objeto Recordset vacío, un objeto
Command no válido o una conexión no válida.
42
CURSO VISUAL BASIC 6.0 D. MOLINA S.
El procedimiento siguiente describe cómo puede cambiar las propiedades de los objetos
Parameter asociados a un objeto Command.
1. Haga clic con el botón secundario del mouse en el objeto Command que desee
personalizar y, a continuación, seleccione Propiedades en el menú emergente.
Elemento Propósito
Proporcione un nombre único y descriptivo para el objeto
Name
Parameter seleccionado.
Especifique si se trata de un parámetro de entrada o de salida, o
Direction ambos a la vez, o si el parámetro corresponde al valor devuelto
por el procedimiento.
Especifique el tipo de datos al que se convierte el objeto
DataType
Parameter.
Precision Especifique la precisión o número máximo de dígitos.
Scale Especifique el tamaño máximo, en bytes.
Size Especifique el tamaño máximo en bytes.
Especifica el tipo de datos utilizado cuando la aplicación host
hace referencia a este objeto Parameter. Cambiar este valor
Host Data Type
afecta al tipo de datos utilizado para generar la información de la
biblioteca de tipos correspondiente al host.
Especifica si se requiere un valor del parámetro cuando se
ejecuta el objeto Command.
Required Nota Si un parámetro requerido no está establecido
cuando se ejecuta el objeto Command, el comando
fallará.
Especifica el valor predeterminado que debe usarse en tiempo
de ejecución (a menos que se proporcione un valor por
Value programa) y, si corresponde, en tiempo de diseño si el objeto
Command debe ejecutarse para obtener la información del
campo.
1. Haga clic en Aceptar para aplicar las propiedades del parámetro al objeto
Command seleccionado y salir del cuadro de diálogo.
43
CURSO VISUAL BASIC 6.0 D. MOLINA S.
DataReport (Objeto)
DataReport
Comentarios
El objeto DataReport permite generar informes a partir de los registros de una base de
datos. Para usarlo:
44
CURSO VISUAL BASIC 6.0 D. MOLINA S.
45
CURSO VISUAL BASIC 6.0 D. MOLINA S.
• Detalles: contiene la parte "repetida" más interior (los registros) del informe. La
sección Detalles está asociada al objeto Command de nivel inferior en una
jerarquía de entorno de datos.
• Pie de informe: contiene el texto que aparece al final del informe, por ejemplo un
resumen o una dirección o nombre de contacto. El pie de informe aparece entre
el último encabezado de página y el último pie de página.
• Control Label (RptLabel): permite colocar etiquetas para identificar los campos o
las secciones del informe.
46
CURSO VISUAL BASIC 6.0 D. MOLINA S.
• Control Line (RptLine): permite dibujar reglas en el informe para distinguir mejor
las secciones.
Posibles usos
• Crear automáticamente informes que se exportan en formato HTML para su
distribución instantánea a través de Internet.
• Crear informes diarios con las sumas de transacciones efectuadas cada día.
47
CURSO VISUAL BASIC 6.0 D. MOLINA S.
incluyen un control Label, Shape, Image, TextBox, y Line. El sexto control (el
control Function) genera automáticamente información de uno de los cuatro tipos
siguientes: Sum (suma), Average (promedio), Minimum (mínimo) o Maximum
(máximo). Para obtener más información acerca del control Function, vea
"Agregar un control Function al informe de datos".
3. Vista preliminar. El método Show permite mostrar una vista preliminar del
informe. El informe de datos se genera y se muestra en su propia ventana.
Nota Es necesario tener una impresora instalada en el equipo para poder usar el
modo de vista preliminar.
48
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Este tema muestra cómo puede crear un informe de datos sencillo mediante un
Diseñador de entorno de datos utilizado como un origen de datos. El Diseñador de
entorno de datos emplea la base de datos NorthWind incluida con Visual Basic para
crear un sencillo cursor jerárquico. El cursor contiene dos tablas, Clientes y Pedidos, y
ambas están vinculadas mediante el campo IdCliente. El informe terminado es similar a
la siguiente figura.
49
CURSO VISUAL BASIC 6.0 D. MOLINA S.
En el cuadro de diálogo Data Link Properties, haga clic en Microsoft Jet 3.51
OLE DB Provider. Esta selección del corrige el proveedor OLE DB para tener
acceso a la base de datos Jet.
Haga clic en el botón Examinar (…) que se encuentra junto al primer cuadro de
texto.
Propiedad Valor
Nombre de comando Clientes
Conexión Northwind
Objeto de base de datos Table
Nombre de objeto Clientes
2. Haga clic con el botón secundario del mouse (ratón) en el comando Clientes y
haga clic en Agregar comando secundario para mostrar el cuadro de diálogo
Command2. En el cuadro de diálogo, establezca las propiedades como se indica
a continuación:
50
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Propiedad Valor
Nombre de comando Pedidos
Conexión Northwind
Objeto de base de datos Table
Nombre de objeto Pedidos
Haga clic en Agregar. Haga clic en Aceptar para cerrar el cuadro de diálogo.
Establezca las propiedades del proyecto y del diseñador según los valores
indicados a continuación y, después, guarde el proyecto:
51
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Propiedad Valor
Name rptNwind
Caption Informe de datos Northwind
4. Haga clic con el botón secundario del mouse (ratón) en el Diseñador de informe
de datos y en Obtener estructura.
Acaba de agregar una nueva sección de grupo al diseñador. Cada sección de
grupo posee una correspondencia unívoca con un objeto Command en el
entorno de datos; en este caso, la nueva sección de grupo corresponde al objeto
Command denominado Clientes. Observe también que al encabezado de grupo
corresponde una sección Pie de grupo.
52
CURSO VISUAL BASIC 6.0 D. MOLINA S.
8. Cambie el tamaño de las secciones del Diseñador de informe de datos para que
sea similar a la figura siguiente:
Es importante que cambie el alto de la sección Detalles de pedidos para que sea
lo más corta posible, ya que el alto se multiplicará por cada uno de los objetos
FechaPedido devueltos por NombreCompañía. Cualquier espacio innecesario por
encima o por debajo del cuadro de texto FechaPedido aumentará la cantidad de
espacio sin usar en el informe final.
3. Guarde el proyecto.
53
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ahora que se han creado los objetos del entorno de datos y del informe de datos, casi
ha llegado el momento de ejecutar el proyecto. Solamente queda un paso: escribir
código para mostrar el informe de datos.
Propiedad Valor
Name cmdShow
Caption Mostrar informe
54
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Ahora que dispone de un informe de datos sencillo, es fácil extenderlo y crear una
presentación más compleja. En el procedimiento siguiente, se extiende primero el
entorno de datos con las tablas Detalles de pedidos y Productos. El informe extendido
incluye los nombres de los productos ordenados por una fecha específica y es similar a
la figura siguiente.
55
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Propiedad Valor
Nombre de comando DetallesPedidos
Conexión Northwind
Objeto de base de datos Table
Nombre de objeto Detalles de pedidos
7. Haga clic con el botón secundario del mouse (ratón) en el objeto Command
DetallesPedidos y haga clic en Agregar comando secundario. Establezca las
propiedades de la conexión como se indica a continuación:
Propiedad Valor
Nombre de comando Productos
Conexión Northwind
Objeto de base de datos Table
Nombre de objeto Productos
9. Haga clic con el botón secundario del mouse (ratón) en el diseñador Informe de
datos y desactive el cuadro Mostrar Encabezado o pie de página.
Al desactivar esta opción, se eliminan el encabezado y el pie de página, que no
se utilizan por ahora.
10. Haga clic con el botón secundario del mouse (ratón) en el Diseñador de informe
de datos y haga clic en Insertar encabezado o pie de grupo. Aparecerá el
cuadro de diálogo Insertar nuevo encabezado o pie de grupo.
56
CURSO VISUAL BASIC 6.0 D. MOLINA S.
13. Repita los pasos 2 a 3. Cambie el nombre del nuevo encabezado de grupo por
DetallesPedidos_Encabezado y el nombre del nuevo pie de grupo por
DetallesPedidos_Pie.
57
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Por último, la sección Detalles sólo contiene los nombres de los productos. La
sección Detalles contiene el nivel más interior de los registros repetidos.
58
CURSO VISUAL BASIC 6.0 D. MOLINA S.
• Usar una instrucción SQL en el objeto Command del entorno de datos para
crear el campo calculado.
59
CURSO VISUAL BASIC 6.0 D. MOLINA S.
• Elimine los dos controles Label, cambie los valores de la propiedad Caption
de los restantes controles Label a * y organice los controles de forma que
60
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Si utilizó una instrucción SQL para crear un campo calculado (en el tema anterior,
"Agregar un campo calculado al informe de datos"), puede que se pregunte por qué no
se puede usar un control Function para calcular el valor de Cantidad * PrecioUnidad. En
pocas palabras, el control Function sólo puede calcular los valores cuando los demás
registros de una sección de grupo ya se han procesado. En cambio, una instrucción
SQL calcula los valores como parte de los campos de un registro al mismo tiempo que
se procesan.
Siga estos pasos para agregar un control Function al Diseñador de informe de datos:
61
CURSO VISUAL BASIC 6.0 D. MOLINA S.
1. Haga clic con el puntero del mouse en el pie de grupo denominado Cliente_Pie y
arrástrelo a la parte inferior de la ventana para dejar un espacio entre él y el pie
de página Pedidos_Pie.
Propiedad Valor
DataMember DetallesPedidos
DataField Total
Name fncTotal
Alignment 1 – rptJustifyRight
DataFormat Currency
La propiedad FunctionType del control determina qué operación se realizará con los
datos encontrados en la propiedad DataField. De forma predeterminada, la propiedad
tiene el valor 0-RptFuncSum, para indicar la suma de los datos. Otras funciones
62
CURSO VISUAL BASIC 6.0 D. MOLINA S.
5. Dibuje un control Line por encima del cuadro de texto Cantidad y un control
Label a la izquierda del cuadro de texto. Establezca la propiedad Caption de la
etiqueta con el valor Total.
63
CURSO VISUAL BASIC 6.0 D. MOLINA S.
64
CURSO VISUAL BASIC 6.0 D. MOLINA S.
Archivo Ejecutable
Una vez que su proyecto este terminado, el primer paso para crear un archivo de
programa ejecutable es seleccionar Make EXE. Para abrir el cuadro de dialogo EXE
Options, haga clic en el botón Options. En este cuadro de dialogo, se establecen
atributos e información documental del archivo ejecutable:
Titulo del
proyecto
Número de
Versión
Icono de la
aplicación
Información del
ejecutable
Una vez que regresa al cuadro de dialogo Make EXE File, seleccione el directorio donde
se creará el ejecutable y luego presione OK. Durante esta fase, Visual Basic puede
descubrir problemas en el código. Si así sucede, se abrirá una ventana Code para
mostrarle la línea que causa el problema.
65
CURSO VISUAL BASIC 6.0 D. MOLINA S.
El Asistente para crear instaladores, es una herramienta que se usa para crear un
programa de instalación y los medios de distribución (para discos flexibles o instaladores
de red) de su aplicación de Visual Basic.
La primera vez que se ejecuta el asistente para instalar aplicaciones le pide a usted la
ubicación de archivos importantes que se requieren para que se ejecute correctamente.
66