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,
    • Obriu el formulari: Formularis-Altres-Pràctica1. Comproveu la forma com presenta les dades. Deseu-lo amb el nom Eines2-Ampliació-Pràctica3
    • Poseu-lo en mode Diseño.
    • Afegiu un quadre de text (anomenat NOTA) al formulari i modifiqueu l'origen de les dades. El formulari serà semblant a:

    • Observeu el contingut del control afegit:
      ="El museu escollit és: " & [Formularios]![Eines2-Ampliació-Pràctica3].[Museus].[Formulario].[NOM_MUSEU] & ", no?"
      En aquesta expressió,
      • [Formularios]![Eines2-Ampliació-Pràctica3].[Museus]
        fa referència al control Museus (!que és un subformulari ¡).
      • [Formulario].[NOM_MUSEU]
        és la notació emprada per referir-nos al control anomenat NOM_MUSEU que hi ha al subformulari Museus esmentat. Access ho interpreta així gràcies a la paraula Formulario afegida.
    • Comproveu el funcionament del formulari i deseu-lo amb el nom: Eines2-Ampliació-Pràctica3
      Utilizar el Generador de expresiones

      SOLE2AMP.MDB

  • 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:
    1. la base de dades Trebd50.mdb amb tots els formularis i informes dels exercicis.
    2. els exercicis addicionals acordats amb el vostre tutor.
    3. 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ó