Você está na página 1de 65

Visual Basic con

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

Fundamentos sobre Base de Datos:


Muchas de las aplicaciones que se crean mediante Visual Basic utilizan directamente acceso a
Datos los cuales son almacenados en Bases de datos de diferente tipo de diseo.

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

Implementar el diseo de una Base de datos desde


Visual Basic
Desde Visual Basic existen varias formas de implementar el diseo de una Base de Datos:

Usando los Objetos de Datos ActiveX (ADO)


Usando el Microsoft Access.
Usando programas de Administracin de Bases de Datos de terceros.

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

Insertar el control Adodc en un formulario


Configurar el control especificando Fuente de Datos

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

Veamos como empezar esta configuracion...

1. En la Pgina de Propiedades del control Adodc, haga click en la opcion Usar nombre
de origen de datos ODBC.

2. Elija de la lista el origen de datos BIBLIO (ver figura...)

3. Como no estamos conectandonos con una fuente de datos remota, no entramos a la


ficha Autenticacion y para elegir el conjunto de registros, haga click en la ficha
Origen de Registros.

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

Habituarse a los controles enlazados


Ahora que ya conocemos como configurar el control Adodc, no todo culmina configurndolo,
pues ahora debemos centrar la atencin a la forma como visualizaremos los campos, puesto
que la funcin del control Adodc bsicamente es unir una base de Datos con una aplicacin
de Visual Basic, ahora visualizar los datos en el formulario es una tarea que los controles
enlazados a datos nos ayudan a completar.

Algunos de los controles enlazados a datos le son familiares:

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:

Nombre del Control Tipo de Datos Propiedad del control


Label Texto, Numrico, Fecha Caption
TextBox Texto, Memo, Numrico, Fecha Text
CheckBox Lgico (True/False) Value
PictureBox Binario Largo Picture
Image Binario Largo Picture

Establecimiento de las propiedades de enlace:

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)

Para esta ilustracion se considera un TextBox como control enlazado

Especificando estas dos propiedades se logra los siguiente:

DataSource : permite especificar el control Adodc que se enlaza con los controles
enlazados a datos.

DataField : permite especificar el campo que se enlaza con el control

Creacin de una aplicacin sencilla


Bien, hasta ahora ya sabemos configurar el control Adodc y establecer algunas propiedades
bsicas para los controles enlazados a Datos, ahora concentraremos nuestra atencin en una
aplicacin sencilla.

Realice los siguientes pasos:

1. Cree un proyecto Nuevo .EXE Estndar.


2. Agregue un Control Adodc al formulario y ubquelo en la parte inferior del mismo.
3. Configure el control data para que este enlazado con la Base de Datos de ejemplo
BILBIO.mdb
4. Escoja la tabla Publishers
5. Inserte 3 Cuadros de Texto en el formulario (ya que esta tabla tiene 3 campos)

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):

Nombre del cuadro de texto DataField Titulo de los Label


Text1 PubID Pub ID:
Text2 Name Nombre:
Text3 Company Name Nombre de Compaa:

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.

El formulario debe tener esta apariencia:

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.

Agregar y Eliminar registros:


Como habamos mencionado lneas arriba, el control Data adolece de formas para agregar
y/o eliminar registros, as que tendremos que hacerlo nosotros. Agregue dos botones de
comando al formulario llamados cmdAgregar y cmdEliminar respectivamente,
posteriormente agregue los siguientes segmentos de cdigo:

Private Sub cmdAgregar_Click()


Adodc1.Recordset.AddNew
End Sub

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

El modo de Edicin de registro es automtico, es decir si el usuario esta modificando los


cuadros de texto que corresponden a los campos entonces estamos editando el registro. Sin
embargo, si Ud. desea controlar eficazmente la accin de Guardar Cambios puede utilizar lo
siguiente:

1. Para Guardar los Cambios (en otro boton de comando)

Adodc1.Recordset.UpDate

2. Existen tambin mtodos para moverse entre los registros:

MoveFirst => Moverse al primer registro


MovePrevious => Moverse al registro anterior
MoveNext => Moverse al registro siguiente
MoveLast => Moverse al Ultimo Registro

Cambiar el origen de datos a travs de cdigo:


Como se ha visto, es muy facil configurar el Control Adodc en tiempo de diseo. Sin
embargo, incluso en el proyecto mas sencillo, por lo general es necesario utilizar ese control
de un modo mas dinmico. Afortunadamente, es posible configurarlo mediante codigo si se
siguen estos pasos:

1. Establezca la propiedad ConnectionString.


2. Establezca las propiedades CommandType y RecordSource
3. Ejecute el mtodo Refresh del control Adodc para recuperar los datos.

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

En lugar de configurar la consulta en tiempo de diseo, agregue codigo al proyecto de


muestra, con el fin de que esta pueda tener lugar durante la ejecucion del programa.
Agregue un boton titulado Buscar Estado y con el nombre cmdState.

Coloque estas lineas de codigo en el evento Click de cmdState:


Dim sState As String
Dim sSQL As String

CONSTRUIR CONSULTA SQL

sSQL=Select * From PUBLISHERS


sState=InputBox$(Introducir abreviatura del estado:)
If sState<> then sSQL=sSQL & WHERE State= & sState &

ACTUALIZA EL CONTROL DE DATOS ADODC


Adodc1.CommandType=adCmdText
Adodc1.RecordSource=sSQL
Adodc1.Refresh

Ejecute el programa y haga Click en Buscar Estado

Mtodo Find (ADO)


Busca el registro que satisfaga los criterios especificados en el Recordset. Si se cumplen los
criterios, la posicin del recordset se establece en el registro encontrado; si no, la posicin se
establece al final del recordset.

Sintaxis

Find (criteria, SkipRows, searchDirection, start)

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.

searchDirection Un valor SearchDirectionEnum opcional que especifica si la bsqueda


tiene que comenzar en la fila actual o en la siguiente fila disponible de la direccin de la
bsqueda. Su valor puede ser adSearchForward o adSearchBackward. La bsqueda termina
al principio o el final del recordset, dependiendo del valor de searchDirection.

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#").

