Condividi tramite

Applicare Filtro <Tutto> in casella combinata

Anonimo
2015-09-22T17:37:57+00:00

Salve, sto progettando un databse per uso personale, nel quale ci inserisco le mie storie cliniche, quali esami, interventi ecc.

Ora, ho una tabella di nome appunto Tabella nella quale ho vari campi tra cui Tipo di esame il quale può essere aggiornato e comprende varie voci quali TAC, RMN, Cistoscopia ecc.

Nel momento in cui inserisco i nuovi record, mediante apposito pulsante nella maschera principale Inserisci Esame, compilo questi campi e tutto va bene.

Ho poi un altro pulsante nella maschera principale  Visualizza Elenco che mi apre una maschera filtrata da una Query che mi ordina tutti i records per data decrescente.

In questa maschera ci ho inserito una casella combinata non associata ed ho modificato la query aggiungendo la voce Tipo di esame.Value e nei criteri ci ho messo il percorso che porta alla casella combinata, in modo che tutto venga filtrato in base alla voce dell'elenco che io clicco.

La casella combinata a sua volta prende le voci in origine dati da una query generata nella quale con un istruzione SQl ed il comando UNION ho aggiunto nell'elenco la voce <Tutto>.

Dopo aggiornamento ci ho inserito un me.requery e tutto funziona, per esempio se nel menù della casella combinata scelgo la voce RMN mi compaiono in elenco solo le RMN che ho eseguito in data x e luogo y con relativo referto allegato.

L'unica cosa che non riesco a capire, prememtto che prima di scrivere sul forum ho letto dappertutto e provato per ore ma non ci sono riuscito, è che se clicco sulla voce <Tutto> aggiunta con UNION nella casella combinata, l'elenco rimane vuoto, ovviamente perchè nel campo Tipo di esame non esiste quella voce. In teoria dovrei creare qualcosa che mi disattivi il filtraggio quando clicco su tutto in modo da visualizzare indistantamente tutte le voci memorizzate. Ma come posso risucire in questo? Davvero sto impazzendo, non capisco come fare.

Spero possiate aiutarmi, grazie e buona sera.

Giuseppe

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-09-23T16:18:15+00:00

ciao Giuseppe,

ti sconsiglio l'uso del campo multivalore inserito per compatibilità con SharePoint e di difficile gestione ed errato dal punto di vista della normalizzazione ( punto di vista personale, cosa che non dico a te, ma è errato consentire che un campo consenta più di un valore : 1FN a ciascun campo deve essere assegnato un valore atomico )

in questo 3D avevo consigliato un' alternativa che sembra sia stata risolutiva :

http://answers.microsoft.com/it-it/office/forum/office\_2013\_release-access/memorizzare-in-un-campo-pi%c3%b9-valori/912b55da-0aa4-472f-973f-5b3459476e89

ti sconsiglio altresì l'uso del campo allegato/ole e di inglobare in generale files in access, il db si ingrassa in modo esponenziale, in casi analoghi si memorizza semplicemente il path, che è un testo pure e semplice.

come vedi sono prodigo di sconsigli anziché di consigli :-).

ti ho sistemato il db senza campi multivalore  qui : http://1drv.ms/1OuFqmd databaseMedico2.accdb.

il filtro lo vedevi nella mia demo e non nel tuo DB perché con il tuo DB filtravi il recordset applicando un criterio

direttamente nella query e non un filtro.

Se elimini la caratteristica della form togliendo il pop-up vedi il filtro modificarsi nel ribbon anche nella tuo db

Ho fatto un po' di pulizia in termini di macro che non uso e rifatto la tabella...sorry, in caso ripristinali.

Ciao!

Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

8 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-09-22T19:23:23+00:00

    Ciao Giuseppe,

    oltre alla soluzione suggerita da Sandro puoi anche cambiare il criterio della query in modo che possa gestire anche il caso di non filtro.

    Supponiamo che la colonna si chiami MyColonna, come criterio puoi impostare :

    =iif(Forms.frmName.cboEsame="<Tutto>";MyColonna; Forms.frmName.cboEsame)

    Ciao Mimmo

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2015-09-22T19:05:15+00:00

    ciao Giuseppe.

    demo tratto dal database di Northwind.

    Magari ti aiuta.

    Basato sull'esempio che ti ho indicato nel post precedente.  http://1drv.ms/1Pp9ehr Giuseppe.accdb.

    Ciao, Sandro.

    *** ho inserito anche un esempio per filtrare valore numerici ***

    se sei in questo scenario rispetto al link devi togliere gli apici che delimitano il filtro.

    Me.Filter = "ordineID=" & me.cboOrdini

    ma l'esempio delle demo è più chiaro.  http://1drv.ms/1Pp9ehr  Giuseppe.accdb.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-09-22T19:01:00+00:00

    Ciao Sandro, grazie per la tempestiva risposta, onestamente quella guida l'ho vista, provata e riprovata ma non sono riuscito ad ottenere il risultato sperato, ottenendo sempre un errore nel codice vba inerente il me.filter , forse perché il campo che io devo filtrare contiene vari valori, non è un semplice campo di testo...  Faro' altre prove e ti faro' sapere...

    Intanto ti ringrazio, ciao

    Giuseppe 😊

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-09-22T18:15:41+00:00

    ciao Giuseppe,

    qui http://www.alfainfo.it/come-visualizzare-tutto-una-casella-combinata-access/

    prova a vedere se ti è di aiuto.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento