Microsoft Access 2000 - Antonio Ortiz, asesor en sistemas

Anuncio
Microsoft Access 2000
Instructivo
Introducción
Tema I: Tablas
Tema II: Consultas
Tema III: Formularios
Tema IV: Reportes
Tema V: Macros
Tema VI: DAO: Objeto de Acceso a Datos
Tema VII: Distribución de la Aplicación
Temas Avanzados: API, DCOM, Cliente-Servidor
Instructivo de Access 2000
2 de 36
Introducción
Lo nuevo para los programadores
Microsoft Access 2000 ofrece muchas características nuevas y mejoradas para ayudar a crear
eficaces aplicaciones de bases de datos.
Nuevos objetos, propiedades, métodos y otros elementos del lenguaje
Acceso a Internet o a una intranet desde su aplicación
Crear objetos personalizados con módulos de clase
Personalizar menús y barras de herramientas en su aplicación
Quitar el código fuente de su aplicación
Réplica sólo de una parte especificada de la base de datos
Trabajar con la versión 3.6 del motor de base de datos Microsoft Jet
Utilizar las nuevas características de la ventana Módulo
Utilizar el Examinador de objetos como referencia para objetos y sus miembros
Utilizar DAO para tener acceso a bases de datos ODBC sin cargar el motor de base de
datos Microsoft Jet
Crear un cuadro de diálogo con fichas o un formulario con múltiples páginas con el
control ficha
Lo nuevo en operaciones con datos
Ahora integra reparación y compactación en una sola operación
Bloqueo (candados) a nivel registro
Microsoft ActiveX Data Objects (ADO)
Barras de menús, barras de herramientas y menús contextuales
Puede personalizar los menús y herramientas con los comandos que requiera, Access ajusta
menús y barras de herramientas para trabajar con los comandos más utilizados; expanda el
menú para mostrar todos los comandos disponibles.
Haga clic en “More bottons” o más botones si no hay espacio en la barra de herramientas
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
3 de 36
Introducción
Bases de datos: Qué son y cómo funcionan
Una base de datos es un conjunto de información relacionada con un asunto o con una
finalidad, tal como el seguimiento de los pedidos de clientes o una colección de música.
Si la base de datos no está almacenada en una máquina, o sólo lo está parte de la misma,
es posible que necesite controlar información de varias fuentes distintas que tiene que
organizar y coordinar usted mismo.
Si utiliza Microsoft Access, puede administrar toda la información desde un único
archivo de base de datos. Dentro de este archivo, divida los datos en contenedores de
almacenamiento separados denominados tablas; vea, agregue y actualice los datos en
las tablas mediante formularios en línea; busque y recupere solamente los datos que
necesite mediante consultas; y analice o imprima los datos con el esquema deseado
mediante informes.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
4 de 36
Instructivo de Access 2000
5 de 36
Para trabajar con los objetos contenidos en una base de datos de Microsoft Access, utilice la
ventana “Database” o Base de Datos. Bajo “Objects”, haga clic en el tipo de objetos que desea,
la ventana Base de Datos mostrará una lista de objetos de este tipo. Utilice el boton New de la
ventana Base de Datos para crear nuevos objetos, use el botón Design para modificar objetos
existentes.
Especificaciones de bases de datos
Atributo
Tamaño de archivo de base de datos (.mdb)
Máximo
1 gigabyte. Sin embargo, debido a que la base
de datos puede incluir tablas de otros archivos,
su tamaño total sólo está limitado por la
capacidad de almacenamiento disponible
Número de objetos en una base de datos
32.768
Módulos (incluyendo formularios e informes con la
1024
propiedad
TieneUnMóduloAsociado
(HasModule)
establecida a True)
Número de caracteres en un nombre de objeto
64
Número de caracteres en una contraseña
14
Número de caracteres en un nombre de usuario o de
20
grupo
Número de usuarios que pueden tener acceso a la vez
255
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
6 de 36
Introducción
Acerca de cómo diseñar una base de datos
Antes de utilizar Microsoft Access para crear las tablas, los formularios y los demás objetos que
formarán la base de datos, es importante invertir algún tiempo en diseñar la base de datos. Un
buen diseño de la base de datos es la pieza clave para crear una base de datos que realice las
operaciones que desee de una forma efectiva, precisa y eficaz.
Éstos son los pasos básicos para diseñar una base de datos:
1
2
3
4
5
6
7
8
Determinar la finalidad de la base de datos.
Determinar las tablas que se necesitan en la base de datos.
Determinar los campos que se necesitan en las tablas.
Identificar los campos con valores exclusivos.
Determinar las relaciones entre las tablas.
Precisar el diseño.
Agregar datos y crear otros objetos de la base de datos.
Utilizar las herramientas de análisis de Microsoft Access.
1 Determinar la finalidad de la base de datos
El primer paso para diseñar una base de datos de Microsoft Access es determinar la finalidad
de la base de datos y cómo se utiliza. Debe saber qué información desea obtener de la base de
datos. A partir de ahí, puede determinar sobre qué asuntos necesita almacenar hechos (las
tablas) y qué hechos necesita almacenar sobre cada asunto (los campos de las tablas).
Hable con los demás usuarios que utilizarán la base de datos. Piense detenidamente en las
preguntas que desea que responda la base de datos. Realice bocetos de los informes que
desea que produzca. Reúna los formularios que utiliza actualmente para registrar los datos.
Examine bases de datos bien diseñadas similares a la que va a diseñar.
2 Determinar las tablas que se necesitan
Determinar las tablas puede ser el paso más complicado del proceso de diseño de la base de
datos. Esto se debe a que los resultados que desea obtener de la base de datos (los informes
que desea imprimir, los formularios que desea utilizar, las preguntas para las que desea
respuestas) no proporcionan pistas necesariamente acerca de la estructura de las tablas que
los producen.
No es necesario que diseñe las tablas mediante Microsoft Access. De hecho, posiblemente sea
más conveniente realizar un boceto en papel de la base de datos y trabajar sobre el diseño
primero. Al diseñar las tablas, divida la información teniendo en cuenta los siguientes principios
de diseño fundamentales:
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
7 de 36
 Una tabla no debe contener información duplicada y la información no debe duplicarse
