Ejemplo arquitectura 3 capas con access

64
http://dianakids.tripod.com/diseno/bd01b.htm Arquitectura de tres capas con Access TERCERA CAPA: LA BASE DE DATOS 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, entre otras cosas, 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 entre 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. 2. 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.

Transcript of Ejemplo arquitectura 3 capas con access

Page 1: Ejemplo arquitectura 3 capas con access

http://dianakids.tripod.com/diseno/bd01b.htm

Arquitectura de tres capas con Access

TERCERA CAPA: LA BASE DE DATOS

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, entre otras cosas, 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 entre 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.

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

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

Page 2: Ejemplo arquitectura 3 capas con access

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.

Arquitectura de las tres capas

 

 

Básicamente la Arquitectura se centra en una arquitectura de 3 partes, las cuales pueden distribuirse en una, dos y tres capas.

1.                   La capa de presentación que en este caso esta formada por los Componentes de IU, y los componentes de proceso de IU. Los componentes de IU pueden ser vistos como la parte con la cual interactuar el usuario. Las ventanas o páginas web, por decirlo de alguna manera. Los componentes de proceso de IU podríamos asociarlos a clases de tipo controladora en UML. Es decir estos encapsulan lógica de navegación y control de eventos de la interfase.

2.                   La capa de negocios encapsula lógica de negocios. Los servicios de esta capa son encapsulados en tres tipos de componentes, dos de los cuales se tocan en este ejercicio. Las entidades empresariales, que representan objetos que van a ser manejados o consumidos por toda la aplicación, estos podrían ser un modelo de objetos, xml, datasets con tipo, estructuras de datos, que permitan representar objetos que han sido identificados durante el modelamiento. Los otros tipos de

Page 3: Ejemplo arquitectura 3 capas con access

objetos son los componentes empresariales que contienen lógica de negocio, y en algunos casos al usar COM+ son los objetos raíz que inician las transacciones.

3.                   La capa de acceso a datos que contiene clases que interactúan con la base de datos. Estas clases surgen como una necesidad de mantener la cohesión o clases altamente especializadas que ayuden a reducir la dependencia entre las clases y capas.

 

Las tres partes de las Aplicaciones en una, dos o tres capas

Se puede decir que todas las aplicaciones tienen la misma arquitectura básica y se pueden subdividir en tres partes:

Interfaz del Usuario: La presentación al usuario, con las entradas de datos y las pantallas de consulta. Reglas de negocio: Sería el procesamiento de la información. Accesos a Datos: El control del almacén de datos.

Aplicaciones mono-capa

Entendemos por aplicaciones mono-capa, aquellas que tanto la propia aplicación como los datos que maneja se encuentran en la misma máquina y son administradas por la misma herramienta: podríamos decir que son una sola entidad

 

Figura 1. Arquitectura Típica de una aplicación de una sola capa.

Aplicaciones con Arquitectura en dos capas (Two-Tier)

Estas aplicaciones son más conocidas como aplicaciones Cliente/Servidor y lo más característico es que dividen una aplicación entre un cliente y un servidor estableciendo un middleware que controla las comunicaciones entre ambos. Un programa Visual FoxPro que interroga a una Base de Datos SQLServer es un ejemplo de aplicación en dos capas.

En la raíz de las aplicaciones cliente/servidor está la separación de la aplicación en componentes encapsulados u objetos. La ventaja de romper una aplicación en trozos es que cualquier cambio de uno de esos componentes no tiene un impacto directo sobre los otros o en el resto de la aplicación.

En las arquitecturas two-tier, la aplicación se divide en dos entidades separadas.

La arquitectura two-tier dividida en dos entidades con el interfaz por un lado y las reglas de negocio junto con el Acceso a Bases de Datos por otro se muestran en la Figura 2.

 

Figura 2. Arquitectura Two-tier con el interfaz y las reglas de negocio encapsuladas juntas.

O se podría poner en el mismo lado el interfaz junto con las reglas de negocio y tendríamos lo que se muestra en la

Page 4: Ejemplo arquitectura 3 capas con access

Figura 3.

 

Figura 3. Arquitectura Two-tier con el acceso a la Base de Datos y las reglas de negocio encapsuladas.

¿Qué método es mejor? Como regla general poner reglas de negocio ligados a un interfaz es una mala idea ya que fuerza a que cada cambio en la aplicación nos lleve a ir usuario por usuario cambiándole la aplicación.

Encapsular las reglas de negocio junto con los datos tiene la ventaja de que se pueden cambiar sin tener que tocar los interfaces de los clientes que seguramente estarán muy distribuidos. El inconveniente es que normalmente los Servidores de Datos no son muy moldeables y es bastante complicado implementar reglas de negocio en los servidores.

Muchas aplicaciones two-tier combinan de forma conjunta ambos sistemas. Es con frecuencia impracticable o indeseable, encapsular completamente los procesos con los datos.

En estas aplicaciones el Servidor de Datos procesa las Consultas y realiza todas las actividades relacionadas con la Base de Datos. Cada Cliente inicia y deja abierta una conexión al servidor para poder enviar las peticiones y poder procesar las respuestas.

Normalmente la lógica se establece en el cliente usando un lenguale 3GL o 4GL o en el servidor mediante Triggers y Procedimientos Almacenados. Dependiendo de donde establezcas la lógica tendrás un Fat Client o un Fat Server.

Este modelo suele ser costoso de mantener, difícil de escalar y pesado de depurar.

Aspectos a tener en cuenta a la hora de pasar de una aplicación de una sola capa a otra en dos Capas

          Usa Vistas Locales en vez de acceder a tablas directamente

          Encapsula las reglas de negocio fuera de contenedores visuales. Las Reglas de Negocio deberían ir en clases no visuales tipo Custom.

Arquitectura Three-Tier

Como se podría esperar cada uno de los componentes de la aplicación en una arquitectura three-tier se separa en una sola entidad. Esto te permite implementar componentes de una manera más flexible. Algo que no creo que sorprenda es la afirmación de que este tipo de arquitectura es la más compleja.

Page 5: Ejemplo arquitectura 3 capas con access

En esta Arquitectura todas las peticiones de los clientes se controlan en la capa correspondiente a la lógica del negocio. Cuando el cliente necesita hacer una petición se la hace a la capa en la que se encuentra la lógica del negocio. Esto es bastante importante pues eso quiere decir que:

1.        El cliente no tiene que tener drivers ODBCni la problemática consiguiente de instalación de los drivers por tanto se reduce el costo de mantener las aplicaciones cliente

2.        El Cliente y el Gestor de Reglas de negocio tienen que hablar el mismo lenguaje (en nuestro caso COM)

3.        El Gestor de Reglas de Negocio y el Servidor de Datos tienen que hablar el mismo lenguaje (en nuestro caso ODBC)

Lo ideal sería que el Gestor de Reglas de Negocio no sólo OLE y ODBC sino otros estandares como DBLib, OLI, DRDA, SQL/API y X/Open

 

Empezaremos por lo básico, esto es, por la base de datos.

Arquitectura de tres capas con Access

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

Page 6: Ejemplo arquitectura 3 capas con access

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

Page 7: Ejemplo arquitectura 3 capas con access

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

 

Page 8: Ejemplo arquitectura 3 capas con access

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.

 

TERCERA CAPA: LA BASE DE DATOS

 

PRIMER PROYECTO: CREACIÓN DEL OBJETO TABLA

Inicia Microsoft Acces. Nomina la base de datos como proyecto1

Page 9: Ejemplo arquitectura 3 capas con access

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.

Por ahora crearemos las tablas de Producto y Cliente. Posteriormente trabajaremos a su debido tiempo el resto de las tablas.

Table1 (producto)

1. Selecciona el objeto Tables.

2. Haz doble clic sobre 3. Entra la siguiente información.

Field Name Data Type Primary Propiedades Observaciones

Page 10: Ejemplo arquitectura 3 capas con access

Key CaptionDecimal

Place

ProductoIDText 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

Venta2

PedidoID Text Num Orden

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

4. Cierra la tabla y la nominas como producto.

Table2 (cliente)

Field Name Data Type Primary Key

Propiedades ObservacionesCaption Input Mask

ClienteIDText 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

Page 11: Ejemplo arquitectura 3 capas con access

Cierra la tabla y la nominas como cliente.

Creación de la ventana Lookup

5. Al elegir el tipo de dato Lookup Wizard aparece la primera etapa del asistente. Elige la opción I will types in the value thay I want.

6. Presiona Next.7. Deja el número 1 de columnas y escribe

debajo del título Col1 las seis apciones que te presento al lado derecho.

RELACIONES

 

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.

Definir interrelaciones entre las tablas

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

Page 12: Ejemplo arquitectura 3 capas con access

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. Aparecen las tablas creadas en la base de datos.

2. Añade sólo las tablas de cliente y la de producto en la plataforma de Relationship, una a una; cuando hayas añadido las dos, cierra la caja Show Table. Al finalizar cierra (Close) la ventana.

3. Haz un clic con el botón izquierdo en el campo que contiene la clave principal (productoID) de la tabla Producto y, manteniendo presionado el botón izquierdo, arrastra el puntero (que adquiere esta forma ) hasta colocarlo sobre el campo ProductoID de la tabla cliente. Aparece la caja de diálogo Edit Relationship, observa en la parte inferior el tipo de relación: One-To Many.

Page 13: Ejemplo arquitectura 3 capas con access

4. Presiona el botón Create.5. Cierra la plataforma de Relationship y guarda la relación creada.

 

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

De odas las herramientas que hay para crear formularios, en este momento utiliza únicamente la herramienta Autoform para crear los formularios correspondientes a las tablas de cliente y producto.

Autoform Creación del formulario 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.

Page 14: Ejemplo arquitectura 3 capas con access

Crea con un clic el formulario de las tablas clientes y producto. 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.

Page 15: Ejemplo arquitectura 3 capas con access

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.

Page 16: Ejemplo arquitectura 3 capas con access

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, conviene entrar alrededor de 10 casos o registros (records) de los productos utilizando el formulario producto. 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.

Page 17: Ejemplo arquitectura 3 capas con access

4. Marca la opción Create from file y haz un clic en el botón Browse... para elegir el archivo (la carta) de Word.

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

6. Haz un clic en OK.

 

Arquitectura de tres capas con AccessTERCERA CAPA: LA BASE DE DATOS

 

 

SEGUNDO PROYECTO: 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.

 

Page 18: Ejemplo arquitectura 3 capas con access

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:

Page 19: Ejemplo arquitectura 3 capas con access

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.

 

Controles

 

Tanto en el formulario como en el informe, los objetos de control pueden tener una de tres modalidades: bound (dependiente) o asociado a un campo de la tabla o query; calculated (de cálculo), el cual tiene una expresión hecha de combinaciones de las funciones de Acces y referencias de campos; o unbound (independiente) no asociado a los campos de las tablas o queries, como es el caso de líneas, text box y etiquetas de texto.

 

 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.

El control de cálculo se utiliza para crear cálculos estadísticos y matemáticos.

 

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.

Page 20: Ejemplo arquitectura 3 capas con access

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:

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

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

 

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

 

Page 21: Ejemplo arquitectura 3 capas con access

 

7. Presiona Next.8. Escribe el nombre para el botón o deja el que da la máquina.9. Presiona Finish.

 

10. Repite todo el procedimiento anterior para crear más botones.11. Prueba los botones en la vista Form.

 

Arquitectura de tres capas con Access

SEGUNDA CAPA: LÓGICA DE NEGOCIO

 

Toda aplicación tiene código para implementar reglas de negocios, procesos relacionados a los datos o cálculos y otras actividades relativas a los negocios. Colectivamente este código es considerado para formar la capa de negocios. Otra vez, uno de los principios del diseño lógico cliente/servidor, la lógica de negocios debe mantenerse separada de la capa de presentación y de los servicios de datos. Esto no significa necesariamente que la lógica de negocios

Page 22: Ejemplo arquitectura 3 capas con access

está en cualquier parte, por el contrario, esta separación es en un sentido lógico.

Hay muchas formas de separar la lógica de negocios. En términos orientados a objetos, usted debería encapsular la lógica de negocios en un conjunto de objetos o componentes que no contienen presentación o código de servicios de datos. Teniendo separada lógicamente su lógica de negocios de ambas, la capa de presentación y servicios de datos, usted ganará en flexibilidad en término de donde usted puede almacenar físicamente la lógica de negocios. Por ejemplo, usted puede seleccionar almacenar la lógica de negocios sobre cada estación de cliente, u optar por ejecutar la lógica de negocios sobre un servidor de aplicaciones, permitiendo a todos los clientes acceder a un recurso centralizado.

