lunes, 28 de abril de 2014

Fundamentos de bases de datos y diseño con MS Access: consultas. Parte4

Además de los formularios y subformularios, en un sistema de información fundamentado en el uso de bases de datos, también es necesario el uso de consultas, informes y procedimientos programados. Las "consultas" constituyen formularios especializados en el filtrado de la información de las tablas de MS Access. En otras palabras, las consultas en Access son equivalentes a las consultas SQL realizadas directamente en bases de datos MySQL. Los informes en MS Access suponen una vista de datos destinada a la impresión bien sea por vía impresora o PDF. Finalmente los procedimientos programados constituyen un mecanismo fundamental para el control de los procesos en los formularios. También denominados "macros" son un conjunto de órdenes o funciones pre-programadas, que combinadas pueden desempeñar ciertas tareas o procesos automáticos en el entorno del formulario.

Consultas
Las consultas en MS Access permiten mostrar información de una o varias tablas relacionadas empleando para ello uno o varios filtros, también denominados "criterios". Estos criterios pueden ser simples, cuando se basan en los términos introducidos por el usuario, o complejos cuando son programados con el "generador de expresiones". Existen varios métodos para crear consultas. A continuación se exponen los más recomendables:
  • Asistente para consultas
    Menú Crear -> Asistente para consultas -> Asistente para consultas sencillas -> Seleccionar tabla -> seleccionar campos a visualizar en la consulta -> Seleccionar consulta en detalle -> Asignar nombre a la consulta con el prefijo "cons-" -> Modificar el diseño de la consulta -> Añadir los criterios de la consulta -> Ver consulta.
  • Utilizar un formulario para crear una consulta
    Abrir formulario creado anteriormente para la tabla objetivo -> Menú inicio -> Opciones de filtro avanzadas -> Filtro por formulario -> El formulario aparecerá en blanco, sin registros. Se deben introducir los valores de la consulta en los campos vacíos. (En el margen inferior aparecen las pestañas Buscar y Or que corresponde al tipo de consulta Booleana que se aplica en MS Access) -> Una vez determinados los parámetros o valores de consulta -> Aplicar filtros -> Acto seguido la información de la tabla aparecerá filtrada en el formulario directamente.
Convertir la consulta en un buscador
Siguiendo el modelo del operador "Como" traducción del operador  "LIKE" utilizado en SQL se puede crear un método de interrogación o consulta sencillo para buscar en un determinado campo de la consulta, tal como establece la documentación oficial. Tan sólo hay que introducir el siguiente código, véase tabla1, en el apartado de criterios de consulta del campo correspondiente y adaptarlo al caso.


Como [Introduzca Título:] & "*"
El operador “Como” actúa como operador de comparación similar a “LIKE” utilizado en las consultas SQL. El contenido entre corchetes corresponde al título que se desea mostrar en el cuadro de búsqueda. El ampersand indica que la consulta se realiza con el término introducido entre comillas dobles que contiene truncamiento automático. De esta forma cualquier palabra introducida será recuperada en la tabla.
Tabla1. Operador "Como" de consulta

Formularios basados en consultas
Una forma de elaborar formularios especializados es crear las consultas de las tablas que filtran previamente la información en ellas introducida. Por ejemplo la tabla "autoridades" puede contener múltiples tipologías que pueden ser filtradas previamente, creando una consulta para cada tipo de autoridad. Posteriormente se pueden crear formularios de autoridades especializados en autoridades personales, autoridades corporativas, entre otras tomando como "origen de datos" la consulta previamente creada.

Edición experta de las consultas
Las consultas en MS Access al igual que las relaciones que se establecen en las tablas de la base de datos están basadas en SQL. Por tanto, resulta posible modificar las consultas, editando su código SQL. Tomando una consulta ya terminada, dentro de los tipos de vistas para las consultas aparecerá la opción SQL. Al cargar la consulta en modo SQL se mostrará una sentencia que contiene la cláusula SELECT que indica selección de campos, los campos propiamente dichos que se muestran en la consulta, la cláusula FROM que identifica la tabla de origen de los datos y finalmente si fue establecida alguna condición, la cláusula WHERE tras las cuál aparecerán las condiciones de las consultas.
  • Ruta de acceso para la vista SQL
    Abrir consulta ya existente -> Menú Inicio -> Vistas -> Vista SQL
  • Ejemplo de consulta SQL en MS Access
    SELECT autoridades.[id], autoridades.[id_tipoautoridad], autoridades.[denominacion], autoridades.[fechaextrema1], autoridades.[fechaextrema2], autoridades.[descripcion], autoridades.[id_lugar] FROM autoridades;

martes, 22 de abril de 2014

Ejemplo de edición de formularios y subformularios en base de datos MS Access

Con el objetivo de poner en práctica lo estudiado en torno a los formularios y subformularios se proporciona el siguiente ejemplo de la base de datos biblioteca_v02.accdb, disponible para su descarga en el siguiente enlace.

Descargar biblioteca_v02.accdb

Cambios producidos
Para la presente versión de la BD biblioteca se han realizado algunos cambios relativos al almacenamiento de las autoridades. Si bien en la versión anterior el campo "autoridades" de la tabla "catalogo" había sido diseñado para almacenar varios valores, en este caso ha sido reemplazado por tres campos de autoridades "id_autoridad1", "id_autoridad2" e "id_autoridad3" con el objetivo de almacenar una autoridad en cada campo foráneo. Ello no significa que el método de almacenamiento de varios valores sea incorrecto, ya que suele ser empleado para almacenar varios valores en vista de hoja de datos. Pero para el ejercicio relativo a formularios y subformularios es más conveniente un tratamiento de las autoridades individualizado que permita elaborar los subformularios necesarios para visualizar toda la información de la tabla relacionada de las autoridades, tal como se puede comprobar en el ejemplo.

Los formularios y subformularios
La base de datos de la biblioteca_v02 incluye varios formularios de ejemplo entre los que destaca el formulario "form-catalogo" y los subformularios "subform-autoridades" y "subform-regostros", puesto que representan un buen ejemplo del significado de relaciones entre tablas y su visualización mediante formularios y subformularios. Por otra parte se ha introducido un sencillo menú de navegación que permite el acceso a terceros formularios de acuerdo a las necesidades de edición de cada caso y manteniendo el esquema de procesos de la cadena documental.

Formulario "form-catalogo"

  • Introduce los campos foráneos propios de la tabla "catalogo" y los campos de denominación relacionados por dichos campos foráneos que son los siguientes: [estadocatalogacion].[denominacion], [tipodocumento].[denominacion], [lugar].[denominacion], [editorial].[denominacion]
  • El formulario del catálogo consta de 4 subformularios embebidos. Los tres primeros corresponden a las autoridades y el cuarto a los ejemplares vinculados de cada ficha catalográfica.

Subformularios "subform-autoridades1,2,3"

  • Cada subformulario establece relaciones del tipo "[catalogo].[id_autoridad1] - [autoridades].[id]", "[catalogo].[id_autoridad2] - [autoridades].[id]" y "[catalogo].[id_autoridad3] - [autoridades].[id]". Por medio de este tipo de relaciones es posible mostrar la información de la autoridad relacionada en el cuadro del subformulario.
  • Los subformularios de autoridades originalmente tenían un modo de visualización de tipo "hoja de datos" similar al de una hoja de cálculo. Para cambiar su apariencia es necesario acceder a la hoja de propiedades del elemento -> pestaña Formato -> Vista predeterminada -> modificar el modo de visualización por "un único formulario". De esta forma es posible editar el subformulario en vista diseño al igual que un formulario normal.
  • La propiedad de "Formato" barras de desplazamiento figura como "Ninguna", se han inhabilitado los selectores de registro, los botones de desplazamiento y los separadores de registros para que el cuadro del formulario esté libre de controles y sirva como superficie de visualización de datos vinculados.

Subformulario "subform-registros"

  • El subformulario registros permite mostrar los ejemplares vinculados a la ficha catalográfica. La relación que se establece es la siguiente: "[catalogo].[id] - [registros].[id_catalogo]"
  • Dado que para una ficha catalográfica pueden existir múltiples ejemplares el modo de visualización de tipo "hoja de datos", puede que no sea el más adecuado. Por ello es modificado por el modo "Formularios continuos" que mostrará una sucesión de formularios según el número de registros a mostrar. Esta solución permite una maquetación del formulario y la visualización de los registros en lista.

Formulario "index"

  • El formulario "index" es el primer formulario del sistema de información que permite mostrar todas las opciones, accesos y formularios. El objetivo del formulario es redirigir al usuario al formulario que necesita para su edición. 

Formulario "workflow"

  • El formulario "workflow" está diseñado sobre un diagrama o flujo de trabajo que puede identificarse con la cadena documental, en cuyas fases puede observarse la presencia de un botón de redirección a un formulario concreto que permite desempeñar las actividades y funciones establecidas para cada fase del flujo de trabajo. Es de gran utilidad cuando la información es sometida a un tratamiento largo y complejo.

Tabla y formulario de ayuda "ayuda" - "form-ayuda"

  • Se introduce una tabla nueva denominada "ayuda" en la que se definen las preguntas y respuestas sobre el uso del sistema de información, sus formularios y tablas. Es obligatorio crear este tipo de mecanismos de asistencia para el usuario y que estén disponibles o visibles en todos los formularios del sistema, ya que suponen la documentación e instrucciones de uso del mismo.

