EINES: AMPLIACIÓ. PRÀCTIQUES
Moltes vegades es creen formularis o informes amb unes característiques determinades que obliguen a la inclusió de diversos formularis o informes en un altre anomenat formulari o informe principal. Les dades de tots els formularis o informes han de ser consistents i, per tant, cal que totes les dades estiguin sincronitzades, cosa que es realitza amb la vinculació dels camps comuns als formularis o informes esmentats.
- Pràctica 1: crear un formulari amb un subformulari.
- Un formulari o informe incorporat a un altre, anomenat principal, es comporta com un control més d'aquest últim. Cal sincronitzar les seves dades amb les dades del formulari o subinforme principal. Aquesta pràctica mostra la forma de fer-ho. Per això heu de crear un formulari que serveixi per mostrar les dades de les comarques d'una província escollida gràficament.
En aquesta pràctica heu de fer servir el fitxer C:\D50\eines2\catprov.gif.
Així doncs,
- Obriu la base de dades Trebd50.mdb
- Creeu un formulari nou en mode Vista Diseño i que no estigui basat en cap taula.
- Activeu l'eina Marco de objeto independiente: . Escolliu l'opció Crear desde archivo a la finestra següent de l'assistent i el fitxer C:\D50\eines2\catprov.gif:
- Afegiu un grup d'opcions que envolti el mapa incorporat al formulari i afegiu les opcions:
- Ara disposeu d'un formulari semblant a:
- Modifiqueu el nom del grup d'opcions a: ProvEscollida
- Modifiqueu el formulari (encercleu el mapa amb el quadre del grup d'opcions, esborreu les etiquetes B,G,L,T i l'etiqueta del grup d'opcions), de forma que aparegui com aquest:
- Afegiu un quadre de text que, en funció del botó premut al mapa, agafi el valor del codi de província. Aquest quadre de text ha de tenir com a propietat Origen del control l'expressió:
iif([ProvEscollida]=1;"BCN";iif([ProvEscollida]=2;"GIR";iif([ProvEscollida]=3;"LLE";"TAR")))
que Access converteix en aquesta altra:
=SiInm([ProvEscollida]=1;"BCN";SiInm([ProvEscollida]=2;"GIR";SiInm([ProvEscollida]=3;"LLE";"TAR")))
Nota: Access presenta l'expressió Silnm (Siinm). Així l'expressió correcta, si l'escriviu directament és: Siinm,.
- Anomeneu aquesta casella: CodiProv
- Comproveu el funcionament del formulari. El quadre de text ha de mostrar el codi de la província clicada en el mapa.
- Afegiu el subformulari i sincronitzeu les dades:
- Activeu la finestra de la base de dades i la pestanya Formularios. Podeu fer-ho prement la tecla F11.
- Seleccioneu el formulari anomenat Eines-Altres-Pràctica3 i arrossegueu-lo al formulari anterior. Us queda una cosa semblant a:
- Premeu el botó i observeu els resultats. Estan sincronitzades les dades? No. Cal que estiguin sincronitzades.
- Poseu novament el formulari en mode Diseño i cliqueu el control corresponent al formulari. Us apareix la finestra de propietats d'aquest control. Modifiqueu-les fins que apareguin així:
- Torneu a comprovar el funcionament del formulari. Ara ja hi ha les dades sincronitzades. Per què? Perquè heu canviat les propietats:
- Vincular campos secundarios: [CODI_PROVÍNCIA]
- Vincular campos principales: [CodiProv]
- Això significa que el canvi de valor en el control anomenat CodiProv comporta la presentació de dades, en el subformulari, que tinguin com a CODI_PROVÍNCIA el mateix valor que [CodiProv].
- Deseu el formulari amb el nom: Eines2-Ampliació-Pràctica1
- Cómo se vinculan formularios principales y subformularios de Microsoft Access
- Pràctica 2: crear un informe amb un subinforme.
- En alguns casos és interessant disposar d'informes contenidors d'altres (subinformes). Aquesta possibilitat no es pot realitzar amb assistents perquè Access no n'incorpora cap. Cal fer un procés semblant al realitzat a la pràctica anterior. Així doncs,
Creeu un nou informe que serveixi per mostrar, donada una població entrada per teclat, un informe on apareixen totes les poblacions de la mateixa comarca i els museus d'aquestes.
- Creeu l'informe principal:
- Creeu una consulta nova, basada en les taules Característiques comarques i Municipis de Catalunya i comarca a la qual pertanyen i afegiu els camps POBLACIÓ i CODI_COMARCA a la consulta.
- Afegiu el criteri Como [Quina POBLACIÓ?] i deseu la consulta amb el nom Per Eines2-Ampliació-Pràctica2PRI.
- Creeu un informe nou, utilitzant l'assistent per a informes, basat en aquesta consulta i que incorpori els dos camps esmentats anteriorment (sense agrupar cap dels dos camps). Deseu-lo amb el nom: Eines2-Ampliació-Pràctica2
- Creeu el subinforme:
- Creeu una nova consulta, basada en les taules Municipis de Catalunya i comarca a la qual pertanyen i Museus. Incorporeu a la consulta els camps CODI_COMARCA. POBLACIÓ, NOM_MUSEU i DESCRIPCIÓ.
- Deseu la consulta amb el nom: Per Eines2-Ampliació-Pràctica2SUB.
- Creeu un informe nou, utilitzant l'assistent per a informes basat en aquesta consulta i que incorpori els quatre camps esmentats anteriorment. Deseu-lo amb el nom: Per Eines2-Ampliació-Pràctica2SUB i tanqueu-lo.
- Afegiu el subinforme al informe principal i sincronitzeu les dades:
- Obriu, en mode Diseño, l'informe principal, que té un aspecte semblant al següent:
- Seleccioneu el subinforme i arrossegueu el ratolí a l'informe principal. Queda de la forma següent:
- Observeu les propietats del subinforme. Modifiqueu les corresponents a la sincronització de les dades:
- Cliqueu a la línia Vincular campos secundarios. En fer-ho, us apareix a l'extrem dret d'aquesta línia un botó amb tres punts. Cliqueu-lo i s'obrirà una finestra que us permetrà assignar els camps de vinculació:
- Accepteu els valors proposats i observeu els canvis experimentats en les propietats de vinculació.
- Modifiqueu l'informe fins que la presentació de les dades, en el cas d'introduir el valor SALT, per exemple, sigui semblant a:
- Agregar un informe existente a otro para crear un subinforme
- Pràctica 3: fer referència a un element d'un subformulari.
- En altres pràctiques heu vist que cada control té un nom que es pot utilitzar en les operacions de la BD. En el cas que aquests controls formin part d'un subformulari o subinforme la sintaxi és una mica més complicada. En aquesta pràctica utilitzeu aquesta sintaxi per tal de comprovar-la.
Heu de modificar un formulari creat anteriorment per tal que es mostri, per a cada element del subformulari, una frase depenent d'aquest element:
Per tant,
Exercicis
- Exercici 4: creeu un formulari que mostri, per a cada comarca, els museus de la capital.
Nom del formulari: Eines2-Ampliació-Exercici4.
- Nota: una mostra del formulari és aquesta
- Exercici 5: creeu un informe que mostri, per a cada província, les comarques i, per a cada comarca, el nombre de poblacions.
Nom del formulari: Eines2-Ampliació-Exercici5.
- Nota: observeu les agrupacions que hi ha a l'informe.
- Exercici 6: creeu un formulari que mostri el nom de cada província i en un subformulari les comarques. Al formulari principal, i si la comarca mostrada al subformulari té litoral, ha d'aparèixer un missatge que ho indiqui. Si no té litoral, també.
Nom del formulari: Eines2-Ampliació-Exercici6.
- Nota: observeu el formulari en mode Diseño i l'expressió del control inferio:
Perquè aquesta expressió sigui correcta cal que el subformulari tingui les propietats:
Seguiment de la vostra tasca
Recordeu que heu d'enviar:
- la base de dades Trebd50.mdb amb tots els formularis i informes dels exercicis.
- els exercicis addicionals acordats amb el vostre tutor.
- en relació al projecte de fi de curs, és convenient que comenceu a definir les taules, consultes, formularis i informes que poden formar part del vostre projecte i comuniqueu-ho al tutor.
Indiqueu el tema del qual lliureu els treballs al tutor:
Eines2-Ampliació