Casella combinata con dati in base al contesto

di il
4 risposte

Casella combinata con dati in base al contesto

Buona sera a tutti, terza volta che disturbo voi esperti
Ho un problema da affrontare per quanto riguarda una maschera, e con la precisione, delle caselle combinate che cambiano di elementi in base al contesto. Il mio DB è troppo complesso da spiegare, perciò farò un classico esempio di un indirizzo con regione e città. Avendo le seguenti tabelle:
Regione: IDRegione, NomeRegione (IDRegione è ovviamente la chiave)
Città: IDCittà, IDRegione, NomeCittà (IDCittà è la chiave)
Indirizzo: IDIndirizzo, IDRegione, IDCittà (IDCittà: chiave)

ovviamente le città vengono associate con una relazione uno a molti con la regione, in quanto una regione può avere più città. E su questo non ci piove. Il problema è che vorrei creare una maschera per l'inserimento dell'indirizzo tramite caselle combinate, dove prima seleziono la regione, poi la casella combinata della città mi filtra i dati a seconda delle città della regione. Ad es. nella casella IDRegione seleziono "Campania", la casella combinata di IDCittà mi deve mostrare solo Napoli, Salerno, Caserta ecc...
Si può fare? In che modo? Spero di essere stato chiaro.

4 Risposte

  • Re: Casella combinata con dati in base al contesto

    1) Devi creare una query di raggruppamento del campo città nella quele metterai il campo idregione = valore del controllo che usi per sceglere le regioni.

    2) Tale query va usata come origine riga del controllo che visualizza le città.

    3) Devi inserire, nel evento "dopo aggiornamento" del controllo che usi per le regioni un "requery del controllo delle città

    Saluti
  • Re: Casella combinata con dati in base al contesto

    Temo di non aver compreso. Allora:
    1) Creo la query di raggruppamento in questo modo:
    Campo: IDCittà
    Tabella: Città
    Formula: Raggruppamento

    Campo: Nome
    Tabella: Città
    Formula: Raggruppamento

    Campo: IDRegione
    Tabella: Città
    Forumla: Raggruppamento
    Criteri: =[Regione] (il nome del controllo)

    2) Lo uso come query

    3) Form.Requery su VBA su modifica del controllo Regione

    Purtroppo non mi va, mi mostra 0 campi
  • Re: Casella combinata con dati in base al contesto

    Ci sei arrivato vicino però

    1) Creo la query di raggruppamento in questo modo:
    Campo: IDCittà
    Tabella: Città
    Formula: Raggruppamento

    Campo: Nome
    Tabella: Città
    Formula: Raggruppamento

    Campo: IDRegione
    Tabella: Città
    Forumla: Dove
    Criteri: = Maschere![nome maschera]![Regione] dovrebbe essere qualcosa di simile

    2) Lo salvi come query e la usi come origine riga del controllo che usi per filtrare le città

    3) non devi fare il Form.Requery su VBA su modifica del controllo Regione
    ma devi inserire, nel evento "dopo aggiornamento" del controllo che usi per le regioni un "requery del controllo delle città ... devi fare il requery del controllo che usi per filtrare le città non dell'intera form.
    fammi sapere
  • Re: Casella combinata con dati in base al contesto

    Angelo_Tbp ha scritto:


    ci sei arrivato vicino però
    Criteri: = Maschere![nome maschera]![Regione] dovrebbe essere qualcosa di simile
    Credevo che automaticamente la query prendesse il campo dalla maschera a cui appartiene, ecco perché non mi andava!

    Angelo_Tbp ha scritto:


    3) non devi fare il Form.Requery su VBA su modifica del controllo Regione
    ma devi inserire, nel evento "dopo aggiornamento" del controllo che usi per le regioni un "requery del controllo delle città ... devi fare il requery del controllo che usi per filtrare le città non dell'intera form.
    fammi sapere
    Ecco, non ci avevo pensato.

    Ora funziona, grazie di tutto!
Devi accedere o registrarti per scrivere nel forum
4 risposte