Make your own free website on Tripod.com

Arquitectura de tres capas con Access

 

Ante la realidad de que muchos estudiantes carecen de las destrezas necesarias para utilizar con versatilidad lenguajes de programación en el diseño y creación de aplicaciones distribuidas, he preferido desarrollar las tres capas: la capa de Presentación o Interfaz de usuario (IU), la capa Lógica de Negocio y la capa de Acceso o Servicios de Datos con una aplicación que pueda ser familiar al estudiante de cualquier concentración.

Con Acces, podemos hacer lo siguiente:

       Cálculos u otros procesos de negocios.

       Ejecución de reglas de negocios.

       Validación de datos relacionados al negocio.

       Manipulación de datos.

       Ejecución de las reglas de datos relacional.

       Interactuar con aplicaciones externas o servicios.

       Interactuar con otros usuarios.

Que distribuidas enentre las tres capas, se vería así:

  1. Interfase de usuario (Capa de Presentación)

o       Interactuar con otros usuarios.

o       Interactuar con aplicaciones externas o servicios.

  1. Procesos de negocios (Capa de Negocios)

o       Cálculos u otros procesos de negocios.

o       Ejecución de reglas de negocios.

o       Validación de datos relacionados al negocio.

  1. Procesos de datos (Capa de Servicios de Datos).

o       Manipulación de datos.

o       Ejecución de las reglas de datos relacional.

 

Especificaciones Técnicas

El mismo carece de complejidad, la única intención ha sido la de mostrar como se desarrolla una aplicación cliente/servidor empleando un diseño distribuido. Es suficiente con una sola estación de trabajo (Aplicación basada en Host) que tenga instalado el sistema operativo Microsoft Windows 2000 para su ejecución, aunque pudiera distribuirse por varias computadoras en una red.

Empezaremos por lo básico, esto es, por la base de datos, y finalizaremos con el Interfaz del Usuario..

 

TERCERA CAPA. LA BASE DE DATOS

 

Los objetos de una base de datos de un negocio representan a los objetos reales de dicho negocio. En cualquier negocio hipotético podemos identificar los siguientes objetos básicos:

 

       Producto

       Clientes

       Empleados y/o Vendedores

       Órdenes

       Suplidor

 

Otros objetos como la Factura, el Inventario, Nómina, etc. pueden derivarse de los anteriores. Todos estos objetos reales los representaremos de forma lógica en un solo archivo que llamaremos proyecto1.

 

Planificación de la base de datos

 

Mediante la base de datos de Access, se puede guardar una cantidad inmensa de datos para una gran variedad de negocios y actividades personales. La base de datos se debe planificar en función de las necesidades del negocio. Antes de iniciar a trazar la estructura de la base de datos, sería bueno comprender los componentes que provee Access:

 

  • El database engine de datos es el programa que actualiza los almacenes, los índices y la recuperación de datos. Utiliza un motor Jet para manipular los datos.
  • Los database objects proveen el interfaz que se usa para ver, entrar y extraer información de la base de datos. Los objetos más comunes son las tablas, los formularios, los queries y los informes.
  • Access incluye una serie de herramientas de diseño que se utilizan para crear objetos. El diseñador de informes, por ejemplo, puede organizar datos, agruparlos por campos, y añadir encabezamientos y pies de página para cada página de un informe.
  • También Access incluye un grupo de herramientas de programación que se pueden usar para automatizar tareas de rutina.

 

La planificación de la base de datos se planifica en torno a los distintos objetos que se piensan utilizar.

 

Tablas

 

La tabla es la unidad básica para guardar una colección de datos en Access. La tabla consta de fields, elemento que guarda una porción de información para cada record (visualmente están representados por las columnas de la tabla), y de records, elemento que contiene un número determinado de fields (visualmente, cada record representa una fila de la tabla).

 

¿Cuántos objetos tablas se deben crear? De soltada, tantas tablas cuantos objetos reales que funcionan en el negocio, considerando que algunos de los objetos reales pueden estar representados por otros objetos lógicos, como Queries, Forms y Reports. La norma que debe aplicar en la planificación es la de economía. Si uno de los componentes u objetos del negocio puede construirse con los datos que suministran las tablas (previamente creadas) mediante un Query, no hay razón para añadir una tabla más para dicho componente. Generalmente cuando no se planifica bien la estructura de la base de datos, el resultado va a ser multiplicidad de tablas y repetición de campos en varias tablas.

 

