Nothing Special   »   [go: up one dir, main page]

Curso VB6

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 70

Introduccin al Lenguaje

Programacin Visual Basic: Por qu objetos y eventos?


La mayora de aplicaciones Windows, as como otros programas, emplean una Interfaz Grfica de Usuario (GUI), consistente en una o ms pantallas llenas de objetos, mens, botones, lneas, cuadros de edicin etc, todos inactivos hasta que el usuario provoca un evento al hacer clic con el ratn sobre un botn, barra de mens, en la formas, o un comando de tecla o de vos. Una ves que el evento ocurre, el usuario espera que cada objeto realice su funcin y se comporte de una manera confiable. Este requerimiento de confiabilidad y predecibilidad es el que hace que la programacin orientada a objetos y manejada por eventos sea perfecta para el desarrollo de aplicaciones Windows. Visual Basic proporciona un ambiente de desarrollo donde el trabajo tales como objetos y eventos llega a ser un proceso directo, y lo ms importante, bien estructurado. Los Pasos en este proceso son: Crear y dar nombre a una nueva forma Trazar y dar nombres a los objetos que se desplegarn en la forma. Relacionar con los objetos significativos el cdigo que se ejecutar en respuesta a eventos del usuario o generados por el sistema

Ambiente Visual

Cuando iniciamos Visual Basic, nos mostrar la siguiente Ventana donde podemos seleccionar, que es lo que vamos a desarrollar. En este curso nos centraremos en las primera opcione Estndar EXE. Seleccionamos el tipo de proyecto y presionamos Abrir, si ya tenemos un proyecto seleccionamos la lengeta Existente o Reciente para que nos muestre los proyectos recientes.

Luego le aparacer el entorno inicial de Visual Basic :


Barra de men Barra de Herramientas

Explorador de Proyectos

Cuadro de herramientas

Ventana de Propiedades

Ventana de Posicin de formulario

Ventana del formulario inicial

Conceptos Bsicos
Eventos: Son las acciones que se producen y que nos interesan identificar para establecer algn tipo de respuesta por parte del objeto. Ejemplo de eventos: Hacer clic sobre el objeto Al Cargar el objeto Al Cerrar el objeto

Propiedades: Es un atributo nominal de un objeto de programacin. Las propiedades definen las caractersticas del objeto, tales como tamao, color, longitud, dimetro, o algunas veces, la manera en la cual se comporta el objeto, por ejemplo si un cuadro de texto aceptar lneas de texto mltiples o sencillas. Ejemplo Objeto Propiedades : : gato gato.color = negro gato.height = 10

Mtodos: Una descripcin completa de un objeto, no se limita a sus propiedades, debe comprender una definicin de lo que hace Ejemplo Metodo : gato.juega gato.come gato.duerme

Nombre sus Objetos Un buen hbito de programacin es el de establecer la propiedad Name de los objetos significativos de su aplicacin, aquellos cuyas propiedades y mtodos espera usted usar en el cdigo. Visual Basic asigna automticamente un nombre a cada objeto: Command1, Command2, texbox1, texbox2. Es convencional usar un prefijo de tres letras minsculas cuando se nombran los objetos significativos, de esta forma podr reconocer a que objeto se refiere en el cdigo del programa por cmdOK o frmPrincipal que utilizando command7 o form3. Objeto Visual Basic Forma Botn de Comando Etiqueta Cuatro de Texto Barras de desplazamiento Menu Botn de Opcin Cuadro de Verificacin Cuadro de lista Marco Cuadro de dibujo Imagen Panel Lineas Temporizador Cuadriculas Prefijo frm cmd, btn lbl txt hsb, vsb mnu opt chk lst fra pic img pnl lin tmr grd Ejemplo frmInicio cmdSalir, btnAdicionar lblOpciones txtCodigo vsbHora, hsbRango mnuArchivo optSexo chkSonido lstColores fraMarco dicDibujo imgLogotipo pnpPanel linLinea tmrTiempo grdDatos

Variables y Constantes
Una variable es una ubicacin de almacenamiento temporal con nombre que se encuentra en memoria. Una variable es capaz de contener un cierto tipo de datos que pueden modificarse durante la ejecucin del programa. Las variables en VisualBasic, deben limitarse a 255 caracteres, empezar con un carcter alfabtico 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 Tipo de Datos Byte Boolean Integer Long (long integer) Single Double Currency Date Objeto String Variant User Define Tamao de Almacenamiento 1 byte 2 bytes 2 bytes 4 bytes 4 bytes 8 bytes 8 bytes 8 byes 4 bytes 1Caracter/1 byte Depende del dato Depende del dato Rango 0 a 255 True o False -32768 a 32767 -2147483648 a 2147483647 -3.40E38 a 3.40E38 -1.80E308 a 1.80E308 -9.22E14 a 9.22E14 1/1/100 a 31/12/9999 Referencia a cualquier objeto Aprox 65,500 Bytes Max Determinado por el tipo Determinado por el tipo

Declaraciones de variables Para declarar variables en Visual Basic, lo hacemos con la palabra reservada Dim(Public, Private o Static) seguida del nombre de la misma y luego el tipo: Sintaxis: Dim nombre as tipo de variable Ejemplo: Dim ciudad as string (DIM) Es la abreviatura de Dimensin, esto reserva espacio en memoria para la variable cuando se ejecute el programa y permitir a VB que tipo de datos deber guardar en dicha variable. Declaracin Explcita 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

En este ejemplo, VarTEmp no se ha declarado explcitamente. Esto no supone un Error, ya que Visual Basic se encarga de crear dicha variable. Ahora observe que, por error, el nombre de esa variable se ha escrito mal en la ltima sentencia. Cando Visual Basic encuentra un nuevo nombre no puede determinar si es debido a un error o a la definicin de una nueva variable. Para evitar este tipo de errores, podemos indicar a Visual Basic que genere un mensaje de error siempre que encuentre una variable no declarada explcitamente. Para ello, escribiremos la sentencia siguiente en la seccin de Declaraciones del formulario, del mdulo o de la clase:
Option Explicit

Esta sentencia opera slo en el formulario o en el mdulo donde se haya puesto. Para tener esa opcin activa para todo el cdigo de una aplicacin, ejecute la orden Opciones del men Herramientas, elija el dialogo Entorno y Seleccione la opcin Declaracin de Variables Requerida. Seleccionada esta opcin agrega la sentencia Option Explicit en cualquier nuevo modulo que creemos.

Alcances de las variables 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. Las variables declaradas dentro de funciones o procedimientos, ser de alcance local. Estas variables son reinicializadas cada ves que se ejecuta el procedimiento. Las variables de nivel de formulario, estarn disponibles para todos los procedimientos del formulario.

Variables Publicas: se utilizan en todo el proyecto

Cuando declaramos una variable como publica en un modulo de programa o en el formulario inicial, podremos utilizar esta variable en todo el proyecto: Ejemplo Public NoFactura as long

Variables Privadas: se utilizan slo en el procedimiento

Estas variables estarn disponibles solo dentro de nuestro formulario o procedimiento, segn el lugar donde se haya declarado: Ejemplo Dim NoFactura as long

Variables Estticas: No pierden su valor

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 ejecucin de la aplicacin. De esta forma a entrar en algn procedimiento las variables recuerdan el valor que tenan cuando se sali de l. Ejemplo Static Nombre

Resumen de Alcance de las Variables Alcance Local Mdulo Global Declaracin Dim, Static (Dentro de un procedimiento) Dim o Private (seccin de declaraciones del mdulo) Public (seccin de declaraciones de un mdulo)

A nivel del mdulo, no hay diferencias entre Dim y private, pero se aconseja utilizar private en contraste con Public

Matrices Para declarar matrices debemos colocar entre parntesis el nmero de elementos de los que constar a continuacin del nombre de la variable:
Dim medidas(9) as integer

De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9 Podemos obligar a que el primer elemento de una matriz tenga el ndice con valor 1. Las matrices multidimensionales se declaran de la siguiente forma:
Dim medidas(1 to 10, 1 to 10) as integer

Tipos de datos definidos por el usuario El usuario puede definir los datos en VB en la seccin General de Declaraciones de un modulo de cdigo, usando la palabra clave Type y End Type. Ej:
Type empleado Crear tipo definido por el usuario. NoEmpleado As integer Nombre As String(30) FechaIngreso as date Salario As doublle End Type

Constantes
Como su palabra lo dice es Informacin que no vara hace ms fcil la comprensin del cdigo y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo: Const Mnimo = 1, Mximo = 10

Operadores La tabla siguiente muestra un conjunto de operadores comunes que soporta Visual Basic para utilizarlos en programacin: Operador + * / \ Mod ^ & =, <>,<,>,<=,>= Operacin que realiza Suma Resta Multiplicacin Divisin Divisin Entera Residuo de la divisin entera Exponenciacin Concatenacin Igual, diferente, menor, mayor........

Conversiones Visual Basic nos proporciona varias funciones de conversin 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 ms exacta o para realizar validaciones en los datos. CBol(expresin) CByte(expresin) CCur(expresin) CDate(expresin) CDbl(expresin) CInt(expresin) CLng(expresin) CSng(expresin) CStr(expresin) CVar(expresin) CErr(expresin) conversin a un valor tipo Boolean conversin a un valor tipo Byte conversin a un valor tipo Currency conversin a un valor tipo Date conversin a un valor tipo Double conversin a un valor tipo Integer conversin a un valor tipo Long conversin a un valor tipo Single conversin a un valor tipo String conversin a un valor tipo Variant conversin a un valor tipo Error

E/S (Entradas y Salidas) Sencillas

La Funcin Inputbox()

La funcin Inputbox(), despliega un mensaje en un cuadro de dilogo, espera a que el usuario introduzca el texto o seleccine un boton y luego devuelve el contenido del cuadro de texto. El valor que devuelve la funcin es un valor tipo variant . Sintaxis: Valor = inputbox (Mensaje,Titulo,omisin,10,10,ArchAyuda,Context) Ejemplo:
Valor = inputbox(Mensaje, Prueba, , 10,10)

Parmetros: Mensaje Titulo Omisin posx, posy ArchAyuda Context