Los objetos de negocios son diseñados para reflejar o representar sus negocios. Ellos se convierten en un modelo de sus entidades de negocios e interrelaciones. Esto incluye tanto objetos físicos como conceptos abstractos. Estos son algunos ejemplos de objetos del mundo real: un empleado, un cliente, un producto, una orden de compra.

Todos estos son objetos en el mundo físico, y la idea en su totalidad detrás de usar objetos de negocios de software, es crear una representación de los mismos objetos dentro de su aplicación. Sus aplicaciones pueden hacer que estos objetos interactúen unos con otros como ellos lo hacen en el mundo real. Por ejemplo, un empleado puede crear una orden de compra a un cliente que contiene una lista de productos. Siguiendo esta lógica usted puede crear objetos de negocios de una orden conteniendo el código necesario para administrarse a si mismo, así usted nunca necesitará replicar código para crear ordenes, usted solo usará el objeto. Similarmente, un objeto cliente contiene y administra sus propios datos. Un buen diseño de un objeto cliente contiene todos los datos y rutinas necesitadas para representarlo a través del negocio completo, y puede ser usado a través de toda la aplicación de ese negocio.

No toda la lógica de negocio es la misma. Alguna lógica de negocio es un proceso intensivo de datos, requiriendo un eficiente y rápido acceso a la base de datos. Otras no requieren un frecuente acceso a los datos, pero es de uso frecuente por una interfase de usuario robusta para la validación en la entrada de campos u otras interacciones de usuarios. Si nosotros necesitamos una validación al nivel de pantallas y quizás cálculos en tiempos real u otra lógica de negocios, pudiéramos considerar este tipo de lógica de negocios para ser parte de la IU, ya que en su mayor parte es usada por la interfase de usuario.

Una alternativa de solución es dividir la capa de lógica de negocios en dos:

Objetos de negocios de la IU. Objetos de negocios de datos.

Un ejemplo del objeto Empleado de la capa objetos de negocios de la IU proveerá propiedades y métodos para usar por el diseñador de la interfase de usuario. Ejemplo de propiedades y métodos pudieran ser: IDEmpleado,

Page 23: Ejemplo arquitectura 3 capas con access

Nombre, Dirección, etc., y como métodos crear una de compra, etc. El objeto Empleado de la capa de objetos de negocios de datos será responsable de los mecanismos de persistencias, interactuar con la base de datos. Los objetos de esta capa son considerados sin estado, solo poseen métodos.

Arquitectura de tres capas con AccessSEGUNDA CAPA: LÓGICA DE NEGOCIO

 

Muchos de los planteamientos de la capa de lógica de negocios se resuelven con el objeto Query. Las consultas (queries) son una herramienta eficaz para dar respuestas a las inquietudes, preguntas y necesidades del negocio.

CREACIÓN DE QUERIES

Los datos almacenados en una base de datos son reales. Cuando las organizaciones comienzan a utilizar una base de datos por primera vez, generalmente piensan en la creación de sistemas que recuperen de forma rápida y segura los datos. El uso más inteligente de las bases de datos sería considerar que la recuperación de los datos consistiera en convertir esos datos en información, que no es otra cosa que los datos procesados. Para analizar la tendencia de las ventas necesitamos saber cuántos pedidos se han recibido en un determinado mes. Para facilitar los pedidos de los proveedores o suplidores deseamos identificar el nombre de la persona de contacto y su teléfono de forma rápida. Para crear una factura o una nómina tal vez necesitemos datos de varias tablas.

Una base de datos bien diseñada contiene una tabla para cada sección clave de la organización

En Access podemos buscar información deseada creando una herramienta de análisis de de base de datos fundamental: la consulta o query. Una consulta es una herramienta que unifica datos procedentes de varias tablas como respuesta a una pregunta o que lleva a cabo una acción sobre los datos.

Page 24: Ejemplo arquitectura 3 capas con access

Definición de consultas

Una consulta es una forma de dar respuesta a cualquier pregunta relacionada con la base de datos mediante la manipulación de tablas, registros y campos. Es una petición de un conjunto de datos en particular, como por ejemplo, “Muéstrame el nombre y el teléfono de los clientes del pueblo de Rincón”.

TRECER PROYECTO: CREACIÓN DE LA FACTURA A PARTIR DE UNA CONSULTA

Antes de iniciar el proceso de crear cualquier consulta, hay que hacerse la pregunta básica: ¿Qué campos necesito para dar una respuesta satisfactoria a la necesidad planteada? ¿En qué tablas se encuentran dichos campos? Por ejemplo, para reproducir los elementos insustituibles de una factura, se necesitan los campos que tengan información sobre el ID, Nombre, Apellidos y Dirección del cliente; así como el ID, el Nombre, y el Precio del producto.

Si damos una ojeada por nuestra base de datos, nos daremos cuenta que tenemos toda la información mencionada en el párrafo anterior. La razón de ser del Query que vamos a generar es crear la factura y sólo la factura. Así que manos a la obra.

Existen dos formas para crear consultas: 1) el Asistente (Wizard), y b) la vista de Diseño. Elegiremos la vista de diseño por considerarla muy simple.

1. Haz un clic sobre el objeto Queris.2. Haz doble clic sobre Aparece la ventana del Query1. Si no

estuviera presente la caja de diálogo Show Table, haz un clic en el tablero superior con

el botón derecho del ratón y elige Show Table, o View/Show Table, o haz clic en . La ventana de Query incluye dos tableros: el superior contiene la lista de los campos de cada tabla a ser consultada; este tablero muestra la relación entre los datos de origen. El tablero inferior contiene una cuadrícula con una columna por cada campo consultado.

Page 25: Ejemplo arquitectura 3 capas con access

3. Coloca en el tablero las tablas de cliente y producto.4. Ahora te toca trabajar en la cuadrícula de diseño (panel inferior). Para diseñar el

query, puedes arrastrar el campo de referencia directamente de las listas del tablero superior al campo de la cuadrícula inferior, o puedes elegir de las listas que aparecen