¿Cuántos campos deben crearse en cada tabla? Aquellos que demande el tipo de componente u objeto real. Aquí también aplica la ley de la economía: cuando un campo está atendido por otra tabla, no lo repitas. Evita la duplicidad de campos y datos, excepto aquellos campos claves que se van a utilizar para relacionar dos tablas entre sí (ver más adelante la sección de interrelaciones entre tablas).

 

Queries

 

Los queries permiten extraer subgrupos de datos de una tabla, de varias tablas previamente relacionadas, o de otros queries, utilizando criterios que uno define. Trabaja como un objeto más de la base de datos, de forma idéntica a la tabla. Los queries bien planificados nos pueden ahorrar pueden ahorrarnos multiplicidad de tablas. Antes de crear una nueva tabla, hazte la siguiente pregunta: ¿puedo crear este objeto mediante un query utilizando los campos que hay en otras tablas actuales?

 

Forms

 

El formulario facilita la entrada de datos, ver y editar la información. Los formularios pueden diseñarse de tal manera que reproduzcan formas como las de una factura y agenda, o puedes crear formularios expresamente organizados para entrar datos, incluyendo reglas de validación de datos, al igual que en Excel. La ventana de un formulario puede incluir una subform que presenta información de otra tabla relacionada. El formulario también puede incluir resúmenes estadísticos.

 

Reports

 

Mediante el objeto reports pueden presentarse datos de una o varias tablas o queries en un estilo legible y en un formato profesional, generalmente listo para imprimirse. El informe puede incluir, además de una lista detallada de datos específicos, agrupados y organizados, resúmenes estadísticos.

 

Otros objetos

 

La ventana de base de datos de Access incluye otros tres tipos de objetos:

 

Pages –conocido como data access pages– provee para publicar la información de la base de datos en Web. Se puede diseñar la página web de tal modo que presente los datos, permita a los usuarios editar el contenido de la base de datos ose provean herramientas para analizar los datos. Contrario a los otros objetos de la base de datos, la página web se guarda en el disco como un archivo .html separado.

Macros. Este objeto permite definir una secuencia de acciones en la base de datos. Son fáciles de programar y no se necesita tener conocimientos en programación. El macro, por ejemplo, puede correr al abrir un formulario, o adjuntar el macro en un botón de comando del formulario. Para correr el macro, selecciona el objeto en la lista de los Macros y haz clic en el botón Run de la barra de herramientas de Access.

Modules. Son colecciones de procedimientos y declaraciones de Visual Basic, diseñados para ejecutar tareas específicas en el contexto de tu base de datos.

 

Primer proyecto: Creación del objeto Tabla

 

  1. Inicia Microsoft Acces.
  2. Nomina la base de datos como proyecto1

Los objetos básico y radicales (viene de raíz) de Access son las tablas. Crearemos una tabla por cada objeto real: Producto, Clientes, Empleado, Ordenes y Suplidores.

 

Es necesario que las cinco tablas, por pertenecer a una misma estructura o negocio, se relacionen entre sí para poder compartir e intercambiar la información que posee cada una de ellas. Para que este intercambio de información ocurra, hay que diseñar de tal forma las tablas que cada objeto/tabla tenga al menos un campo común e idéntico en Data Type, no necesariamente en Field Name (si es idéntico en nombre y tipo de dato, mucho mejor, va a favor la comprensión y claridad). Los campos comunes a otras tablas los escribiremos en letra negrita.

 

Evita la repetición de campos, a no ser aquellos que contienen la clave principal, con la misma información en distintas tablas. Es buena práctica nominar los campos que contienen la clave principal con las iniciales ID.

 

Nota Nomina los objetos y los campos con una sola palabra. No utilices caracteres raros, como acentos y eñes. Sé consistente en la utilización de las letras mayúsculas y minúsculas. No utilices el tipo de dato AutoNumber para el campo Primary Key si piensas interrelacionar las tablas (pues tendrás que interrelacionar este campo con otros campos que tal vez no tengan ese mismo tipo de dato), utiliza mejor Text por ser menos limitante.

 

Table1 (producto)

 

  1. Selecciona el objeto Tables si no lo estuviera.
  2. Haz doble clic sobre
  3. Entra la siguiente información:

 

Field Name

Data Type

Primary Key

Propiedades

Observaciones

Caption

Decimal Place

 

ProductoID

Text

Si

ID

 

 

NombreProducto

Text

 

Nombre

 

 

SuplidorID

Text

 

 

 

Este campo se utiliza para relacionar la tabla de Suplidores con esta tabla.

CantidadStock

Number

 

 

 

 

PrecioVenta

Currency

 

Precio Venta

2

 

PedidoID

