Detalle

Ejercicios Tema 6. BDO. Ejercicio 1. Formularios Maestro/Detalle. Construir un formulario maestro detalle de conductor con viajes que muestre el num...
49 downloads 2 Views 947KB Size
Ejercicios Tema 6.

BDO.

Ejercicio 1. Formularios Maestro/Detalle. Construir un formulario maestro detalle de conductor con viajes que muestre el numero de viajes de ese conductor, numero de kilómetros del conductor, numero de días trabajados y plus que ha cobrado por 3 céntimos por kilómetro realizado. Partimos de un formulario base creado con el asistente sobre la tabla conductor en formato columna:

Sobre la barra de herramientas activamos el asistente y seleccionamos el control SubFormulario/Subinforme:

Activado el asistente comenzamos la creación del subformulario desde la siguiente ventana de inicio:

Enrique Mora Moral.

Pag. 1/9

Ejercicios Tema 6.

BDO.

Activamos el asistente y escogemos la opción “Usar tablas y consultas existente” para que de forma automática construya un formulario propio que se usará como subFormulario. Escogemos las tabla viajes y en principio todos sus campos:

Al pulsar el botón siguiente accedemos a la ventana donde se muestran las posibles relaciones entre los campos:

Enrique Mora Moral.

Pag. 2/9

Ejercicios Tema 6.

BDO.

En nuestro caso, debido a un diseño bien construido, basta con “Elegir de una lista” escogiendo “Mostrar viaje para cada registro de conductor usando cCndNif” que coincide con la clave principal de la tabla conductor y como clave foránea de la tabla viaje. Por último, para la creación de nuestro subformulario le asignamos un nombre para poderlo identificar dentro del entorno de Access:

Hemos activado el Asistente para que se construya este formulario sobre el que poder trabajar. Si el proceso se realiza manualmente, el subformulario se enlaza al formulario del sistema que abre tablas en el formato básico y es imposible modificar su diseño. El subFormulario es totalmente operativo pero el formato que presenta no muestra ni el “Encabezado” ni “Pie” de formulario donde colocar los totales que se piden en el enunciado del ejercicio. Para poder mostrar Enrique Mora Moral.

Pag. 3/9

Ejercicios Tema 6.

BDO.

dichos elementos accedemos a las propiedades del subformulario y cambiamos la propiedad “Permitir vista Formulario” al valor “Formularios continuos”:

La estructura de nuestro nuevo diseño es el columna, para construir un formato tabular alineamos todos los cuadros de texto en una fila y ajustamos la altura del “Detalle” del subformulario a lo mínimo. Por último, borramos las etiquetas y colocamos unas nuevas etiquetas en el “Encabezado del informe”. No permite arrastrar las etiquetas directamente del “Detalle” al “Encabezad” pero podemos cortar y pegar. Obtenemos por fin, el siguiente diseño base:

Continuamos introduciendo un el campo calculado en la zona detalle del subFormulario. Introducimos un cuadro de texto a la derecha de “nVijKlm” y modificamos las siguientes propiedades:

Enrique Mora Moral.

Pag. 4/9

Ejercicios Tema 6.

BDO.

Es conveniente cambiar el nombre para tener los controles identificados y es indispensable cambiar el “Origen del control” para que tome el valor de la expresión correspondiente. Si se produce un error en la formula del origen del control se muestra en la ejecución del formulario y se puede propagar a otros Cuadro de texto con expresiones correctas. La técnica de construcción del campo calculado es semejante a la anterior, pero en este caso, se coloca en el “Pie” del formulario. Volvemos a cambiar las dos propiedades anteriores a los siguientes valores, que corresponde al campo que cuenta el numero de viajes que ha realizado el conductor:

Enrique Mora Moral.

Pag. 5/9

Ejercicios Tema 6.

BDO.

Para calcular el numero de kilómetros que ha realizado dicho conductor en sus distintos viajes:

Y para calcular, el importe total del plus por kilómetros realizados:

Indicamos que no podemos utilizar el campo calculado como parte de la expresión dentro de un campo totalizado.

Enrique Mora Moral.

Pag. 6/9

Ejercicios Tema 6.

BDO.

Ejemplo 2. Llamada a formularios de consulta. Formulario sobre Viajes que pida en un botón la matricula del autobus sobre un formulario de autobuses y otro botón para pedir el conductor sobre un formulario sobre conductores. Partimos de un formulario creado con el asistente sobre la tabla Viajes al que añadimos dos botones para seleccionar el nif del conductor y la matricula del autobús:

Antes de comenzar a trabajar con estos botones le modificamos la etiqueta por defecto y le cambiamos el nombre al control. Por ejemplo, cmdSlcCnd para el acceso al nif del conductor y cmdSlcMtr para seleccionar la matricula del autobús. Una vez modificados los nombre podemos asignarles código, que en este caso será abrir el formulario consultaConductor y consultaAutobus que crearemos a continuación. Resultando el siguiente código:

Los dos formularios anteriores son semejantes, vamos a desarrollar consultaAutobus, partimos de un formulario en formato tabular creado sobre la tabla autóbus al que añadimos un par de botones para seleccionar una matricula y otro para cerrar el formulario sin hacer nada:

Recordar que tenemos que cambiar la etiqueta y el nombre a los botones inmediatamente después de Enrique Mora Moral.

Pag. 7/9

Ejercicios Tema 6.

BDO.

insertarlos. Para este tipo de formularios podemos asignarles la propiedad modal, para que no podamos volver a la ventana inicial hasta cerrar la ventana de selección/consulta:

El código de los botones de este formulario quedaría:

Ejercicio 3. Ejemplo sobre Filtros. Formulario sobre la tabla revisión donde con un botón filtre todas las revisiones de un autobús, otro botón filtre las revisiones de un mecánico un botón y dos cuadro de texto filtre las revisiones entre dos fechas y un botón para anular cualquier filtro. Partimos de un formulario de tipo tabular sobre la tabla revisiones, creado con el asistente, al que añadimos los siguientes elementos: ● Botón Filtrar autobús: cmdFltAtb ● Botón filtrar mecánico: cmdFltMcn ● Cuadro de texto independientes fechaInicial y fecha final: txtFchI y txtFchF ● Botón filtrar fecha: cmdFltFch ● Botón quitar filtros: cmdQtrFlt Con el siguiente diseño base:

Enrique Mora Moral.

Pag. 8/9

Ejercicios Tema 6.

BDO.

Lo único que nos falta es asignar el código a los distintos botones para activar los filtros:

El sistema de Filtros se semejante a la clausula Where de la sentencias select. Básicamente se monta una condición en una expresión de tipo cadena (String). Esta expresión se asigna a la propiedad Filter del formulario (en este caso Me) y se activa el filtro asignando verdadero (True) a la propiedad FilterOn del formulario. Los filtros se eliminan poniendo a falso (False) la propiedad FilterOn del formulario. Observese el uso de símbolo # como delimitador de fechas. Una constante fecha como 28 de febrero del 2009 se establece como #18/02/2009#. Utilizándose el símbolo # como las “” para cadenas de caracteres. Como hemos comentado anteriormente se utiliza en SQL la comilla simple ' para indicar un cadena de caracteres, en Access y en otro entornos como PHP se utiliza las comillas doble “” como delimitadores de cadenas de caracteres. Se intentará montar en la cadena de filtro una expresión idéntica al formato SQL de la clausula Where en Access, introduciendo las comillas simples y demás elementos del SQL de Access. El formato de Filtro es totalmente compatible con los filtros generales de Access, pudiéndose mezclar los efectos de los botones anteriores con los filtros que por defecto se pueden activar y desactivar desde Access.

Enrique Mora Moral.

Pag. 9/9