: Mensaje del cuadro de texto : Titulo del cuadro de texto : Texto por omisin (default) : Posicin donde deber aparecer el cuadro de texto : Cuando se utiliza archivo de ayuda : ndice del archivo de ayuda

El procedimiento MsgBox y la Funcion MsgBox()

Tanto la funcin como el procedimiento MsgBox, despliegan un cuadro de dialogo y espera a que el usuario seleccione un botn. La funcin MsgBox() devuelve un valor entero, indicando cual de los botones de opcin ha presionado el usuario. Sintaxis Resp = MsgBox(Mensaje, Tipo, Ttulo, ArchAyuda, Contexto) MsgBox Mensaje, Tipo, Ttulo, ArchAyuda , Contexto

Ejemplo
MsgBox "Esta es una prueba", vbInformation, "Ejemplo"

Parmetros: Mensaje : Mensaje ha desplegar en pantalla Tipo : Tipo de Botn (Error, Informacin, Pregunta) + Tipo de Opciones (OK, No, Cancel, Retry) Titulo : Titulo del Cuadro de Mensajes ArchAyuda : Archivo de Ayuda Context : Indice de Ayuda

Valores de Configuracin Tipo MsgBox Valor 0 1 2 3 4 5 16 32 48 64 0 256 512 0 4096 Significado Despliega Boton OK (Aceptar) Despliega los botones OK y Cancel Despliega los botones, Abort, Retry e Ignore Despliega los botones Yes, No , Cancel Despliega los botones Yes (si) y No(No) Despliega los botones Retry y Cancel Despliega el icono Critical (parada critica) Despliega el icono signo de interrogacin Despliega signo de exclamacin Despliega icono de Informacin El primer boton por omisin El segundo boton por omisin El Tercer Boton por omision Modal Fijo en la Aplicacin Modal Fijo del Sistema Constante VB VbOKOnly VbOkCancel vbAbortRetryIngnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbAplication Modal VbSystemModal

Valores de Retorno de MsgBox() Valor 1 2 3 4 5 6 Significado Botn OK Seleccionado Botn CANCEL Seleccionado Botn ABORT Seleccionado Botn RETRY Seleccionado Botn YES Seleccionado Botn NO Seleccionado Constante VB VbOK Vbancel VbAbort VbRetry VbYes VbNo

Estructuras de Decisin
Las estructuras de decisin de Visual Basic, caen en dos amplias categoras familiares para todos los programadores de computacin: Ramificaciones y Ciclos. Los dispositivos de ramificado como If...Then y Select Case, hacen que el programa continu en una direccin en particular sin mirar nunca atrs. Las construcciones de ciclos como Do...Loop y While...Wend, se usan para repetir un cierto bloque limitado de instrucciones hasta que se cumplan las condiciones especificadas. Estructuras de Ramificacin

If...Else...EndIf Ejemplo:
Resp = MsgBox("Seleccione", vbQuestion + vbYesNo, "Prueba") If Resp = vbYes Then MsgBox "Presiono Yes" Else MsgBox "Presiono No" End If

If ElseIf EndIf
If Resp = vbYes Then Mess = Presiono SI ElseIf Resp = vbNo Then Mess = Presiono NO ElseIf Resp = vbCancel Then Mess = Presiono Cancelar End If

Este fragmento de cdigo toma una decisin basada en tres valores mutuamente excluyentes, VbYes, VbNo y VbCancel, para la variable Resp.

IIf

Esta funcin requiere tres argumentos, la condicin para verificar, que devolver si la condicin es cierta y que devolver si es falsa.
Color = IIf ( Color < 15, Color, 1)

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.

Select Case....End Select

Cuando se necesite ejecutar uno de varios grupos de instrucciones, dependiendo del valor de una cadena o expresin numrica, es mejor la construccin Select Case...End Select:
Select Case edad Case 5 Mess = 5 aos de edad Case 13 to 19 Mess = Joven Case 20 to 35, 50 , 60 to 65 Mess = Adulto Case Is > 65 Mess = Respetable Case Else Mess = Todos End Select

Estructuras de Repeticin (Ciclos) Existen diversas estructuras de repeticin en Visual Basic. La estructura While...Wend ejecuta rpidamente una o ms instrucciones mientras una condicin dada es cierta: Sintaxis While condicion [instrucciones] Wend La condicin es una expresin numrica o de cadena que evala True (cierto) o False (falso). Si la condicion es True, todos los enunciados se ejecutan hasta que se encuentra la palabra clave Wend. En este punto, regresa al enunciado While y la condicin se evala nuevamente, y si todava se cumple se reptie el proceso, de lo contrario continua con la instruccin posterior al Wend.
While i < 15 Print i i = i + 1 Wend

La estructura Do....Loop proporciona una forma ms adecuada y flexible para ejecutar ciclos. Esta repite un bloque de cdigo mientras una condicin es True o a partir de que la condicin llegue a ser True.
Do Until rsClientes.EOF Print rdClientes(Nombre) RsClientes.movenext Loop

Igualmente se puede utilizar


Do If (i = 10) Then MsgBox "llego Exit Do Else Print i End If i = i + 1 Loop Until i > 20 10"

La estructura ForNext repite un grupo de instrucciones, un nmero especificado de veces. Este ciclo crea una variable de contador, especificando sus valores inicial o final.
For I = 0 to 10 Print I Next I

Se pueden especificar que el contador incremente o decremente en intervalos especificados mediante el uso de Step. Fcilmente se podra imprimir una columna de nmeros que muestre un incremento gradual del 5%.
For Porc = 0 to 100 step 5 Print Porc Next Porc

Procedimientos y Funciones
Procedimiento Un procedimiento es un conjunto de instrucciones que realizan una tara especfica sin retornar ningn valor. Este procedimiento se puede ejecutar las veces que sea llamado desde cualquier mdulo del programa. Los Procedimientos de declaran con la palabra reservada Sub seguido de el nombre del procedimiento con sus parmetros respectivos. 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 Es un procedimiento que realiza una tarea especfica dentro de un programa y al final se obtiene un valor de retorno. Una funcin se define en un modulo que inicia con la instruccin Function y termina con la instruccin End Function Ejemplo:
Function Calcular(val1 As Integer, val2 As Double) As Double Dim total As Double total = val1 * val2 Calcular = total End Function

Llamado de la funcin:
Z = Calcular( x , y )

El uso de funciones y/o procedimientos, permiten crear rutinas personalizadas por los programadores para satisfacer las necesidades de su aplicacin en particular y evitar la inconveniente e innecesaria repeticin de cdigo. Se puede aumentar el poder y la versatilidad de los procedimientos incluyendo cualquiera de las instrucciones y funciones integrados de VB, as como las rutinas previamente definidas por usted.

Controles Bsicos
Los controles son objetos predeterminados que disponen de propiedades y mtodos propios, los cuales nos brindan mucha utilidad para el desarrollo de nuestras aplicaciones. CommandButton Utilice un control CommandButon para comenzar, interrumpir o terminar un proceso. Cuando est activado, un CommandButon aparece presionado y a veces se denomina boton de comando. Label Un control Label es un control grfico que permite mostrar un texto que un usuario no puede modificar directamente. Tambien conocido como etiqueta, este control se utiliza para mostrar textos e instrucciones en las formas. Line Es un control grfico que se muestra como una lnea horizontal, vertical o diagonal. Puede usar este control para dibujar lneas en formularios. Shape Shape, es un control grfico que se muestra como rectngulo, un cuadrado, una elipse, un crculo, un rectngulo redondeado o un cuadro redondeado. Utilice controles Shape en tiempo de diseo para el diseo de formularios en lugar de los mtodos Circle y Line. Picture El objeto Picture le ofrece una forma de manipular mapa de bits, iconos, metarchivo mejorados e imgenes GIF y JPEJ asignados a objetos que tengan la propiedad Picture. CheckBox Un control CheckBox muestra una cuando est activado. El carcter desaparece cuadno el control se desactiva. Utilice este control para ofrecer al usuario una opcin de tipo verdadero o falso, o S o No. Puede usar controles CheckBox en grupos para mostrar mltiples opciones entre las cuales el usuario pueda seleccionar una o ms.

OptionButton Un control OptionButton muestra una opcin que se puede activar o desactivar. Generalmente, estos controles se utilizan en grupos de opciones en las cuales el usuario solo puede seleccionar una. Los controles OptionButton se agrupan si los dibuja dentro de un contenedor como en un control Frame, un PictureBox o un Formulario. Frame Un control Frame proporciona un agrupamiento identificable para controles. Tambin puede usar un control Frame para subdividir un formulario funcionalmente; por ejemplo, para separar grupos de controles OptionButton.

Timer Un control Timer puede ejecutar cdigo a intervalos peridicos produciendo un evento Timer. El control Timer, invisible para el usuario, resulta til para el procesamiento de fondo. No existe ningn limite prctico en cuanto al nmero de controles Timer activos que puede tener Visual Basic ejecutndose. DTPicker Utilice el control DTPicker para proporcionar un campo fecha con formato que facilite la seleccin de fecha. Adems, los usuarios pueden seleccionar una fecha a partir de una interfaz de calendario desplegable similar a la del control MonthView. El Control DTPicker tiene dos modos de funcionamiento: 1. El control calendario desplegable (predeterminado) se muestra al usuario un calendario desplegable en el que se puede seleccionar una fecha. 2. El modo formato de hora, el usuario selecciona en un campo la hora (hora, minutos, segundos).

Formularios MDI
Un formulario MDI (Multiple Document Interface) es un contenedor de otros formularios. La aplicacin MDI contendr un formulario padre MDI y los formularios hijos 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. Especficamente, un formulario MDI es una ventana que acta como la base de una aplicacin y es el contenedor de otros formularios que tienen la propiedad MDI Child establecida como True. Las Ventanas hijas pueden abrirse, minimizarse, redimensionarse, moverse y tratarse como cualquier ventana normal, sin embargo siempre permanecen dentro del rea de la ventana padre; es decir, no pueden arrastrarse fuera del rea de la ventana principal. Usted crea un formulario MDI (padre) mediante la seleccin de MDI Form del men Project . Una aplicacin slo puede tener un formulario padre. Los formularios MDI, slo pueden contener objetos del men, cuadros de dibujo, barras de herramientas, barras de estado etc.