entre las tablas.
 Cuando cada elemento de información está almacenado en una tabla, se actualiza en un
solo lugar. Esto resulta más eficiente y elimina la posibilidad de que existan entradas
duplicadas que contengan información diferente. Por ejemplo, probablemente desee
almacenar la dirección y el número de teléfono de cada cliente una sola vez en una sola
tabla.
 Cada tabla debe contener información sobre un asunto.
 Cuando cada tabla contiene hechos sólo sobre un asunto, puede mantener la
información acerca de cada asunto independientemente de otros asuntos. Por ejemplo,
puede almacenar las direcciones de los clientes en una tabla diferente de los pedidos de
los clientes, de modo que pueda eliminar un pedido y conservar a la vez la información
sobre el cliente.
3 Determinar los campos que se necesitan
Cada tabla contiene información acerca del mismo asunto, y cada campo de una tabla contiene
hechos individuales sobre el asunto de la tabla. Por ejemplo, la tabla de Clientes puede incluir
los campos del nombre de la compañía, la dirección, la ciudad, el país y el número de teléfono.
Al realizar bocetos de los campos para cada tabla, tenga en cuenta estas sugerencias:




Relacione cada campo directamente con el asunto de la tabla.
No incluya datos derivados ni calculados (datos que son el resultado de una expresión).
Incluya toda la información que necesite.
Almacene información en sus partes lógicas más pequeñas (por ejemplo, Nombre y
Apellidos, en lugar del Nombre completo).
4 Identificar los campos con valores exclusivos
Para que Microsoft Access conecte información almacenada en tablas independientes (por
ejemplo, para conectar a un cliente con todos los pedidos del cliente), cada tabla de la base de
datos debe incluir un campo o un conjunto de campos que identifiquen de forma exclusiva cada
registro individual de la tabla. Este campo o conjunto de campos se denomina clave principal.
5 Determinar las relaciones entre las tablas
Ahora que ha dividido la información en tablas y que ha identificado los campos de clave
principal, necesita una forma de indicar a Microsoft Access cómo volver a reunir toda la
información relacionada de un modo significativo. Para ello, debe definir relaciones entre las
tablas.
Puede resultar útil ver las relaciones de una base de datos bien diseñada existente.
6 Precisar el diseño
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
8 de 36
Una vez diseñadas las tablas, los campos y las relaciones que necesita, es el momento de
estudiar el diseño y detectar los posibles fallos que puedan quedar. Es más sencillo cambiar el
diseño de la base de datos ahora que una vez que haya rellenado las tablas con datos.
Utilice Microsoft Access para crear las tablas, especificar relaciones entre las tablas e introducir
algunos registros de datos en cada tabla. Observe si puede utilizar la base de datos para
obtener las respuestas que desee. Cree bocetos de los formularios e informes y compruebe si
muestran los datos que desea. Busque duplicaciones de datos innecesarias y elimínelas.
7 Introducir datos y crear otros objetos de la base de datos
Cuando considere que la estructura de las tablas cumple los objetivos de diseño descritos
anteriormente, es el momento de comenzar a agregar los datos existentes a las tablas. A
continuación, puede crear las consultas, formularios, informes, macros y módulos que desee.
8 Utilizar las herramientas de análisis de Microsoft Access
Microsoft Access incluye dos herramientas que pueden ayudarle a precisar el diseño de la base
de datos. El Asistente para analizar tablas puede analizar el diseño de una tabla, proponer
nuevas estructuras de tablas y relaciones si es conveniente y reestructurar una tabla en nuevas
tablas relacionadas si es necesario.
El Analizador de rendimiento puede analizar la base de datos completa y realizar
recomendaciones y sugerencias para mejorarla. El asistente también puede implantar estas
recomendaciones y sugerencias.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
9 de 36
Tema I: Tablas
Para almacenar los datos, cree una tabla para cada tipo de datos de información. Defina
relaciones entre las tablas para recuperar datos de varias tablas en una consulta,
formulario o informe.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
10 de 36
En la vista Diseño, puede crear una tabla completa a partir de cero, o agregar, eliminar o
personalizar campos de una tabla existente.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
11 de 36
Tema II: Consultas
Cree una consulta para buscar y recuperar exactamente aquellos datos que cumplen
unas determinadas condiciones que usted mismo especifica. Una consulta también
puede actualizar o eliminar múltiples registros al mismo tiempo, así como realizar sobre
los datos diversos cálculos incorporados o personalizados.
Consultas: Qué son y cómo funcionan
Las consultas se usan para ver, cambiar y analizar datos de distintas maneras. También
se pueden usar como origen de registros para formularios e informes.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
12 de 36
El tipo de consulta más común es la consulta de selección. Una consulta de selección
recupera datos de una o más tablas usando los criterios que especifique y, a
continuación, los muestra en el orden deseado.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
13 de 36
Modos de especificar múltiples criterios en una consulta
Tipos de combinaciones y cómo afectan al resultado de una consulta
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
14 de 36
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
15 de 36
Instructivo de Access 2000
16 de 36
Tema III: Formularios
Cree un formulario para ver, introducir o cambiar datos directamente en una tabla de una
manera sencilla. Cuando abre un formulario, Microsoft Access recupera los datos de una
o más tablas y los muestra en la pantalla usando el esquema que eligió en el Asistente
para formularios o usando un esquema que creó desde el principio.
Cree un informe para analizar los datos o presentarlos de una determinada manera al
imprimirlos. Por ejemplo, podría imprimir un informe que agrupe datos y calcule totales,
y otro informe con distintos datos en un formato para imprimir etiquetas de correo.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
17 de 36
Puede usar los formularios para diversos propósitos.
La mayor parte de la información de un formulario proviene de un origen de registros
base. Otra información del formulario está almacenada en el diseño del mismo.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
18 de 36
El vínculo entre un formulario y su origen de registros se crea usando objetos gráficos
denominados controles. El tipo más común de control que se usa para mostrar datos es
un TextBox (también denominado cuadro de texto).
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
19 de 36
Tema IV: Reportes:
Un reporte o informe es una forma efectiva de presentar los datos en formato impreso.
Como tiene control sobre el tamaño y el aspecto de todos los elementos de un informe,
puede presentar la información en la forma que desee verla.
La mayor parte de la información en un informe proviene de una tabla, consulta o instrucción
SQL base, que es el origen de los datos del informe. Otra información del informe se almacena
en el diseño del informe.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
20 de 36
Instructivo de Access 2000
Modos de personalizar un informe
(c) Septiembre 2000, Antonio Ortíz R.
21 de 36
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
22 de 36
Instructivo de Access 2000
(c) Septiembre 2000, Antonio Ortíz R.
23 de 36
Instructivo de Access 2000
24 de 36
Tema V: Macros
Una macro es un conjunto de una o más acciones que cada una realiza una operación
determinada, tal como abrir un formulario o imprimir un informe. Las macros pueden ayudar a
automatizar las tareas comunes. Por ejemplo, puede ejecutar una macro que imprima un
informe cuando el usuario haga clic en un botón de comando.
Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un
grupo de macros. También se puede usar una expresión condicional para determinar si se
llevará a cabo una acción en algunos casos cuando se ejecute la macro.
Una secuencia de acciones
La siguiente macro está compuesta de una serie de acciones. Microsoft Access lleva a cabo
estas acciones cada vez que se ejecuta la macro. Para ejecutar esta macro se hace referencia
al nombre de la macro Revisar Productos.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
25 de 36
Un grupo de macros
Si tiene numerosas macros, agrupar las macros relacionadas en grupos de macros puede
ayudar a administrar la base de datos más fácilmente. Para mostrar los nombres de las macros
de un grupo de macros, haga clic en Nombres de macros en el menú Ver en la ventana Macro.
Por ejemplo, el siguiente grupo de macros, llamado Botones, está compuesto de tres macros
relacionadas: Empleados, Productos, y Representantes. Cada macro lleva a cabo la acción
AbrirFormulario, y la macro Productos lleva también a cabo la acción DesplazarTamaño.
El nombre en la columna Nombre de macro identifica a cada macro. Cuando se ejecuta una
macro en un grupo de macros, Microsoft Access lleva a cabo la acción de la columna acción y
cualquier otra acción que siga inmediatamente, cuya columna Nombre de macro esté en
blanco.
Para ejecutar una macro en un grupo de macros, utilice el nombre del grupo de macros seguido
de un punto y a continuación el nombre de macro. En el ejemplo anterior, para hacer referencia
a la macro Empleados en el grupo de macros Botones, escribiría Botones.Empleados.
Acciones condicionales
Para mostrar la columna Condición, haga clic en Condiciones en el menú Ver en la ventana
Macro. La siguiente macro ejecuta las acciones CuadroMsj y DetenerMacro sólo cuando la
expresión en la columna Condición sea verdadera (cuando hay un valor Nulo en el campo
IdProveedor).
Ejecutar una macro
Cuando ejecuta una macro, Microsoft Access comienza desde el principio de la macro y lleva a
cabo todas las acciones en la macro hasta que alcanza o bien otra macro (si la macro se
encuentra en un grupo de macros) o el fin de la macro.
Una macro puede ser ejecutada directamente, desde otra macro o un procedimiento de evento,
o como respuesta a un evento que se produce en un formulario, informe o control. Por ejemplo,
puede agregar una macro a un botón de comando de forma que la macro se ejecute cuando el
usuario presiona el botón. También puede crear un comando de menú personalizado o un
botón de la barra de herramientas que ejecute una macro, asignar una macro a una
combinación de teclas, o ejecutar automáticamente una macro al abrir una base de datos.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
26 de 36
Tema VI: DAO: Objeto de Acceso a Datos
Los objetos de acceso a datos (DAO) le habilitan para utilizar un lenguaje de programación para
tener acceso y manipular datos en bases de datos locales o remotas y administrar bases de
datos, los objetos y la estructura.
Modelos de objeto
El DAO admite dos entornos diferentes de bases de datos o "espacios de trabajo."
 Los espacios de trabajo Microsoft Jet permiten tener acceso a datos en bases de datos
