Escolar Documentos
Profissional Documentos
Cultura Documentos
Bases de Datos
Manual de Referencia para el Alumno
Incluye:
Objetos de Datos ActiveX (ADO)
Generacin de Informes de datos
BD
Indice
BASES DE DATOS Y VISUAL BASIC .........................................................................................................................................4
FUNDAMENTOS SOBRE BASE DE DATOS: ....................................................................................................................................4
IMPLEMENTAR EL DISEO DE UNA BASE DE DATOS DESDE VISUAL BASIC ..............................................................................4
EL CONTROL ADODC Y SUS CONTROLES ENLAZADOS ................................................................................................................5
HABITUARSE A LOS CONTROLES ENLAZADOS ..............................................................................................................................7
ESTABLECIMIENTO DE LAS PROPIEDADES DE ENLACE: ..............................................................................................................7
CREACIN DE UNA APLICACIN SENCILLA...................................................................................................................................8
AGREGAR Y ELIMINAR REGISTROS: .............................................................................................................................................9
CAMBIAR EL ORIGEN DE DATOS A TRAVS DE CDIGO: ..........................................................................................................10
MTODO FIND (ADO) ................................................................................................................................................................11
USO DEL CONTROL DATAGRID ..................................................................................................................................................12
Configurar el Control: .....................................................................................................................................................13
ADO Y EL MODELO DE OBJETOS DE ADO ...........................................................................................................................13
REALIZAR UNA CONEXIN CON ADO.........................................................................................................................................14
Abrir y cerrar una conexin ..........................................................................................................................................14
Uso del mtodo Execute ................................................................................................................................................14
Conexin sin DSN .............................................................................................................................................................16
Trabajando con Recordsets...........................................................................................................................................16
Creacin de un recordset...............................................................................................................................................17
Mostrar valores de un campo.......................................................................................................................................18
Navegacin por el Recordset ........................................................................................................................................19
Navegacin y la propiedad CursorType ....................................................................................................................20
Uso de mtodos de navegacin ..................................................................................................................................21
Actualizar Datos ................................................................................................................................................................22
Establecer la propiedad LockType (Tipo de Bloqueo)..........................................................................................22
Agregar nuevos datos .....................................................................................................................................................23
El Objeto Command.........................................................................................................................................................24
Recordsets desconectados ............................................................................................................................................25
Creacin de un Recordset Desconectado .................................................................................................................25
Reconectar un Recordset ...............................................................................................................................................25
ACERCA DEL DISEADOR DE ENTORNO DE DATOS (DATAENVIRONMENT)..........................................................27
DISEAR UN OBJETO DATAENVIRONMENT ................................................................................................................................27
CREAR UN OBJETO CONNECTION ...............................................................................................................................................29
CREAR UN OBJETO COMMAND ....................................................................................................................................................30
USAR UN ENTORNO DE DATOS CON LA APLICACIN .................................................................................................................33
SITUACIONES PARA USAR EL DISEADOR DE ENTORNO DE DATOS ........................................................................................34
Crear una jerarqua de relaciones entre un Cliente y una tabla Pedidos .....................................................34
Incluir un campo agregado en el objeto Command "Cliente" ..........................................................................35
Agrupar el objeto Command "Cliente" por estado ...............................................................................................36
Incluir un campo agregado para contar el nmero de clientes por cada estado ......................................36
Incluir un agregado total general para contar el nmero de estados en que hay clientes ...................37
Enlazar el entorno de datos a un control Hierarchical FlexGrid .......................................................................38
REPORTES EN VISUAL BASIC ..................................................................................................................................................39
CREACIN DE REPORTES CON DATA REPORT (DISEADOR DE INFORMES DE DATOS) .......................................................39
Caracteristicas del Diseador de Informes de Datos...........................................................................................39
Crear un Informe de Datos Sencillo ..........................................................................................................................41
Crear el informe de datos..............................................................................................................................................42
Vista Preliminar del Informe de Datos con el Mtodo Show .............................................................................44
Imprimir un informe de datos......................................................................................................................................44
Decidir si se muestra un cuadro de dilogo Imprimir ...................................................................................44
Imprimir sin un cuadro de dilogo .......................................................................................................................45
Controles del informe de datos ...................................................................................................................................45
DISEANDO INFORMES CON CRYSTAL REPORTS ......................................................................................................................46
Creacin de un nuevo Informe: ..................................................................................................................................46
Creacin de un informe desde cero ...........................................................................................................................47
Creacin de un Informe usando el Asistente..........................................................................................................49
Personalizar el Informe ..................................................................................................................................................50
Agregar una frmula de seleccin ..............................................................................................................................50
Uso del Control Crystal Report ....................................................................................................................................51
Modificando propiedades del Control Crystal Report ...........................................................................................51
Establecer propiedades opcionales:...........................................................................................................................52
Mostrar el Informe ...........................................................................................................................................................52
Pg. 2 de 65
LABORATORIOS ............................................................................................................................................................................54
CONTROL ADODC Y CONTROLES ENLAZADOS.............................................................................................................54
Lab 01: Agregando y Configurando un Control ADODC .....................................................................................54
Lab 02: Agregando y Configurando Controles Enlazados a Datos .................................................................54
Lab 03: Agregando, Actualizando y Eliminando Datos a travs de Cdigo .................................................55
Lab 04: Agregando, Configurando y Usando el Control DataGrid ..................................................................56
ADO Y EL MODELO DE OBJETOS DE ADO .......................................................................................................................57
Lab 01: Realizando una Conexin con ADO utilizando DSN .............................................................................57
Lab 02: Estableciendo una Conexin sin DSN .......................................................................................................59
Lab03: Laboratorio de Desarrollo 1. Trabajando con Recordsets ...................................................................59
Lab 04: Laboratorio de Desarrollo 2. Creando una aplicacin para mantenimiento basado en una
base de datos creada por el alumno. ........................................................................................................................60
ACERCA DEL DISEADOR DE ENTORNO DE DATOS (DATA ENVIRONMENT) ....................................................61
Lab 01: Creando un Proyecto de Datos y Configurando un DataEnvironment ..........................................61
Lab 02: Usar el Entorno de Datos con la Aplicacin ............................................................................................62
Lab 03: Labotarorio de Desarrollo 1. Creando una aplicacin de mantenimiento usando
DataEnvironment ..............................................................................................................................................................63
REPORTES EN VISUAL BASIC .............................................................................................................................................64
Lab 01: Laboratorio de Desarrollo 1. Aadiendo un Informe de Datos al Proyecto pjtTest ..................64
Lab 02: Laboratorio de Desarrollo 2. Aadiendo un Informe diseado con Crystal Reports al
proyecto pjtTest ................................................................................................................................................................64
Pg. 3 de 65
Bases de Datos y Visual Basic
La creacin de una estructura organizada de Base de datos exige que aprenda sobre dos
tareas separadas. En primer lugar deber aprender a disear una base de datos. En el diseo
tiene que decidir que datos van a la base de datos y como se van a organizar estos. En
segundo lugar deber aprender a traducir el diseo a una verdadera base de datos. Esto se
puede hacer de varias maneras, en Visual Basic existen algunos mtodos bastante
evolucionados, adems existen programas gestores de bases de Datos afines a Visual Basic
como Microsoft Access
En este documento se utilizan los Objetos de Datos ActiveX (ADO), dado que es la mas
actual forma de Acceso a Datos proporcionada desde la aparicion de Visual Basic 6.0
Pg. 4 de 65
El Control Adodc y sus Controles enlazados
El control Data es la principal herramienta de desarrollo al momento de crear aplicaciones
sencillas con Bases de Datos. Este control es bastante flexible y fcil de programar y
configurar. Veamos a grandes rasgos lo que el usuario debe hacer para aprender a utilizar
este control:
Moverse al primer
registro
Moverse al anterior
registro
Moverse al ultimo
registro
Moverse al siguiente
registro
Cabe mencionar que para insertar el Control Data en el formulario simplemente hay que
dibujarlo como lo hara con otro control, asignando tamao y posicin dentro del formulario.
Propiedades importantes:
En esta pantalla
Ud. Debe
especificar
como
conectarse con
una fuente de
datos local o
remota
Pg. 5 de 65
Para establecer una conexin con el control Adodc, debe especificar cualquiera de las
opciones de Origen de Conexin, siendo la mas comun la opcion Usar nombre de origen
de datos ODBC.
Debe comprender que el control Adodc es mucho mas avanzado y completo que el control
Data Estndar, el motivo es que este control permite configurar facilmente conexiones a
fuentes de datos locales como Microsoft Access o fuentes empresariales como Microsoft
SQL Server
Vamos a crear una conexin utilizando el control Adodc, primero utilizando un origen ODBC y
luego sin ODBC, para el primer caso suponemos lo siguiente:
1. Existe una fuente ODBC llamada BIBLIO que se conecta a la base de datos de
ejemplo Biblio que viene con Visual Basic, esta fuente de datos fue creada utilizando
el Panel de Control del Sistema Operativo Windows
1. En la Pgina de Propiedades del control Adodc, haga click en la opcion Usar nombre
de origen de datos ODBC.
4. Una vez en esta pantalla, en Tipo de Comando, elija: 2-adCmdTable, esto para
especificar que vamos autilizar un Tabla de esta Base de datos
Pg. 6 de 65
5. Luego en Tabla o Nombre de Procedimiento Almacenado elija la Tabla
Publishers, y despues haga click en Aplicar y Aceptar.
Listo, ya tenemos configurado en Control Adodc, ahora tenemos que enlazarlo a controles
que permitan la visualizacion de los registros de la tabla Publishers
TextBox
Label
CheckBox
PictureBox
Image
En trminos generales estos controles permiten unir un campo de la tabla con nuestra
aplicacin, obviamente en el formulario. Ahora bien, estos controles muestran
correspondencia con cierto tipo de datos. Veamos una tabla que nos explica con detalle esto:
Cada control enlazado, posee 2 propiedades fundamentales que permiten unirlos con campos
de un Recordset (Recordset = Conjunto de Registros )
Pg. 7 de 65
Para este caso, como estamos utilizando
el control Adodc, sera suficiente que se
modifiquen las propiedades DataSource
y DataField, es ese estricto orden, en
DataSource especificamos el nombre
del control, (Adodc1 en este caso) y en
DataField el nombre del campo
vinculado al control enlazado, (PubID en
este caso)
DataSource : permite especificar el control Adodc que se enlaza con los controles
enlazados a datos.
Pg. 8 de 65
6. Tambin inserte 3 Label acompaando a los cuadros de texto
7. Configure las siguientes propiedades para los controles, (ver pgina siguiente):
Recuerde que para los tres cuadros de texto la propiedad que primero debe configurar antes
de DataField es DataSource especificando en ella el nombre del Control Adodc insertado en el
formulario.
Listo ahora es muy fcil Navegar dentro del RecordSet, para ello simplemente haga click
en los botones de navegacin explicados anteriormente.
Debe tener en cuenta algo, el Control Adodc no permite controlar de manera eficaz las
operaciones de modificar registros y no permite eliminar registros de manera directa, esto
significa que estas operaciones deben controlarse mediante Cdigo.
Pg. 9 de 65
Private Sub cmdEliminar_Click()
Adodc1.Recordset.Delete
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveNext
Else
Adodc1.Recordset.MoveLast
End If
End Sub
Adodc1.Recordset.UpDate
As, el control de datos ADO de la aplicacin de muestra recupera todos los registros que
haya en la tabla Publishers. No obstante, resulta muy facil agregar codigo para cambiar la
propiedad RecordSource , de forma que aparezca un nuevo recordset.
Supongamos que deseamos mostrar informacion unicamente de los editores cuya direccin
est en un estado determinado. Puede escribir una consulta SQL sencilla para mostrar estas
direcciones, como en este ejemplo:
Pg. 10 de 65
Select * from Publishers where State=NY
Sintaxis
Parmetros
criteria Un String que contiene una instruccin que especifica el nombre de la columna, el
operador de comparacin y el valor utilizado en la bsqueda.
SkipRows Un valor Long opcional, cuyo valor predeterminado es cero, que especifica el
desplazamiento desde la fila actual o marcador de inicio en el que comenzar la bsqueda.
start Un marcador Variant opcional que se utiliza como posicin inicial de la bsqueda.
Pg. 11 de 65
El operador de comparacin de criteria puede ser ">" (mayor que), "<" (menor que), "="
(igual a) o "like" (coincidencia parcial de cadenas).
El valor de criteria puede ser una cadena, un nmero en coma flotante o una fecha. Los
valores de cadena estn delimitados con comillas sencillas (por ejemplo, "estado = 'WA'").
Los valores de fecha estn delimitados con signos "#" (por ejemplo, "fecha_inicial >
#7/22/97#").
Pg. 12 de 65
Configurar el Control:
Para realizar el ejemplo que observa en la figura, haga lo siguiente:
Objeto Descripcion
Recordset Contiene los registros que conforman los resultados de una consulta
Connection Permite un control sobre la conexin del origen de datos
Command Ejecuta ordenes y consultas de bases de datos parametrizadas
Error Recupera Errores de ADO
Field Representa una porcion de datos de un recordset
Parameter Funciona con el objeto Command para configurar un parmetro de
una consulta o procedimiento almacenado
Property Le permite acceder a las propiedades del objeto ADO
Modelo de
Objetos de
ADO
Pg. 13 de 65
Para utilizar los objetos de datos ActiveX (ADO), deber agregar la librera a su proyecto:
El Objeto Connection se utiliza para establecer una conexin con un origen de Datos. Su
propiedad mas importante es la propiedad ConnectionString que contiene la informacion
que se emplea para conectarse con un origen de datos. El estado de la conexin de la base
de datos se controla por medio de los metodos Open y Close
Despues de crear la instancia del Objeto, lo unico que tendra que hacer es proporcionar la
cadena de conexin y llamar al mtodo Open. Puede establecer esta cadena de conexin de
2 formas. La primera consiste en asignarla a la porpiedad ConnectionString:
Cn.ConnectionString = DSN=BIBLIO
Cn.Open
Tambien puede pasar la cadena de conexin como parte de la llamada al metodo Open:
Cn.Open DSN=BIBLIO
Para cerrar una conexin, llame al metodo Close y establezca la variable Cn en Nothing
para liberar recursos utilizados por esta variable
Cn.Close
Set Cn = Nothing
Pg. 14 de 65
ellos sencillamente asignando el valor de retorno del mtodo Execute a un objeto ADO
Recordset.
Veamos:
Option Explicit
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Rs.Close
Cn.Close
Set Rs = Nothing
Set Cn = Nothing
End Sub
Este es el resultado:
Pg. 15 de 65
El mtodo Execute del Objeto Connection devuelve un objeto Recordset, que esta
almacenado en la variable Rs. A continuacion, se utiliza un bucle para desplazarse por el
recordset, agregando el nombre de cada Autor y el ao de nacimiento al cuadro de lista.
Cn.ConnectionString = _
Provider=Microsoft.Jet.OLEDB.3.51;DataSource=d:\vb6\biblio.mdb
Cn.ConnectionString = _
Driver=Microsoft Access Driver (*.mdb);DBQ=D:\VB6\biblio.mdb
Nota: Aunque se use una conexin sin DSN, los controladores y archivos de soporte apropiados deberan
instalarse en el PC del usuario.
La Cadena de consexion Anterior nombra el controlador en lugar del DSN. Para el controlador
Access, el parmetro DBQ seala al nombre de la Base de Datos. Tambien puede especificar
otros proveedores de bases de datos OLE, como la siguiente cadena que se use para
conectarse con Microsoft SQL Server:
Provider=SQLOLEDB.1;Password=groovy;UserID=apowers;Location=SQLSRV1;database=pubs
Pg. 16 de 65
Creacin de un recordset
Ya hemos aprendido a crear y poblar un recordset por Medio del mtodo Execute del Objeto
Connection. Sin embargo, un objeto Recordset posee sus propios mtodos y propiedades,
que pueden ser utilizados para recuperar datos. Al igual que otros objetos, es necesario crear
una nueva instancia del Objeto Recordset:
Dim Rs As ADODB.Recordset
A continuacion, pueden usarse las propiedades del objeto para especificar la conexin, el
origen del registro y el tipo de recordset.
Rs.ActiveConnection = Cn
La lnea de codigo asume que Cn representa una conexin abierta que seala el origen de
datos, como veiamos anteriormente. Otra forma de seleccionar una conexin consiste en
establecer la propiedad ActiveConnection a la cadena de conexin:
Rs.ActiveConnection = DSN=BIBLIO
Un mtodo Open del Recordset hace que se pueble el recordset con datos. Para utilizar el
mtodo Open , deber en primer lugar, establecer la propiedad Source , que se
corresponde con la propiedad RecordSource del control de datos ADO.
Option Explicit
'ABRIR UN RECORDSET
Set Rs = New ADODB.Recordset
Rs.ActiveConnection = Cn
Rs.Source = sSQL
Rs.Open
Pg. 17 de 65
'IMPRIMIR LOS NOMBRES DE LOS AUTORES
Rs.MoveFirst
'CERRAR TODO
Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub
El codigo mostrado, como puede verse, ejecuta una consulta SQL que selecciona todos los
authores cuyos apellidos comienzan por la letra Q
Sintaxis Ejemplo
Recordset.Fields(nombre campo) RsPeople.Fields(Apellidos)
Recordset.Fields(indice) RsPeople.Fields(2)
Recordset! Nombre campo RsPeople!Apellidos
Pg. 18 de 65
IMPRIMIR NOMBRES DE UN CAMPO
Rs.MoveFirst
While Not Rs.EOF
For I=0 To Rs.Fields.Count-1
Debug.Print Rs.Fields(i),
Next I
Debug.Print
Rs.MoveNext
Wend
Este codigo muestra dos propiedades del Objeto Field: las propiedades Name y Value.
Observe que no tiene por que especificar explcitamente la propiedad value, puesto que es la
propiedad predeterminada.
MoveFirst Se mueve al primer registro, justo despues del principio del marcador
de comienzo de archivo(BOF).
MovePrevious Se mueve al registro que esta antes del registro activo (hacia
BOF)
BOF y EOF son propiedades que indican el comienzo y en final de los puntos finales de un
recordset, respectivamente.
Pg. 19 de 65
Navegacin y la propiedad CursorType
Siempre es bueno considerar el tipo de cursor que uno va a utilizar, esto debido al tipo de
cursor empleado, los cursores son sealizadores de posiciones activas de registro y son de
diferentes tipos, la diferenciacion de sus tipos determina el uso de los mtodos Move al
momento de navegar en un Recordset
Para modificar el tipo de cursor que se va a emplear, primero es bueno conocer que tipos de
cursores nosotros podemos utilizar en nuestras aplicaciones:
Pg. 20 de 65
Uso de mtodos de navegacin
Como ejemplo de navegacion de recordset, crearemos un proyecto que utiliza los metodos
de navegacion. Para empezar, cree un nuevo proyecto EXE Estndar e inserta en el
formulario un ListBox al que llamar lstData , cuatro botones de comando (cmdPrevious,
cmdNext , cmdJump y cmdExit) y un cuadro de texto llamado txtJump.
Option Explicit
Dim Rs As ADODB.Recordset
Sub DisplayCurrentRecord()
Dim i As Integer
Dim s As String
For i = 0 To Rs.Fields.Count - 1
s = Rs.Fields(i).Name & ": " & Rs.Fields(i).Value
lstData.AddItem s
Next i
End Sub
Pg. 21 de 65
Imagen del Formulario funcionando:
Actualizar Datos
Ahora que sabemos como obtener informacion de ub objeto Recordset y mostrarla, puede
proseguir y cambiar (o actualizar) la informacion de la base de datos. Si su recrodset se ha
configurado apropiadamente, podr cambiar la informacion de la base de datos facilmente.
Sencillamente, navegue hasta el registro apropiado, asigne un nuevo valor a cada campo
que desee cambiar y, por ultimo, llame al metodo UpDate, como sigue:
Rs.Fields(Author)=Simpson, Bart
Rs.Update
Rs.CursorType = adOpenKeyset
Rs.LockType = adLockOptimistic
Por que la propiedad LockType es tan importante?. La respuesta es que si esta editando
registros en una base de datos multiusuario, tendr que preocuparse del bloqueo de
registros. El bloqueo de registros viene controlado por la propiedad LockType , que tiene los
valores siguientes:
Pg. 22 de 65
adLockReadOnly: Establece los datos del Recordset como de slo lectura.
adLockPessimistic: Proporciona un bloqueo de registros pesimista, es decir, que el
registro esta bloqueado mientras lo esta editando.
adLockOptimistic: Proporciona un bloqueo de registros optimista, lo cual implica
que los registros slo estarn bloqueados cuando llame al mtodo Update.
adLockBatchOptimistic: Actualiza mltiples registros a la vez con el mtodo
UpdateBatch.
Por qu se llaman los parmetros en base a las actitudes (optimista y pesimista)?. Porque
intentar actualizar un registro bloqueado origina un error en el programa. Puede ser
optimista y esperar que un registro est disponible cuando intente actualizarlo, o pesimista y
bloquearlo en tanto y cuanto no lo necesite.
Veamos un ejemplo:
Option Explicit
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
'ABRIR UN RECORDSET
Set Rs = New ADODB.Recordset
With Rs
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = "Authors"
.ActiveConnection = Cn
.Open
End With
Pg. 23 de 65
'DESTRUIR LOS OBJETOS
Rs.Close
Cn.Close
Set Rs = Nothing
Set Cn = Nothing
End Sub
El Objeto Command
Cuando este trabajando con un conjunto de datos, la mayor parte del tiempo estara
trabajando con propiedades y metodos del objeto Recordset . No obstante, para recuperar
esos datos, ver que el objeto ADO Command es indispensable. Este objeto le permite
encapsular una consulta o procedimiento almacenado SQL en un objeto reutilizable, lo cual
es especialmente adecuado si necesita ejecutar una operacin mltiples veces. Puede incluso
almacenar los parmetros de la consulta o procedimiento almacenado en la coleccin
Parameters del objeto, lo cual supone que no se tiene que preocupar por la construccion de
una cadena SQL apropiada mediante codigo. Una vez que configure un objeto Command ,
podr cambiar los parmetros del mismo y llamarlo repetidamente.
Por ejemplo, teniendo como base la aplicacin de la pgina 15, utilizando Microsoft Access
se podria disear la siguiente consulta genrica llamndola LetterLookup:
La accin de ejecutar esta consulta en Access le pide el parmetro Letter y luego muestra
los registros coincidentes. Para ejecutar esta consulta de Access desde cdigo de Visual Basic
puede usar un objeto Command , de esta forma:
Set cmd.ActiveConnection=Cn
cmd.CommandText=LetterLookup
cmd.CommandType=adCmdStoredProc
Pg. 24 de 65
Recordsets desconectados
Esta caracteristica se refiere a la posibilidad de crear recordsets desconectados .Este termino
significa que Ud. tiene un recordset en memoria que es independiente de una conexin de
bases de datos. Mientras esta desconectado, el recordset actua como un objeto autnomo,
con todos los mtodos y propiedades usuales. Lo que es incluso mas asombroso es el hecho
de que posteriormente se puede reconectar al recordset y efectuar todos los cambios que se
hicieron mientras el recordset estaba desconectado. Los recordsets desconectados son mas
utiles en Internet, ya que no siempre se tiene una conexin continua con la base de datos.
End Sub
Reconectar un Recordset
Una vez que se recupera un recordset desconectado, como en la seccion anterior, cambie
uno o mas registros estableciendo un nuevo valor de campo:
Pg. 25 de 65
Cn.Open
Set Rs.ActiveConnection = Cn
Rs.MarshalOptions = adMarshalModifiedOnly
Rs.UpdateBatch
Pg. 26 de 65
Acerca del Diseador de entorno de datos
(DataEnvironment)
El Diseador de entorno de datos proporciona un entorno interactivo en iempo 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:
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 detiempo de ejecucin (por ejemplo, crear uninforme de datos o un
control Hierarchical FlexGrid).
Antes de obtener acceso al Diseador de entorno de datos debe hacer referencia al mismo
en Visual Basic.
Pg. 27 de 65
En el cuadro de dilogo Referencias, seleccione Data Environment 1.0 y, a
continuacin, haga clic en Aceptar.
En la ficha Nuevo del cuadro de dilogo Nuevo proyecto, elija proyecto EXE estndar
y, a continuacin, haga clic en Abrir.
Pg. 28 de 65
Crear un objeto Connection
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.
2. Haga clic en el objeto Connection y elija Propiedades para tener acceso al cuadro
de dilogo Propiedades de vnculos de datos.
Pg. 29 de 65
4. 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.
5. Haga clic en Aceptar para aplicar las propiedades y cerrar el cuadro de dilogo
Propiedades de Connection.
Pg. 30 de 65
O bien,
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 Proposito
Nombre de comando Cambie el valor predeterminado de Nombre de comando por
un nombre ms descriptivo del objeto de base de datos. Por
ejemplo, podra modificar el ttulo Command1 por "Clientes"
si el objeto Command se basa en una tabla llamada
"Clientes".
Conexin 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.
Nota Para que sea vlido, cada objeto Command debe estar
asociado con un objeto Connection.
Pg. 31 de 65
Nombre del objeto Seleccione un nombre de objeto en la lista
desplegable. Los objetos mostrados provienen de la conexin
y coinciden con el tipo del Objeto de base de datos
seleccionado.
O bien
Instruccin SQL Si selecciona esta opcin como el origen de datos, escriba una
consulta SQL vlida para la base de datos en el cuadro
Instruccin SQL.
O bien,
4. Utilice las fichas Relacin, Agrupacin y Campos agregados para definir relaciones y
modelar los datos incluidos en el recordset. Para obtener ms informacin, vea
Jerarquas de objetos Command.
5. 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 entiempo de ejecucin. En esta ficha, establezca laspropiedades avanzadas
que el control de entorno de datos proporciona sobre las propiedades del objeto
Command y el objeto Recordset resultante.
6. 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.
Pg. 32 de 65
Usar un entorno de datos con la aplicacin
Nota El ndice del primer miembro de la coleccin empieza con el nmero uno en las
colecciones con base 1. Los objetos de ADO tienen base 0; por tanto, las colecciones Fields y
Parameters tienen base 0 y empiezan con el ndice cero.
Pg. 33 de 65
El entorno de datos agrega el prefijo "rs" a los nombres de los objetos Recordset de ADO
para diferenciarlos de los objetos Command correspondientes. Por ejemplo, un objeto
Command denominado "Clientes" crea un objeto Recordset denominado rsClientes. De forma
predeterminada, los objetos Recordset estn cerrados. El objeto Recordset se abre cuando se
ejecuta el mtodo del objeto Command correspondiente. Por ejemplo, si ejecuta el mtodo
Clientes, se abre el objeto Recordset "rsClientes". Adems, puede abrir un objeto Recordset
directamente mediante el mtodo Open de ADO. Con este mtodo es posible manipular un
objeto Recordset antes de abrirlo.
Esta seccin presenta situaciones que ilustran cmo puede usar el Diseador de entorno de
datos. Entre las caractersticas resaltadas estn: crear una jerarqua, incluir campos
agregados, agrupar y enlazar a un control Hierarchical FlexGrid.
Para crear una jerarqua de relaciones entre un Cliente y una tabla Pedidos
Pg. 34 de 65
Para conocer los resultados, vea "Enlazar el entorno de datos a un control Hierarchical
FlexGrid", ms adelante en este mismo tema.
Para conocer los resultados, vea "Enlazar el entorno de datos a un control Hierarchical
FlexGrid", ms adelante en este mismo tema.
Pg. 35 de 65
Agrupar el objeto Command "Cliente" por estado
Un objeto Recordset adicional, "PorPas", se expone en el nivel superior del objeto Command
"Clientes". Cuando enlace con control Hierarchical FlexGrid, debe usar el objeto Recordset
"PorPas" en vez del objeto Command "Clientes".
Para conocer los resultados, vea "Enlazar el entorno de datos a un control Hierarchical
Para incluir un campo agregado para contar el nmero de clientes por cada estado
Pg. 36 de 65
5. Seleccione el elemento Agregar en aplicado al elemento "Agrupar".
6. Seleccione "IdCliente" como el objeto Field para Count.
Se agrega otro campo al objeto Command de resumen (agrupacin). Ese objeto Field tiene
un valor calculado que contiene el nmero de clientes por estado.
Para conocer los resultados, vea "Enlazar el entorno de datos a un control Hierarchical
FlexGrid", ms adelante en este mismo tema.
Para incluir un agregado total general para contar el nmero de los estados en que
hay clientes
Pg. 37 de 65
Estructura
del Entorno
de Datos
luego de
configurar las
situaciones
anteriores
Pg. 38 de 65
La situacin siguiente se proporciona para que pueda ver los resultados de los ejemplos
anteriores.
4. Para mostrar los datos en el control Hierarchical FlexGrid, seleccione la opcin Iniciar
del men Ejecutar o presione F5. El control Hierarchical FlexGrid obtiene y muestra la
estructura
Pg. 39 de 65
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.
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.
Pg. 40 de 65
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.
6. 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.
8. Haga clic con el botn secundario de mouse (ratn) en el icono Connection1, y elija
Cambiar nombre. Cambie el nombre del icono a Northwind.
Pg. 41 de 65
9. 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:
Propiedad Valor
Nombre de Comando Clientes
Conexin Northwind
Objeto de Base de Datos Tabla
Nombre de Objeto Clientes
11. 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 Valor
Nombre de Comando Pedidos
Conexin Northwind
Objeto de Base de Datos Tabla
Nombre de Objeto Pedidos
13. Haga clic en Agregar. Haga clic en Aceptar para cerrar el cuadro de dilogo.
14. Establezca las propiedades del proyecto y del diseador segn los valores indicados a
continuacin y, despus, guarde el proyecto:
Pg. 42 de 65
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.
Propiedad Valor
Name rptNwind
Caption Informe de Datos NORTHWIND
4. Haga clic con el botn secundario del mouse (ratn) en el Diseador de informe de
datos y en Obtener estructura.
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.
9. Guarde el Proyecto.
Pg. 43 de 65
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.
Propiedad Valor
Name cmdShow
Caption Mostrar Informe
8. Haga clic en Mostrar informe para mostrar el informe en el modo de vista preliminar.
Pg. 44 de 65
Para mostrar el cuadro de dilogo Imprimir:
DataReport1.PrintReport True
DataReport1.PrintReport False
Control Label (RptLabel): permite colocar etiquetas para identificar los campos o las
secciones del informe.
Control Line (RptLine): permite dibujar reglas en el informe para distinguir mejor
las secciones.
Pg. 45 de 65
rptTextBox rptLabel
rptLine rptImage
rptShape
rptFunction
La API Crystal Reports le permite acceder al motor Crystal Reports sin tener
que usar el control. Todas las llamadas de la API a los Crystal Reports estan
ubicadas en un archivo llamado GLOBAL32.BAS que debe estar instalado en
el directorio de programas Crystal Reports.
Pg. 46 de 65
Como podemos ver, es posible elegir entre varios tipos diferentes de informes. Si
se selecciona uno de los tipos preferidos, se podra usar el asistente para crear el
informe.
Pg. 47 de 65
Una vez que haya seleccionado el archivo de bases de datos, deber aparecer
automaticamente el cuadro de dialogo Insertar campo de base de datos (Insert
Database Field), que se muestra en la figura. Este cuadro de dialogo le permite
especificar que campos se incluiran en el informe.
Repita estos pasos para el campo Titles de la tabla Titles, de tal manera que la
pantalla principal del Crystal reports tenga la apariencia que se muestra en la figura
de la pagina siguiente:
Pg. 48 de 65
Pruebe el informe haciendo click en el boton de la barra de herramientas que posee
el icono de un rayo. La accion de pulsar este boton activa el modo de vista previa,
lo cual le permite ver el aspecto que tendra el informe con los registros de la base
de datos. Para guardar el informe, pulse el boton Guardar (Save) o men
Archivo, Guardar (File, Save).
Estandar
Listado
Referencia
Correo
Resumen
Grfico
N Primeros
Detallado
La figura siguiente muestra la primera pantalla del asistente, en la que hay que
especificar un origen de datos.
Pg. 49 de 65
Cuando termine de crear el informe, aun podr modificarlo usando las
caracteristicas de diseo.
Personalizar el Informe
Tipos de campo
Desde el men Insertar (Insert) , se puede elegir entre varios tipos de campo
distintos:
Pg. 50 de 65
criterios la genera automaticamente el cuadro de dialogo de la figura siguiente, que
muestra como filtro a los autores nacidos durante o despues de 1950
CrystalReport1.ReportFileName = c:\reporte.rpt
En tiempo de diseo sera con la pagina de propiedades del control, para completar
el ejemplo, configure la propiedad ReportFileName en tiempo de diseo, y sera
suficiente:
Pg. 51 de 65
(ver pgina siguiente.....)
Mostrar el Informe
Para mostrar el informe desde un formulario, coloque un boton de comando en el
formulario y escriba la siguiente linea de codigo
Pg. 52 de 65
Resultado de la
impresin
Pg. 53 de 65
Laboratorios
Tareas:
Duracin: 10 Minutos
Tareas:
Pg. 54 de 65
i. En la ventana Propiedades ubique la propiedad DataSource y elija
la opcin Adodc1
ii. Ahora ubique la propiedad DataField y escoja el campo Au_ID
iii. Repita los pasos i y ii con los dos cuadros de texto sobrantes
escogiendo los campos Author y Year Born respectivamente
b. Una vez concluida la configuracin de Cada Cuadro de texto, Guarde los
cambios al Proyecto y luego ejecute la aplicacin, pulsando F5 o escogiendo
la opcion Iniciar del Men Ejecutar.
4. El formulario muestra los datos del Primer registro?:__________________________
5. Use los botones de Navegacin que estan en el control Adodc1 y vea como los
datos de la tabla Authors se refrescan en el formulario
Nota: No todos los registros cuentan con el campo Year Born lleno
Tareas:
Pg. 55 de 65
Lab 04: Agregando, Configurando y Usando el Control
DataGrid
Duracin: 10 Minutos
Tareas:
Nota:
Para cambiar aspectos de formato de presentacion del DataGrid, puede usar las Propiedades
Personalizadas de este control, o boton derecho Propiedades
Pg. 56 de 65
ADO Y EL MODELO DE OBJETOS DE ADO
Tareas:
Pg. 57 de 65
(ver figura para comparar....)
5. Estableciendo la conexin:
a. Para establecer referencia a los objetos de datos ActiveX (ADO), haga click
en la opcin Referencias del Men Proyecto, luego haga click en la casilla
de verificacin Microsoft ActiveX Data Objects 2.5 Library ( o la versin
que Ud. tenga)
f. Ejecute el formulario
h. Tmese unos minutos para depurar algn error que tenga en su cdigo. Si no
ocurri ningun error al momento de ejecutar el formulario, significa que la
conexin se ha realizado exitosamente.
Pg. 58 de 65
Lab 02: Estableciendo una Conexin sin DSN
Duracin: 10 Min.
Tareas:
4. Instancie el objeto Cnx con la Instruccin Set en el evento Load del Formulario
6. Ejecute el formulario
Tareas:
Pg. 59 de 65
Lab 04: Laboratorio de Desarrollo 2. Creando una
aplicacin para mantenimiento basado en una base de
datos creada por el alumno.
Duracin:45 Min.
Tareas:
IdContacto Texto
Nombres Texto
Apellidos Texto
Edad Numerico
FechaDeNacimiento Fecha/Hora
9. Ud. puede agregar otras prestaciones a la aplicacin, como por ejemplo el uso de las
siguientes caracteristicas:
Pg. 60 de 65
ACERCA DEL DISEADOR DE ENTORNO DE DATOS
(DATA ENVIRONMENT)
Tareas:
a. Dentro del DataEnvironment haga click con el boton derecho sobre el nodo
Connection1 y elija la opcion Propiedades
Pg. 61 de 65
Lab 02: Usar el Entorno de Datos con la Aplicacin
Duracin: 20 Min.
Tareas:
6. Ejecute el formulario y verifique que muestra los datos del Primer Registro
8. Ejecute el formulario
11. Repita al Lab anterior y este con la Base de datos Test. Cree un Nuevo Proyecto de
Datos y guarde el Proyecto con el nombre pjtTest (tiempo: 25 a 30 minutos).
Realizar este proyecto para poder realizar el siguiente Lab
Pg. 62 de 65
Lab 03: Labotarorio de Desarrollo 1. Creando una
aplicacin de mantenimiento usando DataEnvironment
Duracin 45 Minutos
Tareas:
1. Realizar una aplicacin que utilice el Proyecto pjtTest de tal manera que puedan
aadirse las siguientes prestaciones:
Pg. 63 de 65
REPORTES EN VISUAL BASIC
Tareas:
2. Siguiendo los pasos especificados en el Capitulo que habla del diseador de Informes
de Datos (DataReport). Crear un informe para la Tabla Contactos, que pueda
ejecutarse desde el formulario
Tareas:
4. Disee el Informe de Datos siguiendo los pasos especificados en el manual, esto para
la tabla Contactos de la base de datos Test
Pg. 64 de 65
Pg. 65 de 65