En resumen, los formularios MDI, no pueden tener controles (a excepcin de algunos) ni objetos, simplemente es el formulario padre de la aplicacin, el cual se

disean los mens principal y barras de herramientas del sistema que nos permitan llamar a nuestros formularios de trabajo. Si un formulario hijo tiene mens, la barra de men del formulario hijo reemplaza automticamente a la barra del men del objeto MDI, mientras este activo. La Barra del men que se disea para un formulario hijo MDI se desplegar sobre el formulario padre MDI en tiempo de ejecucin, cuando el formulario hijo MDI este activo, aunque este aparezca en el formulario hijo en tiempo de diseo.

Creacin de Mens
El Editor de Men es una aplicacin de diseo de men que se incluye en Visual Basic. Se utiliza para crear mens personalizados de su aplicacin. Para iniciar el editor de men, puede seleccionarlo en el men Herramientas Tools y luego editor de mens. Editor de Menu:

As se mostrar el men al momento de ejecutarlo El cuadro de texto Name es donde usted teclea el nombre de control para el elemento del men. Para permitir el acceso por teclado puede asignarle un ampersand (&) antes de una letra o asignado un acceso rpido(shortcut) para ese opcin del men. Tambin puede asignar una barra de divisin mediante el tecleo de un solo guin (-). Use los botones de esquema (flechas izquierda, derecha, arriba, abajo) para ajustar los niveles (la jerarqua) de los submen.

Barras de Herramientas

Se utilizan barras de herramientas (ToolBar), para proporcionar al usuario un acceso rpido a las opciones ms importante de nuestro sistema, as como para mostrarle un ambiente grfico familiar al de todas las aplicaciones Windows. Ejemplo de Aplicacin utilizando el control ToolBar
Barra de herramientas Control TooolBar

Lista de Imgenes Control ImageList

Para Crear una barra de herramientas con iconos grficos, primeramente se debe utilizar el control ImageList, el cual tendr el arreglo de imgenes que se utilizarn asi como las propiedades de los grficos. El primer paso ser colocar el control de imgenes sobre el formulario en el que se desea la barra de herramientas. Luego acceder a las propiedades de ste con el botn derecho del ratn. Entre las opciones que se deber fijar estn el tamao de los grficos, as como indicar la ruta donde se encuentran ubicados los archivos grficos y finalmente nombrarlos y ponerles un nmero de ndice con el cual los identificaremos en el control ToolBar. Ejemplo del control ImageList del men anterior

Una vez fijado los grficos, se procede a colocar el control ToolBar y a fijar las propiedades del mismo, en las cuales se seleccionaran tipo de botn, relieve de la barra, lista de imgenes que se usarn, acciones del mouse etc.

Control de Unidades, Directorios y Archivos


El control DriveListBox permite al usuario seleccionar una unidad vlida de disco en tiempo de ejecucin. Este despliega una lista ordenada de las unidades del disco usuario y reacciona automticamente a los clic del ratn. La propiedad ms importante de un DirveListBox es la propiedad Drive, el cual proporciona la unidad actual seleccionada por dicho control. Para sincronizar el DriveListBox con el DirListBox, es necesario indicar lo siguiente en el evento Change:
Dir1.Path = Drive1.Drive

El control DirListBox despliega una lista jerrquica ordenada de los directorios y subdirectorios del disco del usuario, segn la unidad seleccionada por el DriveListBox, permitiendo al usuario navegar entre ellos. Para Mostrar la lista de archivos en el directorio seleccionado es necesario aadir lo siguiente y sincronizarlo con el FileListBox: File1.Path = Dir1.Path El Control FileListBox localiza y lista archivos en el directorio especificado por su propiedad Path en tiempo de ejecucin. Usted puede usar este control para desplegar una lista de archivos en el direcotorio actual o puede establecer la propiedad Patern para mostrar solamente cierto tipo de archivos. 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 ejecucin, que son causados por circunstancias fuera de control del programa, que no se previeron en tiempo de diseo; y los errores lgicos, 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 cdigo del programa. Los otros dos tipos de errores, deben ser corregidos por usted. El manejo de errores en tiempo de ejecucin es el que aprenderemos a manejar a continuacin, para evitar la interrupcin del programa en tiempo de ejecucin. En Visual Basic, los errores en tiempo de ejecucin se refieren como errores interceptables, esto es, Visual Basic reconoce que se ha producido un error y le permite intercepartlo y realizar una accin correctiva, de lo contrario se finalizar la aplicacin. La manera de manejar los errores, es mediante el uso de la instruccin On Error GoTo de Visual Basic. Esta es la sintaxis: On Error GoTo procedimiento En este caso procedimiento es una manera de identificar un bloque de cdigo y es, simplemente, una sola palabra en una lnea seguida por dos puntos (:). Ejemplo:
Private Sub cmdTest_Clic() On Error GoTo Manejo Exit Sub Manejo: MsgBox Ha ocurrido un error Resume End Sub

La instruccin Resume le permite volver a intentar la operacin 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.

La instruccin Resume tambin puede usarse para devolver el control a la instruccin que sigue inmediatamente a la que provoc el error (Resume Next), o para pasar a otra lnea o procedimiento dentro del mismo procedimiento principal. Un manejador de errores amigable con el usuario desplegar el nmero y la descripcin del error y ofrecer algunas alternativas de cmo proceder despus de ocurrido el error. El objeto Err sirve para reportar el error (nmero y descripcin). En este caso se podr indicar el error de la siguiente forma:
Msgbox Ha ocurrido el error No & Err.Number & & Err.Descripcin

El manejo de errores proporciona una forma de que su programa tenga trato con los procesos fallidos, de lo contrario la aplicacin 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 vlida.

Bases de Datos
Conexin a una Base de Datos
El Control de Datos (Data) es un control integrado para conectar una aplicacin Visual Basic con una fuente de datos que se selecciona. Los controles de datos proporcionan una forma visual y fcil para navegar por los campos, registros y tablas de una o ms Bases de Datos. Tambin 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 automticamente en el campo asociado. En pocas palabras, los controles de datos asociados permitirn que se creen aplicaciones de acceso de datos que requieran muy poca o ninguna codificacin. Controles de Datos Asociados : Data Se usa para proporcionar acceso a datos en bases de datos por medio de controles asociados en su formulario. Crea y maneja objetos Database y Recordset para utilizarse por controles asociados. Se requiere para usarse con todos los dems controles asociados. DBCombo Se usa para crear una combinacin asociada de cuadro de lista y cuadro de texto o una simple lista desplegable. La lista puede llenarse automticamente desde un Control Data. DBGrid Se usa para trazar una cuadrcula asociada compuesta de varios registros. La cuadrcula puede llenarse automticamente desde un control Data. El usuario puede escoger un elemento de la cuadrcula o teclear un valor en el nuevo regisro. El Control Data tiene muchas propiedades, ocho de las cuales se listan en resumen aqu:

Align Devuelve o pone un valor entero (0-4) que determina si el control Data se despliega en cualquier tamao y parte del formulario (0), o si se despliega en la parte superior, inferior, izquierda o derecha de la forma (1-4) y que se dimensiona automticamente para adaptarse a la anchura del formulario. Caption DataBase DataBaseName Una frase a modo de mensaje que se despliega en el propio control Data. Regresa una referencia al objeto de base de datos subyacente del control Data. Devuelve y establece el nombre y ubicacin de la fuente de datos de un control data. Este es a menudo una expresin de cadena que indica el nombre y la ruta completa de la base de datos. Devuelve o establece un valor booleano que indica si los datos pueden editarse. El valor por omisin es False, para permitir la edicin. Devuelve o establece un objeto Recordset que se define por las propiedades de un control Data. Devuelve o establece un valor entero (0-2) que indica el tipo de objeto Recordset que usted desea que cree el control Data : Table, Dynaset o SnapShot. El valor por omisin es 1, Dynaset. Devuelve o establece la tabla subyacente o el enunciado SQL para un control Data. Esta propiedad determina cules registros sern desplegados por el control Data.

ReadOnly

Recordset RecordsetType

RecordSource

Ejemplo : Acceso de Datos desde Visual Basic 1. Creemos un proyecto nuevo 2. Agreguemos una forma 3. Aada un Control Data a la forma

4. Establezca las siguientes propiedades Name Align DataBaseName RecordSource dtaAutores 2 Align Bottom Ruta Authors

5. Dibuje tres cuadros de texto con las siguientes propiedades Name DataSource DataField txtId, txtNombre, txtAo dtaAutores Au_Id, Autor, Year Born

6. Configure el proyecto para que inicie con esta forma 7. Ejecute el Proyecto.

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 cdigo alguno.

Uso del DBCombo Este control se ve y trabaja muy parecido a un ComboBox normal no asociado, pero tiene mucho ms funcionalidad relacionada con la Base de datos. Puede usarlo para desplegar una lista de datos de su base de datos y ajustar solamente las propiedades DataSource y RowSource, ListField. Para poder utilizar un DBCombo, se requiere que se haya agregado un control Data a la forma.

Ejemplo

1. 2.

Agregue una nueva forma a su proyecto Aada un Control Data a la forma con las siguientes propiedades Name Caption DatabaseName ReadOnly Align RecordSource dtaAutores Autores Ruta Yes 2 Align Bottom Authors

3.

Agregue un DBCombo a la forma con las siguientes propiedades Name Caption DataSource RowSource ListField dbcAutores dtaAutores dtaAutores Author

4. 5.

Configure el Proyecto para que inicie con esta forma Ejecute el Proyecto

Como podr ver le aparece el listado de todos los autores, y de igual forma, no fue necesario escribir cdigo alguno.