Microsoft Jet, bases de datos Microsoft conectadas a ODBC y orígenes de datos ISAM
instalable en otros formatos, como Paradox o Lotus 1-2-3.
 Los espacios de trabajo ODBCDirect permiten tener acceso servidores de bases de
datos mediante ODBC, sin cargar el motor de base de datos Microsoft Jet.
Utilice el espacio de trabajo Microsoft Jet cuando abra una base de datos Microsoft Jet (archivo
.mdb) u otra base de datos de escritorio ISAM o cuando necesite aprovecharse de la
características particulares de Microsoft Jet, como la posibilidad de unir datos de diferentes
formatos de base de datos.
El espacio de trabajo ODBCDirect proporciona una alternativa cuando sólo necesita ejecutar
consultas o procedimientos almacenados en un servidor, como Microsoft SQL Server o cuando
la aplicación cliente necesita las capacidades específicas de ODBC, como las actualizaciones
por lotes o la ejecución de una consulta asíncrona.
Objeto DBEngine
El objeto DBEngine es el objeto de nivel más alto en el modelo de objeto DAO. DBEngine
contiene y controla todos los otros objetos en la jerarquía de los objetos del DAO. No puede
crear objetos DBEngine adicionales y el objeto DBEngine no es un elemento de ninguna
colección.
* Cuando hace referencia a un origen de datos ODBC directamente mediante DAO, se
denomina "
espacio de trabajo ODBCDirect." Para distinguirlo de un origen de datos ODBC al que hace
referencia indirectamente mediante el motor de base de datos Microsoft Jet, utilizando un
"espacio de trabajo Microsoft Jet". Cada método de acceso a datos ODBC necesita dos tipos de
objetos Workspace; puede establecer la propiedad DefaultType para elegir el tipo
predeterminado de objeto Workspace que creará en el objeto DBEngine. El tipo de Workspace
y el origen de datos asociado determina qué objetos, métodos y propiedades del DAO puede
utilizar.
Con cualquier tipo de base de datos o conexión, puede:
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
27 de 36
 Utilizar la propiedad Version para obtener el número de versión del DAO.
 Utilizar la propiedad LoginTimeout para obtener o establecer el tiempo de espera de