cuando activas una columna de la cuadrícula del tablero inferior.

Field: ClienteID

ProductoID

PrecioPublico

NombreCliente

ApellidosCliente

Direccions

Ciudad

CuentaNumero

NombreProd

Table:

cliente producto producto cliente cliente cliente cliente cliente producto

Sort:

5. Haz un clic en la flecha de la primera celda de la fila Field y elige de la tabla cliente el campo ClienteID (cliente.ClienteID).

6. Repite el mismo procedimiento para el resto de los campos que te presento en la tabla del paso 4.

7. Guarda el Query con el nombre de Factura al cerrar el mismo.

Creación del formulario con Autoform a partir del query Factura

Como ya sabes, puedes iniciar el procedimiento del formulario a partir del Query Factura de dos maneras: a) Seleccionando el objeto Query y luego hacer un clic en Insert/Autoform; o b) seleccionando el objeto Forms y haciendo doble clic en Create form by using Wizard (si utilizas el Asistente, cuando llegues al paso de elegir la tabla o query, tienes que elegir el query Factura y no una tabla). Preferimos la modalidad a).

Page 26: Ejemplo arquitectura 3 capas con access

1. Selecciona el Query Factura y luego haz un clic en (o en Insert/Autoform). Aparece el formulario con el siguiente interfaz (Vista de Diseño):

2. Guarda el formulario también como Factura.3. Una vez creado el formulario, antes de iniciar el proceso de entrar datos, trabaja el

interfaz de dicho formulario (en la vista de diseño, por supuesto) de tal forma que adquiera la apariencia de una Factura, por ejemplo:

Para crear este interfaz llevaron a cabo los siguientes cambios:

Page 27: Ejemplo arquitectura 3 capas con access

Se eliminaron:

Los Labels de Nombre y Apellidos, en el lugar del Nombre se escribió Facturar a: El Text Box y el Label de Forma de Pago (Se tomó la decisión de eliminar este objeto,

porque el patrono no quería que apareciera en la base de datos esta información. A cambio se creó un objeto unbound –no asociado a la base– equivalente).

 

Se crearon los siguientes objetos unbound (no asociados a los campos del Query):

Objeto EtiquetaPropiedades

Name Format Input Mask Control SourceText Box Fecha Fecha Short Date Short Date Text Box Cantidad Cantidad General Number Text Box Total total =[Cantidad]*[PrecioPublico]

Text Box Fecha Exp expira Short Date Short Date Option Group Forma de Pago Label (en el Header)

FACTURA Font:: Tamaño 16, Color azul

Para accesar a las propiedades del objeto haz un clic con el botón derecho del ratón sobre el mismo.

 Control de cálculo Se entiende por control de cálculo aquella fórmula que calcula el valor visualizado en el control. La fórmula de cálculo puede escribirse: a) manualmente en la caja de texto (Text Box); b) en la propiedad Control Source; c) en el botón generador de Expresiones ... de la propiedad anterior; d) en el Query. Los controles de cálculo se crean en los objetos de Forms, Report y el Query, bien en un objeto asociado (bound) con un campo de la tabla como no asociado (unbound). No se generan en el objeto de la tabla. Creación de controles de cálculo en el formulario 

La fórmula = [Cantidad] * [PrecioPublico] escrita anteriormente en el objeto unbound de Total, el cual fue añadido posteriormente en el formulario, es un ejemplo de este tipo de control. Para que trabaje dicha fórmula en este formulario, es necesario modificar el nombre del objeto que contiene el dato de cantidad.

Page 28: Ejemplo arquitectura 3 capas con access

 Creación de controles de cálculo en el Query Abre en la vista diseño el Query Factura creado anteriormente. Añade al final de la tabla el campo Cantidad perteneciente a la tabla del cliente. 

Field: ClienteID ProductoID PrecioPublico

NombreCliente ApellidosCliente

Direccions Ciudad CuentaNumero NombreProd Cantidad

Table: cliente producto producto cliente cliente cliente cliente cliente producto cliente

Sort:  

1.      Haz un clic con el botón derecho del ratón en la celda que sigue a Cantidad.2.      Elige en el menú Zoom... Aparece la ventana Zoom.

 

 3.      Escribe Total: [PrecioPublico]*[Cantidad]4.      Haz un clic en OK.5.      Guarda el Query.6.      Abre el Query en la vista Datasheet View (o haz doble clic en el Query Factura)

para comprobar si funciona.

Si observas bien, en la vista Datasheet aparece un nuevo campo, el campo Total. No ha sido necesario trastear ni añadir dicho campo en la base de datos original (tabla cliente). Ahora podemos crear el formulario de la factura a partir del Query modificado sin necesidad de añadir un control de cálculo en el mismo. La vista Datasheet tiene distintos formatos, colores y fondos. Explóralos en Format/Datasheet... 

Cómo crear un objeto Option Group

1. Haz un clic en Option Group de la caja de herramientas.2. Haz un clic en un área en blanco del formulario.3. Sigue los pasos del Asistente:

Page 29: Ejemplo arquitectura 3 capas con access

a. Escribe las etiquetas de las opciones.presiona Next

b. Déjalo como está. Presiona Next

c. Guarda el valor en el campo ClienteID

d. Elige la apariencia del objeto

e. Escribe como etiqueta Forma de Pago

Así se visualiza al entrar la información.

Page 30: Ejemplo arquitectura 3 capas con access

Reto

1.      Coloca un logo en el encabezamiento.

2. Añade los siguientes controles de cálculo:

% de Descuento,

Deuda Total,

Cantidad Pagada,

Deuda Actual.

 Arquitectura de tres capas con Access

SEGUNDA CAPA: LÓGICA DE NEGOCIO

 

CUARTO PROYECTO: CREACIÓN DE LA NÓMINA

Para generar el objeto de nómina necesitamos los datos del empleado y/o vendedor (en este proyecto, partimos del hecho de que el empleado es también vendedor). Como no existen tales datos, hay que crear la base de la sección de empleado.

Creación de la Tabla3 (empleado)

Page 31: Ejemplo arquitectura 3 capas con access

Crea una tabla nueva con la vista de diseño en la misma base de datos. Utiliza el mismo procedimiento de las tablas anteriores considerando las especificaciones que aparecen a continuación:

Field Name Data Type

Primary Key

Propiedades Observaciones

CaptionInput 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

FechaPago Text Fecha de Pago

Short Date

ClienteID Text Este campo permite relacionar al empleado con el cliente.

Cierra la tabla y la nominas como empleado.

La relación de la tabla del empleado con otras tablas puede discutirse. Muchos patronos prefieren mantener distante e incomunicada la información del empleado del resto de secciones del negocio. No obstante, incluimos el procedimiento de dicha relación de forma provisional.

 

Con los datos que se tienen en la tabla empleado puede crearse la nómina, sin necesidad de tomar prestado más datos de otras tablas. 

Page 32: Ejemplo arquitectura 3 capas con access

Creación del formulario para entrar la nómina de los empleados

Crea el formulario con un clic.

Modifica el formulario en la vista de diseño.

Con un clic Modificado

 

Se crearon los siguientes objetos unbound (no asociados a los campos del Query):

Objeto EtiquetaPropiedades

Name Format Input Mask

Control Source

Text Box Horas Extras Extra Text Box Total =[HorasTrabajadas]*[SalarioHora]

Text Box Income Tax =[Total]*0.09

Text Box Retiro =[Total]*0.07

Text Box ASUME =[Total]*0.05

Text Box Pago Horas Extras

PagoExtra =([SalarioHora]*2)*[Extra]

Text Box Total Neto =[Total]+[PagoExtra]-[IncomeTax]-[Retiro]-[Asume]

Label Retenciones 2 Rectangle Label (en el Header)

Nómina Font:: Tamaño 16, Color azul

Page 33: Ejemplo arquitectura 3 capas con access

Jugando con las fórmulas

Podemos reducir los objetos de control de cálculo agrupando los datos.

Page 34: Ejemplo arquitectura 3 capas con access

Compara este interfaz con el anterior. Fueron eliminados los controles del Total y de Horas Extra. Al tener separadas las horas regulares de las extra, se prestaba a confusión al momento de entrar las horas trabajadas. En este nuevo diseño se integraron todas las horas trabajadas, regulares y extras. Se separarán al hacer los cómputos (juntas, pero no revueltas).

En Horas Trab se entran todas las horas trabajadas:regulares y extra.

Estas son las fórmulas de los Text Box correspondientes a sus etiquetas. Las horas extras se pagan a doble tiempo (2):

Pago Horas Extra =([HorasTrabajadas]-40)*[SalarioHora]*2

Income Tax =([HorasTrabajadas] * [SalarioHora]+([HorasTrabajadas]-40) * [SalarioHora] * 2) * 0.11

Retiro           =([HorasTrabajadas] * [SalarioHora]+([HorasTrabajadas]-40) * [SalarioHora] * 2) * 0.09

Total Neto =([HorasTrabajadas]*[SalarioHora]+([HorasTrabajadas]-40)*[SalarioHora]*2)-[IncomeTax]-[Retiro]-[Asume]

PARA SABER MAS...

La nómina en Visual Basic

Reto: La Comisión y las Notas del examen

Si quisiéramos integrar una comisión al empleado que vende tendríamos que relacionar las tablas de Empleado, Cliente y Producto.

Crea un Query con estas tres tablas y elige los campos necesarios para la comisión, incluyendo, sin falta, el ID y el nombre del empleado. Para calcular el 3% del total en comisión del empleado, sólo necesitamos también el Total

Page 35: Ejemplo arquitectura 3 capas con access

de las ventas o los campos de Cantidad y Precio:

Comision = [Total] * .03

o

Comisión = ([Cantidad] * [PrecioPublico]) * .03

 

Este control puedes colocarlo en la tabla del Query, en el formulario o en el informe (más adelante aprenderás a integrar controles de cálculo en el informe).

 

La comisión en escalas (IIF...)

En Access se escribe IF con dos íes IIF(...). La sintaxis es similar a la de Excel.

If simple:

=IIf ([Ventas] >=1000,[Ventas]*.1)  If múltiple: =IIf ([Ventas] <= 1000, “Sin comisión”,IIf([Ventas]< =5000,[Ventas]*.05, IIf([Ventas]<=

10000,[Ventas]*.10, “Viaje en un Crucero”)))  El viaje en crucero ocurre siempre y cuando haya vendido más de 10,000.00

La Nota

Con un formulario del promedio en la vista Design:1.                                                             Crea un objeto con la

herramienta Text Box debajo del objeto de promedio (Observa el modelo del lado).

2.                                                             Escribe en el rótulo (Caption) Nota.

3.                                                             Escribe en el recuadro de Text Box la siguiente formula (El Text Box que contiene el promedio se llama Avg):

 =IIf([Avg]<59,"F",IIf([Avg]<69,"D",IIf([Avg]<79,"C",IIf([Avg]<89,"B","A"))))

 

 Arquitectura de tres capas con Access

SEGUNDA CAPA: LÓGICA DE NEGOCIO

 

Page 36: Ejemplo arquitectura 3 capas con access

QUINTO PROYECTO: CREACIÓN DE FORMULARIOS CON CAMPOS OLE,

HIPERVÍNCULOS Y SUBFORMULARIOS

CREACIÓN DE LA TABLA DE LOS SUPLIDORES Y PEDIDOS

Table4 (suplidor)

Crea en la vista Design y en la misma base de datos de los proyectos anteriores la siguiente tabla:

Field Name Data Type

Primary Key

Propiedades Observaciones

CaptionInput Mask

SuplidorIDText Si ID Suplidor

 

NombreSuplidor Text Nombre suplidor PersonaContacto Text Persona Contacto DireccionSuplidor Text Dirección Ciudad Text Zip Text Zip Code TelefContacto Telefono Orden Telephone # Al entrar el Input

Mask (mascarilla) guarda la tabla como suplidor

PrimerPedido Date/Time Short Date ProducroID Text ID Producto Comentario Memo Comentarios

relacionados con el

suplidor Picture OLE

Object Foto

WebPage Hyperlink Pagina Web Se escribe en el campo la dirección de la página web del suplidor: http://www.etc.com

PedidoID Text ID del pedido Este campo se

Page 37: Ejemplo arquitectura 3 capas con access