Uso del DBGrid El Control DBGrid despliega y permite el manejo de datos de un serie de lneas y columnas que representan los registros y los campos del objeto Recordset de un Control Data. Este requiere ms sobrecarga que el control estndar de la cuadrcula, pero la funcionalidad que se aade y la atractiva apariencia valen la pena, en la mayora de los casos. Aunque el control DBGrid ligado a datos se ve similar al control estndar Grid, se puede establecer la propiedad DataSource del Control DBGrid a un Control Data, para que la cuadrcula se llene automticamente y se pongan encabezados de columna a partir del Recordset del control Data. El control DBGrid es simplemente, en realidad, un conjunto de columnas y lneas, cuyas dimensiones se determinan por la cantidad de campos y registros del Recorset asociado. Este control, cuando se crea inicialmente en tiempo de diseo, despliega dos columnas y dos lneas. Mediante el uso de la ventana Properties, puede cambiar cualquiera de los atributos visibles de la cuadrcula. Cuando establece la propiedad DataSource, accesa al RecordSet que se cre por el control Data y despliega las columnas, que incluyen los encabezados y las lneas del Recordset actual. Las columnas estn numeradas de acuerdo a la posicin de los campos en el Recordset subyacente (menos 1, como es usual). Las lneas estn numeradas iniciando desde cero, el encabezado no se incluye. Ejemplo : 1. Aada un formulario al proyecto 2. Aada un Data Control con las siguientes propiedades Name Caption DatabaseName ReadOnly Align RecordSource dtaAutores Autores Ruta Yes 2 Align Bottom Authors

3. Agregue un DBGrid al formulario con las siguientes propiedades : Name Caption DataSource dbgAutores Consulta de Autores dtaAutores

4. Configure el Proyecto para que inicie con este formulario 5. Ejecute el Proyecto.

Le muestra un listado de todos los datos de los Autores.

Objetos Database y Recordset Un objeto Database es una representacin lgica de una base de datos fsica que puede asignarse a una variable de tipo Database y ser manejada por sta. Una vez que aade un control Data vlido 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 mtodo OpenDatabase(), que se trata a continuacin. El mtodo OpenDatabase() abre una base de datos especfica y regresa una referencia al objeto Database que la representa. La programacin con objetos de acceso a datos consiste en la creacin de variables objetos y su manipulacin consiste en llamar a sus mtodos y establecer sus propiedades. Esta es la sintaxis simplificada para el mtodo OpenDatabase():
Set dbVariable = Objeto.OpenDatabase(dbName)

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 expresin de cadena, el nombre de un archivo de base de datos existente. Si el nombre de archivo de la base de datos tiene una extensin, debe incluirla. Si su red lo permite, puede tambin 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. Tambin deber observar el uso de un objeto de tipo Workspace . Este se utiliza para transmitir transacciones simultneas, de tal suerte que acta 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 cdigo en lugar de hacerlo con un control Data, este es un fragmento de cdigo que lo hara:
Dim dbContacts As Database, wsEspTrab As WorkSpace Declara Variable

Set wsEspTrab = DBEngine.Workspaces(0) Set dbContacts = wsEspTrab.OpenDatabase(c:\sistema\contacts.mdb)

Una vez que obtiene una variable Database vlida, puede usarla para ejecutar los mtodos Database, como Execute, que ejecuta una instruccin SQL sobre la base de datos que se especifica, u OpenRecordset, que crea un nuevo objeto Recordset. Por

ejemplo, podra obtener acceso a su tabla si aade las siguientes lneas al cdigo anterior:
Dim rsContacts As Recordset Set rsContacts = dbContacts.OpenRecordset(Contacts)

Un objeto Recordset es un conjunto lgico de registros asociados con una base de datos fsica; representa los registros en una tabla o los que resultan de hacer una consulta. Los objetos Recordset son los medios principales por los que usted interacta con los datos que contiene en su base de datos. 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 representacin de una tabla base que puede usar para aadir, cambiar o borrar registros de una sola tabla sencilla de base de datos. Es el resultado de una consulta que puede tener registros actualizables. Un Recordset tipo Dynaset es un conjunto dinmico de registros que puede usar para aadir, cambiar o borrar registros desde una o varias tablas de base de datos subyacentes. Es una copia esttica de un conjunto de registros que puede usar para encontrar datos o generar reportes. Un Recordset tipo snapshot puede contener campos desde una o ms tablas de una base de datos, pero puede alterarse.

Tipo Dynaset

Tipo SnapShot

El mtodo OpenRecordset() se usa para crear un nuevo objeto Recordset asociado con la base de datos actual. Esta es la sintaxis simplificada:
Set rsVariable = dbVariable.OpenRecordset(Fuente, Tipo )

Aqu, rsVariable es una variable objeto declarada de tipo RecordSet y dbVariable es una variable objeto de tipo Database que se ha asignado a un objeto de base de datos actualmente vlido. El argumento que se requiere, Fuente, es una expresin de cadena que especifica el origen de los registros para el nuevo Recordset. Fuente puede ser un nombre de Tabla, un nombre de consulta o una instruccin SQL que regresa registros. Para los Recordset tipo tabla, Fuente puede ser solamente un nombre de tabla. 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 mquina 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 mtodos MoveNext, MovePrevious, MoveFirst y MoveLast para navegar por los registros. Para los Recordset tipo dynaset y snapshot, puede usar tambin los mtodos Find, como FindFirst, para localizar un registro especfico en base a un criterio.

Consultas a la Base de Datos con SQL El Lenguaje de consulta estructurado (SQL) es un lenguaje que se usa para consultar, actualizar y manejar de otras maneras las bases de datos relacionales. Puede usarse para recuperar, filtrar y ordenar informacin de bases de datos. Puede usar las instrucciones SELECT de SQL en cualquier parte donde se acepte un nombre de tabla, uno de consulta o de campo. Por ejemplo, puede usar una instruccin SQL en lugar de un nombre de tabla en el mtodo OpenRecordset :
Dim Dim Dim Dim wsWS as Workspace dbCDLibrary As Database rsBlues as Recordset sSQL as string

SSQL = SELECT * FROM BLUES Set wsWS = DBEngine.Workspaces(0) Set dbCDLibrary = wsWS.OpenDatabase(Cdisks.MDB) Set rsBlues = dbCDLibrary.OpenRecordset(sSQL, dbOpenDynaset)

Una instruccin SQL es una expresin de cadena que empieza con un comando de lenguaje de consulta estructurado, como SELECT, UPDATE o DELETE y puede incluir clusulas de filtro y ordenamiento como WHERE y ORDER BY. Las instrucciones SQL, Una consulta de seleccin pide a la base de datos un conjunto de registros que satisfagan criterios especficos y recibe un Recordset; en cambio, una consulta de accin ejecuta una tarea que se especifica sobre un conjunto de registros que satisfacen el criterio especificado. En ambos casos se pueden usar intrucciones SQL para definir los registros que se quieren recuperar o con los que quiere actuar, y cmo se les quiere ordenar y agrupar. Este es un ejemplo de una consulta de seleccin que podra usarse con la base de datos Contacts: 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 accin: DELETE FROM Contacts WHERE State= CA 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 contruye el Recordset, puede refinarlo mediante el uso de uno de los mtodos

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 continuacin: Use una instruccin SQL como un argumento para el mtodo OpenRecordset Establezca la propiedad RecordSource de un control Data y use el mtodo Refresh Use el QueryDef existente en la propiedad RecordSource del control Data Use una consulta de accin SQL como un argumento para el mtodo Execute Cree y ejecute un objeto QueryDef personalizado Ejecute el QueryDef existente con el mtodo OpenRecordset

Establecimiento de la propiedad RecordSource de un control Data : Puede crear un Recordset, estableciendo la propiedad RecordSource de un control Data a una cadena de consulta SQL. Estos son los pasos generales a seguir cuando se usa una consulta SQL con un control Data. 1. 2. Disee la consulta SQL para que devuelva solamente los registros que Usted desee. Teclee la instruccin SQL de la consulta en la propiedad RecordSource del control Data. Puede hacer esto en tiempo de diseo o de ejecucin. Por ejemplo, en tiempo de ejecucin puede usar este cdigo: dtaQuery.RecordSource State=NY 3. = SELECT * FROM Contacts WHERE

En tiempo de ejecucin, use el mtodo Refresh para volver a crear el Recordset:


dtaQuery.Refresh

Uso de una consulta de accin y del mtodo Execute: Si necesita ejecutar una consulta de accin para efectuar una operacin que no devuelva registros, como cuando inserta, borra o actualiza registros, puede usar la instruccin SQL como un argumento en el mtodo Execute. El mtodo 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 especficos, puede usar el siguiente cdigo:
dbContacts.Execute DELETE FROM Contacts WHERE City = Tacoma

Reportes (Uso del Data Report)


Acerca del Diseador de entorno de datos (DataEnvironment) El Diseador de entorno de datos proporciona un entorno interactivo en tiempo de diseo para crear por programa accesos a datos en tiempo de ejecucin. En tiempo de diseo se establecen los valores de las propiedades de los objetos Connection y Command, se escribe cdigo para responder a los eventos de la interfaz de objetos de datos de ActiveX (ADO), se ejecutan comandos y se crean campos agregados y jerarquas. Tambin es posible arrastrar y colocar objetos Data_Environment en formularios o informes para crear controles enlazados a datos. Con el Diseador de entorno de datos puede llevar a cabo las tareas siguientes: Agregar un Diseador de entorno de datos a un proyecto de Visual Basic. Crear objetos Connection.

Crear objetos Command basados en procedimientos almacenados, tablas, vistas, sinnimos e instrucciones SQL. Crear jerarquas de objetos Command basadas en una agrupacin de objetos Command, o asociar entre s uno o varios objetos Command. Escribir y ejecutar cdigo para los objetos Connection y Recordset. Arrastrar y colocar campos de un objeto Command del Diseador de entorno de datos a un formulario de Visual Basic o al Diseador de informe de datos. Disear un objeto DataEnvironment En tiempo de diseo, es posible usar el Diseador de entorno de datos para crear un objeto DataEnvironment. El objeto DataEnvironment puede incluir objetos Connection y Command, jerarquas (relaciones entre objetos Command), agrupaciones y campos agregados. Antes de disear el objeto DataEnvironment debe determinar la informacin que desea presentar, identificar las bases de datos que contienen la informacin y determinar el objetivo de tiempo de ejecucin (por ejemplo, crear un informe de datos). Antes de obtener acceso al Diseador de entorno de datos debe hacer referencia al mismo en Visual Basic.