martes, 1 de abril de 2014

Fundamentos de bases de datos y diseño con MS Access: formularios y subformularios. Parte3

Una vez creadas las tablas y campos que conforman la base de datos, puede afirmarse que la estructura de almacenamiento está preparada para recibir y guardar información. Sin embargo no toda la información puede introducirse directamente de una forma adecuada, es decir, muchos registros de las tablas son dependientes del procedimiento documental que se lleve a cabo en el sistema de información. Por ejemplo una tabla que registre pedidos o la circulación del préstamo en una biblioteca puede tener múltiples cambios entre sus datos. Y tales cambios son propiciados por la introducción de un formulario que actúa a modo de interfaz entre el usuario y la base de datos. En este apartado, se determina una forma de proceder a la hora de crear formularios. Los pasos a seguir son los siguientes:

Introducir registros de prueba
Antes de crear los formularios pertinentes para la base de datos, resulta fundamental crear varios registros de prueba en todas las tablas y con todos los campos de descripción. De esta forma es posible asegurarse de que están presentes todos los campos necesarios y efectuar correcciones antes de comenzar con el proceso de creación de los formularios. Si este paso se toma a la ligera, al crear los formularios y estar directamente vinculados con la estructura de las tablas, implica un doble trabajo de modificación en caso de fallo o error. Por tanto es muy aconsejable tener muy en serio la introducción de datos básicos iniciales. Esta prueba también permite observar si las relaciones establecidas entre tablas mediante campos foráneos y el asistente para búsquedas, funcionan correctamente. Por otra parte, se recomienda introducir datos verosímiles a fin de poder determinar si la información que se tratará de gestionar es correctamente recogida en los campos disponibles, si es necesario ampliar la extensión de los campos o modificar el tipo de campo. 

Crear formularios
Los formularios son el interfaz de edición que habitualmente utilizan los usuarios para interactuar con las bases de datos. Permiten establecer un método de trabajo para tratar la documentación y la información que se almacena en las tablas, permitiendo un flujo de trabajo, también conocido como workflow. El flujo de trabajo en casi todos los casos puede ser identificado con la cadena documental de la unidad de información y documentación. Por ejemplo un despacho de abogados no sólo registra la información de los procesos legales sino que los relaciona con sus fuentes legales, resoluciones ya existentes, fallos jurídicos, personas e instituciones implicadas, que se suceden a lo largo del proceso legal. Por tanto puede afirmarse que no toda la información se encuentra disponible desde el principio, suponiendo una labor de varias personas y departamentos la edición de un mismo registro desde diversos puntos de vista. Profundizando en el ejemplo, a la fase de "demanda" le sigue la "contestación de la demanda", "la apertura a pruebas", la fase de "alegatos", los "autos para sentencia", la "sentencia", los "recursos de apelación y de alzada" y finalmente una "sentencia firme". Cada uno de los estadios implica un tratamiento del caso y un enriquecimiento constante de información, nuevos documentos, que aportan múltiples actores y que contribuyen a crear el flujo de trabajo al que antes se aludía. En una biblioteca sucede igual, el proceso de "selección", "identificación", "precatalogación", "catalogación", "clasificación", "indización", "vaciado" y finalmente "recuperación de información". Para cada una de las fases que se determina clave y determinante en el proceso o flujo de trabajo se requerirá un formulario. Por definición y añadido a lo que se ha referido, también se crearán tantos formularios como tablas tenga la base de datos. De esta forma el usuario puede editar la información de cada tabla o bien introducirse en la cadena documental o proceso de trabajo en el que debe editar la información. Volviendo al caso del despacho de abogados, cada departamento tendría un formulario sobre el que centrar su trabajo, editando una parte muy concreta de un registro. Dicho de otra forma, el proceso legal se construye gracias a la cooperación entre departamentos con formularios especializados en cubrir cada apartado o cada fase del proceso. De tal forma que el departamento encargado de demandas, registra la demanda de los clientes, describiéndola por completo y añadiendo las pruebas correspondientes. A continuación el departamento jurídico, guarda la contestación para dicha demanda y los alegatos de la parte contraria y así sucesivamente con el resto de departamentos hasta completar el proceso jurídico-legal. Resulta obvio que los datos introducidos en la primera fase repercuten en el resto de fases y procesos, tales aspectos deben ser tenidos en cuenta en el diseño de los formularios. Por ejemplo, volviendo al caso de la biblioteca, en el momento de la fase de identificación en el que se detecta que el documento es una fotografía y no una monografía, tal hecho debe causar importantes cambios en el modelo de formulario para la catalogación. De hecho, aunque existen campos de descripción análogos tanto para la fotografía como para la monografía, no son el mismo material y ambos tipos documentales tienen campos de descripción diferenciados. Por tanto, deben existir formularios para la catalogación de los distintos tipos documentales si se desea realizar un trabajo documental de calidad y un correcto proceso de catalogación. Por tanto se deben recordar las siguientes reglas:
  • Cada tabla debe tener su correspondiente formulario.
  • Si existe un flujo de trabajo, deben crearse los formularios necesarios para emular todas sus fases, de forma tal que pueda tratarse la información o la documentación en cadena por varios administradores o departamentos. Ello implica un profundo conocimiento de la institución o centro de información y documentación para el que se está desarrollando el sistema de información.
  • Si una determinada tipificación implica distintos campos de descripción para el registro, deben diseñarse diversos formularios o plantillas para la introducción de los datos correspondientes de acuerdo al modelo de descripción.
