Pulsante Maschera senza criteri di apertura query

di il
18 risposte

Pulsante Maschera senza criteri di apertura query

Buongiorno a tutti.

Chiedo, qualora fosse possibile, di eliminare un "fastidio" nell'apertura di un report relativo alla maschera su cui sto lavorando.

Diciamo che la maschera, al momento dell'apertura, riprende il criterio della sua query di riferimento ""Like [Digita Cognome]"".

Una volta aggiornata la maschera, ho due pulsanti per l'apertura di due distinti Report, ognuno di essi relativo al Cognome che avevo ricercato.

E' possibile, quando si preme il pulsante, che per aprire il report non vada a chiedere nuovamente il cognome, ma prenda i dati direttamente dalla maschera aperta?

Grazie per chi avrà cortesia di aiutarmi e buona giornata.

18 Risposte

  • Re: Pulsante Maschera senza criteri di apertura query

    Da quanto ho capito, il report poggia sulla query, la quale espone il parametro Like [Digita Cognome]. Secondo me il report dovrebbe poggiare sulla tabella Nominativi (se si chiama così, altrimenti chiarisci con i tuoi nomi propri attribuiti agli oggetti). Al codice VBA che apre il report, occorre che tu indichi il filtro (Condizione WHERE) con il relativo campo IDNominativo di riferimento.
    Se non è chiaro, esponi tutto più dettagliatamente, fornendo i nomi propri di tutti gli oggetti (tabelle, query, maschera, report) e il codice che apre il tuo report.

  • Re: Pulsante Maschera senza criteri di apertura query

    Ho cambiato l'origine record del "Report" da "Query Nominativi" a "Tabella Nominativi".

    Modificando la macro contenuta nel clic del pulsante, nella condizione WHERE ho indicato il campo [Cognome].

    Non accade quello che vorrei, perché ora il report si apre con tutti i nominativi e non con il cognome della maschera aperta e su cu c'è detto pulsante.

  • Re: Pulsante Maschera senza criteri di apertura query

    Nella condizione WHERE devi scrivere tutto esplicitamente, ossia:
    [Maschere]![NomeMaschera]![Cognome]
    oppure, non ricordo se bisogna mettere = davanti, cioè
    =[Maschere]![NomeMaschera]![Cognome]

    Però se metti il campo [Cognome] rischi di filtrare tutti gli omonimi. Se ti interessa un solo nominativo, ti consiglio di filtrare sul campo IDNominativo, quindi
    [Maschere]![NomeMaschera]![IDNominativo]
    oppure
    =[Maschere]![NomeMaschera]![IDNominativo]

  • Re: Pulsante Maschera senza criteri di apertura query

    I due reports sono basati su query? Se si', e' sufficiente che nel criterio del campo Cognome della query inserisci: 

    [Forms]![NomeTuaform]![NomeControlloCognome]

    Pero', come giustamente Ti ha suggerito Osvaldo, se hai due cognomi uguali, avrai  due reports distinti, per cui ragiona meglio su cio' che vuoi ottenere....

  • Re: Pulsante Maschera senza criteri di apertura query

    Ho fatto come detto da mailman.

    Ricapitolando. Il report ha come origine la QUERY, inserendo quanto indicato da mailman succede quanto segue.

    apro la maschera e parte la finestra LIKE [digita cognome]. modifico eventualmente i dati della persona uscita, poi clicco sul pulsante che mi posta al Report di interesse. al cliccare del pulsante si apre ugualmente la finestra LIKE [digita cognome], ma se do invio senza scrivere niente, comunque il report si apre sulla persona su cui precedentemente avevo aperto la maschera.

    mettendo la tabella come origine del report, non riesco a filtrare niente.

    inserisco una immagine di come ho messo i criteri nella query, precisando che ho provato anche a cambiarne l'ordine.

  • Re: Pulsante Maschera senza criteri di apertura query

    07/02/2025 - Dueruote ha scritto:

    E' possibile, quando si preme il pulsante, che per aprire il report non vada a chiedere nuovamente il cognome, ma prenda i dati direttamente dalla maschera aperta?

    Ciao,

    si che puoi e ci sono diverse tecniche.

    Oltre ai metodi già citati, per esempio potresti semplicemente passare il recordset della form al report 

    In questo caso non hai bisogno di ricreare nessun nuovo recordset con filtri o altro.

    ' oper report
    DoCmd.OpenReport "YourReport", acViewPreview
    ' set recordset
    Reports("YourReport").Recordset = Me.RecordsetClone

    https://learn.microsoft.com/en-us/office/vba/api/access.form.recordsetclone

  • Re: Pulsante Maschera senza criteri di apertura query

    07/02/2025 - Dueruote ha scritto:

    Ho fatto come detto da mailman.

    Ricapitolando. Il report ha come origine la QUERY, inserendo quanto indicato da mailman succede quanto segue.

    apro la maschera e parte la finestra LIKE [digita cognome]. modifico eventualmente i dati della persona uscita, poi clicco sul pulsante che mi posta al Report di interesse. al cliccare del pulsante si apre ugualmente la finestra LIKE [digita cognome], ma se do invio senza scrivere niente, comunque il report si apre sulla persona su cui precedentemente avevo aperto la maschera.

    mettendo la tabella come origine del report, non riesco a filtrare niente.

    inserisco una immagine di come ho messo i criteri nella query, precisando che ho provato anche a cambiarne l'ordine.

    Scusa ma c'e' quaclosa che non torna; intanto non devi mettere il criterio like... (non serve). Poi fammi capire: hai una form che si chiama "NOME MASCHERA"?? 

    Ed infine, fra le parentesi quadre hai scritto [Cognome]: attenzione che va inserito il nome del controllo della form dove fai la ricerca non quello del campo...

  • Re: Pulsante Maschera senza criteri di apertura query

    Premetto che non sono un fenomeno nell'inserimento dei vari codici.

    By65Franco vorrei provare la tua opzione ma non capisco dove io debba inserire tale codice.

    Mailman, [Nome Maschera] è un esempio, ovviamente ogni maschera è chiamata con il nome che mi serve. Il Like mi serve perché devo cercare la persona specifica. Il nome del controllo nella maschera in oggetto è [Cognome].

    Capisco che sarebbe meglio una ricerca su ID e/o su Matricola, così da ricevere un valore univoco ma tant'è. Sto semplificando la gestione di circa 400 persone, che poi trattasi di società dilettantistica, con 2/3 persone che accedono all'applicativo e che mi hanno chiesto una ricerca da Cognome per non andare ogni volta a cercare il relativo codice.

    Comunque credo possiamo essere vicini alla risoluzione, già il fatto che per aprire l'anteprima report mi chieda nuovamente il cognome, ma anche non inserendo dati mi dia quello della persona su cui precedentemente avevo aperto la maschera, credo sia un notevole passo avanti.

    Grazie comunque a tutti per i consigli.

  • Re: Pulsante Maschera senza criteri di apertura query

    Hhhmmmmm.... hai scritto del codice per aprire il report ?

    Conosci il VBA ?

    Hai guardato la documentazione supporto Microsoft che ti ho allegato nel post precedente ? 

  • Re: Pulsante Maschera senza criteri di apertura query

    Se togli il like e lanci il report, dopo avere inserito il cognome nel controllo della form, cosa ottieni?

    Adesso quando lanci il report Ti chiede di nuovo il cognome perche' hai messo il like (...che non serve).

  • Re: Pulsante Maschera senza criteri di apertura query

    07/02/2025 - By65Franco ha scritto:

    Hhhmmmmm.... hai scritto del codice per aprire il report ?

    Franco, il report lo lancia con una macro.

  • Re: Pulsante Maschera senza criteri di apertura query

    Secondo me c'è un po' di caos organizzativo in generale...tuttavia mi atterrei alla semplice progettazione di Dueruote.
    Ovviamente non devi scrivere [NOME MASCHERA], ma esattamente il nome vero della tua maschera. Si chiama Pippo? Allora scriverai [Pippo].
    Nella condizione WHERE (e solo lì)(Dueruote usa la macro) ci vai a indicare [Maschere]![Pippo]![IDNominativo]
    La mia soluzione diverge da quella di Mailman: provale entrambe. Ma sicuramente nella query devi scrivere una sola riga di Criterio (non due)(io lascerei il Like [Cognome]).
    Spero tu abbia incluso il campo IDNominativo nella maschera. Altrimenti mostra una immagina della tua maschera.
    Ripeto, fornisci nomi propri di tutti gli oggetti che entrano in gioco, tutti capiscono meglio l'intero contesto.

  • Re: Pulsante Maschera senza criteri di apertura query

    Per aprire l'anteprima del Report, sulla maschera ho creato un pulsante, seguito le istruzioni e quindi creato una macro.

    Per quanto riguarda il like [Digita Cognome] ne ho bisogno. Al momento che io richiamo la maschera ho bisogno di effettuare la ricerca.

    Ho provato anche a creare una copia della query [Nominativi x Cognome] eliminando il criterio Like. Cambiando l'origine del report e inserendo la copia della query, il relativo Report [R Nominativi x Cognome] non si apre sul cognome desiderato ma su tutti quelli presenti nella Query.

    Nella maschera il campo/casella di testo [Cognome] della query [Nominativi x Cognome] è stato nominato semplicemente [Cognome].

    Ho visionato la documentazione supporto Microsoft ma, sinceramente, sono andato in estrema difficoltà. Come detto, non sono espertissimo, anzi, di codici e VBA. Di solito mi limito alle possibilità fornite dalle Macro.

    Grazie ancora.

  • Re: Pulsante Maschera senza criteri di apertura query

    Scusa ma occorre fare un po' di ordine:

    Per aprire l'anteprima del Report, sulla maschera ho creato un pulsante, seguito le istruzioni e quindi creato una macro.

    E fin qui niente di strano anche se a me non piacciono le macro perche' sono un po' troppo rigide e non permettono la flessbilita' del VBA.

    Per quanto riguarda il like [Digita Cognome] ne ho bisogno. Al momento che io richiamo la maschera ho bisogno di effettuare la ricerca.

    Questo invece e' piu' "oscuro": se ho capito bene tu apri una form basata su una query con filtro, che ti chiede un cognome prima dell'apertura. Poi si apre la form e ti mostra il record (o i records) che hanno quel cognome. E' giusto?

    Poi all'interno della form hai messo un pulsante con una macro che Ti apre il report: giusto fin qui?

    Come hai costruito il report? Da dove prendi i dati per compilarlo? Dalla stessa query che usi per aprire la form?

    Ti do un altro consiglio: gli oggetti delle maschere devono avere un nome proprio, in particolare quelli associati a campi di tabella dovrebbero avere un nome differente dal nome del campo, per evitare confusione...

Devi accedere o registrarti per scrivere nel forum
18 risposte