Para hacer referencia al Diseador de entorno de datos 1. En el men Proyecto, haga clic en Referencias.

2. En el cuadro de dilogo Referencias, seleccione Data Environment 1.0 y, a continuacin, haga clic en Aceptar. Para agregar un objeto del Diseador de entorno de datos a un nuevo proyecto de Visual Basic 1. En la ficha Nuevo del cuadro de dilogo Nuevo proyecto, elija proyecto EXE estndar y, a continuacin, haga clic en Abrir. 2. En el men Proyecto, elija Agregar entorno de datos. Visual Basic agrega el Diseador de entorno de datos al proyecto, muestra la ventana del Diseador de entorno de datos, y agrega un objeto Connection al entorno de datos. Despus de haber agregado un Diseador de entorno de datos al proyecto, puede crear un objeto Connection; vea el procedimiento en Objetos Connection. Despus de crear un objeto Connection, puede agregar objetos Command al mismo; vea el procedimiento en Objetos Command

Objetos Connection Para tener acceso a los datos mediante el entorno de datos, debe crear un objeto Connection. Por tanto, cada entorno de datos debera incluir al menos un objeto Connection. Un objeto Connection representa una conexin a una base de datos remota que se utiliza como un origen de datos. Cuando ha agregado un entorno de datos al proyecto de Visual Basic, el Diseador de entorno de datos incluye automticamente una nueva conexin, denominada Connection1. En tiempo de diseo, el entorno de datos abre la conexin y obtiene metadatos relativos a la conexin que incluyen los nombres de objetos, las estructuras de tablas y los parmetros de procedimiento de la base de datos. Nota Si se activa la opcin Mostrar propiedades inmediatamente despus de crear el objeto del cuadro de dilogo Opciones, se mostrar el cuadro de dilogo Propiedades de vnculos de datos cuando agregue un entorno de datos a su proyecto. Esta opcin no est seleccionada de forma predeterminada. Crear un objeto Connection La funcin Agregar conexin est disponible en todo momento, independientemente de si existen otros objetos. Para crear una conexin a una base de datos Haga clic en Agregar conexin en la barra de herramientas del Diseador de entorno de datos. O bien, Haga clic con el botn secundario del mouse (ratn) en el Diseador de entorno de datos y seleccione Agregar conexin en el men emergente. Cuando ha agregado un objeto Connection, se actualiza el entorno de datos para mostrar el nuevo objeto Connection. El nombre predeterminado de este objeto es "Connection" seguido de un nmero, como Connection1. Utilice el procedimiento siguiente para especificar las propiedades del objeto Connection. Para establecer el nombre de conexin y el origen de datos 3. En la ventana de Propiedades, cambie el nombre predeterminado por un nombre ms descriptivo de la base de datos de origen. Por ejemplo, puede cambiar el nombre Connection1 por "Northwind" si el origen de datos es la base de datos Northwind. 4. Haga clic en el objeto Connection y elija Propiedades para tener acceso al cuadro de dilogo Propiedades de vnculos de datos.

5. En el cuadro de dilogo Propiedades de vnculos de datos, especifique la informacin de conexin en las fichas Conexin y Proveedor. Suele ser una base de datos que contiene datos o procedimientos almacenados. Slo puede seleccionar un origen para cada objeto Connection. 6. Nota Independientemente del tipo de origen de datos seleccionado, el entorno de datos permite recuperar todos los datos mediante las interfaces ADO y OLE DB. 7. Haga clic en Aceptar para aplicar las propiedades y cerrar el cuadro de dilogo Propiedades de Connection.

Establecer la informacin de inicio La informacin de inicio slo es necesaria si el acceso a la base de datos mediante el objeto Connection requiere informacin de autenticacin. Puede especificar que se utilicen conjuntos diferentes de informacin de inicio en tiempo de diseo y en tiempo de ejecucin. Por ejemplo, podra desarrollar una aplicacin que utilice una identificacin y contrasea de usuario administrador del sistema pero que proporcione al mismo tiempo una identificacin de usuario invitado general cuando se ejecuta la aplicacin. Nota Cualquier informacin de inicio especificada en la ficha Propiedades de vnculos de datos se sobrescribe con la informacin de inicio de sesin especificada en la ventana de Propiedades de Visual Basic. Para especificar la informacin de inicio 1. Si es necesario, en la ventana de Propiedades de Visual Basic, especifique la identificacin y contrasea de usuario que debe usarse en tiempo de diseo y tiempo de ejecucin. Es posible especificar tambin el comportamiento del indicador. 2. Establezca DesignSaveAuthentication a True si desea que la autenticacin especificada persista en tiempo de diseo. Esta informacin no se escribe en el archivo ejecutable o la biblioteca de vnculos dinmicos (DLL). Si el valor de esta opcin es False, cualquier informacin en DesignUserName y DesignPassword se perder una vez que cierre y vuelva a abrir el proyecto que genere. 3. Establezca RunSaveAuthentication al valor True si desea usar la autenticacin especificada en tiempo de ejecucin. La informacin de autenticacin se almacena en las propiedades de la clase y persiste en el archivo ejecutable o DLL que genera. Si el valor de esta opcin es False, cualquier informacin en RunUserName y RunPassword se perder una vez que cierre y vuelva a abrir el proyecto. Nota Por seguridad, debido a que la contrasea no est codificada, no debe especificar que la contrasea persista en tiempo de ejecucin ni en tiempo de diseo.

Objetos Command Los objetos Command definen informacin de detalle especfica acerca de cmo deben recuperarse los datos mediante una conexin 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 sinnimo) 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 jerarqua. Nota Para que un objeto Command sea vlido, debe estar asociado con un objeto Connection. Si un objeto Command devuelve datos, se considera "de devolucin de conjunto de registros" y es posible tener acceso a sus resultados mediante un objeto Recordset disponible en el objeto DataEnvironment. Sin embargo, si un objeto Command no devuelve datos (por ejemplo, procedimientos almacenados o texto SQL que realice una actualizacin), se considera de "no-devolucin de conjunto de registros". El Diseador de entorno de datos identifica automticamente si el objeto Command es de devolucin de conjunto de registros. Puede suplantar este valor mediante la casilla de verificacin Devolver RecordSet de la ficha Avanzadas del cuadro de dilogo Propiedades de Command. En tiempo de ejecucin, la forma de obtener acceso al objeto Command depende de si se trata de un objeto Command de devolucin de conjunto de registros. Si se trata de un objeto Command de devolucin de un conjunto de registros, puede obtener acceso al objeto Command como una propiedad o como un mtodo del objeto DataEnvironment. Si se trata de un objeto de no-devolucin de conjunto de registros, slo se puede tener acceso al objeto Command como un mtodo. Vea Usar un entorno de datos con su aplicacin para obtener ms informacin.

Crear un objeto Command La funcin Agregar comando est disponible en todo momento y es independiente de la existencia de otros objetos. Sin embargo, un objeto Command que no est asociado con un objeto Connection no es vlido. La propiedad ActiveConnection del objeto Command est establecida en el objeto Connection si la conexin puede identificarse mediante el enfoque actual durante el procedimiento de agregar. Si no se identifica un objeto Connection, el objeto Command no es vlido mientras no lo asocie con una conexin. Para agregar un objeto Command Haga clic en Agregar comando en la barra de herramientas del Diseador de entorno de datos. O bien, Haga clic con el botn secundario del mouse en un objeto Connection o en el Diseador de entorno de datos, y elija la opcin Agregar comando del men emergente. Despus de agregar un objeto Command, la vista esquema del entorno de datos presenta el nuevo objeto Command. El nombre predeterminado del objeto es "Command", seguido de un nmero, como Command1. Utilice el procedimiento siguiente para especificar las propiedades del objeto Command. Para especificar las propiedades del objeto Command 1. Haga clic con el botn secundario del mouse en el objeto Connection y elija Propiedades para tener acceso al cuadro de dilogo Propiedades de Command. 2. Haga clic en la ficha General, y establezca los valores siguientes: Elemento Propsito Cambie el valor predeterminado de Nombre de comando por Nombre de un nombre ms descriptivo del objeto de base de datos. Por comando ejemplo, podra modificar el ttulo 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 automticamente el nombre del objeto Connection. No obstante, es posible cambiar esta Conexin conexin. Nota Para que sea vlido, cada objeto Command debe estar asociado con un objeto Connection. Objeto de base de Seleccione el tipo de base de datos en la lista desplegable. datos Puede tratarse de un procedimiento almacenado, un sinnimo,

una tabla o una vista. Seleccione un nombre de objeto en la lista desplegable. Los Nombre del objeto objetos mostrados provienen de la conexin y coinciden con el tipo del Objeto de base de datos seleccionado. O bien Si selecciona esta opcin como el origen de datos, escriba una consulta SQL vlida para la base de datos en el cuadro Instruccin SQL. Instruccin SQL O bien, Para generar la consulta, haga clic en SQL Builder para iniciar el diseador de consultas. Si el objeto Command se basa en una consulta con procedimiento almacenado, puede tener una coleccin establecer las propiedades de parmetro, haga clic en la cuadro de dilogo Propiedades parmetros o en un de parmetros. Para ficha Parmetros del de Command.

3. Utilice las fichas Relacin, Agrupacin y Campos agregados para definir relaciones y modelar los datos incluidos en el recordset. 4. Haga clic en la ficha Avanzadas del cuadro de dilogo Propiedades de Command para establecer las propiedades que cambian la forma en que se obtienen o manipulan los datos en tiempo de ejecucin. En esta ficha, establezca las propiedades avanzadas que el control de entorno de datos proporciona sobre las propiedades del objeto Command y el objeto Recordset resultante. 5. Haga clic en Aceptar para aplicar las propiedades al nuevo objeto Command y cerrar el cuadro de dilogo. Si se cre correctamente el objeto Command de devolucin de conjunto de registros y la opcin Mostrar campos est activada en el cuadro de dilogo Opciones, puede hacer clic en el mecanismo de expansin (+) bitmap de la vista esquema del diseador de entorno de datos para mostrar una lista de campos. Si no se ven campos, puede deberse a un objeto Recordset vaco, un objeto Command no vlido o una conexin no vlida. Personalizar los objetos Parameter de un objeto Command Si un objeto Command se basa en una consulta con parmetros o en un procedimiento almacenado con parmetros, el objeto Command posee una coleccin Parameters. Puede personalizar los objetos Parameter incluidos en la coleccin si cambia el tipo de datos o les asigna un nombre ms descriptivo.