Text

 

Num  Orden

 

Este campo se utiliza para relacionar la tabla de Órdenes con esta tabla.

 

  1. Cierra la tabla y la nominas como producto.

 

Table2 (empleado)

 

Cuando el empleado hace la función de vendedor, esta tabla podría nominarse también como  vendedor. Utiliza el procedimiento anterior para crear la tabla 2.

 

Field Name

Data Type

Primary Key

Propiedades

Observaciones

Caption

Input Mask

DecimalPlace

 

EmpleadoID

Text

Si

ID

 

 

 

NombreEmpleado

Text

 

Nombre

 

 

 

Apellidos

Text

 

 

 

 

 

SeguroSocial

Text

 

S.S.

Soc. Sec. Num

 

Al entrar el Input Mask (mascarilla) guarda la tabla como empleado

SalarioHora

Currency

 

Salario/Hora

 

2

 

HorasTrabajadas

Number

 

Horas Trabajadas

 

 

 

 

Cierra la tabla y escribes como nombre empleado.

 

Crea de igual forma el resto de las tres tablas:

Table3 (cliente)

 

Field Name

Data Type

Primary Key

Propiedades

Observaciones

Caption

Input Mask

 

ClienteID

Text

Si

ID

 

 

NombreCliente

Text

 

Nombre

 

 

Apellidos

Text

 

 

 

Al entrar el Input Mask (mascarilla) guarda la tabla como cliente

Telefono

Text

 

 

Telephone

 

Direccion1

Text

 

Urb.- Barrio

 

 

Direccion2

Text

 

Calle-Box

 

 

Ciudad

Text

 

 

 

 

Zip

Text

 

 

Zip Code

 

ProductoID

Text

 

ID Producto

 

Este campo se utiliza para relacionar la tabla de Producto con esta tabla.

Cantidad

Number

 

 

 

 

FormaPago

Lookup Wizard…

 

Forma Pago

 

Incluir como alternativas: Visa, MasterCard, ATH, Cheque, CASH, Otra.

NumeroCuenta

Text

 

Número Cuenta

 

 

Carta

OLE Object

 

 

 

Esta carta debe escribirse y guardarse primero en Word para accesar a la misma.

 

Cierra la tabla y escribes como nombre cliente.

 

Table4 (pedidos)

 

Field Name

Data Type

Primary Key

Propiedades

Observaciones

Caption

Input Mask

Decimal Place

 

PedidoID

Text

Si

ID del pedido

 

 

 

FechaPedido

Date/Time

 

Fecha

Fecha

 

Al entrar el Input Mask (mascarilla) guarda la tabla como orden.

SuplidorID

Text

 

 

 

 

Este campo se utiliza para relacionar la tabla de Suplidor con esta tabla.

CantidadPedido

Number

 

 

 

 

 

PrecioSuplidor

Currency

 

Precio Supl

 

2

 

ProductoID

Text

 

ID Producto

 

 

Este campo se utiliza para relacionar la tabla de producto con esta tabla.

 

Cierra la tabla y escribes como nombre pedidos.

 

Table5 (suplidor)

 

Field Name

Data Type

Primary Key

Propiedades

Observaciones

Caption

Input Mask

 

SuplidorID

Text

Si

ID Suplidor

 

 

ProducroID

 

 

ID Producto

 

 

NombreSuplidor

Text

 

Nombre suplidor

 

 

PersonaContacto

Text

 

Persona Contacto

 

 

DireccionSuplidor

Text

 

 Dirección

 

 

Ciudad

Text

 

 

 

 

Zip

Text

 

 

Zip Code

 

TelefContacto

 

 

Telefono Orden

Teleph

Al entrar el Input Mask (mascarilla) guarda la tabla como suplidor

PrimerPedido

Date/Time

 

 

Date

 

Descripcion

Memo

 

escripción Producto

 

 

PedidoID

Text

 

ID del pedido

 

Este campo se utiliza para relacionar la tabla de Órdenes con esta tabla.

 

Cierra la tabla y escribes como nombre suplidor.

 

Definir interrelaciones entre las tablas

 