Si el operador de comparacin es "like", el valor de la cadena puede contener "*" (una o


varias ocurrencias de cualquier carcter) o "_" (una ocurrencia de cualquier carcter). (Por
ejemplo, "estado like F_*" encuentra Maine y Massachusetts).

Uso del Control DataGrid


Este control permite visualizar la informacion procedente de conjuntos de registros en forma
de tabla compuesta de filas y columnas, similar a una hoja de clculo. Veamos como usarlo:

Para usar este control haga los siguientes pasos:

1. Haga click en el menu Proyecto y elija la opcion Componentes


2. En el cuadro de dialogo, marque la casilla Microsoft DataGrid Control 6.0
3. Inserte el control en su formulario

Pg. 12 de 65
Configurar el Control:
Para realizar el ejemplo que observa en la figura, haga lo siguiente:

1. Agregue un control de Datos ADODC a su proyecto


2. Configure el control Adodc de tal manera que este conectado con la tabla Titles de
la base de datos Biblio.
3. Agregue un control DataGrid al formulario:
a. Para crear una division en el DataGrid, haga click con el boton derecho del
Mouse sobre el DataGrid y elija Modificar, luego vuelva a hacer click con el
boton derecho y elija la opcion Dividir
b. Puede cambiar multiples propiedades de diseo en la pagina de propiedades
del Control
4. Para enlazar a Datos el Control, establezca la propiedad DataSource con el valor
Adodc1
5. Para dibujar rapidamente las cabeceras del DataGrid, haga click con el boton
derecho y elija la opcion recuperar campos , contesta que S al mensaje de
confirmacion.
6. Listo puede usar el control.

ADO y el Modelo de Objetos de ADO


Es util trabajar con los Objetos de Datos ActiveX a niveles del control de Datos Adodc, pero
la real potencia de este Modelo de Objetos entra en juego cuando se usan los Objetos de
ADO en el codigo de Visual Basic. Los objetos que conforman el Modelo de Objetos de ADO
vienen enumerados en la siguiente tabla:

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:

1. En el Men Proyecto, elija la opcion Referencias


2. Coloque una marca de verificacion junto a Microsoft ActiveX Data Objects 2.5
Library (o la versin que Ud. tenga)
3. Haga Click en Aceptar

Realizar una conexin con ADO

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

Abrir y cerrar una conexin


El primer paso a la hora de abrir una conexin consiste en crear una nueva instancia del
objeto ADODB.Connection, como sigue:

Dim cn As ADODB.Connection En la seccion de declaraciones de un


formulario o modulo

Set cn=New ADODB.Connection En algun evento de usuario, por ej. Load


del Form

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

Uso del mtodo Execute


En ADO puede cumplir los mismos objetivos de forma diferente. La accion de recuperar
informacion, constituye un ejemplo perfecto. Puede tomarla de los objetos Recordset,
Command o Connection: todos ellos tienen un mtodo que se usa para llevar los datos a un
Recordset. El mtodo Execute del objeto Connection le permite ejecutar una instruccin
SQL contra un origen de datos. Si la instruccin SQL devuelve registros, podra acceder a

Pg. 14 de 65
ellos sencillamente asignando el valor de retorno del mtodo Execute a un objeto ADO
Recordset.

Veamos:

1. Cree un proyecto Nuevo EXE Estndar y agregue una referencia a ADO


2. Agregue un Control ListBox al formulario y llmelo lstAuthors
3. Por ltimo, agregue las siguientes lineas de Codigo:

Option Explicit
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset

Private Sub Form_Load()


Set Cn = New ADODB.Connection
Cn.Open "DSN=BIBLIO"

Set Rs = Cn.Execute("Select * from Authors Where [Year Born]>1943")

While Not Rs.EOF


lstAuthors.AddItem "Year Born: " & Rs.Fields("Year Born") & vbTab
& "Name: " & Rs.Fields("Author")
Rs.MoveNext
Wend

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.

Conexin sin DSN


Hasta ahora hemos utilizado una cadena de conexin sencilla que especifica el nombre del
origen de datos BIBLIO, que se habia configurado previamente en el Administrador de
Origenes de datos ODBC. Si no desea depender de la configuracion de un DSN, podr
establecer una conexin sin DSN proporcionando a ADO mas informacion de la propiedad
ConnectionString , como ocurre en los siguientes ejemplos de una base de datos de
Microsoft Access:

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

Trabajando con Recordsets


Los recordset representan Datos reales de ua base de datos. Un Recordset contiene campos
(como Nombre y Numero de telefono) y valores para estos campos (como Angel Santos y
555-1212). Cada conjunto de valores de campo que van juntos conforman un registro
individual, mientras que todos estos registros juntos conforman un Recordset

En ADO, un Recordset se almacena en un objeto Recordset. Una vez que se puebla el


objeto Recordset con datos, se podrn ejecutar las siguientes operaciones en los datos:

Agregar nuevos registros


Modificar Registros existentes
Eliminar Registros
Navegar por el recordset (cambiar el registro activo)

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

Set Rs = New ADODB.Recordset

A continuacion, pueden usarse las propiedades del objeto para especificar la conexin, el
origen del registro y el tipo de recordset.

Para especificar un origen de datos para el objeto Recordset , establezca la propiedad


ActiveConnection igual a un objeto ADO Connection

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

Si utiliza un valor de cadena en lugar de un objeto Connection, el objeto Recordset abrira


su propia conexin con la base de datos.

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.

Veamos como funciona esto en la practica:

Option Explicit

Const sSQL = "SELECT * FROM Authors WHERE [Author] Like 'Q%'"


Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset

Private Sub Form_Load()

'ABRIR UNA CONEXION


Set Cn = New ADODB.Connection
Cn.Open "dsn=BIBLIO"

'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

While Not Rs.EOF


Debug.Print "Author = "; Rs.Fields("Author")
Rs.MoveNext
Wend

'CERRAR TODO
Rs.Close
Set Rs = Nothing

Cn.Close
Set Cn = Nothing

End Sub

Y este es el resultado en la ventana inmediato (Debug.Print):