Cambiar las propiedades de los objetos Parameter asociados El procedimiento siguiente describe cmo puede cambiar las propiedades de los objetos Parameter asociados a un objeto Command. Para cambiar las propiedades del objeto Parameter asociado a un objeto Command 1. Haga clic con el botn secundario del mouse en el objeto Command que desee personalizar y, a continuacin, seleccione Propiedades en el men emergente. 2. En la ficha Parmetros, seleccione un objeto Parameter en el cuadro de lista Parmetro y, a continuacin, establezca las propiedades siguientes: Elemento Name Direction DataType Precision Scale Size Host Data Type Propsito Proporcione un nombre nico y descriptivo para el objeto Parameter seleccionado. Especifique si se trata de un parmetro de entrada o de salida, o ambos a la vez, o si el parmetro corresponde al valor devuelto por el procedimiento. Especifique el tipo de datos al que se convierte el objeto Parameter. Especifique la precisin o nmero mximo de dgitos. Especifique el tamao mximo, en bytes. Especifique el tamao mximo en bytes. Especifica el tipo de datos utilizado cuando la aplicacin host hace referencia a este objeto Parameter. Cambiar este valor afecta al tipo de datos utilizado para generar la informacin de la biblioteca de tipos correspondiente al host. Especifica si se requiere un valor del parmetro cuando se ejecuta el objeto Command. Nota Si un parmetro requerido no est establecido cuando se ejecuta el objeto Command, el comando fallar. Especifica el valor predeterminado que debe usarse en tiempo de ejecucin (a menos que se proporcione un valor por programa) y, si corresponde, en tiempo de diseo si el objeto Command debe ejecutarse para obtener la informacin del campo.

Required

Value

1. Haga clic en Aceptar para aplicar las propiedades del parmetro al objeto Command seleccionado y salir del cuadro de dilogo.

DataReport (Objeto)
El objeto DataReport es el objeto programable que representa al diseador de informe de datos. Sintaxis DataReport Comentarios El objeto DataReport permite generar informes a partir de los registros de una base de datos. Para usarlo: 1. Configure un origen de datos para tener acceso a una base de datos. 2. Asigne a la propiedad DataSource del objeto DataReport con el origen de datos. 3. Asigne a la propiedad DataMember del objeto DataReport con un miembro de datos. 4. Haga clic con el botn secundario del mouse (ratn) en el diseador y, a continuacin, haga clic en Obtener estructura. 5. Agregue los controles apropiados a las secciones segn sea necesario. 6. Establezca las propiedades DataMember y DataField de cada control. 7. En tiempo de ejecucin, utilice el mtodo Show para mostrar el diseador de informe de datos. El objeto DataReport sirve para cambiar por programacin la apariencia y el comportamiento del diseador de informe de datos al modificar el diseo de cada objeto Section. El diseador de informe de datos ofrece la posibilidad de exportar los informes mediante el mtodo ExportReport. Este mtodo permite especificar un objeto ExportFormat, dentro de la coleccin ExportFormats, que servir de plantilla para el informe.

Partes del informe de datos El Diseador de informe de datos consta de los siguientes objetos: 1. Objeto DataReport. El objeto DataReport, similar a un formulario de Visual Basic, consta de un diseador visual y un mdulo de cdigo. Utilice el diseador para crear el diseo de un informe. Tambin puede agregar cdigo al mdulo de cdigo del diseador para dar formato a los controles o a las secciones contenidas en el diseador por programa. 2. Objeto Section. Cada seccin del Diseador de informe de datos est representada por un objeto Section de una coleccin Sections. En tiempo de diseo, cada seccin est representada por un encabezado en que puede hacer clic para seleccionar la seccin y por un panel de la seccin donde puede colocar controles. Utilice el objeto Section y sus propiedades para volver a configurar dinmicamente un informe antes de generarlo. 3. Controles del informe de datos. Se trata de controles especiales que slo funcionan con el Diseador de informe de datos. (Nota: en el Diseador de informe de datos, no puede emplear los controles intrnsecos de Visual Basic ni los controles ActiveX.) Estos controles se encuentran en el Cuadro de herramientas de Visual Basic, agrupados por separado en una ficha llamada DataReport.

Secciones del Diseador de informe de datos El Diseador de informe de datos predeterminado contiene los siguientes objetos Section: Encabezado de informe: contiene el texto que aparece al principio de un informe, como el ttulo del informe y el nombre del autor o de la base de datos. Si desea que el Encabezado de informe aparezca en la primera pgina del informe, establezca su propiedad ForcePageBreak en rptPageBreakAfter. Encabezado de pgina: contiene informacin que se escribe en la parte superior de cada una de las pginas, como el ttulo del informe. Encabezado y pie de grupo: contiene una seccin que se repite en el informe de datos. A cada encabezado de grupo corresponde un pie de grupo. La pareja de encabezado y pie de grupo est asociada con un nico objeto Command del Diseador de entorno de datos. Detalles: contiene la parte "repetida" ms interior (los registros) del informe. La seccin Detalles est asociada al objeto Command de nivel inferior en una jerarqua de entorno de datos. Pie de pgina: contiene informacin que se escribe en la parte inferior de cada una de las pginas, como el nmero de pgina. Pie de informe: contiene el texto que aparece al final del informe, por ejemplo un resumen o una direccin o nombre de contacto. El pie de informe aparece entre el ltimo encabezado de pgina y el ltimo pie de pgina. Controles del informe de datos Cuando agrega un nuevo Diseador de informe de datos a un proyecto, los controles siguientes se insertan automticamente en la ficha DataReport del Cuadro de herramientas: Control TextBox (RptTextBox): permite dar formato al texto o asignar un objeto DataFormat. Control Label (RptLabel): permite colocar etiquetas para identificar los campos o las secciones del informe. Control Image (RptImage): permite insertar grficos en el informe. Observe que no es posible enlazar este control con un campo de datos.

Control Line (RptLine): permite dibujar reglas en el informe para distinguir mejor las secciones. Control Shape (RptShape): permite insertar rectngulos, tringulos o crculos (y valos) en un informe. Control Function (RptFunction): un cuadro de texto especial que calcula valores a medida que se genera el informe.

Escribir informes con el Diseador de informe de datos de Microsoft


El Diseador de informe de datos de Microsoft es un generador de informes de datos verstil con capacidad integrada de creacin de informes jerrquicos por capas. Puede usarse con un origen de datos como el Diseador de entorno de datos para crear informes con datos procedentes de muchas tablas relacionales diferentes. Permite imprimir los informes y exportarlos a archivos con formato HTML o de texto. Posibles usos Crear automticamente informes que se exportan en formato HTML para su distribucin instantnea a travs de Internet. Crear informes diarios con las sumas de transacciones efectuadas cada da. Caractersticas del Diseador de informe de datos El Diseador de informe de datos tiene varias caractersticas: 1. Funcionalidad arrastrar y colocar aplicada a campos. Esta funcionalidad permite arrastrar campos del Diseador de entorno de datos de Microsoft al Diseador de informe de datos. Cuando utiliza esta tcnica, Visual Basic crea automticamente un control TextBox en el informe de datos y establece las propiedades DataMember y DataField del campo que ha colocado. Tambin puede arrastrar un objeto Command del Diseador de entorno de datos al Diseador de informe de datos. En este caso, se crear en el informe de datos un control cuadro de texto por cada uno de los campos del objeto Command y se asignarn valores apropiados a las propiedades DataMember y DataField de cada cuadro de texto. 2. Controles del Cuadro de herramientas. El Diseador de informe de datos posee un conjunto de controles propios. Cuando agrega un Diseador de informe de datos al proyecto, los controles se crean automticamente en una ficha llamada DataReport del Cuadro de herramientas. Muchos de estos controles tienen un funcionamiento idntico a los controles intrnsecos de Visual Basic e

incluyen un control Label, Shape, Image, TextBox, y Line. El sexto control (el control Function) genera automticamente informacin de uno de los cuatro tipos siguientes: Sum (suma), Average (promedio), Minimum (mnimo) o Maximum (mximo). Para obtener ms informacin acerca del control Function, vea "Agregar un control Function al informe de datos". 3. Vista preliminar. El mtodo 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. 4. Impresin de informes. Es posible llamar al mtodo PrintReport desde un programa para imprimir un informe. Cuando el informe de datos est en el modo de vista preliminar, los usuarios tambin pueden imprimirlo si hacen clic en el icono de impresora de la barra de herramientas. Nota Es necesario tener una impresora instalada en el equipo para poder imprimir un informe. 5. Exportacin de archivos. El mtodo ExportReport permite exportar la informacin del informe de datos. Los formatos de exportacin incluyen HTML y texto. 6. Exportacin de plantillas. Es posible crear una coleccin de archivos de plantilla para usarlos con el mtodo ExportReport. Esto es conveniente para exportar informes a varios formatos, cada uno ajustado al tipo de informe. 7. Operacin asncrona. Los mtodos PrintReport y ExportReports del objeto DataReport son operaciones asncronas. El evento ProcessingTimeout permite supervisar el estado de cada una de estas operaciones y cancelarlas si llevan demasiado tiempo.

Crear un informe de datos sencillo


Este tema muestra cmo puede crear un informe de datos sencillo mediante un Diseador de entorno de datos utilizado como un origen de datos. El Diseador de entorno de datos emplea la base de datos NorthWind incluida con Visual Basic para crear un sencillo cursor jerrquico. El cursor contiene dos tablas, Clientes y Pedidos, y ambas estn vinculadas mediante el campo IdCliente. El informe terminado es similar a la siguiente figura. Informe de datos sencillo: Fechas de los pedidos de clientes