utiliza para relacionar la tabla de Pedidos con esta tabla.

Cierra y guarda la tabla con el nombre de suplidor.

Cómo crear Hyperlink.

1. Haz un clic con el botón derecho en el campo donde hay que entrar el enlace con la página web.

2. Elige Hyperlink/Edit Hyperlink. Aparece la caja de diálogo de Insert Hyperlink.

Variante: Activado el campo de Web Page, haz un clic en en el icono o en el menú Insert/Hyperlink.

3. Escribe (mejor, copia y pega) o selecciona de la lista (si es que está incluida) la dirección en la ventana Type the file or Web page name:

4. Presiona OK.

Table5 (pedidos)

Crea la siguiente tabla en la misma base de datos de los proyectos anteriores:

Page 38: Ejemplo arquitectura 3 capas con access

Field Name Data TypePrimary

Key

Propiedades Observaciones

CaptionInput Mask

Decimal Place

PedidoIDText Si ID del

pedido

FechaPedido Date/Time Fecha Short Date Al entrar el Input Mask (mascarilla) guarda la tabla como pedidos.

ProductoID Text ID Producto

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

NombreProducto Text CantidadPedido Number PrecioSuplidor Currency Precio

Supl 2

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

Cierra la tabla y la nominas como pedidos.

CREAR DEL FORMULARIO DE SUPLIDORES CON UN SUBFORMULARIO

 Es sumamente sencillo la creación de un formulario y subformulario con la herramienta Form Wizard. El asistente Form Wizard crea el formulario y subformulario automáticamente una vez hayas elegido las tables e indicado la organización general de tus datos. Sigue los siguientes pasos para crear el formulario y subformulario. El formulario corresponderá a la tabla de Suplidores y el subformulario a la tabla de Productos. Relacióna la tabla Suplidor con la tabla Producto

 Es necesario establecer la relación entre las tablas que vas a utilizar en el formulario y subformulario, antes de crear el mismo.

Page 39: Ejemplo arquitectura 3 capas con access

1.      Haz un clic en el botón Relationships.2.      Haz un clic en el botón Show Table.3.      Añade (Add) al tablero de relaciones la tabla suplidor.4.      Cierra Show Table.5.      Relaciona SuplidorID de la tabla suplidor con SuplidorID de la tabla

producto (esta tabla ya estaba relacionada con la tabla cliente).6.      Cierra la ventana Relationship y la guardas.

 Creación del formulario 

1.      Activa Forms de la barra de Objects.2.      Haz doble clic sobre Create Form by using wizard.

  

3.      Elige primero, de la tabla Suplidor, los campos: SuplidorID, NombreSuplidor, PersonaContacto, TelContacto, PrimerPedido, ProductoID, Comentario, Picture y WebPage. Segundo, de la tabla Producto, los campos: NombreProducto, CantidadStock y PrecioProducto.

4.      Presiona Next. 

5.      Marca Form with subform(s).6.      Next.7.      Marca Datasheet.

 

Page 40: Ejemplo arquitectura 3 capas con access

8.      Next.9.      Elige Standar.10.  Guarda el formulario como Master Suplidor y el Sub-formulario como

Producto Sbform

 11.  Finish.

 Editar el formulario Crea el interfaz que te presento a continuación:

Page 41: Ejemplo arquitectura 3 capas con access

1.      Organiza y ajusta el largo de los objetos del formulario.2.      Inserta la imagen del suplidor(a) en el objeto OLE.3.      Añade los “Command Button” para navegar y editar (Ver el Segundo

Proyecto).4.      Añade el Combo Box “Buscar por Nombre” y el objeto Triangle sobre el

combo box (Ver el procedimiento más adelante). Cómo crear un Combo Box1.      En la vista de

diseño, elige la herramiento Combo Box de la caja de herramientas, luego mueve el puntero del ratón a la posición deseada del formulario y haz un clic para integrar el objeto combo box.

 2.      Marca Find a

record...     

Page 42: Ejemplo arquitectura 3 capas con access

   3.      Haz un clic el

botón Next >, luego selecciona NombreSuplidor y haz un clic en Add Field (flecha derecha) para añadir el campo al combo box.

            4.      Haz un clic el

botón Next >. Ensancha la columna si fuera necesario.

              Haz un clic el botón Next >, y escribe Buscar por &Nombre como etiqueta para el combo box. Apunta a Finish. 

Page 43: Ejemplo arquitectura 3 capas con access

           Cómo colocar un rectángulo en la etiqueta y caja del combo box 

1.      Apunta a la herramienta Rectangle de la caja de herramientas.2.      Mueve el puntero del ratón y dibuja un rectángulo ajustado a la etiqueta y a la

caja del combo box.3.      Apunta al borde del rectángulo con el botón derecho y elige Properties.4.      Cambia el valor de la propiedad Spetial Effect para Raised.5.      Cierra la propiedad del rectángulo.6.      Cambia a la vista normal para ver el trabajo. Si te gusta, guárdalo.

 

Arquitectura de tres capas con AccessSEGUNDA CAPA: LÓGICA DE NEGOCIO

 

SEXTO PROYECTO: COMPRENSIÓN DE LAS CONSULTAS O QUERIES

 

Acces permite crear una gran variedad de consultas. Las más comunes son Selet Query, que extrae información de una o más tablas. También puedes crear crosstab queries, que agrupa y resume información en un formato de fila-columna como Excel PivotTable. Una de las cosas más poderosas (y también peligrosas por trastocar la información de la base de datos) conlleva la action queries (Update Query, Make-Table Queery, Append Query y Delete Query), que actualiza los datos de la base de acuerdo a los criterios definidos en el query.

 

SELECCIÓN DEL QUERY

Page 44: Ejemplo arquitectura 3 capas con access

Cuando utilizas la vista de Diseño para crear un query, Acces crea Select Query por defecto. El propósito de Select Query es recoger datos de una o más tablas. La selección del query puede incluir cualquiera de los siguientes elementos:

        Agrupar campos de una o varias tablas o queries.

        Calcular campos.

        Totales que ejecutan operaciones estadísticas.

        Selección de criterios.

        Instrucciones de orden (sorting).

        Ocultar campos.