El codigo mostrado, como puede verse, ejecuta una consulta SQL que selecciona todos los
authores cuyos apellidos comienzan por la letra Q

Mostrar valores de un campo


Para acceder a datos del objeto Recordset , utilice la coleccin Fields . La siguiente table
enumera las opciones que se pueden utilizar para hacer referencia a un campo individual

Sintaxis Ejemplo
Recordset.Fields(nombre campo) RsPeople.Fields(Apellidos)
Recordset.Fields(indice) RsPeople.Fields(2)
Recordset! Nombre campo RsPeople!Apellidos

Veamos un segmento de codigo apropiado como para mostrar valores de campos

Pg. 18 de 65
IMPRIMIR NOMBRES DE UN CAMPO

For I=0 To Rs.Fields.Count-1


Debug.Print Rs.Fields(I).Name,
Next I
Debug.Print

IMPRIMIR EL CONTENIDO DE TODOS LOS CAMPOS DE CADA REGISTRO

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.

Navegacin por el Recordset


Una vez que se hayan recuperado los datos de un objeto Recordset, se podr acceder y
actualizar los valores de los campos del registro activo. Imagine el recordset como un
archivo secuencial largo. En un momento determinado, el registro activo es un sealizador a
una ubicacin dentro de ese archivo. Para trabajar con diferentes registros, se usan los
siguientes metodos de navegacion para cambiar el registro activo:

MoveFirst Se mueve al primer registro, justo despues del principio del marcador
de comienzo de archivo(BOF).

MoveLast Se mueve al ultimo registro, justo antes del marcador de final de


archivo (EOF).

MoveNext Se mueve al registro siguiente despues del registro activo (hacia


EOF)

MovePrevious Se mueve al registro que esta antes del registro activo (hacia
BOF)

Move Mueve hacia delante o hacia atrs un numero especificado de


registros.

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:

Tipo de Cursor Constante Descripcion

Cursor de slo avance adOpenForwardOnly Predeterminado para las conexiones


en el lado sel servidor, idntico a un
cursor estatico, excepto que solo es
posible desplazarse hacia delante por
los registros

Cursor Esttico adOpenStatic Una copia esttica de un conjunto de


registros que puede utilizar para
localizar datos o generar informes.
Las adiciones, cambios o
eliminaciones realizados por otros
usuarios no sern visibles

Cursor de Conjunto de claves adOpenKeyset Igual que un cursor dinmico,


excepto porque no es posible ver los
registros que aadan otros usuarios;
los registros que otros usuarios
eliminen no estaran accesibles desde
su recordset. Los cambios en los
datos realizados por otros usuarios si
sern visibles. Este es el cursor
basico de lectura y escritura
completamente desplazable

Cursor Dinmico adOpenDynamic Las adiciones, los cambios y


eliminaciones realizadas por otros
usuarios sern visibles y estn
permitidos todos los tipos de
desplazamiento por el Recordset ,
excepto las marcas si el proveedor
no las admite.

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.

El programa de muestra ejecuta un consulta a la base de datos BIBLIO y permite al usuario


ejecutar los metodos de navegacion para examinar el recordset, como lo hicimos con el
control Data. El cdigo del proyecto de muestra, se presenta a continuacin:

Option Explicit
Dim Rs As ADODB.Recordset

Private Sub cmdExit_Click()


Rs.Close
Set Rs = Nothing
Unload Me
End Sub

Private Sub cmdJump_Click()


Rs.Move Val(txtJump.Text)
DisplayCurrentRecord
End Sub

Private Sub cmdNext_Click()


Rs.MoveNext
DisplayCurrentRecord
End Sub

Private Sub cmdPrevious_Click()


Rs.MovePrevious
DisplayCurrentRecord
End Sub

Private Sub Form_Load()


'RELLENAR EL OBJETO RECORDSET RS
Set Rs = New ADODB.Recordset
Rs.CursorType = adOpenStatic
Rs.Source = "Publishers"
Rs.Open , "DSN=BIBLIO"
Registros.Caption = Rs.RecordCount
DisplayCurrentRecord
End Sub

Sub DisplayCurrentRecord()
Dim i As Integer
Dim s As String

If Rs.BOF Then Rs.MoveFirst


If Rs.EOF Then Rs.MoveLast
lstData.Clear

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

Establecer la propiedad LockType (Tipo de Bloqueo)


Por defecto, los recordsets de ADO son de solo lectura. Intentar cambiar un valor de campo
en un recordset de solo lectura origina un error. Para agregar, cambiar o eliminar registros
de un Recordset de ADO, deber establecer la propiedad LockType a un valor diferente al
predeterminado que es de slo lectura. Por ejemplo, la accion de establecer las propiedades
CursorType y LockType como sigue, crea un recordset actualizable en Access:

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.

Agregar nuevos datos


La accin de agregar nuevos registros a un objeto Recordset es similar a la de cambiar el
contenido de los registros existentes, pero con un paso adicional:

1. Llamar al mtodo AddNew


2. Asignar valores a los campos
3. Llamar al mtodo Update

Veamos un ejemplo:

Option Explicit

Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset

Private Sub Form_Load()

Set Cn = New ADODB.Connection


Cn.Open "DSN=BIBLIO"

'ABRIR UN RECORDSET
Set Rs = New ADODB.Recordset
With Rs
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = "Authors"
.ActiveConnection = Cn
.Open
End With

'AGREGAR UN NUEVO REGISTRO


Rs.AddNew
Rs.Fields("Author") = "King, Stevie"
Rs.Fields("Year Born") = 1945
Rs.Update

'NOTA: El campo Au-ID es un campo autonumrico,


'se crear automaticamente

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:

PARAMETERS Letter Text;


SELECT *
FROM Authors
WHERE Author LIKE Letter+*;

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:

Dim cmd As New ADODB.Command


Dim parmTemp As ADODB.Parameter

Set cmd.ActiveConnection=Cn
cmd.CommandText=LetterLookup
cmd.CommandType=adCmdStoredProc

Set parmTemp=cmd.CreateParameter(Letter, adChar, adParamInput, 1)


cmd(Letter)=Q
Set Rs=cmd.Execute

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.