Antes de empezar el procedimiento paso a paso, compruebe que la base de datos Northwind (Nwind.mdb) est presente en su equipo. Si no est, copie el archivo del CD de Visual Basic al disco duro. Para insertar un cursor jerrquico sencillo en el Diseador de entorno de datos Cree un nuevo proyecto Standard EXE.

En el men Proyecto, haga clic en Agregar entorno de datos para agregar un diseador al proyecto. Si el diseador no aparece entre las opciones del men Proyecto, haga clic en Componentes. Haga clic en la ficha Diseadores y en Entorno de datos para agregar el diseador al men. Nota El men Proyecto proporciona la lista de los cuatro primeros tipos de diseadores ActiveX cargados para un proyecto. Si se cargan ms de cuatro diseadores, los siguientes aparecern en el submen Ms diseadores ActiveX del men Proyecto.

En el cuadro de dilogo Data Link Properties, haga clic en Microsoft Jet 3.51 OLE DB Provider. Esta seleccin del corrige el proveedor OLE DB para tener acceso a la base de datos Jet. Haga clic en el botn Siguiente para llegar a la ficha Conexin. Haga clic en el botn Examinar () que se encuentra junto al primer cuadro de texto. Utilice el cuadro de dilogo Seleccionar base de datos de Access para desplazarse por el archivo nwind.mdb, que est instalado en el directorio Archivos de programa\Microsoft Visual Studio\Vb98. Haga clic en Aceptar para cerrar este cuadro de dilogo. Haga clic con el botn secundario de mouse (ratn) en el icono Connection1, y elija Cambiar nombre. Cambie el nombre del icono a Northwind. Haga clic con el botn secundario del mouse en el elemento Norhwind y, despus, haga clic en Agregar comando para mostrar el cuadro de dilogo Command1. En el cuadro de dilogo, establezca las propiedades como se indica a continuacin: Valor Clientes Northwind Table Clientes

Propiedad Nombre de comando Conexin Objeto de base de datos Nombre de objeto

1. Haga clic en Aceptar para cerrar el cuadro de dilogo. 2. Haga clic con el botn secundario del mouse (ratn) en el comando Clientes y haga clic en Agregar comando secundario para mostrar el cuadro de dilogo Command2. En el cuadro de dilogo, establezca las propiedades como se indica a continuacin:

Propiedad Nombre de comando Conexin Objeto de base de datos Nombre de objeto

Valor Pedidos Northwind Table Pedidos

Haga clic en la ficha Relacin. La casilla de verificacin Relacionar con un comando primario debera estar activada. El cuadro Primario debera contener Clientes; los cuadros Campos primarios y Campos secundarios y parmetros deberan mostrar IdCliente. Cuando se disean bases de datos relacionales, se suele usar el mismo nombre para los campos que permiten vincularlas. En este caso, los dos campos vinculados se denominan IdCliente. El Diseador de entorno de datos hace coincidir automticamente estos dos campos en el cuadro de dilogo. Haga clic en Agregar. Haga clic en Aceptar para cerrar el cuadro de dilogo. Al hacer clic en el botn Agregar, agrega la relacin al objeto Command. Despus de cerrar el cuadro de dilogo, el Diseador de entorno de datos refleja las relaciones de los dos comandos como una jerarqua. Esta jerarqua se usar para crear el informe de datos. Establezca las propiedades del proyecto y del diseador segn los valores indicados a continuacin y, despus, guarde el proyecto: Propiedad Name Name Name Valor prjNwind deNwind frmShow

Objeto Project DataEnvironment Form

Crear el informe de datos


Despus de haber creado el Diseador de entorno de datos, puede crear un informe de datos. Debido a que no todos los campos del entorno de datos son siempre tiles en un informe, los siguientes temas muestran cmo puede crear un informe limitado que muestra slo unos pocos campos. Para crear un nuevo informe de datos 1. En el men Proyecto, haga clic en Agregar informe de datos; Visual Basic agregar el informe de datos al proyecto. Si el diseador no aparece en el men Proyecto, haga clic en Componentes. Haga clic en la ficha Diseadores y en Informe de datos para agregar el diseador al men. Nota El men Proyecto proporciona la lista de los cuatro primeros tipos de diseadores ActiveX cargados. Si se cargan ms de cuatro diseadores, los siguientes aparecern en el submen Ms diseadores ActiveX del men Proyecto. 2. Establezca las propiedades del objeto DataReport segn la tabla siguiente: Propiedad Name Caption Valor rptNwind Informe de datos Northwind

3. En la ventana Propiedades, haga clic en DataSource y, despus, en deNwind. A continuacin, haga clic en DataMember y en Clientes. Importante Es necesario abrir el Diseador de entorno de datos antes de establecer la propiedad DataSource con el valor deNwind. Si el diseador est cerrado, presione Ctrl-R para mostrar la ventana Proyecto y haga doble clic en el icono del entorno de datos. 4. Haga clic con el botn secundario del mouse (ratn) en el Diseador de informe de datos y en Obtener estructura. Acaba de agregar una nueva seccin de grupo al diseador. Cada seccin de grupo posee una correspondencia unvoca con un objeto Command en el entorno de datos; en este caso, la nueva seccin de grupo corresponde al objeto Command denominado Clientes. Observe tambin que al encabezado de grupo corresponde una seccin Pie de grupo. 5. Arrastre el campo NombreCompaa (bajo el comando Clientes) del Diseador de entorno de datos a la seccin Encabezado de grupo (Clientes_Encabezado).

La seccin Encabezado de grupo puede contener cualquier campo del comando Clientes, pero para facilitar la demostracin, este ejemplo slo muestra por el momento el nombre Clientes. 6. Elimine el control Label (rptLabel) denominado Label1. Si no desea incluir un control Label con el control TextBox, desactive la opcin Arrastrar y soltar ttulos de campo de la ficha Asignacin de campos del cuadro de dilogo Opciones del Diseador de entorno de datos. 7. Arrastre el campo FechaPedido (bajo el comando Pedidos) del Diseador de entorno de datos a la seccin Detalles de pedidos. Elimine el control Label. La seccin Detalles de pedidos representa la seccin "repetida" ms interior y, por tanto, corresponde el objeto Command de nivel inferior de la jerarqua del entorno de datos: el objeto Command denominado Pedidos. 8. Cambie el tamao de las secciones del Diseador de informe de datos para que sea similar a la figura siguiente:

Es importante que cambie el alto de la seccin Detalles de pedidos para que sea lo ms corta posible, ya que el alto se multiplicar por cada uno de los objetos FechaPedido devueltos por NombreCompaa. 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.

Vista preliminar del informe de datos con el mtodo Show 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 cdigo para mostrar el informe de datos. Para mostrar el informe de datos en tiempo de ejecucin 1. En la ventana Explorador de proyectos, haga doble clic en el icono frmShow para mostrar el Diseador de formularios. 2. En Cuadro de herramientas, haga clic en la ficha General. Cuando agrega un Diseador de informe de datos al proyecto, sus controles se agregan a la ficha denominada DataReport. Para usar los controles estndar de Visual Basic, debe cambiar a la ficha General. 3. Haga clic en el icono CommandButton y dibuje un botn de comando en el formulario. 4. Establezca las propiedades del control Command1 como se indica en la tabla siguiente: Propiedad Name Caption
Private Sub cmdShow_Click() rptNwind.Show End Sub

Valor cmdShow Mostrar informe

5. En el evento Click del botn, pegue el cdigo siguiente.

6. Guarde y ejecute el proyecto. 7. Haga clic en Mostrar informe para mostrar el informe en el modo de vista preliminar. Opcional: configurar el informe de datos como el Objeto inicial: Tambin puede mostrar el informe de datos sin escribir cdigo. 1. En el men Proyecto, haga clic en Propiedades de prjNwind. 2. En el cuadro Objeto inicial, seleccione rptNwind. 3. Guarde y ejecute el proyecto. Nota Si utiliza este mtodo, puede quitar el objeto Form del proyecto.

Extender el informe de datos Ahora que dispone de un informe de datos sencillo, es fcil extenderlo y crear una presentacin ms 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 especfica y es similar a la figura siguiente. Informe de datos extendido con detalles sobre los pedidos

Para extender el entorno de datos 4. En el Diseador de entorno de datos, haga clic con el botn secundario del mouse (ratn) en el objeto Command Pedidos. A continuacin, haga clic en Agregar comando secundario. 5. En el cuadro de dilogo Propiedades de Command1, establezca las propiedades siguientes:

Propiedad Nombre de comando Conexin Objeto de base de datos Nombre de objeto

Valor DetallesPedidos Northwind Table Detalles de pedidos

6. Haga clic en la ficha Relacin. La casilla de verificacin Relacionar con un comando primario debera estar activada. El cuadro Primario debe contener Pedidos; los cuadros Campos primarios y Campos secundarios y parmetros deben mostrar IdPedido. Haga clic en el botn Agregar y, a continuacin, en Aceptar para cerrar el cuadro de dilogo. 7. Haga clic con el botn secundario del mouse (ratn) en el objeto Command DetallesPedidos y haga clic en Agregar comando secundario. Establezca las propiedades de la conexin como se indica a continuacin: Propiedad Nombre de comando Conexin Objeto de base de datos Nombre de objeto Valor Productos Northwind Table Productos

8. Haga clic en la ficha Relacin. La casilla de verificacin Relacionar con un comando primario debera estar activada. El cuadro Primario debe contener DetallesPedidos; los cuadros Campos primarios y Campos secundarios y parmetros deben mostrar IdProducto. Haga clic en el botn Agregar y, a continuacin, en Aceptar para cerrar el cuadro de dilogo. Extender el informe de datos Despus de haber extendido el entorno de datos con tablas nuevas, puede extender tambin el informe de datos al arrastrar campos del Diseador de entorno de datos al Diseador de informe de datos. Para extender el informe de datos 9. Haga clic con el botn secundario del mouse (ratn) en el diseador Informe de datos y desactive el cuadro Mostrar Encabezado o pie de pgina. Al desactivar esta opcin, se eliminan el encabezado y el pie de pgina, que no se utilizan por ahora. 10. Haga clic con el botn secundario del mouse (ratn) en el Diseador de informe de datos y haga clic en Insertar encabezado o pie de grupo. Aparecer el cuadro de dilogo Insertar nuevo encabezado o pie de grupo.

