Filtro a casella di riepilogo

di il
8 risposte

Filtro a casella di riepilogo

Cari tutti, vengo al dunque:
Ho una maschera continua in cui visualizzo i dati di una query mediante i filtri gestiti da casella combinata.
Questi dati si riferiscono a persone.
Da pulsante apro una nuova maschera "dialog" ed in questa voglio importare i dati precedentemente filtrati per inviare loro una mail.
Infatti nella casella di riepilogo selezionerò le persone i cui indirizzi finiranno in un array.
I miei problemi:
1 - non riesco ad importare la mia lista preventiva dalla prima tabella.
2 - non riesco a inserire il nuovo filtro nella mia casella di riepilogo (ricerca dell'indirizzo e-mail) per visualizzare i dati finali da estrarre.

Ci giro intorno da qualche giorno ma mi sto semplicemente avvitando.
Posso avere una dritta sull'argomento?
grazie a chi mi risponde.
antonio cuomo

8 Risposte

  • Re: Filtro a casella di riepilogo

    La soluzione che stai applicando appare contorta:

    antocuomo ha scritto:


    Infatti nella casella di riepilogo selezionerò le persone i cui indirizzi finiranno in un array.
    dal momento che in una casella di riepilogo puoi effettuare una selezione multipla non si comprende il passaggio per un array.

    Inoltre dici che parti da una maschera continua (che vai a filtrare) e vorresti inserire il filtro attivo ad una casella di riepilogo, quando basterebbe avere un campo logico, ove si stabilisca l'ulteriore criterio per determinare i dati finali.
  • Re: Filtro a casella di riepilogo

    Si Willy,
    la maschera iniziale mi serve che funzioni così per diverse opzioni tra cui anche l'invio di mail.
    Quando dalla maschera M_Visitatori premo il pulsante invia mail, applico un ulteriore filtro alla lista per selezionare solo quelli che hanno una mail, e poi passo la palla alla maschera successiva "Invia_Mail"
    L'origine riga della casella di riepilogo della maschera "Invia_Mail", ha la query della prima maschera e su Evento Load ho caricato il filtro della maschera iniziale con

    Me.Filter = Forms![M_Visitatori].Filter
    Me.FilterOn = True

    ottengo sempre la lista intera dei Nomi. Praticamente il filtro non si aggancia

    Per la selezione multipla è un discorso che guarderei più tardi.
  • Re: Filtro a casella di riepilogo

    Il codice sul filtro, da te impiegato, è applicabile all'oggetto Me (quindi alla Form attiva):

    ma non alla casella di riepilogo, su questa puoi, eventualmente, agire sulla proprietà "Origine riga" (ListBox.RowSource):
    https://stackoverflow.com/questions/44073453/access-listbox-to-filter-another-listbox
    https://stackoverflow.com/questions/9266851/ms-access-using-listbox-selections-from-one-form-to-filter-results-in-another-f
    https://access-programmers.co.uk/forums/showthread.php?t=289907
    https://access-programmers.co.uk/forums/showthread.php?t=295578
  • Re: Filtro a casella di riepilogo

    Caro Willy,
    ho letto con attenzione i suggerimenti che mi hai inviato ma non mi sono stati di grande aiuto.
    La cosa che mi è sembrato di capire è che purtroppo nella condizione WHERE della SELECT della query (della casella di riepilogo), dove può essere inserito il filtro sotto forma di variabile, il nome del campo di riferimento deve essere citato espressamente in CHIARO anziché sotto forma di variabile.
    Questo mi penalizza fortemente l'importazione del filtro dalla maschera base in quanto per come io ho impostato i filtri nella prima maschera, essi possono essere diversi e contenuti in un unico string-one: (nome_campo1-dato1, nome_campo2-dato2, nome_campo3-dato3, ecc.
    A meno che non ci sia una sintassi arcana da rispettare che purtroppo non conosco.
    Mi sembra strano che per un problema di così poco conto e non tanto particolare, non abbia una ben chiara soluzione.
  • Re: Filtro a casella di riepilogo

    E' chiaro che, dovendo impostare il RowSource della ListBox, dovrai ricostruire il codice SQL impostando la WHERE CONDITION in base ai valori del filtro (fornito dalla maschera).
  • Re: Filtro a casella di riepilogo

    Dovresti mostrare il codice Sql che hai scritto come origine della RowSource del controllo ListBox.
  • Re: Filtro a casella di riepilogo

    Il codice Sql della casella di riepilogo è il seguente:

    SELECT Visitatori.id_Vis, Visitatori.Nome, Visitatori.mail, Visitatori.cellulare, Visitatori.fisso, Visitatori.professione, Visitatori.gruppo, *
    FROM Visitatori
    WHERE ((([forms]![M_Visitatori]![testo77])));

    In testo77 della maschera iniziale, c'è la stringa del filtro che potrebbe essere: len([mail]) >0 oppure gruppo like "medici" oppure fisso = 0823401088"
    Potrei anche mettere direttamente WHERE ((([forms]![M_Visitatori]!Filter))); ma il risultato non cambia

    Quando il codice va in esecuzione, Access trasforma la riga WHERE così:
    WHERE ((([forms]![M_Visitatori]![testo77])<>False)); ed il risultato è una tabella vuota
    Ci sarà sicuramente un errore ma non riesco a trovarlo.
  • Re: Filtro a casella di riepilogo

    La WHERE CONDITION così come l'hai scritta non significa nulla...
    Quello.che recuperi dal testo77 è il valore che deve essere assegnato ad un campo...
    WHERE NomeCampo=Valore

    Prova a riflettere e rivederla...
Devi accedere o registrarti per scrivere nel forum
8 risposte