Creacin de un Recordset Desconectado

La clave para la creacin de un recordset desconectado consiste en establecer la propiedad


CursorLocation . Posee 2 ajustes: adUseClient y adUseServer. Para crear un recordset
desconectado (o cursor del lado del cliente), siga estos pasos

1. Establezca la propiedad CursorLocation a adUseClient


2. Pueble un objeto Recordset
3. Establezca la propiedad ActiveConnection a Nothing

Cambiando un poco el codigo de la aplicacin de la pgina 15:

Private sub Form_Load()

Set Rs=New ADODB.Recordset


Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenStatic
Rs.Source = SELECT * FROM Publishers
Rs.Open , DSN=BIBLIO
Set Rs.ActiveConnection = Nothing
DisplayCurrentRecord

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:

Rs.Fields(0) = Valor de campo editado


Rs.MoveNext
Rs.Fields(0) = Otro valor de campo editado

A continuacin, restablezca la conexin estableciendo la propiedad ActiveConnection del


recordset a un nuevo objeto Connection como se ve aqu:

Set cn = New ADODB.Connection


Cn.ConnectionString = DSN=BIBLIO

Pg. 25 de 65
Cn.Open
Set Rs.ActiveConnection = Cn

Por ltimo, ejecute el codigo que efectua la actualizacion de la base de datos:

Rs.MarshalOptions = adMarshalModifiedOnly
Rs.UpdateBatch

La propiedad MarshalOptions permite especificar si se devuelve el recordset completo o


solo los registros modificados , para el uso mas eficaz de los recursos. La segunda linea
ejecuta la actualizacion por medio del mtodo 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:

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

Para hacer referencia al Diseador de entorno de datos

En el men Proyecto, haga clic en Referencias.

Pg. 27 de 65
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

En la ficha Nuevo del cuadro de dilogo Nuevo proyecto, elija proyecto EXE estndar
y, a continuacin, haga clic en Abrir.

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.

Pg. 28 de 65
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.

Boton Agregar Conexin

Para establecer el nombre de conexin y el origen de datos

1. 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.

2. Haga clic en el objeto Connection y elija Propiedades para tener acceso al cuadro
de dilogo Propiedades de vnculos de datos.

3. 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.

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.

Ficha Proveedor Ficha Conexin

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.

Pg. 30 de 65
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.

Boton Agregar Comando

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

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.

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,

Para generar la consulta, haga clic en SQL Builder para iniciar


eldiseador de consultas.

3. Si el objeto Command se basa en una consulta con parmetros o en un


procedimiento almacenado, puede tener una coleccin de parmetros. Para
establecer laspropiedades de parmetro, haga clic en la ficha Parmetros del cuadro
de dilogo Propiedades de Command.

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

En tiempo de ejecucin, el entorno de datos crea objetos Command y Connection de ADO


por cada uno de los objetos Command y Connection definidos en el Diseador de entorno
de datos. Tambin crea un objeto Recordset de ADO si el objeto Command est marcado
como Devolver RecordSet (en la ficha Avanzadas del cuadro de dilogo Propiedades de
Command). El objeto Command de ADO se agrega como un mtodo del objeto de entorno de
datos en tiempo de ejecucin, y los objetos Connection y Recordset de ADO se agregan
como propiedades.

Existen dos formas de usar un entorno de datos en su aplicacin en tiempo de ejecucin:

Como un origen de datos para un enlace directo a los controles de unformulario.


Para crear por programa una instancia del entorno de datos y ejecutar sus objetos
Command.

Adems, el entorno de datos en tiempo de ejecucin contiene las colecciones Commands,


Connections y Recordsets. Estas colecciones con base 1 ofrecen otro medio para el acceso
por programa a los objetos de ADO, lo que permite enumerar los diversos objetos.

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.

Situaciones para usar el Diseador de entorno de


datos

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.

Crear una jerarqua de relaciones entre un Cliente y una


tabla Pedidos

Para crear una jerarqua de relaciones entre un Cliente y una tabla Pedidos

1. Cree un objeto Command conectado a la base de datos de Northwind.


2. Seleccione la tabla "Clientes" como el origen del objeto Command. Cambie el nombre
del objeto Command a "Clientes".
3. Cree un objeto Command secundario a partir del objeto Command "Cliente".
Seleccione la tabla "Pedidos" como el origen del objeto secundario. Cambie el
nombre del objeto Command secundario a "Pedidos".
4. Haga clic en la ficha Relacin y, a continuacin, vincule los objetos Command
primario y secundario mediante sus campos "IdCliente".

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.

Incluir un campo agregado en el objeto Command


"Cliente"

Para incluir un campo agregado en el objeto Command "Cliente" de forma que se


obtenga la suma de los importes de pedidos por cliente

1. Modifique las propiedades del objeto Command "Cliente".


2. Haga clic en la ficha Campo agregado y, a continuacin, en Agregar.
3. Asigne al campo agregado el nombre "TotalPedidos".
4. Seleccione la funcin Sum.
5. Seleccione el comando Campo agregado de aplicado al elemento "Pedidos".
6. Seleccione "IdPedido" como el objeto Field de la funcin Sum.

El campo agregado "TotalPedidos" se agrega al objeto DataEnvironment como un nuevo


objeto Field. Entiempo de ejecucin, el campo agregado "TotalPedidos" contendr un valor
calculado por cada cliente.

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

Para agrupar el objeto Command "Cliente" por estado

1. Modifique las propiedades del objeto Command "Cliente".


2. Haga clic en la ficha Agrupar y seleccione Agrupar comando.
3. Asigne el nombre "PorPas" al objeto Command de agrupacin.
4. Seleccione "Pas" en la lista Campos del comando y, a continuacin, haga clic en >
para mover el campo a la lista Campos utilizados para agrupar.

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

FlexGrid", ms adelante en este mismo tema.

Incluir un campo agregado para contar el nmero de


clientes por cada estado

Para incluir un campo agregado para contar el nmero de clientes por cada estado

1. Modifique las propiedades del objeto Command "Cliente".


