Download UNIDAD 3: Gestión de Bases de Datos con Visual Basic 6.0

Document related concepts

SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

PL/PgSQL wikipedia , lookup

Recordset wikipedia , lookup

Transcript
UNIDAD 3: Gestión de Bases de Datos con Visual Basic 6.0
CONTENIDOS
1. Controles de acceso y manipulación de datos (DAO): Control Data,
DbGrid, DBCombo, textbox, label;
2. Array de Controles: concepto, diseño y programación. Importancia
práctica;
3. DAO: Operaciones ABM (Altas, Bajas y Modificaciones) Y Consultas;
1
2
4. Formularios MDI y Menús: creación y organización, utilización de
formulario de validación de usuario y contraseña sobre la base de datos;
5. Controles de acceso y manipulación de datos (ADO): Adodc, DataGrid,
DataList, DataCombo;
3
6. Diseño de consultas e Informes: Diseñadores DataEnvironment y
DataReport
ACTIVIDADES
Unidad 3
1/6
Tareas
Lectura, trabajos, prácticas propuestas en el Website de la Materia,
Sección Actividades y Material con videos y manuales.
BIBLIOGRAFÍA para el Alumno
1.
Contenidos Unidad 3
2. JALÓN, RODRÍGUEZ, BASÁLEZ, Aprenda Visual Basic 6.0 como si
estuviera en primero (Universidad de Navarra)
3. RAMÍREZ R., José Felipe, aprenda VISUAL BASIC practicando (PrenticeC
Hall, México, 1ª Edición, 2001)
(*): Los trabajos se encuentran en el Website de la materia.
(**): Libro impreso.
(*)
(**)
CONTENIDOS
1.Controles de acceso y manipulación de datos (DAO): Control Data, DbGrid,
DBCombo, textbox, label;
BASES DE DATOS EN VISUAL BASIC 6.0
Visual Basic versión 6 puede conectarse a base de datos de diferentes tipos utilizando la tecnología OLE
DB que permite trabajar con el entorno de desarrollo de la misma manera con distintos motores de bases
de datos. Más específicamente permite trabajar con el motor de base de datos Microsoft Jet, que es el
mismo que utiliza Microsoft Access.
El motor controla las tres funciones básicas de base de datos:
1. Almacenamiento de datos
2. Recuperación de datos
3. Actualización de datos
O lo que más comúnmente se conoce como ABM (altas, bajas y modificaciones) y también las consultas.
Asimismo proporciona una interfaz de programación para datos orientada a objetos que se llama DAO
(Data Access Object).
Visual Basic ya en su versión 5 utilizaba dos conceptos importantes: DAO (Data Access Object) y RDO
(Remote Data Object). DAO es el conjunto de objetos que permiten acceder a una base de datos local y
administrarla utilizando los controladores correspondientes como el Motor Jet de Microsoft. En cambio
para la conexión a bases de datos remotas utilizaba otro conjunto de objetos llamado RDO (Remote Data
Access).
Con la Versión 6 aparece ADO (ActiveX Data Object). ADO que reemplaza a las dos anteriores y está
formada por un conjunto de objetos que pueden conectarse a bases de datos prácticamente de cualquier
tipo (ya sea en forma directa o mediante un origen de datos ODBC). En esta versión 6, por razones de
compatibilidad sigue estando presente DAO.
Como ya expresáramos, Visual Basic versión 6.0 puede conectarse a bases de datos de diferentes tipos
utilizando la tecnología OLE DB haciendo que el entorno de desarrollo pueda utilizarse
independientemente de cuál sea el DBMS de la base de datos. Es decir, es independiente del tipo de base
de datos.
DAO
El modelo DAO es una colección de clases de objetos que modelan la estructura de un sistema de base de
datos relacional. Proporciona las propiedades y los métodos necesarios para poder llevar a cabo las
tareas de administración del sistema de bases de datos relacional. Obviamente se basa en SQL que es el
lenguaje que permite definir y manipular los datos de las bases de datos relacionales.
La programación está simplificada en cuanto al código a escribir por cuanto básicamente consiste en la
creación de objetos de acceso a datos.
DAO es importante porque brinda flexibilidad e integración ya que los mismos objetos sirven para
distintos motores, cuestión importante desde el punto de vista del diseño lógico.
Entonces en Visual Basic los mismos objetos de acceso a datos utilizados en una aplicación tienen la
capacidad de ser utilizados para acceder a distintas bases de datos. Por ejemplo si se usa Microsoft
Access se puede utilizar una base de datos SQL Server u Oracle efectuando unos pocos cambios en el
código.
Existen tres tipos de bases de datos que Visual Basic puede reconocer utilizando DAO:
•
•
•
Bases de datos de Visual Basic: también llamadas bases de datos nativas y que utilizan el mismo
formato de Microsoft Access (extensión .mdb);
Bases de datos externas: son bases de datos populares y que utilizan ISAM (Método de Acceso
Secuencial Indexado), por ejemplo Fox Pro, Dbase III, dBase IV, etc. Todos estos formatos
pueden crearse o manipularse desde Visual Basic y tambén se puede tener acceso a bases de
datos de archivos de texto y hojas de cálculo como Excel;
Bases de datos ODBC: incluyen las bases de datos clienteCservidor que cumplen con este
estandar, por ejemplo SQL Server, ORACLE, etc.
Unidad 3
Página 1 / 16
La siguiente imagen muestra cómo está organizada jerárquicamente DAO:
A simple vista podemos ver que unos
objetos pueden contener a otros
objetos. Por ejemplo o workspace
puede contener a una o más bases de
datos y un objeto Database puede
contener uno o más objetos TableDef
(definición de tablas). Es simple: si no
tengo un Workspace, no tendré una
base de datos.
En el tope de la jerarquía tenemos el
objeto DBEngine que es el único objeto
que no es una colección y no está
contenido en ningún otro. Representa
al motor de la base de datos.
Una característica importante de Visual
Basic es que tiene propiedades y
métodos que pueden separarse como se hace en DML y DDL. En una palabra el Lenguaje de Definición de
Datos consta de métodos y propiedades que permiten definir y crear objetos como la misma base de
datos, las tablas, etc. El Lenguaje de Manipulación de Datos provee propiedades y métodos que nos
permiten operar con la base de datos, como ser: consultas, inserciones, actualizaciones, etc.
Lo más importante de todo es que tiene en cuenta SQL y por ende se puede utilizar el Entorno de
Desarrollo independientemente del tipo de motor de base de datos.
Por lo anterior, Utilizar DDL es totalmente posible en VB, sin embargo nosotros trabajaremos de otra
manera: diseñaremos y crearemos las bases de datos en Access y luego crearemos las aplicaciones para
su manipulación; es decir utilizaremos básicamente DML.
DML y Visual Basic
Básicamente DML presupone que la base de datos ya existe y por lo tanto pueden mencionarse como las
tareas básicas de manipulación de datos a las siguientes:
•
•
•
apertura y cierre de bases de datos
escritura de datos
búsqueda de datos
Si bien el manejo de la base de datos mediante DML es muy eficiente requiere un gran esfuerzo en
cuanto a codificación. Una alternativa más sencilla para manipular datos es utilizar los controles que
Visual Basic trae para ello.
Controles de acceso a datos
El manejo de la base de datos mediante DDl y DML es muy eficiente pero es codificación pura; es decir
aplicando los métodos y propiedades mediante código de los objetos vistos anteriormente en la jerarquía.
Una alternativa más sencilla para manipular datos es utilizar los controles que Visual Basic trae para ello.
Visual Basic contiene un control básico para acceso de datos: el control Data. Este control Data forma
parte de los objetos DAO.
Básicamente nos permite obtener un origen de datos. Para utilizarlo hay que conocer:
1. qué motor de base de datos utilizará (Connect),
2. qué almacén de datos se usará (DatabaseName) y
3. el origen de recursos que utilizará (RecordSource)
En los siguientes puntos daremos un pantallazo de los principales controles de manejo de datos. En DAO
el principal es el Control Data.
•
•
•
Control Data
Control DBGrid
Control DBCombo
Unidad 3
Página 2 / 16
Estos controles específicos para manejo de datos se utilizan con otros que ya conocen como cuadros de
texto, botones de comandos, etc. que permiten manipular los datos y eventos dentro de una aplicación.
Control Data
El control Data permite que el formulario se vincule a un origen de datos que puede ser una tabla, una
vista o una consulta. En la siguiente imagen se muestra un ejemplo práctico de este control.
Las principales propiedades de este control son: la conexión (Access en el ejemplo), la ruta donde se
encuentra la base de datos y el origen de datos, que en el ejemplo mostrado se ha utilizado una consulta
de selección: SELECT * FROM cargos.
En la sección Actividades del Website encontrará el vínculo Uso del control Data que permite
descargar el archivo ZIP que incluye el Proyecto Cargos (VB) con material teórico complementario en
formato PDF. El proyecto aborda cuatro ejemplos que van creciendo en complejidad, incluyendo las
operaciones de inserción, actualización y eliminación de registros; así como el manejo y diseño de Arrays
de Controles (Unidad 5), que si bien es un adelanto en la planificación, su apropiado manejo permite
diseñar mejor los procedimientos y evitar duplicaciones innecesarias de código.
Control DBGrid
El control DBGrid permite mostrar datos de consultas o tablas.
Es el mismo formulario anterior sólo que hemos agregado el Control DBGrid y unos botones. Como puede
apreciarse el origen de datos es el control Data Data1.
Nos interesa poder manipular la tabla Cargos, es decir poder realizar Altas, Bajas y Modificaciones. Un
alta no sería problema ya que el Control Data permite directamente generar un nuevo registro que si no
se completa se elimina. Además como la tabla tiene restricciones de integridad, en lo que hace a la base
de datos, no es necesario ingresar controles de validación.
Unidad 3
Página 3 / 16
Sí es importante, y lo haremos a medida que avancemos que los datos de la tabla o consulta actualizable
no se modifiquen porque sí, ante un error del usuario, por ejemplo.
En las dos siguientes imágenes podemos ver que si nos desplazamos por el DBGrid se modifican los
valores de los cuadros de Texto:
Unidad 3
Página 4 / 16
En esta imagen se puede apreciar cómo se modifican los datos, sin utilizar ningún botón de comando,
directamente accediendo al DBGrid:
En la sección Actividades del Website encontrará el vínculo Uso del control DBGrid que le permitirá
bajar el archivo ZIP que incluye el Proyecto DBGrid (VB) con material teórico complementario en formato
PDF. Los ejemplos que incluye el archivo comprimido van abordando niveles de complejidad creciente,
incluyendo temas que tienen que ver con el manejo de SQL en Visual Basic e igualmente el uso y diseño
de Arrays de Controles.
Control DBCombo
El control DBCombo básicamente permite seleccionar un valor desde una consulta o una tabla.
Como veremos enseguida, permite mucho más. Se puede apreciar en la imagen de la página siguiente.
En la sección Actividades del Website también encontrará el vínculo Uso del control DBCombo
que le permitirá bajar el archivo ZIP que incluye el Proyecto DBCombo (VB) con material teórico
complementario en formato PDF. Como en los casos anteriores, los ejemplos que van abordando un nivel
de complejidad creciente e incluyendo el manejo y diseño de Arrays de Controles, operaciones de
inserción, actualización y eliminación de registros; vinculación de más de dos controles Data a un mismo
formulario, etc.
Unidad 3
Página 5 / 16
2.Array de Controles: concepto, diseño y programación. Importancia práctica;
Concepto, diseño y programación
Cuando manipulamos variables y utilizamos una matriz lo que estamos haciendo es referenciar a un
conjunto de valores bajo un mismo nombre. Una vez que una matriz ha sido definida (de una o dos
dimensiones, por ejemplo), inicializada y cargada con valores éstos pueden ser referenciados mediante
un subíndice.
Ahora no sólo es posible crear matrices para almacenar valores. Pueden crearse matrices de objetos que
es lo que se conoce como matriz de controles.
¿Cómo se crea una matriz de controles? Bueno puede crearse fácilmente en el momento en que uno
intente tener dos objetos con el mismo nombre; en esta situación Visual Basic le dirá que ya existe un
control con dicho nombre, que si desea crear una matriz de controles. Esto ocurriría si tiene en su
formulario un cuadro de texto llamado txtPrueba. Posteriormente copia (con el botón copiar o el comando
del menú) este cuadro de texto y lo pega en el mismo formulario. Al hacerlo le aparecerá el mensaje de
advertencia de que ya existe un objeto llamado txtPrueba. Si lo que desea es crear una matriz de
controles deberá presionar SI.
Podemos analizar la ventana de propiedades y veremos que txtPruba será ahora el nombre de la matriz
de controles y que el primer cuadro de texto se llamará ahora txtPrueba(0) y el agregado recientemente
mediante copia será txtPrueba(1). El número de subíndice siempre empieza en cero (0) y se aumenta en
uno (1) cada vez que se agregue un nuevo control.
Los índices simplifican mucho el manejo de eventos dentro de un formulario.
Importancia Práctica
Unidad 3
Página 6 / 16
La importancia práctica de este tema está vinculada a aspectos de programación e implementación del
código fuente. Diseño por cuanto con el Array tengo todo el código de eventos relativo a un tipo de
control específico y ello tiene importancia si hay que realizar modificaciones en la pantalla lo cual afecta
el código. De esta forma es más fácil no sólo reutilizar el código en otro tipo de proyectos similares sino
también realizar correcciones y/o agregados.
De todas maneras, con este tema no existe nada mejor que ver cómo funciona para comprender
acabadamente sus ventajas::
Abra el Proyecto Eventos de la Sección Actividades de la Unidad 2 y
Comprenda el código y ejecute el formulario Validaciones;
Comprenda el código y ejecute el formulario Validaciones2;
Saque sus propias conclusiones respecto a la cantidad de líneas de código utilizadas;
Saque sus propias conclusiones respecto a la claridad lógica en cuanto a la construcción del
código y/p sus posibilidades en tareas que impliquen su reutilización y/o su corrección.
3. DAO: Operaciones ABM (Altas, Bajas y Modificaciones) Y Consultas;
Como sabemos el sentido de contar con un entorno de desarrollo como Visual Basic es contar con
controles visuales que permitan que el trabajo del usuario sea más ameno y fácil. Una base de datos y
sus tablas, cuando se trata de sistemas de nivel operativo, sufren una gran cantidad de actualizaciones
diarias. Ya sea que estas actualizaciones se refieran a inserciones, modificaciones o eliminaciones de
registros. Igualmente está sujeta a un sinnúmero de consultas internas incluso para poder realizar
operaciones de inserción.
Visual Basic, como ya se vio en el punto anterior, permite realizar estas operaciones básicamente de dos
formas utilizando DAO:
•
•
Mediante la utilización de controles visuales que traen incorporadas propiedades relacionadas con
datos y permiten efectuar las operaciones del lenguaje DML mediante el uso de controles
gráficos;
Mediante la utilización directa de variables y sentencias definidas en los procedimientos para
utilizar el lenguaje DML tanto de SQL como el equivalente DML de Visual Basic.
En uno u otro caso, hay que tener en cuenta la jerarquía de objetos vista en el punto anterior para DAO.
Por lo tanto aquí vamos a definir estos objetos y explicarlos con mayor detalle de lo que se ha visto en el
material teóricoCpráctico propuesto para las Actividades y repasar algunos temas ya vistos en el punto
anterior.
DML o Lenguaje de Manipulación de Datos presupone que la base de datos ya existe y se conoce sus
características. Esto tiene que ver con cuáles son las claves primarias de las tablas, cuáles las claves
foráneas, cuáles son los tipos de datos, si existen validaciones a nivel de campo (cuando un campo es
requerido, por ejemplo), etc.
Las operaciones básicas DML de Visual Basic son:
a.
b.
c.
d.
apertura y cierre de la base de datos
escritura de datos (AddNew,Edit, Update y Delete [que son los equivalentes al DML de SQL:
básicamente insert, update y delete)
búsqueda de datos (fundamentalmente el método Seek de VB; y en algunos casos FindFirst,
FindNext, etc.)
movimiento de datos (que mueven el apuntador de registro entre las tablas: MoveFirst,
MovLast, etc.)
a. Apertura y cierre de la base de datos: se encargan de abrir y cerrar una base de datos los
siguientes métodos:
•
•
•
OpenDatabase
OpenRecordSet
Close
Unidad 3
Página 7 / 16
OpenDatabase (Archivo) se encarga de abrir la base de datos y ponerla a disposición de DAO a
través de la creación de un objeto Database. Este objeto puede crearse mediante código o bien al añadir
un control Data a un Formulario. [para la práctica recomendamos ver tanto la práctica como la teoría de
base vista en los Proyectos Cargos y DBGrid].
OpenRecordset (Tabla, Tipo) es un
método del objeto Database que devuelve
un objeto Recorset. Un Recordset es un
objeto de Visual Basic que representa un
conjunto lógico de registros; y en definitiva
está representando los registros físicos de
una tabla o de una consulta. El
Recordset es el objeto fundamental
de DML ya que al consultar el Recorset y
manipularlo se puede afectar directamente
la estructura física de la base de datos.
Un RecordSet puede ser abierto de cinco
formas distintas; es decir, existen cinco
tipos de RecordSet: Table, Dynaset,
Snapshot, Dynamic y ForwarConly. La
siguiente tabla resume cada tipo y su
funcionalidad así como las constantes
usuales que se utilizan para declararlos.
TableDef
representa
la
Un
objeto
estructura de una tabla de la base de datos, en cambio un objeto Recordset representa a los registros
contenidos en una tabla que pertenece a la base de datos abierta.
En el Proyecto DMLVB en su formulario Cargos5 puede verse un ejemplo de estos métodos.
Close es un método de la base de datos abierta. Su sintaxis es: BaseDeDatos.Close. En los ejemplos
prácticos también encontrará su utilización en un entorno gráfico.
La siguiente imagen muestra la lógica para utilizar los métodos anteriores:
b. Escritura de datos
Para la escritura de datos se utiliza lenguaje DML de Visual Basic con métodos que se aplican sobre el
Recordset:
•
•
•
•
AddNew
Edit
Update
Delete
Dichos métodos fueron abordados en forma práctica mediante el Proyecto Cargos,
Formulario Cargos4. Ahora veremos un ejemplo TeóricoCPráctico que se basa en utilizar el DML de
Visual Basic sin utilizar el Control Data visto en el ejemplo anterior.
En la última página se muestra cómo funcionan estos métodos y cómo se relacionan entre sí mediante un
esquema.
Unidad 3
Página 8 / 16
Recomendamos que se lleve a cabo la práctica propuesta. Pueden abrirse distintos formularios para cada
situación y luego un formulario que contenga un DBGrid para poder inspeccionar en forma visual el
contenido de la tabla Cargos.
En el Proyecto DMLVB, en el Formulario Cargos6, hemos incluido un ejemplo totalmente visual que
puede descargarse desde la Sección Actividades del Website de la materia.
Para comprender los aspectos técnicos de las búsquedas vea el punto siguiente. En el esquema puede
apreciarse una breve descripción de cómo funciona el método Seek.
c. Búsqueda de datos utilizando el método Seek
Existen varias maneras de realizar la búsqueda de datos en Visual Basic aplicando el lenguaje de
manipulación de datos. Una de esas formas, tal vez la más eficiente, es utilizando el método Seek del
objeto Recordset.
Este método tiene la sintaxis: Recordset.Seek comparacion, valor. Para poder utilizarlo debemos
contar con una clave primaria y a su vez el Recordset debe ser del tipo Table. No sirve para efectuar
búsquedas sobre campos que no sean clave primaria.
Para hacer esto es necesario declarar un índice mediante programación utilizando la propiedad
Recordset.index = 'nombre del índice', es decir que el índice es la clave primaria.
Por lo tanto, para su aplicación es necesario primero establecer un índice mediante la propiedad index y
además utilizar el método Recordset.NoMatch que devolverá un valor lógico de True o False según si
la búsqueda tuvo o no éxito.
Las búsquedas son fundamentales puesto que es imposible realizar una modificación o una
eliminación sin efectuar antes una búsqueda en el Recordset.
diferencia entre Seek y otros métodos existentes como FindFirst, FindNext,
FindPreious,FindLast es que Seek sólo puede utilizarse con claves primarias, utiliza un índice y el
La
Recordset debe ser del tipo Table.
Los otros métodos para búsqueda mencionados utilizan cualquier campo que no sea clave primaria. En
lugar de utilizar un índice para la búsqueda, la misma se lleva a cabo en base a una condición y no un
índice. Finalmente el Recordset debe ser del tipo Dynaset. Para verificar si se cumple o no la condición
hay que utilizar el método NoMatch.
Un ejemplo típico en el que deberíamos utilizar Seek es cuando queremos obtener un registro único y
paticular. Por ejemplo un empleado en particular, entonces utilizaríamos este método con la clave
primaria IdEmp.
En cambio, si quisiera encontrar todos los empleados que tienen un código de cargo determinado, en este
caso la condición sería 'que el idcargo sea igual a X' y podemos aplicarla con el método FindFirst que
devolverá el primer registro que coincida con la búsqueda; luego con FindNext podremos encontrar el
siguiente registro que cumple con la condición y así sucesivamente.
Estos últimos métodos están desarrollados en forma práctica en el Proyecto DMLVB en el formulario
Cargos7.
d. Movimiento de datos (moverse o navegar entre registros de un Recordset)
Los métodos MoveFirst, MoveLast, MoveNext y MovePreious permiten mover el apuntador de
registro al primer, último, siguiente o anterior registro respecto a dónde se encuentra el apuntador de
registro antes de aplicar el método.
La diferencia entre MoveFisrt y FindFirst es que MoveFirst mueve el puntero de registro al primer
elemento del Recordset y FindFirst mueve el puntero de registro al primer registro del Recordset que
coincide con la condición de búsqueda.
Estos métodos son los que utiliza el control Data para navegar entre los distintos registros del Recorset
abierto y al cual referencia este objeto visual. En el Proyecto DMLVB, formulario Cargos8 se
encuentra desarrollado en forma práctica la utilización de estos métodos.
Unidad 3
Página 9 / 16
Unidad 3
Página 10 / 16
Cómo trabaja SQL en Visual Basic.
Como sabemos SQL tiene un lenguaje DML que puede aplicarse prácticamente en forma directa, teniendo
en cuenta algunas condiciones específicas, en Visual Basic.
En el Proyecto DBGrid en su formulario DBGrid3 se utilizó DML de SQL en forma directa ya que el
usuario puede ingresar libremente las sentencias SQL. Estudiando el diseño del formulario, que incluye su
código, puede apreciarse que en el caso de las consultas se utiliza la propiedad RecordSource del
control Data. Y cada consulta puede asignarse en tiempo de ejecución ¿por qué?.
En cambio las otras operaciones que modifican ciertamente el contenido de la base de datos utilizan el
método Execute (textoSQL).
También ADO Y OLE DB, tecnologías distintas a DAO, utilizan SQL tanto para operaciones del lenguaje
SQL de tipo DML Y DDL. La diferencia con estas tecnologías es que no tienen un lenguaje incorporado en
Visual Basic de tipo DML o DDL equivalente a SQL.
4. Formularios MDI y Menús: creación y organización, utilización de formulario de
Este tema está desarrollado en forma independiente en el apunte Diseño de Formularios MDI y
Menús en formato pdf y que incluye material teóricoCpráctico. Está disponible para su descarga en la
Sección Material – Unidad 3 – Manuales.
5. Controles de acceso y manipulación de datos (ADO): Adodc, DataGrid, DataList,
DataCombo
Tema pendiente por el momento.
6. Diseño de consultas e Informes: Diseñadores
DataEnvironment y DataReportLos informes en papel son
necesarios porque así lo exigen en gran medida la legislación y
también los usos y costumbres. Sin embargo el uso de informes
dentro de una empresa debe estar restringido; es decir deben
emitirse en su justa medida y a quienes corresponda; de lo
contrario podrían producirse fugas de información no sólo dentro
de sectores de una compañía sino hacia la competencia. Otro
efecto nefasto es la excesiva burocracia ya que hay que tener
presente que los informes en papel tienen una permanencia en la
empresa y por lo tanto hay que contar cn espacio físico y normas
de seguridad para su almacenamiento en lo que se conoce como
archivos físicos.
Visual Basic trae un diseñador de informe de datos, el DataReport
Data Report
Para agregar un DataReport a un proyecto es preciso ejecutar la
opción de menú Proyecto – Agregar DataReport y así
aparecerá la ventana DataReport. Además se puede observar que
en el explorador de proyectos se agrega un nuevo elemento en la carpeta Diseñadores.
El Data Report permite crear un objeto DataReport que es de tipo contenedor que contiene secciones y
controles.
Un informe está formado por las siguientes secciones:
Unidad 3
Página 11 / 16
•
Sección de detalle: que mostrará los datos que
provienen del origen de datos que casi siempre
es un Recordset proporcionado por un comando
del DataEnvironment.
•
Sección de encabezado de página;
•
Sección de pie de página;
•
Sección de encabezado del informe: se muestra
una sola vez en el informe y en general se utiliza
para identificar el informe y colocar información
relativa a éste
•
Sección de pie de informe: como en el caso
anterior se muestra una sola vez y aparece
cuando finaliza el contenido del informe
•
secciones de grupo (encabezado y pie de grupo): estas áreas se presentan cada vez que se
produzca un cambio de grupo y permiten manipular funciones de
agrupamiento.
Los controles del Data Report son:
•
TextBox (RptTextBox): permite mostrar los campos de un origen de datos
y toman su valor en tiempo de ejcución;
•
Label (RptLabel): permite colocar etiquetas al informe;
•
Image (RptImage): permite insertar gráficos en el informe, siendo las
imágenes de tipo estáticas
•
Line (RptLine): permite dibujar líneas en el informe
•
Shape (RptShape): permite insertar rectángulos, triángulos, etc.
•
Function (RptFunction): es un cuadro de texto especial que permite calcular valores a medida que
se genera el informe, es decir, en tiempo de ejecución.
Este control no funciona con DAO sino que necesita de un objeto contenedor especial que es el
DataEnvironment para poder gestionarse.
Sin embargo por lo dicho al principio hay que tener en cuenta unos pasos lógicos no sólo para utilizar
adecuadamente este objeto sino más bien para diseñar los datos que se van a imprimir en papel y que
por lo tanto van a tener una consistencia permanente en la empresa.
1. Hay que tener claro lo que queremos hacer. Por ejemplo podría ser un listado de todos los
empleados, de sólo aquellos empleados que pertenecen a un departamento en particular, de sólo
aquellos empleados cuyo salario es superior o inferior a un valor, etc.
2.
Es importante ver qué información relativa al informe vamos a agregar. Por ejemplo es casi
seguro y correcto colocar la fecha de emisión del informe, un número de página y un título.
Opcionalmente puede ser necesario poder colocar un logotipo sólo en el encabezado del informe o
tal vez en cada página. Son cuestiones que tienen que ver con la política de la empresa, en
algunos casos; y en otras a quién va dirigido.
3.
Definir el objeto DataEnvironment;
4.
Agregar un objeto DataReport
5.
Vincular el Data Report con el DataEnvironmet utilizando las secciones y controles de informes
pertinentes.
6.
Realizar la codificación que sea necesario, que a veces es muy poca.
Data Environment
Unidad 3
Página 12 / 16
El Data Enviroment es un diseñador basado en objetos que sirve para centralizar las conexiones a la base
de datos y que básicamente permite también independizar los accesos y consultas de las bases de datos
de las aplicaciones. Este diseñador permite generar un objeto DataEnvironment que es un objeto
contenedor.
El DataEnvironment es el medio ambiente de los datos y a
través de él pueden definirse todas las conexiones que han
de ser realizadas a la base de datos y todos los comandos
necesarios para recuperar información. A cada conexión y a
cada comando se le asigna un nombre único.
El DataEnvironment cuando es agregado a un proyecto
tiene una extensión dsr (diseñador). Su estructura
jerárquica es la que muestra la imagen de la derecha.
Para agregar un entorno de datos a un proyecto de Visual
Basic es necesario utilizar la opción de menú Proyecto –
Agregar Data Environment y así aparecerá la ventana
DataEnvironment
PASOS PARA AGREGAR UN DataEnvironment A UN PROYECTO DE VISUAL BASIC
•
•
Hay que ir al menú Proyeto – Agregar DataEnvironmet:
Hay que definir DEConnection y DECommand
Siguiendo la tecnología ADO implica especificar, entre otras propiedades, las siguientes:
El servidor que vamos a utilizar;
El usuario;
La Clave;
La Base de datos
Unidad 3
Página 13 / 16
En las siguientes imágenes
se indican gráficamente
estos pasos para lo cual
hay que posicionarse sobre
la conexión, pulsar el
botón derecho del mouse y
seleccionar la opción
propiedades:
Se selecciona el proveedor
o servidor, en este caso
para poder utilizar Access
97 se elige Microsoft Jet
3.51 OLE DB Provider
La siguiente imagen nos
permite especificar la
conexión propiamente
hablando con el servidor
antes seleccionado, en
particular la Base de
Datos, el Nombre de
Usuario y la Clave de
usuario. Este último
requisito puede quedar en
blanco.
El siguiente paso consiste en probar la conexión que si
es exitosa mostrará un mensaje de información en tal
sentido.
La solapa Avanzadas permite especificar el tipo de
acceso a la
base de
datos
mediante la
conexión
(escritura,
sólo
lectura,
etc.).
Una vez que se ha establecido la conexión se pueden crear comandos. Basta con posicionarse en la
conexión y pulsar el botón derecho del mouse como muestra la imagen.
Unidad 3
Página 14 / 16
Aparecerá la ventana de Propiedades del comando,
que todavía no tiene nombre y por ello figura el
nombre por omisión que coloca Visual Basic:
La solapa General permite establecer el origen de
datos del comando:
Un objeto de base de datos que podrá ser
un procedimiento almacenado, una tabla,
una vista o un sinónimo.
Instrucción SQL
Si seleccionamos la segunda opción el botón Generar
SQL... se activará. Si lo pulsamos aparecerá la
ventana de Diseño del Comando (Diseño: Command1)
Esta ventana es muy similar a la vista diseño que
tiene Access para diseñar las consultas:
En la parte superior pueden arrastrarse
los objetos desde la vista Datos (tablas
o vistas de la base de datos) y las
relaciones entre los mismos se
realizarán en forma automática. Desde
aquí también podemos seleccionar los
distintas columnas que nos interesa que
muestre la consulta.
En la grilla superior pueden establecerse
opciones adicionales correspondientes a
la ordenación, agrupación, etc.
En el área de texto se irá escribiendo el
comando SQL o bien podremos ingresar
o modificar el mismo directamente
La grilla inferior sirve para mostrar los
resultados de la ejecución de la
consulta.
Finalmente una vez diseñada la
consulta utilizando el botón derecho
del mouse podremos seleccionar
otras opciones dependiendo en qué
zona estemos posicionados con el
ratón el menú contextual nos
permitirá ejecutar la consulta,
comprobar la sintaxis SQL, etc. Por
ejemplo, podemos observar en la
imagen la Vista de Diseño del
comando cmdDep2 que podemos
ejecutar la consulta.
Y en esta imagen podemos apreciar
la Vista de diseño del comando
cmdDep2 mostrando el menú
contextual que permite, entre otras
cosas, ejecutar la consulta que se
muestra en la siguiente imagen.
Unidad 3
Página 15 / 16
Asimismo se pueden diseñar, como
también ocurre en Access, distintos
tipos de consultas.
Fuentes Bibliográficas consultadas:
•
DATE, C. J., Introducción a los SISTEMAS DE BASES DE DATOS (PrenticeCHall, México, 7ª
Edición, 2001)
•
SAROKA, Raúl Horacio, Sistemas de Información en la Era Digital (Capítulo 1, ebook,
Fundación OSDE 2002) [pdf 402 Kb]
•
SAROKA, Raúl Horacio, Sistemas de Información en la Era Digital (Capítulo 2, ebook,
Fundación OSDE 2002) [pdf 441 Kb]
•
RAMÍREZ R., José Felipe, aprenda VISUAL BASIC practicando (PrenticeCHall, México, 1ª
Edición, 2001)
Unidad 3
Página 16 / 16