Accesspracticacompleta Access
Accesspracticacompleta Access
Accesspracticacompleta Access
Objetivo de la Prctica: Crear una base de datos Access desde cero analizando el caso de estudio. Disear y configurar los objetos principales como tablas, relaciones, consultas, formularios e informes.
Fichero de referencia: --GUIN DE LA PRCTICA En esta prctica vamos a crear la base de datos BIBLIOTECA.
Tablas
Campos a definir para la tabla SOCIOS.
Tamao 12
Formato
Valor Predeterminado
Requerido Si Si Si
Tamao 3
Formato
Requerido Si Si
Euro
Tamao
Formato
Requerido Si Si Si
Requerido Si Si
Tamao 3
Requerido Si Si
Tamao
Formato
Mscara Entrada
Valor Predeterminado
Requerido Si Si
Campos a definir para la tabla PRESTAMOS. Nota: Se prestan los libros por tres das, de forma que a partir del tercer da empieza a contar los das de retraso.
Tamao
Requerido Si Si Si Si
Relaciones
Crea las relaciones entre las tablas exigiendo integridad referencial.
Datos
Rellena las tablas de la base de datos con los datos que se muestran a continuacin. Pare evitar mensajes de error relacionados con la integridad referencial, rellena primero las tablas de clave primaria que no contengan claves secundarias.
PAGOS id_pago
pagado
id_socio 1 3
01/10/1999 Q
4 2 5 1 7
E E E E E
2 7 3 1 2 3 5 4
lo oliosizooz 11 oliosizoos E
12 13 14 15 15 17 01/08/2000 01/11/1999 01/12/1999 01/02/2010 01/11/2005 01/01/2005 01/07/2002
E E
01/10/2000 111
la
19
E PRESTAMOS idprestamo 1 2 3 4 5 6 7 fecha_salida 12/10/1999 12/10/1999 17/10/1999 21/10/1999 12/11/2005 02/12/2006 12/03/2002 02/12/2009 12/05/200B 08/07/2002 05/12/2009 13/05/2008 14/08/2002 15/11/2005 07/12/2006 fecha_devoluc 15/10/1999 16/10/1999 20/10/1999 retraso dias_retrasa 0 1 id_socio - id_libro 1 1 2 3 4 4 2 6 7 5 2 3 2 4 5 6 7 5 4 4 id_empleado 1 1 2 2 3 3 2 2 2 1
o
0
o
2 O
a
9 10 SECOONES id seccion E COM E GEN HIS E INF E LIT
o
3
se cci on Comics General Historia Informtica Literatura nif nombre apellido2 Prez Gmez Loureda Caso Martnez Pereiro Gmez direccion - ciudad - cp - provincia -
socios
id_socio E E E E E E E I apelllidol Arias Loureda Varela Alcaraz Prez Sousa Me ce ira 1 32.534.343-H Luis 2 75.673.435-U Ana 3 23.343.434-5 Cecilia 4 74.353.535-0 Eduardo 5 79.505.943-N Elisa 5 30.581.203-M Gabriel 7 80.209.802-U Carlos C/ Paradela 24 A Corua 15.003 A Corua C/ San Luis 32 Sada 15.098 A Corua C/ Principal 12 Vilagarcia 35.554 Pontevedra C/ Mariscal 43 Vilagarcia 35.554 Pontevedra C/ Hospital 32 Betanzos 15.443 A Corua C/ Canales 22 Lugo C/ Los Pjaros Vigo 26.554 Lugo 55.554 Pontevedra
telefono (981)234-23-42 (981) 343-43-43 (986) 334-43-33 (986) 332-23-33 (981)443-34-44 (955) 234-24-23 (985}234-23-42
fecha_baja
foto
observaciones -
10/03/2007 INF
04/05/2002
27/11/2009
miu
FAM
25/05/2008
miu
Consultas
A continuacin vamos a interrogar a la base de datos BIBLIOTECA mediante consultas SQL. Consulta 01. Total ingresado por pago de cuotas de socio de cada uno de los diferentes tipos (ADU,FAM e INF) durante los aos 2000 a 2010 (ambos incluidos).
Consulta 02. Utilizar una consulta de tabla de referencias cruzadas para obtener la cuenta de pagos para cada uno de los tipos de cuotas en el perodo [2000-2010].
Formularios
Formulario 01. FORMULARIO SOCIOS. Vamos a crear un formulario para los socios en vista diseo similar al que muestra la figura.
Formulario 04. FORMULARIO GRFICO "CANTIDAD QUE ADEUDA CADA SOCIO". Formulario que contenga un grfico dinmico que muestre las cantidades que adeudan los socios debido a los recibos impagados que tienen.
Informe 02. INFORME "CARTA A LOS SOCIOS DEUDORES" Vamos a realizar un informe que servir para enviar una carta a todos los socios de la biblioteca que tengan pendiente algn recibo sin pagar, invitndoles a hacerlos efectivos en diez das.
11141-
BffilloTici
1
P rofimor: e uan Saldista [asea lr Loe reo Offillefin Vilagarda de Aroma a 18 sep 1010 Principal LO agar.uia =5.551 Estimado El lenteja Cecilia Varela Profimor:Juan
CI Los Pjaros Vigo 56554 Estimado d enteja Lados maceira. Hemos comprobado que su rue. en la biblioteca prime. un saldo negativo de 1] f. que le agradecerla mos mucho se sirviera regularizar en el plazo ele LO das en evitar,n de la interrend6 n de n uretra departa mentode asimirrla krklicu Le raga mes considere el buen servicio quesempre ha recibido. Podo tanto le regamos que en los p uSdrucs10 dlas a ido real menos e150%de su saklo pendiente, q asr Inda a 135.E Le a nticipa mos las graeas yq ueda mos ala impera de rea ibir su pago en la fecha OS or 2010. rf Mar Me 143 Vilagarcla 365. Est nudo diente/a Eduardo Akara.: Fiemos comprobado quesu Cuenta en la bibliOteca prime. un saldo negativo de g E.que le agradecerla mos mucho se sindera regularizar en el plazo de 10 das en evilacin dela Interrenckw de nuestro depaiamento de asitscrla krldica. Lel olamos ccasIdene el buen servia queme mune ha recibido. Por lo tanto le toga mos que en los predmos 10 das abone al menos el 50% de su saldo pendiente, q tease lendea 45E. Le a nucipa mos las gracias yquedarnos a la muera de rea ibi n su paga en la fecha Wat 1010. Pagina: 1 . 41. Sin filtro
Hemos comprobado que su ruerna en la biblbteca primeia un sa lelo negativode511.que le agradecerla mos mucho se sirviera regular. r en el plazo de CO ellas en evitad.n de la interrenci n de nuestro departa mento ele coserla Juirkika. Le rogarnos considere el buen servirlo que sie moreha necib Por lo tanto le rogamoseueen los preld mos 10 dlas a bone a 1 menos el30%de su saldo pendiente, q Ir ase ende a 27 E Le anUcipa mos las gracias yq ueda mos a espera de rechr su pago en la fedi USW 1010. ['San Luis 32 Sada 13.0%5 E atinado diente/a Ana Lo ureda: Memos comprobado qu e 1' ao o As_a pnmerrta u n saldo regathrode30 le agradecerla mos mucho sus 'II_ :o' Ir, el para de LO das en evitacin de la Intergencl n de nuretro departan' ontods asesor la juddica. Le rogamos considere el buen servicio que siempre ha recibido. Por lo tanto le ruga mosqueenlosprMdmos 10 das abone al menos e15091de su saldo pendiente, q ue ase ende a 15 Le anUcipa mos las gradas yq ueela mos a espera de recibir su pago en la fecha Wat 1010. ue
PR OC ES O
Consultas
Consulta 01. Total ingresado por pago de cuotas de socio de cada uno de los diferentes tipos (ADU,FAM e INF) durante los aos 2000 a 2010 (ambos incluidos).
SELECT CUOTAS.cuota AS [TIPO CUOTA], Sum(CUOTAS.importe) AS [RECAUDACIN 2000-2010] FROM (CUOTAS INNER JOIN SOCIOS ON CUOTAS.id_cuota = SOCIOS.id_cuota) INNER JOIN PAGOS ON SOCIOS.id_socio = PAGOS.id_socio WHERE (((PAGOS.fecha_pago)>=#1/1/2000# And (PAGOS.fecha_pago)<=#1/1/2010#) AND ((PAGOS.pagado)=True)) GROUP BY CUOTAS.cuota;
Consulta 02. Utilizar una consulta de tabla de referencias cruzadas para obtener la cuenta de pagos para cada uno de los tipos de cuotas en el perodo [2000-2010]. Puesto que en la consulta CTRC vamos a incluir campos de ms de una tabla, creamos previamente una consulta que contenga todos los campos que necesitemos y despus usaremos esta consulta para crear la consulta de referencias cruzadas.
A continuacin, basndonos en la consulta anterior, creamos la consulta de referencias cruzadas. Para ello lanzamos el Asistente para consultas (ficha)Crear->Asistente para consultas y seleccionamos la opcin "Asistente para consultas de tabla de referencias cruzadas". Seleccionamos la consulta.
A continuacin seleccionamos los campos que se utilizarn para las filas (importe) y columnas (cuota). Utilizamos la funcin "Cuenta" sobre el campo id_cuota para realizar el conteo. Finalmente damos un nombre a la consulta CTRC.
TRANSFORM Count(CTRC01base.id_cuota) AS CuentaDeid_cuota SELECT CTRC01base.importe AS [Tipo de Cuota] FROM CTRC01base GROUP BY CTRC01base.importe PIVOT CTRC01base.cuota;
Formularios
Formulario 01. FORMULARIO SOCIOS Para crear el formulario de SOCIOS en vista diseo, en primer lugar nos vamos a (ficha)Crear>Diseo del formulario. A continuacin aadimos al formulario las secciones de encabezado y pie de formulario, puesto que en principio el formulario dispone nicamente de la seccin Detalle. Para ello hacemos clic en el formulario con el botn derecho del ratn y en el men contextual seleccionamos la opcin "Encabezado o pie de formulario".
Insertamos la "Lista de Campos" activando el botn "Agregar campos existentes". La lista de campos se utiliza para colocar controles dependientes en el formulario.
Arrastramos los campos de la tabla SOCIOS al formulario. Nota: Para visualizar la foto de un socio en el formulario, previamente tiene que estar cargada dicha imagen en formato .BMP (Mapa de bits) en la tabla SOCIOS.
Colocamos los campos en el formulario con la distribucin que muestra la siguiente figura. Utilizamos los comandos de la ficha "Organizar" para ajustar, alinear y distribuir uniformemente los controles en el formulario.
Finalmente aadimos los botones de comando para realizar operaciones con registros y exploracin de registros. Para ello con el botn "Utilizar asistentes para controles" activado (barita mgica) vamos incorporando los botones el formulario.
Formulario 02. FORMULARIO PRESTAMOS. Los campos del formulario y los botones de accin los creamos de forma similar a como lo hemos realizado en el formulario de SOCIOS. Lo nico nuevo es insertar controles de tipo "Cuadro combinado" que nos permitan rellenar las claves secundarias en la tabla de prstamos. Vamos a ver como es el proceso para el cdigo de socio puesto que para el cdigo de libro y de empleado los pasos a realizar son similares. Para ello en primer lugar y con el botn "Utilizar asistente para controles" activado seleccionamos el control "Cuadro combinado" y seguimos los pasos del asistente.
Tal como lo hemos configurado el combo se cargar con los campos id_socio, nombre, apellido1 y apellido2 de la tabla SOCIOS.
Finalmente almacenamos el valor en el campo id_socio de la tabla de prstamos, cuando seleccionemos un tem en el combo.
el que se almacenar el valor aparece incompleto y si lo escribimos manualmente no lo acepta puesto que parece que tiene valores limitados a la lista. Para solucionar este inconveniente arrastramos los campos que necesitemos desde la lista de campos al formulario y luego los borramos. De esta forma parece que quedan registrados y ya aparecen en el combo.
Repetimos el proceso para las otras dos claves secundarias en la tabla de prstamos, es decir, para el cdigo del libro y el cdigo del empleado que realiza la operacin de prstamo.
Formulario 03. FORMULARIO "CONTROL DE PRESTAMOS A SOCIOS". Para crear este formulario vamos a utilizar el objeto "Subformulario" que nos permite insertar un formulario dentro de otro y que haya entre ellos un nexo de unin. Vamos a crear un formulario para consultar los prstamos realizados a un socio en concreto, los que fueron devueltos y los que no lo fueron. Este formulario tendr dos subformularios, uno para saber los prstamos devueltos y otro para los no devueltos. Cada uno de ellos se basa en una consulta de seleccin unidos con el principal, que est creado sobre la tabla de socios, mediante el nmero de socio.
SELECT PRESTAMOS.id_prestamo, PRESTAMOS.fecha_salida, PRESTAMOS.fecha_devoluc, PRESTAMOS.id_socio, PRESTAMOS.id_libro, LIBROS.titulo FROM LIBROS INNER JOIN PRESTAMOS ON LIBROS.id_libro = PRESTAMOS.id_libro WHERE ((Not (PRESTAMOS.fecha_devoluc) Is Null));
SELECT PRESTAMOS.id_prestamo, PRESTAMOS.fecha_salida, PRESTAMOS.id_socio, PRESTAMOS.id_libro, LIBROS.titulo FROM LIBROS INNER JOIN PRESTAMOS ON LIBROS.id_libro = PRESTAMOS.id_libro WHERE (((PRESTAMOS.fecha_devoluc) Is Null));
Finalmente aadimos dos controles de tipo subformulario al formulario principal basado en la tabla de socios. Cada uno de los subformularios se basa en su respectiva consulta y se sincronizarn con el formulario principal a travs del campo id_socio.
Formulario 04. FORMULARIO GRFICO "CANTIDAD QUE ADEUDA CADA SOCIO". Formulario que contenga un grfico dinmico que muestre las cantidades que adeudan los socios debido a los recibos impagados que tienen. En primer lugar creamos una consulta de totales que nos devuelva la cantidad que adeuda cada socio.
SELECT SOCIOS.id_socio, SOCIOS.nif, SOCIOS.nombre, SOCIOS.apelllido1, SOCIOS.apellido2, Sum(CUOTAS.importe) AS SumaDeimporte, PAGOS.pagado FROM (CUOTAS INNER JOIN SOCIOS ON CUOTAS.id_cuota = SOCIOS.id_cuota) INNER JOIN PAGOS ON SOCIOS.id_socio = PAGOS.id_socio GROUP BY SOCIOS.id_socio, SOCIOS.nif, SOCIOS.nombre, SOCIOS.apelllido1, SOCIOS.apellido2, PAGOS.pagado HAVING (((PAGOS.pagado)=False)) ORDER BY SOCIOS.id_socio;
A continuacin seleccionamos la consulta "Cantidad que adeuda cada socio" y vamos a (ficha)Crear ->(Grupo)Formularios->Grfico dinmico, de forma que se nos crea un formulario que contiene un grfico dinmico basado en la consulta "Cantidad que adeuda cada socio".
A continuacin mostramos la lista de campos "(botn)Lista de campo" y arrastramos los campos nif al eje X y el campo SumaDeImporte al rea de datos.
A partir de ahora podemos configurar las propiedades de cada elemento del grfico simplemente seleccionndolo y configurando sus propiedades a travs del botn "Hoja de propiedades" del grupo Herramientas. Por ejemplo si queremos cambiar el formato del eje de valores vertical (importe deuda) a tipo moneda para que muestre las cantidades en euros, seleccionamos el eje y pinchamos en el botn "Hoja de propiedades".
Ahora renombramos las etiquetas del eje de categoras por SOCIO y del eje de valores por DEUDA.
En caso de que quisiramos imprimir el grfico tenemos que ocultar los "Botones de campo o zonas de colocacin".
Informe 01. INFORME "PRESTAMOS QUE HA TRAMITADO CADA EMPLEADO" Empezamos creando una consulta "Prstamos tramitados por cada empleado".
SELECT EMPLEADOS.id_empleado, EMPLEADOS.nombre, EMPLEADOS.apellidos, PRESTAMOS.id_prestamo, PRESTAMOS.fecha_salida, SOCIOS.id_socio, SOCIOS.nif, LIBROS.isbn, LIBROS.titulo FROM SOCIOS INNER JOIN (LIBROS INNER JOIN (EMPLEADOS INNER JOIN PRESTAMOS ON EMPLEADOS.id_empleado = PRESTAMOS.id_empleado) ON LIBROS.id_libro = PRESTAMOS.id_libro) ON SOCIOS.id_socio = PRESTAMOS.id_socio;
A continuacin creamos el informe a partir de la consulta, para ello vamos a "Asistente para informes".
Configuramos la pgina a posicin horizontal para que muestre los campos completos.
Informe 02. INFORME "CARTA A LOS SOCIOS DEUDORES" Vamos a realizar un informe que servir para enviar una carta a todos los socios de la biblioteca que tengan pendiente algn recibo sin pagar, invitndoles a hacerlos efectivos en diez das.
Primero creamos la consulta "Carta a los socios deudores" sobre la que se basar el informe, es decir, ser su origen de datos.
SELECT SOCIOS.direccion, SOCIOS.ciudad, SOCIOS.cp, SOCIOS.nombre, SOCIOS.apelllido1, Sum(CUOTAS.importe) AS SumaDeimporte, PAGOS.pagado FROM (CUOTAS INNER JOIN SOCIOS ON CUOTAS.id_cuota = SOCIOS.id_cuota) INNER JOIN PAGOS ON SOCIOS.id_socio = PAGOS.id_socio GROUP BY SOCIOS.direccion, SOCIOS.ciudad, SOCIOS.cp, SOCIOS.nombre, SOCIOS.apelllido1, PAGOS.pagado HAVING (((PAGOS.pagado)=False));
A continuacin creamos un informe en blanco en vista diseo (ficha)Crear->Diseo de informe. Como origen de datos del informe seleccionamos la consulta "Carta a los socios deudores".
Finalmente utilizando controles de tipo "Cuadro de texto", construimos el texto de la carta utilizando el texto y las funciones necesarias, tal como se muestra en la figura.
La ltima caja de texto coloca una fecha diez das posterior de la fecha de impresin del informe. La funcin AGREGFECHA recibe tres parmetros, a qu lugar de la fecha se le suma, en nuestro caso al da "d", cuantos das suma, "10" y a qu fecha se le suman los diez das, en el ejercicio a la fecha actual "Ahora()". Visualizamos el informe en la vista "Vista preliminar" para verlo paginado y observar cmo la carta se personaliza para cada socio deudor.