Filtrare nuovi dati e ignorare quelli vecchi

di il
4 risposte

Filtrare nuovi dati e ignorare quelli vecchi

Non ho saputo dare un titolo più appropriato, magari lo staff potrà sostituirlo se crede necessario.
Il mio problema è questo:
In una maschera continua utilizzo due tabelle: "Spese" ed "Eventi".
In essa visualizzo la lista di tutte le spese effettuate sui vari eventi organizzati dalla mia associazione.
Quando registro una nuova spesa, in una casella combinata seleziono da un elenco a discesa il giusto evento a cui agganciare la spesa, ed il suo ID viene memorizzato nella tabella delle spese.
Ora che gli eventi cominciano a diventare numerosi, diventa difficoltoso cercare senza confondersi quello giusto da selezionare.
Si consideri inoltre che molti di questi sono eventi ormai definitivamente chiusi e che quindi nell'elenco a discesa, sono solo zavorra.
Potrei filtrarli inserendo nella query della combo "solo eventi aperti".
Nasce Il problema :
se applico questo filtro, è vero che ho ripulito il mio elenco a discesa degli eventi ormai superati, ma ahimé, mi si svuotano anche tutte le caselle combo relative a spese fatte in precedenza su eventi oramai chiusi.
Posso avere un suggerimento organizzativo affinché possa conservare il passato senza rinunciare alle comodità del futuro e cioè avere una combo serva di due padroni ?
grazie in anticipo a chi mi risponde
antonio.

4 Risposte

  • Re: Filtrare nuovi dati e ignorare quelli vecchi

    Devi distinguere i controlli che servono a Filtrare da quelli che servono per selezionare o definire...!
    Le combo di Selezione devono avere come Origine un Recordset di Dati coerenti con quello che devi fare... quindi il Filtro deve agire solo sui dati non sul RowSource delle combo...
    In sostanza metti 1 o 2 o n ... ckBox che ti semplificano la vita applicando filtri specifici... che puoi anche rimuovere, ma fai attenzione che il RowSource delle Combo non venga intaccato da questi...

    Sempre io abbia capito bene...!
  • Re: Filtrare nuovi dati e ignorare quelli vecchi

    Ciao Alex, giusto per fugare ogni dubbio, definisco un pò meglio quanto ho realizzato.

    Affinché nella mia combo di selezione io possa fare assegnazioni alle spese solo ed esclusivamente sugli eventi ancora aperti, ho messo un filtro che dice così:
    SELECT Eventi.ID_Eve, Eventi.evento, Eventi.chiuso FROM Eventi WHERE (((Eventi.chiuso) Is Null));
    In questo modo vado spedito a registrare le spese in quanto l'evento a cui abbinare queste spese lo pesco da un elenco abbastanza ristretto di voci.
    Poiché la maschera (continua) mi dà anche la possibilità di fare una passerella su tutte le spese precedenti, noto che purtroppo su tanti record di spese fatte su eventi che oggi sono chiusi, non viene più visualizzato il contenuto del campo Evento (ora il filtro della combo non li riconosce più come dati validi). E questo non va bene.
    OK.
    Per quanto riguarda il tuo indizio, ti devo chiedere di essere, se puoi, un po più diretto.
    Ho capito che la presenza di ckBox per l'attivazione/esclusione di filtri renderebbe tutto più dinamico, ma quell'eventuale filtro, non lavorerebbe come quello della combo e cioè o tutti fuori o tutti dentro)?
    E' quì che mi sono perso un attimino.
    Antonio
  • Re: Filtrare nuovi dati e ignorare quelli vecchi

    Perchè metti NULL nella condizione della Query [(Eventi.chiuso) Is Null)]...?
    Il Campo Chiuso di che tipo è...?
  • Re: Filtrare nuovi dati e ignorare quelli vecchi

    Di tipo data Alex, quindi se mai nulla vi è stato scritto finora, sarà Null, immagino.

    Io un'escamotage ce l'avrei, ma non è molto professionale ed è anche un pò arduo descriverlo, ma ci voglio provare per farti rabbrividire.
    Io ho la combo nella quale con il filtro in essa incastonato, visualizzo, e quindi posso selezionare solo gli eventi ancora aperti.
    Creo una casella di testo collegata alla Tabella della maschera in cui visualizzo il vecchio Evento registrato nel record.
    A questa casella di testo sovrappongo perfettamente la combo col suo filtro, che ho reso trasparente grazie alla sua proprietà Stile Sfondo.
    Il gioco è fatto: coesistono insieme il vechhio dato e le informazioni filtrate. Il resto si affronta nel VBA per interloquire con l'operatore.

    antonio
Devi accedere o registrarti per scrivere nel forum
4 risposte