Antes de ponerte a trabajar con una base de datos que contine varias tablas, es necesario definir la relación que existe entre las mismas. Una relación define aquellos campos que tienen en común dos tablas, de tal manera que Access pueda combinar la información de las dos tablas en un resultado lógico. En general, para establecer una relación entre dos tablas se requiere que cada tabla tenga un campo en común. Usualmente, los dos campos en común incluyen el campo primary key en una tabla; el campo correspondiente en la segunda tabla se llama foreign key, clave externa. La interrelación entre las tablas es crucial para la manipulación de las bases de datos.

  1. Haz un clic en el botón Relationship o elige Tools/Relationship... Aparece la caja de diálogo de Relationship. Si no estuvieran presentes las cuatro tablas, haz un clic el el botón Show Table, o haz un clic con el botón derecho del ratón sobre la caja de diálogo y elige Show Table.
  2. Añade las cuatro tablas en la plataforma de Relationship, una a una; cuando las hayas añadido todas, cierra la caja Show Table.
  3. Haz un clic con el botón izquierdo en el campo que contiene la clave principal (letra negrita) de cualquier tabla y, manteniendo presionado el botón izquierdo, arrastra el puntero (que adquiere esta forma) hasta colocarlo sobre el campo idéntico de otra u otras tabla(s).
  4. Relaciona el resto de los campos con clave principal.
  5. Al finalizar, cierra la caja de diálogo.

 

Segundo proyecto: Creación del objeto Forms

 

Los formularios se generan a partir del objeto Tablas y del objeto Query de dos formas: a) con AutoForm, b) Insert Form y con el Asistente (Wizard).

 

Autoform  Creación de un formulario básico con un clic

 

  1. Selecciona (no la abras) el objeto Tables o Queries.
  2. Selecciona una tabla o un query en específico.
  3. Haz un clic en el botón AutoForm o en el menú Insert/AutoForm.
  4. Los campos del formulario son los mismos que los de la tabla.

 

Crea un autoformulario de cada tabla. Al guardar el formulario, deja el mismo nombre que tiene la tabla de la cual procede.

 

Insert Form

 

  1. Selecciona el objeto Forms..
  2. Haz un clic en el botón New o en el menú Insert/Form.
  3. Selecciona cualquier tipo de crear formularios entre el segundo y el quinto. El segundo tipo se explica en el apartado que sigue.
  4. Elige la Tabla o Query a la corresponderá el formulario.
  5. Sigue instrucciones.

 

Asistente (Wizard)

 

  1. Selecciona el objeto Forms.
  2. Haz doble clic en .
  3. Selecciona la tabla o query que necesites.
  4. Elige los campos que necesitas en el formulario. Sigue las instrucciones hasta finalizar.

 

Creación de sub-formularios con el Asistente

 

Al crear un formulario con el Asistente, como en el caso anterior, puedes elegir no sólo todos o parte de los campos de una sola tabla o query, sino también campos específicos de distintas tablas o queries. En este caso, el resultado será un formulario con uno o más sub-formularios, dependiendo el número de tablas elegidas. Da un clic en el botón NEXT para continuar.

 

El formulario que te presento a continuación tiene campos de dos tablas.

Para modificar la apariencia del sub-formulario:

  1. Cambia a la vista Design View.
  2. Haz un clic en el botón de propiedades del formulario(esquina superior izquierda) o en el menú View/Properties.
  3. Modifica la propiedad Default View.

 

Interfaz del formulario

 

El formulario de Access posee casi las mismas características que el formulario de Visual Basic.

 
Las tres vistas

 

Antes de trabajar con el interfaz del formulario, te recomiendo que explores las tres vistas, e intercambies varias entre las vistas de Design View y Form View.

 

El interfaz del formulario se trabaja en la vista de diseño. Cuando accedes a esta vista, Access te presenta las herramientas de trabajo necesarias para perfeccionar y mejorar la apariencia del interfaz del formulario.

 

Estas herramientas las vienes usando desde Visual Basic.

 

Manipulación del Label y del Tex Box

 

Al principio se hace un poco difícil manipular el tamaño y la ubicación de estos dos objetos adheridos y correlacionados.

 

Para mover los dos objetos al mismo tiempo: activa uno de los dos, apunta hacia los bordes superior o inferior del objeto activado, cuando aparezca la mano abierta, mueve los objetos.

Para mover uno de los dos objetos: activa cualquiera de los dos objetos, apunta hacia la esquina superior izquierda del objeto que quieres mover, cuando aparezca la mano señalando con el dedo índice, mueve el objeto.

Para modificar el tamaño, activa el objeto que deseas modificar, apunta hacia los indicadores del borde, cuando aparezca la línea de doble flecha, arrastra el ratón en la dirección deseada.

 

Data Entry

 

Con el propósito de seguir trabajando con la siguiente fase y capa, conviene entrar alrededor de 10 casos o registros (records) en las tablas de producto, empleado y cliente. El mejor interfaz para entrar datos es el del objeto Forms.

 