Tipos de formularios
  • Formulario de inserción de datos. Formularios cuya única función es la introducción de registros o datos. Suelen corresponder a tablas con un alto número de campos y cuya estructuración suele ser compleja.
  • Formulario de inserción y edición. El formulario combina la introducción de datos y su edición o modificación. Por ende se permite la navegación y filtrado de los registros.
  • Formulario de recuperación. Formulario con campos de búsqueda, que permite desencadenar el proceso de recuperación sobre una serie de tablas de la base de datos.
  • Formulario de navegación. Son formularios cuyo propósito es permitir el acceso a terceros formularios. Por ejemplo un formulario con un menú de opciones que correspondan a los formularios de  edición de las distintas tablas de la base de datos. Un formulario de navegación típico también es aquel que representa el diagrama del flujo de trabajo o cadena documental y los accesos correspondientes a los formularios de cada fase definida en dicho diagrama. 
Método para la creación de formularios
  • Crear formulario en blanco
  • Menú superior -> Crear -> Crear formulario en blanco -> Lista de campos -> Seleccionar tabla  -> Arrastrar campos al formulario en blanco
  • Al arrastrar un campo al formulario en blanco, aparece un apartado de campos disponibles en tablas relacionadas, de forma tal que es posible introducir campos de terceras tablas para la visualización de información complementaria.

Crear subformularios
Los subformularios son formularios integrados dentro de otros formularios y tienen como objetivo proporcionar registros relacionados con respecto al que se está editando en el formulario portador. Por ejemplo el formulario correspondiente al catálogo de la biblioteca puede contener un subformulario que haga posible la visualización de los registros correspondientes a los ejemplares de las fichas catalográficas registradas en la tabla catálogo. Esta información es importante para poder observar información complementaria constituida por múltiples campos de descripción correspondientes a tablas relacionadas. 

Método para la creación de subformularios
  • Una vez creado el formulario principal se puede crear el subformulario
  • Abrir el formulario principal en modo vista diseño -> Observar el cuadro de herramientas de diseño -> Seleccionar icono de subformulario/subinforme -> Crear recuadro sobre la superficie de edición del formulario -> al soltar el botón cuando se crea el recuadro, aparece una ventana de diálogo con el asistente para la creación de subformularios -> Seleccionar la tabla relacionada que se desea mostrar en el subformulario -> Definir relación entre la tabla del formulario principal y la tabla del subformulario (también es posible elegir una relación sugerida por el asistente) ->  asignar denominación al subformulario.

Edición y maquetación
  • Todos los formularios deben incorporar un encabezamiento que proporcione un diseño uniforme con respecto al resto de formularios del sistema, el título de la aplicación, subtítulo de la aplicación y título o nombre del informe.
  • Normalización de la apariencia de todos los formularios en el sistema de información. 
  • Todos los formularios deben incorporar un menú de navegación básico que permita acceder al resto de formularios para la edición de todas las tablas del sistema.
  • Cada formulario debe contener todos los campos necesarios para realizar las funciones de edición, inserción y recuperación según el caso. 

Consideraciones 
  • Los nombres de los formularios deben ser cortos y suficientemente denotativos y claros del contenido que van a gestionar. Es muy recomendable emplear algún tipo de prefijo que identifique claramente el formulario del subformulario. Por ejemplo el prefijo "ff", "ff-", "form-" identifican formularios. Los prefijos "sff", "sff-", "subform-" identifican los subformularios. El resto de reglas de denominación para tablas y campos tienen igual aplicación en el caso de los formularios y subformularios.
  • En MS Access no está permitido el uso del guión bajo (_) en la denominación de formularios y subformularios.