El cuadro de dilogo permite determinar si el nuevo encabezado y el nuevo pie de grupo incluyen otras parejas "anidadas" de encabezado y pie. Esto es importante cuando agrega nuevas parejas de encabezados y pies, ya que la pareja situada ms al exterior tiene precedencia sobre las dems. Este aspecto se trata con ms detalle en "Partes del informe de datos". 11. Haga clic en Aceptar para seleccionar la posicin predeterminada de la nueva pareja de encabezado y pie, y para cerrar el cuadro de dilogo. 12. Seleccione el nuevo encabezado de grupo y cambie el nombre Section1 por Pedidos_Encabezado en la ventana Propiedades. Cambie el nombre Section4 correspondiente al pie de pgina por Pedidos_Pie. 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. 14. Haga clic en la seccin Pedidos_Detalle para seleccionarla. En la ventana Propiedades, cambie el nombre de la seccin por Productos_Detalle. 15. Con el mouse, arrastre el campo FechaPedido de la seccin Productos_Detalle a la seccin Pedidos_Encabezado. 16. Arrastre el campo NombreProducto (bajo el comando Productos) del Diseador de entorno de datos a la seccin Productos_Detalle. 17. Elimine el control Label denominado Label1. 18.Ajuste el tamao de los encabezados de grupo y reorganice los controles de cuadro de texto para que sean similares a la figura siguiente.

La figura anterior necesita algunas explicaciones. En primer lugar, se cierran todos los pies de grupo por orden para conseguir el mayor espacio posible. Como ocurre con la seccin Detalles, en el informe final se multiplica el espacio adicional que quede en los encabezados o pies de pgina. Por consiguiente, si un encabezado o pie de pgina no contiene ningn campo, puede ajustar al mximo la distancia que separa a los encabezados y los pies de pgina. El encabezado de grupo llamado DetallesPedidos_Encabezado tambin se ajusta. Si se pregunta por qu no se muestra ningn campo, debe comprender que la tabla Detalles de pedidos de la base de datos Northwind es una tabla combinada, es decir una tabla que slo contiene los identificadores de registros de la tabla Pedidos, combinados con los identificadores de registros de la tabla Productos. Los campos no aparecen por el momento precisamente porque la tabla Detalles de pedidos no contiene ninguno. Simplemente permite combinar las otras dos tablas. En el Diseador de informe de datos, por tanto, la tabla Detalles de pedidos slo sirve para crear grupos de registros: los nombres de producto agrupados por fechas de pedido. Por ltimo, la seccin Detalles slo contiene los nombres de los productos. La seccin Detalles contiene el nivel ms interior de los registros repetidos. 19.Guarde y ejecute el proyecto.

Agregar un campo calculado al informe de datos Un campo calculado es un campo cuyo valor se calcula al generar el informe. Por ejemplo, para calcular los impuestos aplicables a un pedido, debe multiplicar el importe total por un porcentaje correspondiente al impuesto local. Como los porcentajes de los impuestos locales varan, no conviene almacenarlos en la base de datos, sino calcular el impuesto en el momento de generar el informe, es decir, con un campo calculado. En este ejemplo el Diseador de informe de datos extendido se modifica de forma que incluya un campo Total que calcule el producto de las cantidades por el precio unitario, es decir: Cantidad * PrecioUnidad. Agregar un campo calculado implica los pasos siguientes: Usar una instruccin SQL en el objeto Command del entorno de datos para crear el campo calculado. Agregar tres controles de cuadro de texto al informe de datos: Cantidad, PrecioUnidad y Total (correspondiente al campo calculado).

El informe de datos modificado tendr la apariencia siguiente.

Para agregar un campo calculado al informe de datos En el Diseador de entorno de datos, haga clic con el botn secundario del mouse (ratn) en el comando DetallesPedidos. A continuacin haga clic en Propiedades para mostrar el cuadro de dilogo Propiedades de DetallesPedidos.

En la ficha General, haga clic en el botn Instruccin SQL y escriba la instruccin siguiente en el cuadro: Select IdPedido, IdProducto, PrecioUnidad, Cantidad, (Cantidad * PrecioUnidad) As Total From [Detalles de pedidos] La instruccin SQL multiplica el valor Cantidad por el valor PrecioUnidad y obtiene el valor Total, es decir, el campo calculado. Observe que el nombre de la tabla Detalles de pedidos incluye espacios, por lo que debe escribirse entre corchetes. Haga clic en Aceptar para cerrar el cuadro de dilogo. Arrastre los campos Cantidad, PrecioUnidad y Total (bajo el comando DetallesPedidos) del Diseador de entorno de datos a la seccin Productos_Detalle del Diseador de informe de datos. 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

tengan la apariencia siguiente: En el Diseador de informe de datos, haga clic en el cuadro de texto PrecioUnidad para seleccionarlo. En la ventana Propiedades, haga doble clic en DataFormat para mostrar el cuadro de dilogo Pginas de propiedades. En el cuadro Tipo de formato, haga clic en Moneda. En el cuadro combinado Smbolo, seleccione la moneda correspondiente a su pas.

Repita los pasos 6 y 7 para cambiar la propiedad DataFormat del cuadro de texto Total a Moneda. Haga clic en el control de cuadro de texto Total para seleccionarlo. En la ventana Propiedades, cambie la propiedad Alignment a 1 rptJustifyRight. Guarde y ejecute el proyecto.

Agregar un control Function al informe de datos El Diseador de informe de datos tiene su propio conjunto de controles. El control Function es el nico que no tiene un equivalente entre los controles intrnsecos de Visual Basic y merece un poco ms de explicacin. El control Function presenta datos calculados en tiempo de ejecucin mediante una funcin integrada, a medida que se genera el informe. La figura siguiente muestra un ejemplo tpico donde se utiliza el control Function para sumar los subtotales de un pedido especfico y mostrar el total correspondiente. Si utiliz una instruccin 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 slo puede calcular los valores cuando los dems registros de una seccin de grupo ya se han procesado. En cambio, una instruccin 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 Diseador de informe de datos: Dibuje un control Function en una seccin Pie de pgina apropiada del Diseador de informe de datos. Establezca las propiedades DataMember y DataField con valores apropiados (un campo numrico de un objeto Command del entorno de datos que desee usar).

Informe de datos con un control Function para presentar Totales

Para agregar un control Function al informe de datos 1. Haga clic con el puntero del mouse en el pie de grupo denominado Cliente_Pie y arrstrelo a la parte inferior de la ventana para dejar un espacio entre l y el pie de pgina Pedidos_Pie. 2. En el Cuadro de herramientas, haga clic en el control rptFunction. 3. Dibuje el control rptFunction en el espacio comprendido entre los dos pies de pgina. 4. Establezca las propiedades del control rptFunction segn la tabla siguiente: Propiedad DataMember DataField Name Alignment DataFormat Valor DetallesPedidos Total fncTotal 1 rptJustifyRight Currency

La propiedad FunctionType del control determina qu operacin 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 incluyen: Average, Minimum, Maximum, Row Count, STDDev (Desviacin estndar) y Value Count. 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. 6. Haga clic en el control fncTotal para seleccionarlo. En la ventana Propiedades, haga doble clic en Fuente para mostrar el cuadro de dilogo Fuente. Cambie el Estilo de fuente a Negrita. 7. Repita el paso 6 con el control Label. 8. Coloque los controles en el diseador de forma que tengan la apariencia siguiente:

9. Guarde y ejecute el proyecto. Aumentar el alcance de la funcin Puede aumentar el alcance de la funcin si coloca el control en un pie de grupo inferior. Por ejemplo, podra conseguir el total general del conjunto de pedidos de cada cliente.

Para mostrar el total general de todos los pedidos Dibuje un nuevo control Function en la seccin Cliente_Pie. Alinee el nuevo control con el control Function creado anteriormente. Dibuje un control Label a la izquierda del nuevo control Function. Establezca las propiedades de los controles como se indica en la tabla siguiente: Propiedad Name DataMember DataField Font (Font Style) Alignment Caption Font (Font Style) Alignment Valor fncGrandTotal DetallesPedidos Total Bold 1 rptJustifyRight Total general Bold 1 rptJustifyRight

Control rptFunction rptFunction rptFunction rptFunction rptFunction rptLabel rptLabel rptLabel

El Diseador de informe de datos debera presentarse ahora como en la siguiente figura:

Guarde y ejecute el proyecto.

Construccin y Entrega de la aplicacin


Archivo Ejecutable

Un Archivo ejecutable es una aplicacin basada en Windows con una extensin de nombre de archivo .EXE que puede ejecutarse fuera del ambiente de desarrollo de Visual Basic. Este y otros archivos auxiliares requeridos por su programa se entregan a los usuarios en prospecto de la aplicacin para instalarse y ejecutarse bajo Windows. La meta final de cualquier proyecto de programacin es producir una aplicacin ejecutable que se pueda usar y sea til. 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 botn Options. En este cuadro de dialogo, se establecen atributos e informacin documental del archivo ejecutable:

Nmero de Versin

Titulo del proyecto

Icono de la aplicacin Informacin del ejecutable

Argumentos y/o parmetros adicionales 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 cdigo. Si as sucede, se abrir una ventana Code para mostrarle la lnea que causa el problema. Asistente para instalar aplicaciones

El Asistente para crear instaladores, es una herramienta que se usa para crear un programa de instalacin y los medios de distribicin (para discos flexibles o instaladores de red) de su aplicacin de Visual Basic. La primera vez que se ejecuta el asistente para instalar aplicaciones le pide a usted la ubicacin de archivos importantes que se requieren para que se ejecute correctamente. El asistente para instalar aplicaciones, le proporciona una manera fcil de preparar la distribucin de sus proyectos de programacin, as como anexar archivos auxiliares que requiere su aplicacin

También podría gustarte