Arquitectura de tres capas con Access para la base de datos
1. 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
2. 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
3. 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
4. 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.
5. 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
√ 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
6. 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.
7. ¿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.
8. 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
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
9. 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.
Propiedades Observaciones
Primary
Field Name Data Type Decimal
Key Caption
Place
Text Si ID
ProductoID
NombreProducto Text Nombre
SuplidorID Text Este campo se utiliza
para relacionar la tabla
de Suplidores con esta
tabla.
CantidadStock Number
10. PrecioVenta Currency Precio 2
Venta
PedidoID Text Num Este campo se utiliza
Orden para relacionar la tabla
de Órdenes con esta
tabla.
4. Cierra la tabla y la nominas como producto.
Table2 (cliente)
Primary Propiedades Observaciones
Field Name Data Type
Key Caption Input Mask
Text Si ID
ClienteID
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 Forma Incluir como alternativas:
Wizard… Pago Visa, MasterCard, ATH,
Cheque, CASH, Otra.
NumeroCuenta Text Número
Cuenta
Cierra la tabla y la nominas como cliente.
11. 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
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.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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 Para mover uno de los dos Para modificar el tamaño, activa
mismo tiempo: activa uno de los objetos: activa cualquiera de los el objeto que deseas modificar,
dos, apunta hacia los bordes dos objetos, apunta hacia la apunta hacia los indicadores del
superior o inferior del objeto esquina superior izquierda del borde, cuando aparezca la línea
activado, cuando aparezca la objeto que quieres mover, de doble flecha, arrastra el ratón
mano abierta, mueve los cuando aparezca la mano en la dirección deseada.
objetos. señalando con el dedo índice,
mueve el objeto.
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.
17. 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 Access
TERCERA 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.
18. 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:
19. 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 El objeto o control independiente es El control de cálculo se utiliza para
un objeto o control asociado a un un objeto o control no asociado a un crear cálculos estadísticos y
campo de una tabla o consulta (Query) campo de una tabla o consulta (Query) matemáticos.
adyacente. 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.
20. 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.
21. 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
22. 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,
23. 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 Access
SEGUNDA 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.
24. 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.
25. 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: ClienteI ProductoI PrecioPublic NombreClient ApellidosClient Direccion Ciuda CuentaNumer NombrePro
D D o e e s d o d
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).
26. 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:
27. 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):
Propiedades
Objeto Etiqueta
Name Format Input Mask Control Source
Text 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
FACTURA Font:: Tamaño 16, Color azul
Header)
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.
28. 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 T
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:
29. 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.
30. 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)
31. 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:
Observaciones
Data Primary Propiedades
Field Name Input
Type Key Caption DecimalPlace
Mask
Text Si ID
EmpleadoID
NombreEmpleado Text Nombre
Apellidos Text
SeguroSocial Text S.S. Soc. Sec. Al entrar el Input
Num Mask (mascarilla)
guarda la tabla
como empleado
SalarioHora Currency Salario/Hora 2
HorasTrabajadas Number Horas
Trabajadas
FechaPago Text Fecha de Short
Pago 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.
32. 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):
Propiedades
Objeto Etiqueta Name Format Input Control Source
Mask
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 PagoExtra =([SalarioHora]*2)*[Extra]
Extras
Text Box Total Neto =[Total]+[PagoExtra]-[IncomeTax]-[Retiro]-
[Asume]
Label Retenciones
2 Rectangle
Label (en el
Nómina Font:: Tamaño 16, Color azul
Header)
33. Jugando con las fórmulas
Podemos reducir los objetos de control de cálculo agrupando los datos.
34. 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
de las ventas o los campos de Cantidad y Precio:
35. 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
36. 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:
Propiedades Observaciones
Data Primary Input
Field Name
Type Key Caption
Mask
Text Si ID Suplidor
SuplidorID
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 Foto
Object
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
utiliza para
37. 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:
38. Propiedades Observaciones
Primary Input Decimal
Field Name Data Type
Key Caption
Mask Place
Text Si ID del
PedidoID pedido
FechaPedido Date/Time Fecha Short Date Al entrar el Input
Mask (mascarilla)
guarda la tabla como
pedidos.
ProductoID Text ID Este campo se utiliza
Producto para relacionar la
tabla de producto con
esta tabla.
NombreProducto Text
CantidadPedido Number
PrecioSuplidor Currency Precio 2
Supl
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.
39. 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.
40. 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:
41. 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 Box
1. 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...
42. 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.
43. 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 Access
SEGUNDA 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
44. 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 Número técnico
Cliente Compañía Dirección Ciudad Estado ZipCode Factura Pago
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.
45. 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 creada
2. Entra datos imaginarios correspondientes a los tres Números Técnico (09, 10 y
15).
Tabla del técnico
Número Zip
Técnico Apellido Nombre Dirección Ciudad Estado Code HorasTrabajadas
46. SalarioHora
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")
47. 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:
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".
48. 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.
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.
49. 4. Corre el query.
Organizar datos en un Query
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 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.
50. 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.
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 Suplidor 1 Suplidor 2 Suplidor 3
artículo
Artículo 1 9.99 8.50 11.00
Artículo 2 150.95
51. Artículo 3 69.00 55.83
Artículo 4 367.11 350.39 366.55
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 Equity
Table: Suplidor Suplidor Suplidor
Total: 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:
52. 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.
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