registro de ODBC y el método RegisterDatabase para proporcionar información de
ODBC al motor de base de datos Microsoft Jet
 Puede utilizar estas características del mismo modo, sin tener en cuenta si está
conectado a un origen de datos ODBC mediante Microsoft Jet o mediante un espacio de
trabajo ODBCDirect.
 Utilizar la propiedad DefaultType para establecer el tipo predeterminado de conexión de
base de datos que utilizarán a continuación los objetos Workspace creados - tanto
Microsoft Jet como ODBCDirect.
 Utilizar las propiedades DefaultPassword y DefaultUser para establecer la identificación
de usuario y contraseña para el objeto Workspace predeterminado.
 Utilizar el método CreateWorkspace para crear un objeto Workspace nuevo. Puede
utilizar argumentos opcionales para sobrescribir los valores de las propiedades
DefaultType, DefaultPassword y DefaultUser.
 Utilizar el método OpenDatabase para abrir una base de datos en el Workspace
predeterminado y utilizar los métodos BeginTrans, Commit y Rollback para controlar
transacciones en el Workspace predeterminado.
 Utilizar la colección Workspaces para hacer referencia a objetos Workspace específicos.
 Utilizar la colección Errors para examinar detalles sobre los errores de acceso a datos.
Otras propiedades y métodos sólo están disponibles cuando utiliza DAO con el motor de base
de datos Microsoft Jet. Puede utilizarlos para controlar el motor de base de datos Microsoft Jet,
manipular sus propiedades y ejecutar tareas en objetos temporales que no son elementos de
colecciones. Por ejemplo, puede:
 Utilizar el método CreateDatabase para crear un nuevo objeto Microsoft Jet Database.
 Utilizar el método Idle para activar el motor de base de datos Microsoft Jet y completar