Configuracion del
2. Haga clic en la ficha Agregados y, despus, en Agregar. Command Cliente
para crear
3. Asigne al campo agregado el nombre "ContClientes".
agrupaciones
4. Seleccione la funcin Count.

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.

Incluir un agregado total general para contar el nmero


de estados en que hay clientes

Para incluir un agregado total general para contar el nmero de los estados en que
hay clientes

1. Modifique las propiedades del objeto Command "Cliente".


2. Haga clic en la ficha Agregados y, a continuacin, haga clic en Agregar.
3. Asigne al campo agregado el nombre "EstadosConClientes".
4. Seleccione la funcin Cuenta.
5. Seleccione GrandTotal como el elemento Agregar en.
6. Seleccione "Pais" como el objeto Field.
7. Asigne a Total general el nombre "TotalGeneralClientes".

Un objeto Recordset adicional, "EstadosConClientes", se expone en el nivel superior del


objeto Command "Clientes". El nuevo objeto contiene el nmero de estados que tienen
clientes.

Pg. 37 de 65
Estructura
del Entorno
de Datos
luego de
configurar las
situaciones
anteriores

Enlazar el entorno de datos a un control Hierarchical


FlexGrid

Pg. 38 de 65
La situacin siguiente se proporciona para que pueda ver los resultados de los ejemplos
anteriores.

Para enlazar el entorno de datos a un control Hierarchical FlexGrid

1. Despus de haber completado las anteriores situaciones de entorno de datos,


arrastre un control MSHFlexGrid a un formulario de Visual Basic.

2. En la hoja de propiedades de Visual Basic, establezca la propiedad DataSource con el


objeto DataEnvironment que contiene el objeto Command que desea enlazar al
control Hierarchical FlexGrid. Por ejemplo, especifique DataEnvironment1.

3. En la ventana Propiedades de Visual Basic, establezca la propiedad DataMember en


un objeto Command primario del entorno de datos. Los datos estn ahora enlazados
a un control Hierarchical FlexGrid.

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

Reportes en Visual Basic


En esta seccin veremos como generar Informes en Visual Basic a travs de dos
Herramientas:

Data Report (Diseador de Informes de Datos)


Crystal Reports for Visual Basic

Creacin de Reportes con Data Report (Diseador de


Informes de Datos)
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.

Caracteristicas del Diseador de Informes 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

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.

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.

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.

Para insertar un cursor jerrquico sencillo en el Diseador de entorno de datos

1. Cree un nuevo proyecto Standard EXE.

2. 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.

3. En el cuadro de dilogo Propiedades de Vnculo de Datos, haga clic en Microsoft


Jet 3.51 OLE DB Provider. Esta seleccin del cuadro de dialogo corrige el
proveedor OLE DB para tener acceso a la base de datos Jet.

4. Haga clic en el botn Siguiente para llegar a la ficha Conexin.

5. Haga clic en el botn Examinar () que se encuentra junto al primer cuadro de


texto.

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.

7. Haga clic en Aceptar para cerrar este cuadro de dilogo.

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

10. Haga clic en Aceptar para cerrar el cuadro de dilogo.

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

12. 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.

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:

Objeto Propiedad Valor


Project Name prjNwind
DataEnvironment Name deNwind
Form Name frmShow

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.

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.

2. Establezca las propiedades del objeto DataReport segn la tabla siguiente:

Propiedad Valor
Name rptNwind
Caption 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.

4. Haga clic con el botn secundario del mouse (ratn) en el Diseador de informe de
datos y en Obtener estructura.

5. Arrastre el campo NombreCompaa (bajo el comando Clientes) del Diseador de


entorno de datos a la seccin Encabezado de grupo (Clientes_Encabezado).

6. Elimine el control Label (rptLabel) denominado Etiqueta1.

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.

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.

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.

3. 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.

4. Haga clic en el icono CommandButton y dibuje un botn de comando en el


formulario.

5. Establezca las propiedades del control Command1 como se indica en la tabla


siguiente:

Propiedad Valor
Name cmdShow
Caption Mostrar Informe

6. En el evento Click del botn, pegue el cdigo siguiente:

Private Sub cmdShow_Click()


rptNwind.Show
End Sub

7. Guarde y ejecute el proyecto.

8. Haga clic en Mostrar informe para mostrar el informe en el modo de vista preliminar.

Imprimir un informe de datos


Existen dos maneras de imprimir un informe de datos. En modo Vista preliminar (mediante el
mtodo Show), el usuario puede hacer clic en el botn Imprimir del informe de datos o bien
el propio programa puede usar el mtodo PrintReport para habilitar la impresin. Si se
produce un error durante la impresin, puede interceptarlo con el evento Error.

Decidir si se muestra un cuadro de dilogo Imprimir


Cuando imprima un informe por programa, tiene dos opciones: mostrar en pantalla el cuadro
de dilogo Imprimir o imprimir directamente sin presentar el cuadro de dilogo.

Pg. 44 de 65
Para mostrar el cuadro de dilogo Imprimir:

1. Agregue un control CommandButton a un formulario.

2. En el evento Click del botn, escriba el cdigo siguiente:

DataReport1.PrintReport True

El cuadro de dilogo Imprimir permite al usuario seleccionar una impresora, imprimir


a un archivo, seleccionar un intervalo de pginas o especificar el nmero de copias
para imprimir.
Nota Es necesario tener varias impresoras instaladas en el equipo para poder elegir
una de ellas.

Imprimir sin un cuadro de dilogo


En algunos casos es preferible imprimir el informe sin la intervencin del usuario. El mtodo
PrintReport ofrece tambin la posibilidad de imprimir todas las pginas o slo un intervalo de
pginas seleccionado.

Para imprimir sin mostrar el cuadro de dilogo:

1. Agregue un control CommandButton a un formulario.

2. En el evento Click del botn, escriba el cdigo siguiente:

DataReport1.PrintReport False

O bien, utilice el cdigo siguiente para especificar un intervalo de pginas para


imprimir:

DataReport1.PrintReport False, rptRangeFromTo, 1, 2

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.

Pg. 45 de 65
rptTextBox rptLabel

rptLine rptImage