OLE Objetos en el formulario

 

  1. Abre en la vista de diseño el formulario clientes donde se creó un campo con el tipo de OLE Object. Activa el frame (Text Box) del campo Carta que contiene el tipo de dato OLE Object.
  2. Haz un clic en el menú Insert/Object...
  3. Elige en Object Type: el objeto Microsoft Word Document. Aparece la caja de diálogo Insert Object.

  1. Marca la opción Create from file y haz un clic en el botón Browse... para elegir el archivo (la carta) de Word.
  2. Marca la alternativa Display as Icon. Si marcas también la alternativa Link, el archivo abre siempre y cuando esté en el lugar que se guardó originalmente.
  3. Haz un clic en OK.

  

Cambio de diseño del formulario

 

Si se va a utilizar el formulario para entrar datos a la base de datos, conviene que la interfase, además de legible, sea agradable a la vista y con los controles necesarios para realizar las tareas comunes. Hasta ahora prácticamente no hemos aportado nada en el diseño del formulario. Está tal y como lo creó el programa. Vas añadir un fondo, un encabezamiento, una foto y varios controles de ejecución y de navegación.

 

Recuerda que todo cambio a los objetos hay que hacerlo en la vista de diseño.

 

Encabezamiento

 

  1. Selecciona cualquier formulario y abre el mismo en la vista de diseño.
  2. Haz un clic con el botón derecho del ratón sobre el formulario.
  3. Elige Form Header/Footer o haz un clic en View / Form/Form Header/Footer.
  4. Crea un recuadro con la herramienta Label en el área del Header, y escribe el título del formulario.
  5. Con el recuadro activado, haz un clic en el botón properties  (o Vew/Properties, o Botøn derecho/Properties).
  6. Trabaja las siguientes propiedades del título, por mencionar algunas:

Back Style

Back Color

Special Effect

Border Style

Border Color

Border Width

Fore Color

Font Name

Font Size

Font Weight

Text Align

 

Fondo del formulario

 

  1. Haz doble clic en Form Selector  o en en menú Edit/Select Form y haz otro clic en el botón Properties.
  2. Trabaja las propiedades de:

Picture (haz un clic en el botón Build  y elige la foto deseada.

Picture Type.

Picture Size Mode.

Picture Alignment.

 

Imágenes

 

  1. Haz un clic sobre la herramienta Images de la barra de herramientas. Aparece la caja de diálogo para insertar imágenes.
  2. Elige la imagen que vas a integrar.
  3. Presiona OK.

 

Objetos y controles dependientes (Bound) e independientes (Unbound)

 

Existen dos clases de objetos y controles: el dependiente y el independiente.

    

  

El objeto o control dependiente es un objeto o control asociado a un campo de una tabla o consulta (Query) adyacente.

El objeto o control independiente es un objeto o control no asociado a un campo de una tabla o consulta (Query) adyacente.

 

Crear e integrar el objeto independiente (Unbound Object)

 de un marco en un formulario o Informe

 

  1. Haz un clic en la herramienta Unbound Object Frame.
  2. Haz un clic en el lugar del formulario o informe donde quieres insertar el objeto.
  3. En la caja de diálogo Insert Object, haz un clic en Create New si no está seleccionado, y luego en la caja Object Type elige el tipo de objeto que deseas.
  4. Selecciona Display As Icon si prefieres que aparezca el icono del objeto.
  5. Haz clic en OK. Aparece abierto el objeto seleccionado.
  6. Crea el objeto usando la aplicación elegida en la etapa 4, y haz una de dos cosas: .
    • Si el objeto abre en una ventana aparte, rea el objeto y al finalizar presionas File/Exit (se guarda automáticamente al salir). Si te pregunta actualizar el documento, clic OK.
    • Si creas el objeto en el lugar, clic el formulario fuera frl marco del objeto unbound object. Si haces clic en File/Exit Sales de Microsoft Access

 

Botones de órdenes (Command Button)

 

  1. Abre el formulario en la vista de Diseño.
  2. Haz un clic en la herramienta Command Button de la caja de herramientas.
  3. Haz un clic en el área del formulario donde quieres colocar el botón de orden o comando. No se requiere un lugar exacto, puedes ubicarle en el lugar exacto después de creado el botón.
  4. Elige la categoría que tiene la actividad deseada. Cada categoría tiene distintas acciones.

 

  1. Presiona Next.
  2. Elige el tipo de “caption” del botón: texto o dibujo.

 

 

  1. Presiona Next.
  2. Escribe el nombre para el botón o deja el que da la máquina.
  3. Presiona Finish.