las tareas pendientes.
 Utilice los métodos CompactDatabase y RepairDatabase para mantener los archivos de
base de datos.
 Utilizar las propiedades IniPath y SystemDB para especificar la ubicación de la
información de Registro de Windows de Microsoft Jet y el archivo de información de
grupo de trabajo Microsoft Jet, respectivamente. El método SetOption le permite
sobrescribir los valores del Registro de Windows para el motor de base de datos
Microsoft Jet.
* Después de cambiar los valores de la propiedad DefaultType e IniPath, sólo los objetos
Workspace subsiguientes reflejarán estos cambios.
Para hacer referencia a una colección que pertenezca al objeto DBEngine, a un método o a una
propiedad que se aplique a este objeto, utilice la siguiente sintaxis:
[DBEngine.][colección | método | propiedad]
Objetos DAO
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
28 de 36
Hay 17 tipos diferentes de objetos DAO. Puede declarar nuevas variables de objeto DAO para
cualquier tipo de objeto.
Por ejemplo, el siguiente código Visual Basic for Applications (VBA) crea variables de objeto
para un objeto Database, un objeto Recordset de tipo Dynaset y un objeto Field:
Dim dbsEjemplo As Database
Dim rstEjemplo As Recordset
Dim fldEjemplo As Field
Set dbsEjemplo = OpenDatabase("Editores.mdb")
Set rstEjemplo = dbsEjemplo.OpenRecordset("Autores", _dbOpenDynaset)
Set fldEjemplo = rstEjemplo.Fields("IdAutor")
Colecciones DAO
Cada tipo de objeto DAO distinto de DBEngine también tiene una colección correspondiente.
Una colección incluye todos los objetos existentes de ese tipo. Por ejemplo, la colección
Recordsets contiene todos los objetos Recordset abiertos. Cada colección es "propiedad" de
otro objeto en el siguiente nivel superior de la jerarquía. Un objeto Database "es propiedad" de
una colección Recordsets. Excepto para los objetos Connection y Error, cada objeto DAO tiene
una colección Properties.
La mayoría de los objetos DAO tienen colecciones y propiedades predeterminadas. Por
ejemplo, la colección predeterminada de un objeto Recordset es la colección Fields y la
propiedad predeterminada de un objeto Field es la propiedad Value. Puede simplificar el código
aprovechándose de estas predeterminaciones. Por ejemplo, el siguiente código de ejemplo
establece el valor del campo IdEditor en el registro activo:
rstEjemplo!IdEditor=99
Objetos DBEngine y Workspace
Todos los objetos DAO se derivan del objeto DBEngine. Puede establecer la propiedad
DefaultType en el objeto DBEngine para determinar el tipo de espacio de trabajo (Microsoft Jet
u ODBCDirect) para crear en las llamadas al método CreateWorkspace siguiente o puede
sobrescribir esta propiedad con el argumento tipo en el mismo método CreateWorkspace.
Cuando la aplicación crea un espacio de trabajo, la biblioteca adecuada - el motor de base de
datos Microsoft Jet u ODBC - se carga en memoria en este momento.
Puede abrir objetos Workspace adicionales si los necesita. Cada objeto Workspace tiene un Id
de usuario y una contraseña asociada.
Uso del espacio de trabajo Microsoft Jet
Abrir una base de datos
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
29 de 36
Para abrir una base de dato, simplemente abra un objeto Database existente o cree uno nuevo.
Este objeto puede representar una base de datos Microsoft Jet (archivo .mdb), una base de
datos ISAM (por ejemplo, Paradox) o una base de datos ODBC conectada mediante el motor de
base de datos Microsoft Jet (también conocido como una "base de datos ODBC conectada a
Microsoft Jet").
Lenguaje de definición de datos (DDL)
Puede utilizar variables de objeto y otras características DDL para modificar la estructura de la
base de datos. Por ejemplo, puede agregar un nuevo objeto Field a una tabla existente con el
siguiente código:
Dim dbs As Database, tdf As TableDef, fld As Field
' Abre una base de datos.
Set dbs = OpenDatabase("Editores.mdb")
' Open a TableDef.
Set tdf = dbs.TableDefs("Autores")
' Crea un nuevo campo.
Set fld = tdf.CreateField("Dirección", dbText, 20)
' Anexa el campo a la colección Fields del objeto TableDef.
tdf.Fields.Append fld
Este código crea un nueva variable de objeto para un objeto Field y la agrega a un objeto
TableDef con el método Append. Ya que un objeto TableDef contiene la definición de una tabla,
la tabla tiene ahora un campo llamado Dirección para escribir datos. Del mismo modo, puede
crear nuevas tablas e índices.
Manipulación de datos
El DAO proporciona un excelente conjunto de herramientas de manipulación de datos. Puede
crear un objeto Recordset para consultar convenientemente una base de datos y manipular el
conjunto de registros resultante. El método OpenRecordset acepta una cadena SQL o un
nombre de un objeto QueryDef (consulta almacenada) como un argumento de origen de datos,
o se puede abrir desde un objeto QueryDef o un objeto TableDef, utilizando este objeto como el
origen de datos. El objeto Recordset resultante presenta un conjunto extremadamente rico de
propiedades y métodos con el que examinar y modificar datos.
El objeto Recordset está disponible en cuatro tipos diferentes: Table, Dynaset, Forward-only y
Snapshot.
Transacciones
Todos los objetos Database abiertos a través de un objeto Workspace comparten un alcance de
transacción común. Esto quiere decir que cuando utiliza el método BeginTrans en un objeto
Workspace, se aplica a todas las bases de datos abiertas con ese objeto Workspace. Del
mismo modo, cuando utiliza el método CommitTrans a través del objeto Workspace, se aplica a
todas las bases de datos abiertas en el objeto Workspace.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
30 de 36
Réplicas
Puede utilizar la réplica de base de datos para crear y mantener réplicas de una base de datos
modelo de Microsoft Jet utilizando el método Synchronize para actualizar periódicamente todas
o parte de las réplicas o para copiar datos nuevos de una réplica a otra. También pude restringir
la actualización a sólo los registros seleccionados, utilizando la propiedad ReplicaFilter y
después sincronizar esos registros con el método PopulatePartial.
Seguridad
Puede restringir el acceso a una o más bases de datos .mdb o a las tablas utilizando los valores
de seguridad establecidos y administrados por el motor de base de datos Microsoft Jet. En el
código, puede establecer los objetos Group y User para definir el alcance y nivel de permisos
disponibles a usuarios individuales en una base objeto a objeto. Por ejemplo, puede establecer
permisos para un usuario específico para proporcionar acceso de sólo lectura a una tabla y
acceso total a otra.
Uso del Modelo de objetos ODBCDirect
Conexión a una base de datos
Un objeto Connection es parecido a un objeto Database. De hecho, un objeto Connection y un
objeto Database representan referencias diferentes al mismo objeto y propiedades en cada uno
de los dos tipos de objeto que le permiten obtener una referencia al otro objeto correspondiente,
que simplifica la tarea de convertir las aplicaciones cliente ODBC que utilizan Microsoft Jet para
utilizar en vez de ello ODBCDirect. Utilice el método OpenConnection para conectarse a un
origen de datos ODBC. El objeto Connection resultante contiene información acerca de la
conexión, como el nombre del servidor y el nombre del origen de datos.
Consultas
Aunque el DAO no admite consulta almacenadas en un espacio de trabajo ODBCDirect, se
puede crear una consulta compilada como un objeto QueryDef y se puede utilizar para ejecutar
consultas de acción y también para ejecutar procedimientos almacenados en el servidor. La
propiedad Prepare le permite decidir si crear un procedimiento almacenado temporal y privado
en el servidor de un QueryDef antes de ejecutar la consulta actual.
Las consultas de parámetros también se pueden transferir al servidor, utilizando objetos
Parameter en el QueryDef. La propiedad Direction le permite especificar un Parameter como
entrada, salida o ambos o aceptar un valor de un procedimiento almacenado.
Manipulación de datos
Crear un objeto Recordset es una forma oportuna de consultar una base de datos y manipular
el conjunto de registros resultante. El método OpenRecordset acepta una cadena SQL o un
objeto QueryDef (consulta almacenada) como un argumento de origen de datos. El objeto
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
31 de 36
Recordset resultante presenta un conjunto extremadamente rico de propiedades y métodos con
el que examinar y modificar datos.
El objeto Recordset está disponible en cuatro tipos diferentes: Table, Dynaset, Forward-only y
Snapshot - que corresponden a los tipos de cursores ODBC: Dynamic, Keyset, Forward-only y
Static.
Está disponible una biblioteca de cursor de actualización por lotes para aplicaciones cliente que
necesitan trabajar con un cursor sin mantener bloqueos en el servidor o sin emitir las peticiones
de actualización de un registro al mismo tiempo. En cambio, el cliente almacena la información
de actualización de muchos registros en un búfer local (o "por lotes") y después envía una
actualización por lotes.
Ejecución de método asícrono
Los métodos Execute, MoveLast, OpenConnection y OpenRecordset presentan la opción
dbRunAsync. Esto permite a la aplicación cliente realizar otras tareas (como, por ejemplo,
cargar formularios) mientras se está ejecutando el método. Puede comprobar la propiedad
StillExecuting para ver si la tarea se completó y para terminar una tarea asíncrona con el
método Cancel.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
32 de 36
Tema VII: Distribución de la Aplicación
Después de que haya conocido Microsoft Access y haya aprendido cómo crear tablas,
consultas, formularios, informes, barras de comandos personalizadas, etc., puede agregar
macros y código de Visual Basic para aplicaciones para unir todos estos objetos en una
aplicación. Una aplicación organiza tareas relacionadas para que el usuario pueda centrarse en
su trabajo, no en cómo trabaja la aplicación o en el programa usado para desarrollar la
aplicación.
Estableciendo opciones en el cuadro de diálogo Inicio (menú Herramientas), puede controlar el
aspecto y el comportamiento de su aplicación al iniciarse. Por ejemplo, puede indicar qué barra
de menús y qué formulario mostrará la aplicación al inicio o puede especificar el texto que
aparecerá en la barra de título mientras se está ejecutando la aplicación.
Si tiene pensado distribuir su aplicación a otros usuarios, podría establecer seguridad para
proteger los objetos que ha creado, así como los datos de las tablas. Después de distribuir su
aplicación, utilice las herramientas de mantenimiento proporcionadas por Microsoft Access para
compactar y reparar la base de datos periódicamente.
Nota: Además de las herramientas e información proporcionadas por Microsoft Access para
ayudarle en el desarrollo de aplicaciones, Microsoft Office 2000, edición Developer proporciona
herramientas para ayudarle a programar aplicaciones compatibles con Microsoft Windows y
Office.
Proteger una base de datos
Microsoft Access ofrece dos métodos tradicionales para proteger una base de datos: habilitando
una contraseña para abrir una base de datos o mediante seguridad a nivel de usuario, que
puede ser utilizada para limitar a qué parte de la base de datos el usuario tiene acceso y puede
cambiar. Además de estos métodos, puede eliminar código modificable de Visual Basic de la
base de datos y así proteger el diseño de formularios, informes y módulos de la base de datos
de posibles modificaciones guardándolo como un archivo MDE.
Habilitar una contraseña
El método más simple es habilitar una contraseña para abrir la base de datos. Una vez que se
haya habilitado la contraseña, se mostrará un cuadro de diálogo que pida la contraseña cada
vez que se abra la base de datos. Sólo los usuarios que escriban la contraseña correcta podrán
abrir la base de datos. Este método es seguro (Microsoft Access codifica la contraseña de
forma que no se pueda tener acceso leyendo directamente el archivo de base de datos), pero
sólo es aplicable para abrir una base de datos. Una vez que se ha abierto una base de datos,
todos los objetos están disponibles para el usuario (a menos que se haya definido la seguridad
a nivel de usuario, como se describe posteriormente en este tema). Para una base de datos que
esté compartida entre un pequeño grupo de usuarios o sobre un sólo equipo, la habilitación de
una contraseña es todo lo que se requiere.
Precaución No utilice una contraseña de base de datos si va a replicar una base de datos. Las
bases de datos replicadas no se pueden sincronizar si se definen contraseñas para ellas.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
33 de 36
Seguridad a nivel de usuario
El método más flexible y extendido de proteger una base de datos se llama seguridad a nivel de
usuario. Esta forma de seguridad es similar a los métodos usados en la mayoría de los sistemas
de red. Los usuarios son obligados a identificarse y escribir una contraseña cuando inician
Microsoft Access. Dentro del archivo de información de grupo de trabajo, están identificados
como miembros de un grupo. Microsoft Access ofrece dos grupos predeterminados:
Administradores (llamados el grupo de Administradores) y Usuarios (llamados el grupo de
Usuarios), aunque se pueden definir grupos adicionales.
Los permisos se conceden a los grupos y usuarios para regular cómo se les permite trabajar
con cada objeto en una base de datos. Por ejemplo, a los miembros del grupo Usuarios puede
que se les permita visualizar, introducir o modificar datos en una tabla Clientes, pero no se les
permita cambiar el diseño de esa tabla. Al grupo Usuarios se le podría permitir que sólo
examinaran los datos de una tabla que contenga datos de pedidos y se les negara totalmente el
acceso a una tabla Nóminas. Los miembros del grupo de Administradores tienen todos los
permisos sobre todos los objetos de una base de datos. Se pueden instalar controles más
ajustados creando sus propias cuentas de grupo, asignando los permisos adecuados a esos
grupos y después agregando usuarios a esos grupos.
Las tres razones principales para utilizar la seguridad a nivel de usuario son las siguientes:
 Proteger la propiedad intelectual de su código.
 Impedir que los usuarios cambien o inutilicen inadvertidamente una aplicación
cambiando código de objetos de los que depende la aplicación.
 Proteger los datos sensibles de la base de datos.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
34 de 36
Que es un API?
API significa “Interface para Programacion de Aplicaciones”. Un API es simplemente un
conjunto de funciones que el el programador puede usar para trabajar con un componente,
aplicación o sistema operativo. Normalmente un API consiste de uno o mas DLLs que proveen
alguna funcionalidad especifica.
DLLs, son archivos que contienen funciones que pueden ser llamadas desde cualquier
aplicación ejecutando sobre Windows. En tiempo de ejecución, una funcion contenida en un
DLL es ligada dinámicamente en la aplicación que la llama. No hay forma de saber cuantas
aplicaciones llaman una funcion contenida en un DLL, esta funcion existe en un solo archivo en
disco, y el DLL es creado solo una vez en memoria.
El API que se menciona mas frecuentemente es el API de Windows, que incluye los DLLs que
hacen trabajar el sistema operativo Windows. Cada aplicación de Windows interactua con el
API de Windows directa o indirectamente. El API de Windows asegura que todas las
aplicaciones ejecutando bajo Windows lo hagan de una manera consistente.
Note que el sistema operativo Windows ha evolucionado, varias versiones del API de Windows
han sido publicadas. Windows 3.1 usa el API Win16. Las plataformas Windows NT, Windows 95
y Windows 98 usan el API Win32.
Existen otros APIs disponibles que han sido publicados ademas del API de Windows. Por
ejemplo, el “Mail Application Programming Interface” (MAPI) es un conjunto de DLLs que
pueden ser usados para escribir aplicaciones de e-mail.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
35 de 36
Arquitecturas de Base de Datos
Sistemas Cliente / Servidor
Los sistemas cliente / servidor son construidos para que la base de datos pueda residir en una
computadora central, conocida como “Servidor”, y es compartida por varios usuarios. Los
usuarios acceden al servidor a través de una aplicación cliente o servidor:
El mantener y manejar los datos en una localidad central ofrece ciertas ventajas:

Cada elemento de dato es guardado en una localidad central donde todos los
usuarios pueden trabajarlos, no se guardan copias separadas de este elemento
en cada cliente, lo cual elimina los problemas con usuarios, asegurando que
trabajen con la misma información.

Un servidor de base de datos relacional optimiza el trafico en la red al regresar
solo aquellos datos que la aplicación requiere.

Los costos en hardware se minimizan

Las tareas de mantenimiento como respaldo y restauración de datos se
simplifican debido a que se realizan en un servidor central.
Redes Punto a Punto
Microsoft Jet soporta la mayoría de servidores de archivos y redes punto a punto que trabajan
en PC’s. El rendimiento de un sistema de base de datos multiusuario ejecutando en una red
punto a punto puede caer, dependiendo de cómo se está utilizando la computadora que
funciona como servidor de archivos. Si una estación de trabajo que contiene la base de datos
compartida esta siendo usada para ejecutar aplicaciones, estas incrementaran el acceso a
disco y el trafico en la red, lo cual afecta el rendimiento. Además, si un usuario ejecuta otra
aplicación que bloquea el sistema, todos los usuarios compartiendo la base de datos perderán
su conexión a la base de datos. Todo esto puede comprometer la integridad de la base de
datos. Para un mejor rendimiento y estabilidad en una red punto a punto, asegúrese de que la
estación conteniendo una base de datos compartida esté dedicado a un solo propósito.
(c) Septiembre 2000, Antonio Ortíz R.
Instructivo de Access 2000
36 de 36
Glosario:
Base de Datos: un conjunto de datos relacionados a un propósito en particular. Una base de
datos nativa del “Jet Engine” contiene tablas y también puede contener consultas o vistas
(Queries), tablas, índices, relaciones de tablas, criterios de validación de campos, y ligas a
fuentes de datos externas.
Base de Datos Externa: Cualquier base de datos accesada a través de ODBC, como SQL
Server que reside en un servidor remoto, o una base de datos externa como dBASE, FoxPro,
Paradox, Btrieve, Microsoft Excel o Microsoft Access.
Microsoft Jet DataBase Engine: Un sistema para manipular datos que guarda y recupera
información en bases de datos del usuario y del sistema.
DAO: Data Access Object, un objeto que es definido por Microsoft Jet Database Engine para
manipular datos.
Bound Control: Controles que permiten el acceso a un campo específico de una base de datos
a través de un data control. Un control de este tipo puede ser relacionado a un data control a
traves de sus propiedades DataSource y DataControl. Cuando un data control cambia de un
registro a otro, todos los “bound controls” conectados a él son actualizados automáticamente
para mostrar los campos del registro actual. Cuando los usuarios cambian datos en un bound
control y luego se mueven a un registro diferente, los cambios son salvados en la base de datos
automáticamente.
RecordSet: Un objeto recordset representa todos los registros en una tabla base o el resultado
de ejecutar una consulta (vista o query), existen tres tipos de objetos recordset; “recordset tipo
tabla”, “recordset tipo dynaset” y “recordset tipo snapshot”
Recordset tipo tabla: una representación en código de una tabla base, en la que se puede
agregar, cambiar o borrar registros de una sola tabla; “
Recordset tipo snapshot: copia estática de un conjunto de registros que se puede utilizar para
buscar registros o generar reportes, un recordset tipo snapshot puede contener campos de una
o mas tablas en una base de datos pero no pueden ser modificados.
ODBC: Open DataBase Connectivity, un protocolo estandar que permite conectarse a una
variedad de servidores de bases de datos o archivos externos.
Driver ODBC: Un DLL específico usado para conectar una fuente de datos a otra aplicación.
ISAM: Acrónimo de Indexed Sequential Access Method. El Jet instala (carga) estos driver’s
ISAM cuando se hace referencia a ellos desde la aplicación. Ejemplos de esta tecnologia son
Fox, Btrieve, Paradox.
(c) Septiembre 2000, Antonio Ortíz R.
Descargar