rptShape
rptFunction

Cuadro de Herramientas del Diseador de Informes de Datos

Diseando Informes con Crystal Reports

Crystal Reports es un paquete sobre informes que se incluye en Visual Basic, le


permite crear informes a partir de muchos tipos de origenes de datos. Es posible
probar y disear y probar informes graficamente por medio del diseador Crystal
Reports . El diseo del informe y otra informacion estan almacenados en un
archivo personalizado Crystal Reports, provisto de la extensin .rpt . Tras haber
creado el archivo, podra usar cualquiera de los siguientes metodos para mostrar el
informe al usuario:

El control Crystal Reports proporciona una manera sencilla de integrar los


informes terminados en su programa de Visual Basic.

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.

Creacin de un nuevo Informe:


En el menu Archivo, elija la opcion Nuevo, aparecer el cuadro de dialogo Crear
Informe Nuevo, como se ve en la siguiente figura:

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.

Creacin de un informe desde cero


Para continuar con el proyecto de muestra de la base de datos BIBLIO, haga click
en el boton Personalizado (Custom) para acceder al cuadro de dialogo Elija un
tipo de Informe y un tipo de dato (Choose Report Type and Data Type).
Asegrese que el boton Informe Personalizado este seleccionado, y haga click en
el boton Archivo (Data File)

Seleccione la base de datos BIBLIO que viene con Visual Basic

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.

Como ejemplo, seleccione el campo Author de la tabla Authors y el campo Title


de la tabla Titles. Para realizar este proceso, debera hacerlo cuidadosamente:

1. Haga click en el campo Authors


2. Haga click en Insertar (Insert)
3. Lleve el puntero del Mouse sobre el area de Detalle (Detail) y luego haga
click donde desee que este el campo
4. El campo queda insertado

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).

Creacin de un Informe usando el Asistente


El uso del asistente para la creacion de informes es otra forma de crear el informe.
Desde el cuadro de dialogo Crear un informe nuevo, pulse el tipo de informe que
desee. Las elecciones disponibles son:

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:

Campo de bases de datos


Campo de texto
Campo de formula
Campo de parmetro
Campo Especial

Agregar una frmula de seleccin


Desde el men Informe, se puede cambiar la frmula de seleccin del informe. Una
frmula de seleccin le permite filtrar los registros desplegados desde dentro del
Crystal. Fuciona de forma muy parecida a la clusula WHERE de una instruccin
SQL, pero se presenta en un formato algo diferente. El cuadro de dilogo Frmula
de seleccin de registros le permite filtrar registros mediante la seleccin de
campos aplicables y sus respectivos criterios de seleccin. La instruccin de

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

Uso del Control Crystal Report


Una vez que se termina el diseo del reporte, deber guardar un archivo .rpt en el
disco duro. Puede usar este archivo en conjuncion con el Control Crystal Reports,
con el fin de mostrar el informe desde una aplicacin de Visual Basic

Una vez estando en Visual Basic, realice los siguientes pasos:

1. En el Men Proyecto, elija Componentes


2. Marque la casilla de verificacion Crystal Report Control 4.6 (o la version
que Ud. tenga)
3. Inserte el control en el formulario

Modificando propiedades del Control Crystal Report


La propiedad que debe especificarse de manera obligatoria es la propiedad
ReportFileName, para especificar la ruta de acceso al archivo .RPT que se creara
con el diseador de Informes. Esta propiedad puede modificarse en tiempo de
diseo o en tiempo de ejecucin.

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.....)

Establecer propiedades opcionales:


Es posible, como si se tratara de cualquier otro control, modificar algunas
propiedades, por ejemplo, la propiedad SelectionFormula:

CrystalReport1.SelectionFormula = {Authors.Year Born} >= 1955

Tambien se pueden usar expresiones con los operadores And y Or

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

Private sub Command1_Click()


CrystalReport1.PrintReport
End Sub

Pg. 52 de 65
Resultado de la
impresin

Pg. 53 de 65
Laboratorios

CONTROL ADODC Y CONTROLES ENLAZADOS

Lab 01: Agregando y Configurando un Control ADODC


Duracin: 10 Min.

Tareas:

1. Inicie Microsoft Visual Basic 6.0 y cree un Proyecto .EXE Estndar


2. En el cuadro de Dilogo Componentes del Men Proyecto, marque la casilla de
verificacin Microsoft ADO Data Control 6.0
3. Dibuje el control en la parte Inferior del Formulario
4. Haga click con el botn derecho sobre el control Adodc1 y elija la opcin
Propiedades de ADODC:
a. Haga Click en la opcin Usar Cadena de Conexin, luego haga click en el
botn Generar...
b. Elija el Proveedor de datos Microsoft OLE DB Provider for ODBC Drivers
c. Configure el control de tal manera que se conecte con la base de datos
Biblio que viene con Visual Basic ya sea con o sin cadena de conexin
d. Escoja como tabla: Authors en la Ficha Origen de Registros del Cuadro de
dialogo Propiedades de ADODC.
5. Cual cree Ud. que es mejor mtodo para crear una conexin: Con DSN o sin DSN
____________________________________________________________________
____________________________________________________________________
_____________________________________________________________

6. Guarde el Proyecto con el Nombre: pjtADODC

Lab 02: Agregando y Configurando Controles Enlazados a


Datos

Duracin: 10 Minutos

Tareas:

1. Si no esta iniciado Visual Basic, hgalo ahora


2. En el cuadro de dialogo Nuevo Proyecto haga uso de la Ficha Existente o
Resiente para abrir el Proyecto pjtADODC
3. Agregue 3 Cuadros de Texto al formulario
a. Seleccione el primer Cuadro de Texto

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

Lab 03: Agregando, Actualizando y Eliminando Datos a


travs de Cdigo
Duracin: 25 Minutos

Tareas:

1. Si no ha iniciado Visual Basic, hgalo ahora...