Los sistemas que manejan bases de datos generalmente proveen herramientas para dar respuesta a una serie de preguntas como las siguientes: ¿Cuánto se facturó y cuánto pagó el cliente CM12? ¿Qué nombre del cliente empieza por Él? ¿Qué clientes son de Santurce? ¿A qué clientes del técnico 10 se le facturó más de $300.00?

 

Tabla del cliente

Número Cliente Compañía Dirección Ciudad Estado ZipCode Factura Pago

Número técnico

CM12 Computer_Más Calero 10 Caguas PR 00765 $322.45 $159.00 10

CS56 Computer Suppliers Hostos 45 Santurce PR 00909 $1399.00 $675.00 09

C200 Computer 2000 Albizu 13 Guayama PR 00689 $299.75 $200.00 10

BE77 Boricua Electrónic Colón 65 Aguada PR 00654 $2500.97 $1500.25 10

ET02 Electro Text Revolución 530 Lares PR 00865 $0.00 $0.00 15

EI24 Egunon Inc Tridas 09 Santurce PR 00909 $150.00 $0.00 09

Al llenar cada campo presiona la tecla Tab.

Observa en la parte inferior de la ventana la barra del número de los récords. Es muy útil para navegar.

Ver previamente e imprimir el contenido de una tabla

1. Abre la base de datos Proyecto1 y la tabla Cliente. 2. Da un clic en File/Print Preview 3. Aumenta la vista 4. Da un clic en File/Page Setup 5. Da un clic en la pestaña Page y selecciona Landscape/OK.

Page 45: Ejemplo arquitectura 3 capas con access

6. Da un clic en File/Print

Cerrar la Tabla

1.      File/Close

O dar un clic en el botón de cerrar X de cada ventana.

Crear tablas adicionales

Una misma base de datos puede tener varias tablas. El número de tablas lo determinan las necesidades del tipo de negocio.

1. Abre la base de datos Proyecto1. 2. Selecciona Tables/New/Design View/OK 3. Da un clic en File/Save 4. Guarda la tabla en el 3.50 Foppy con el nombre Técnico. 5. Define los campos de la tabla de acuerdo a la siguiente estructura

Estructura de la tabla Técnico

Field Name Data Type Field Size Primary Key Descripction

ID Técnico Text 2 Si Núm. del técnico (Clave principal)

Apellido Text 10   Apellido del técnico

Nombre   8    

Dirección   15   Dirección postal

Ciudad Text 15    

Estado Text 2   Abreviado con dos caracteres

ZipCode Text 5    

SalarioHora Currency     Salario por hora

HorasTrabajadas Numérico      

Entrar datos en la tabla

1. Da doble clic sobre la tabla creada2. Entra datos imaginarios correspondientes a los tres Números Técnico (09, 10 y

15).

Tabla del técnico

Número Técnico Apellido Nombre Dirección Ciudad Estado

Zip Code

 

SalarioHoraHorasTrabajadas

Page 46: Ejemplo arquitectura 3 capas con access

09                

10                

15                

Crear un nuevo Query

1. Abre la base de datos Proyecto1. 2. Selecciona (da un clic en) la tabla de Cliente 3. Da un clic en la flecha del icono "New Object" (el penúltimo de la barra de

herramientas estándar) y selecciona Query o Insert/Query. Aparece la caja de diálogo.

4. Selecciona Design View/OK .

5. Maximiza la ventana de Query1 6. Ajusta las dos hojas (ampliando la superior) de tal forma que sean visibles todos

los campos de la tabla Cliente.

Incluir campos en la ventana inferior ("Design Grid")

Una forma sencilla para incluir campos en el panel inferior es arrastrando el campo de la lista de campos de la tabla que aparece en el panel superior del Quero. Si te sobra tiempo, puedes hacerlo de esta otra forma:

Page 47: Ejemplo arquitectura 3 capas con access

1. Da dos clics en el campo Número de Cliente que aparece en la caja de Cliente. El número de Cliente es incluido como primer campo en la hoja inferior de "Design Grid".

2. Da dos clics en los campos Compañía y Número Técnico. Los campos de Compañía y Número del Técnico son incluidos en la hoja inferior.

Correr un Query

1. Da un clic en Query del menú.2. Selecciona Run o apunta hacia el botón de Run ! y da un clic.

Imprimir los resultados del Query

1. Da un clic en File.2. Selecciona Print.

Volver a la Ventana del Query seleccionado

Da un clic en el menú View/DesignVIew.

O

Da un clic en el botón View

Cerrar un Query

Da un clic en File/Close

Incluir todos los campos en un Query

1. Vuelve a la ventana del Query anterior que contiene la hoja superior la lista de los campos de la tabla Cliente. Asegúrate que la hoja inferior esté vacía.

2. Da dos clics en el asterisco ( * ) de la caja donde aparece la lista de los campos. 3. Da un clic en el botón Run. 4. Da un clic en el botón Wiew.

Entrada de criterios

Uso de datos en forma de texto como criterio

Abierta la ventana de Select Query del Query1, da dos veces clic a los campos de: Número Cliente, Compañía, Factura y Pago para añadirlos en el query.

Apunta a la entrada de Criteria: para el primer campo en la hoja de "Design Grid".

Da un clic en la entrada de Criteria: y escribe ET02 como criterio para el campo de Número Cliente.

Corre el query dando un clic en el botón Run.

Page 48: Ejemplo arquitectura 3 capas con access

Uso de comodines

Existen dos comodines típicos: el asterisco (*) que representa a un grupo de caracteres (Gu* representa a las letras Gu seguidas por cualquier grupo de caracteres, como Guaynabo, Guayama, Guaraguao). El símbolo de interrogación (?), que representa cualquier carácter individual (C?lor representa la letra C seguida por cualquier carácter antes de lor, como Calor, Color).

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Apunta y da un clic en la fila de Criteria debajo del campo Compañía. Escribe

LIKE Com* como entrada. Nota: Si hubiera escrito algún otro criterio debajo de otros campos, bórralo antes de correr el creado ahora.

3. Da un clic en el botón Run.

Uso de Números como criterio

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Incluye los campos: Número Cliente, Factura y Pago en el query. 4. Escribe en la fila Criteria: debajo del campo de Pago un 0. 5. Corre el query.

Uso de operadores como criterio

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Incluye los campos: Número Cliente, Factura y Pago en el query. 4. Escribe >500 en Criteria: debajo del campo Pago. 5. Corre el query.

Uso de criterios combinados

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Incluye los campos: Número Cliente, Factura, Pago y Número Técnico en el

query. 4. Escribe >300 en Criteria: debajo del campo Factura y 10 como criterio debajo

del campo de Número Técnico. 5. Corre el query.

Uso de criterios combinados incluyendo OR

1. Da un clic en el botón View para volver al query seleccionado anteriormente. 2. Borra la entrada 10 de la fila Criteria bajo el campo Número Técnico.. 3. En la fila or (debajo de Criteria) escribe 10 para el campo Número Técnico. 4. Corre el query.

Organizar datos en un Query

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente.

Page 49: Ejemplo arquitectura 3 capas con access

2. Da un clic en Edit y otro en Clear Grid. 3. Incluye el campo Ciudad. 4. Da un clic en la fila Sort debajo de Ciudad. 5. Da un clic en Ascending 6. Corre el query.

Unión de tablas

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Apunta a cualquier parte de la hoja superior y presiona el botón derecho del

ratón. 4. Da un clic a Show Table y selecciona la tabla Técnico. 5. Da un clic en el botón Add y cierra la caja de diálogo "Show Table". 6. Incluye los campos del Número Cliente y Número Técnico de la tabla Cliente y

el Nombre y Apellidos de la tabla Técnico. 7. Corre el query.

Restringir récordes en una unión de tablas

Al momento de unir los campos de dos o más tablas puede restringirse el número de récordes mediante el uso de criterios. Por ejemplo, se puede incluir el campo Factura y poner como criterio limitante haber facturado de $500.

Uso de fórmulas en un query

Computar campos

1. Da un clic en el botón Desing View. 2. Remueve la Tabla Técnico:

o Presiona el botón derecho del ratón en cualquier campo de la Tabla Técnico.

o Da un clic en Remove Table. 3. Incluye los campos de Número Cliente y Compañía. 4. Da un clic con el botón derecho en la tercera columna de la fila Field: (hoja

inferior) y luego da un clic a Zoom. Escribe Cantidad pendiente: [Factura]-[Pago] en la caja dialógica del Zoom.

5. Da un clic al botón OK. 6. Corre el query.

Cálculos estadísticos

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Da un clic con el botón derecho en la hoja inferior. 4. Selecciona Totals del menú e incluye el campo de Factura. Ahora se incluyó la

fila Total en el "Design Grid", cuya entrada es Grou By. 5. Da un clic a la flecha de la fila de Total y selecciona Avg. 6. Corre el query.

Page 50: Ejemplo arquitectura 3 capas con access

Uso de criterios en el cálculo estadístico

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Incluye el campo de Número Técnico 3. Da un clic con el botón derecho en la fila Total bajo Número Técnico. 4. Selecciona Where. Después escribe 10 como criterio en la fila Criteria: para el

campo de Número Técnico. 5. Corre el query.

Cálculos por grupos

1. Vuelve a la ventana Query1: Select Query de la tabla Cliente. 2. Da un clic en Edit y otro en Clear Grid. 3. Incluye los campos de Número Técnico y Factura. 4. La entrada de la fila Total para el Número Técnico debe ser Group By y para

Factura Avg. 5. Corre el query.

Guardar el query

1. Da un clic de File/ Save. Guárdalo con el nombre de Promedio facturado por técnico.

2. Da un clic en OK.

.

CROSSTAB QUERIES

 

El tipo de query crosstab transforma los datos record-oriented en una vista resumida row-column oriented que recuerda la hoja electrónica de Excel. Imagínate que quieres exhibir los distintos precios de uno o varios artículos suministrados por distintos suplidores. Mediante un crosstab query puedes resumir los datos en una hoja de orientación fila-columna, donde el título o encabezamiento de la fila representa los distintos artículos o productos que suministran los distintos suplidores, y el título o encabezamiento de la columna representa el nombre de los suplidores o compañías.

 

  Nombre del artículo

Suplidor 1 Suplidor 2 Suplidor 3

  Artículo 1 9.99 8.50 11.00  Artículo 2   150.95    Artículo 3 69.00 55.83    Artículo 4 367.11 350.39 366.55

 

Page 51: Ejemplo arquitectura 3 capas con access

Para añadir un crosstab query en el panel inferior del query, elige el objeto Query, y luego Cosstab Query. Exhibe la tabla Suplidor en el panel superior. El diseño para este crosstab query te lo presento a continuación:

 

       

Field: NombreProducto NombreSuplidor Return on EquityTable: Suplidor Suplidor SuplidorTotal: Group By Group By Avg

Crosstab:

Row Heading Column Heading Value

Criteria:      Or:      

       

 

ACTION QUERIES

 

Un action query cambia potencialmente los datos en una tabla existente, o crea una nueva tabla. Acces permite crear cuatro clases de action query:

 

Un update query reemplaza datos en un record existente. En el diseño de la actualización de un query, se selecciona el criterio para identificar los récords a los que se va a hacer referencia, y luego se provee una expresión que genera el reemplazo de los datos. Esta acción se utiliza, por ejemplo, para actualizar un grupo de records cuando cambia el área code, asi como para actualizar el precio, como se presenta a continuación:

 

       

Field: SuplidorID PrecioDetal  Table: Suplidores Productos  

Update To:   [PrecioDetal]*1.05

 

Criteria: [Enter Supplier Number]    Or:      

       

 

Este diseño toma datos de dos tablas e incluye un parámetro para añadir 5% a la cantidad que está en el campo PrecioDetal para todos los récords que parean con el código de suplidor que se entre.

 

Page 52: Ejemplo arquitectura 3 capas con access

Un make-table query crea el objeto de una nueva tabla como resultado del query mismo. Por ejemplo, puedes construir un query que produzca una lista de todos los clientes que no ordenaron productos durante un año y copiar estos récords en una tabla de Clientes Inactivos. Este tipo de query no afecta a la base de datos.

El append query añade nuevos récords a una tabla existente de un query original. Este tipo de query se usa generalmente cuando se importan datos de una fuente externa.

Un delete query remueve récords que parea los criterios especificados de una base de datos.

http://dianakids.tripod.com/diseno/bd02d.htm

DISEÑO DE APLICACIONES