2. Abra el Proyecto pjtADODC
3. Agregue 03 Botones de comando al formulario:
a. Asgneles el Ttulo Nuevo, Guardar y Eliminar a cada uno
b. En el evento Click de cada Boton de comando use los mtodos AddNew ,
Update y Eliminar para Agregar, Guardar y Eliminar respectivamente.
4. Ejecute el formulario.
5. Agregue un Nuevo Registro e Ingrese estos datos:
a. Juan Prez
b. 1975
6. NO ESCRIBA NADA EL EL PRIMER CUADRO DE TEXTO, es Autonumrico!
7. Use el boton para Ir al Primer Registro y luego para Ir Al Ultimo
8. Verifique que los datos esten ya almacenados
9. Agregue otro Registro mas, usando datos Inventados por Ud.
10. Asegurese de estar en el ultimo registro de la tabla y elimine el ultimo registro
aadido.
11. Ahora elimine el anterior
12. Pudieron eliminarse ambos registros?:________________________________
13. Se actualizan los datos una vez eliminados estos registros?:_______________
14. Cierre el formulario
15. Guarde los cambios a su proyecto

Nota: El campo autonumerico se actualiza la siguiente vez que ejecute su proyecto

Pg. 55 de 65
Lab 04: Agregando, Configurando y Usando el Control
DataGrid
Duracin: 10 Minutos

Tareas:

1. Si no ha iniciado Visual Basic, hgalo ahora


2. Abra el Proyecto pjtADODC
3. Acomode los controles dejando un espacio considerable en la segunda mitad del
formulario, (si es necesatio ajuste el tamao del form)
4. En el Men Proyecto, haga Click en Componentes
5. En el cuadro de dialogo de Componentes, marque la casilla de verificacion:
Microsoft DataGrid Control 6.0, luego haga Click en Aceptar
6. Dibuje el Control en el formulario de tal manera que cubra la mitad restante del
formulario descrita en el paso 3.
7. En la ventana de Propiedades ubique la propiedad DataSource y especifique el
valor Adodc1
8. Sobre el Control DataGrid, haga Click con el Botn Derecho y en el men contextual
que se despliega, haga click en la opcin Recuperar Campos, (aparece un mensaje
de advertencia, haga click en S)
9. Ejecute el formulario
10. Utilice los botones qe navegacin y observe como el marcador de registros del
DataGrid se moviliza tambien
11. Use los botones Nuevo y Agregar que Ud. cre en el Lab 03 .Agregue y grabe 2
registros
12. Se visualizan simultneamente en el DataGrid? _____________________________
13. Ahora use el Botn Eliminar para eliminar estos dos registros
14. Se visualizan estas eliminaciones en el DataGrid?____________________________

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

Lab 01: Realizando una Conexin con ADO utilizando DSN


Duracin: 20 Min.

Tareas:

1. Inicie Microsoft Visual Basic si no esta iniciado


2. Abra el Panel de Control de Windows
3. Creacin del DSN:
a. En el Panel de Control haga doble click en el Icono Origenes de datos
ODBC
b. En la ficha DSN de usuario haga click en el botn Agregar
c. En la pantalla Crear nuevo origen de Datos haga click en el controlador
Microsoft Access Driver (*.mdb)

d. Haga click en el botn Finalizar

e. En la pantalla Configuracion de ODBC de Microsoft Access :

i. En Nombre de Origen de datos escriba NORTHWIND

ii. En Descripcin (opcional) escriba: Origen de datos de usuario

iii. En el area Base de Datos, haga click en Seleccionar y ubique la


base de datos NWIND.MDB que viene con Visual Basic

iv. Finalmente haga click en el botn Aceptar

Pg. 57 de 65
(ver figura para comparar....)

f. Cierre la pantalla de Origenes de datos ODBC y luego cierre el Panel de


Control

4. Vuelva a Microsoft Visual Basic

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)

b. Haga click en Aceptar

c. En el Men Ver elija la opcin Cdigo

d. En la seccin de declaraciones del formulario declare la variable Cnx como


tipo ADODB.Connection

e. En el evento Load del formulario establezca un valor para la variable Cnx


con la instruccin Set y luego abra la conexin con el mtodo Open del
Objeto Cnx, haciendo referencia al DSN NORTHWIND

f. Ejecute el formulario

g. Al momento de ejecutarse el formulario ocurri algun error en tiempo de


ejecucin?_____________________________________________________

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.

6. Guarde el proyecto con el nombre pjtConDSN

Pg. 58 de 65
Lab 02: Estableciendo una Conexin sin DSN
Duracin: 10 Min.

Tareas:

1. Cree un Nuevo Proyecto .EXE ESTANDAR

2. Haga Referencia a los Objetos de Datos ActiveX (como en el Lab anterior)

3. En la seccin de declaraciones del Formulario Declare la variable Cnx como tipo


ADODB.Connection

4. Instancie el objeto Cnx con la Instruccin Set en el evento Load del Formulario

5. Escriba el siguiente codigo despues de instanciar (en una sola lnea):

Cn.ConnectionString = Driver=Microsoft Access Driver (*.mdb);DBQ= C:\Archivos de


programa\Microsoft Visual Studio\VB98\NWIND.MDB

6. Ejecute el formulario

7. Si no hay errores devueltos en tiempo de ejecucin quiere decir que la conexin se


realiz de manera exitosa

8. Guarde el Proyecto con el nombre pjtSinDSN

9. Cierre Microsoft Visual Basic

Lab03: Laboratorio de Desarrollo 1. Trabajando con


Recordsets
Duracin: 25 Minutos (valor aprox.)

Tareas:

1. Disear un formulario que muestre los 4 primeros campos de la tabla Clientes de la


base de datos Northwind y Crear los Botones de Navegacin necesarios con las
consistencias adecuadas. El formulario debe tener un boton para Salir, debidamente
codificado. (Ver figura para disear)

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:

1. Abrir Microsoft Access

2. Crear una base de datos en blanco con el Nombre Test

3. En la base de datos crear una Tabla llamada Contactos

IdContacto Texto
Nombres Texto
Apellidos Texto
Edad Numerico
FechaDeNacimiento Fecha/Hora

4. Utilizando la Hoja de Datos agregue 2 registros a esta tabla

5. Cierre la Hoja de Datos

6. Cierre Microsoft Access

7. Abra Microsoft Visual Basic y cree un nuevo Proyecto .EXE Estandar

8. Desarrolle una aplicacin que haga las siguientes tareas:

a. Realizar un conexin con la base de datos Test con o sin DSN

b. Crear botones de navegacin

c. Que Haga mantenimiento Bsico a la tabla Contactos (Ingreso, Modificacin


y Eliminacin de registros)

d. Rutina de bsqueda (mtodo Find)

e. Consistencias para habilitar y deshabilitar cuadros de textos segn sea el


caso.

9. Ud. puede agregar otras prestaciones a la aplicacin, como por ejemplo el uso de las
siguientes caracteristicas:

a. Uso de la Propiedad CursorType

b. Uso del Objeto command para recuperacion de registros (mtodo alternativo


al tradicional)

c. Probar un Recordset Desconectado y Reconectarlo

Pg. 60 de 65
ACERCA DEL DISEADOR DE ENTORNO DE DATOS
(DATA ENVIRONMENT)

Lab 01: Creando un Proyecto de Datos y Configurando un


DataEnvironment
Duracin: 20 Min.

Tareas:

1. Abra Microsoft Visual Basic

2. En la ventana Nuevo Proyecto haga doble click en la plantilla de desarrollo


Proyecto de Datos (Visual basic agrega automticamente un DataEnvironment y
un DataReport al proyecto .EXE Estandar)

3. Haga doble click en DataEnvironment1 (en el Explorador de Proyectos)

4. En la ventana de Propiedades ubique la propiedad Nombre y coloque como


nombre DEnv

5. Configurando la Conexin a la Base de Datos Northwind:

a. Dentro del DataEnvironment haga click con el boton derecho sobre el nodo
Connection1 y elija la opcion Propiedades

b. Con el proveedor predeterminado haga click en el boton Siguiente

c. Como se tiene creado un DSN de usuario , en el area Usar el nombre de


origen de datos, seleccione el origen NORTHWIND, (si desea hacerlo sin
DSN, haga click en Usar cadena de conexin y luego en Generar...)

d. Haga click en Probar Conexin para comprobar que la conexin se realiza


correctamente

e. No escriba nada en inicio de sesion en el servidor porque la base de datos


es local

f. Haga click en el boton Aceptar (nada mas configuraremos por ahora)

6. Agregando y configurando un Objeto Command:

a. Haga click con el boton derecho sobre Connection1 y elija la opcin


Agregar comando

b. En el cuadro de texto nombre de comando escriba Clientes, (verifique que


en conexin este especificado el nombre de Connection1)

c. En Objeto de Base de Datos, desplegue y elija la opcion Tabla

d. En Nombre de Objeto elija la tabla Clientes

e. Haga click en Aplicar y luego en Aceptar

7. Ahora ya estan configuradas la conexin y el comando. Guarde este proyecto con el


nombre pjtClientes

Pg. 61 de 65
Lab 02: Usar el Entorno de Datos con la Aplicacin
Duracin: 20 Min.

Tareas:

1. Abra Microsoft Visual Basic y abra el proyecto pjtClientes

2. Asegrese que este visible el DataEnvironment solamente

3. Usando el Explorador de proyectos haga doble click sobre el formulario frmDataEnv

4. En el men Ventana elija la opcin Mozaico Horizontal

5. Para disear el formulario correctamente, siga los siguientes pasos:

a. Ubique el nodo Clientes del DataEnvironment

b. Arrastre el nodo Clientes sobre la superficie del formulario, (de preferencia


lo mas arriba que pueda ).

c. Visual Basic se encarga de disear y configurar adecuadamente cada cuadro


de texto (o el control correspondiente).

6. Ejecute el formulario y verifique que muestra los datos del Primer Registro

7. Creando botones de Navegacin:

a. Disee 4 botones de comando en el formulario

b. En el evento Click de cada uno de estos botones escriba el siguiente codigo:

Private Sub Command1_Click()


DEnv.rsClientes.MoveFirst Primero
End Sub

Private Sub Command2_Click()


DEnv.rsClientes.MovePrevious Anterior
If DEnv.rsClientes.BOF Then DEnv.rsClientes.MoveFirst
End Sub

Private Sub Command3_Click()


DEnv.rsClientes.MoveNext Siguiente
If DEnv.rsClientes.EOF Then DEnv.rsClientes.MoveLast
End Sub

Private Sub Command4_Click()


DEnv.rsClientes.MoveLast Ultimo
End Sub

8. Ejecute el formulario

9. Compruebe que los botones de navegacin funcionan

10. Guarde los cambios al proyecto.

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:

a. Mantenimiento Basico (Ingreso, Modificacion y Eliminacin)

b. Administracin de cuadros de textos (o elcontrol correspondiente) para su


habilitacin o deshabilitacin segn sea el caso (nuevo, modificar, eliminar)

c. Creacin de una rutina de bsqueda de registros

d. Uso del DataEnvironment para completar estas tareas

2. Guarde el Proyecto adecuadamente

Pg. 63 de 65
REPORTES EN VISUAL BASIC

Lab 01: Laboratorio de Desarrollo 1. Aadiendo un


Informe de Datos al Proyecto pjtTest
Duracin: 20 Minutos

Tareas:

1. Abra el Proyecto pjtTest

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

3. Al DataReport, asignar el nombre de DRep

4. No olvidarse de guardar los cambios adecuadamete al proyecto

Lab 02: Laboratorio de Desarrollo 2. Aadiendo un


Informe diseado con Crystal Reports al proyecto pjtTest
Duracin: 20 Minutos

Tareas:

1. Abra el Proyecto pjtTest

2. Aada el Componente Crystal Report Controlal cuadro de herramientas de controles

3. Abra Crystal Reports

4. Disee el Informe de Datos siguiendo los pasos especificados en el manual, esto para
la tabla Contactos de la base de datos Test

5. Ejecute el informe desde el formulario usando el control aadido

6. Guardar los cambios al proyecto

Analice las ventajas y desventajas de cada diseador de informes

Pg. 64 de 65
Pg. 65 de 65

Você também pode gostar