Passaggio filtro ad una query mediante una maschera.

di il
7 risposte

Passaggio filtro ad una query mediante una maschera.

Ciao a tutti, grazie veramente per l'aiuto che mi stato dando. Sono rimasto nuovamente impantanato. Vi spiego cosa vorrei fare.

Ho una tabella di nome tblRedazioneRapportoDiLavoro la quale è composta dai seguenti campi: IDRedazioneRapporto, DataRapporto, Meteo e IDLavoro.

Soffermiamoci sul campo IDLavoro: è una combo gestita naturalmente da una query con la quale vado a prendermi l'IDLavoro e la Denominazione breve nella tabella Lavori(con la quale c'è una relazione 1(Rapporto) molti(lavori)): Colonna associata 1, numero colonne 2, 0cm larghezza colonne dunque vedo solo la denominazione breve e non il numerino.

Devo interrogare la tabella tblRedazioneRapportoDiLavoro in funzione di data ed IDLavoro, allora creo una query con parametro. Facciamo il passo successivo, ossia quello di creare una maschera che passa la data e l'IDLavoro alla query (questo passaggio è fatto naturalmente associando la maschera ad un report basato sulla query la quale alla sezione criteri ha il solito filtro [Forms]![frmData]![ctrData] per la data e  e [Maschere]![frmData]![CasellaCombinata28] per IDLavoro. La casella combinata 28 è quella presente sulla maschera frmData la quale mi fa scegliere il lavoro(CasellaCombinata28) e poi sulla stessa maschera c'è il controllo ctrData per la scelta della data. Naturalmente, nella casella combinata 28 non voglio l'IDLavoro che è un numero vorrei la denominazione breve, naturalmente se metto la denominazione breve non funziona nulla perché nella query il criterio è sotto IDLavoro che è numerico. 

Allora la mia idea è stata la seguente, per la casellaCombinata28 faccio una combo con le denominazioni brevi e poi vorrei fare una casella di testo, chiamiamola x, la quale si aggiorna con l'IDLavoro relativo alla denominazione breve e nella query a questo punto mettere nella sezione criteri dell'IDLavoro invece della casella combinata 28 la casella di testoX (che poi sarà opportunamente nascosta). In questo modo almeno teoricamente tutto dovrebbe funzionare. 

Il problema è che non so come attuare questo metodo, ma soprattutto se ne esiste un altro migliore e più veloce. Confido come sempre nel vostro aiuto, un saluto da Nat!

7 Risposte

  • Re: Passaggio filtro ad una query mediante una maschera.

    02/07/2023 - Nat ha scritto:


    numero colonne 2, 0cm larghezza colonne dunque vedo solo la denominazione breve e non il numerino.

    Avendo 2 colonne, mi aspetto Larghezza colonne: 0cm; 5cm.

    02/07/2023 - Nat ha scritto:


    Devo interrogare la tabella tblRedazioneRapportoDiLavoro in funzione di data ed IDLavoro, allora creo una query con parametro.

    OK.

    02/07/2023 - Nat ha scritto:


    Facciamo il passo successivo, ossia quello di creare una maschera che passa la data e l'IDLavoro alla query

    OK.

    02/07/2023 - Nat ha scritto:


    questo passaggio è fatto naturalmente associando la maschera ad un report basato sulla query la quale alla sezione criteri ha il solito filtro [Forms]![frmData]![ctrData] per la data e  e [Maschere]![frmData]![CasellaCombinata28] per IDLavoro.

    Che vuol dire?

    Quando vuoi passare 2 parametri alla query, devi scrivere nei due Criteri così:
    [Maschere]![NomeMaschera]![NomeControllo1]
    e
    [Maschere]![NomeMaschera]![NomeControllo2]

    Per tutto il resto del discorso, non ho capito niente.

  • Re: Passaggio filtro ad una query mediante una maschera.

    02/07/2023 - OsvaldoLaviosa ha scritto:


    02/07/2023 - Nat ha scritto:


    numero colonne 2, 0cm larghezza colonne dunque vedo solo la denominazione breve e non il numerino.

    Avendo 2 colonne, mi aspetto Larghezza colonne: 0cm; 5cm.

    02/07/2023 - Nat ha scritto:


    Devo interrogare la tabella tblRedazioneRapportoDiLavoro in funzione di data ed IDLavoro, allora creo una query con parametro.

    OK.

    02/07/2023 - Nat ha scritto:


    Facciamo il passo successivo, ossia quello di creare una maschera che passa la data e l'IDLavoro alla query

    OK.

    02/07/2023 - Nat ha scritto:


    questo passaggio è fatto naturalmente associando la maschera ad un report basato sulla query la quale alla sezione criteri ha il solito filtro [Forms]![frmData]![ctrData] per la data e  e [Maschere]![frmData]![CasellaCombinata28] per IDLavoro.

    Che vuol dire?

    Quando vuoi passare 2 parametri alla query, devi scrivere nei due Criteri così:
    [Maschere]![NomeMaschera]![NomeControllo1]
    e
    [Maschere]![NomeMaschera]![NomeControllo2]

    Per tutto il resto del discorso, non ho capito niente.

    Grazie per l'interessamento, mi spiego meglio. 

    IDLavoro è un numero, mentre nella maschera frmData io vorrei scegliere anziché il numero la denominazione breve, non posso mica ricordarmi l'IDLavoro di ogni lavoro! è chiaro che se nella maschera frmData scelgo la denominazione breve il filtro non funziona perché sta confrontando un testo con un numero! 

    Io vorrei che l'utente nella cboDenominazioneBreve scegliesse effettivamente la denominazione breve, ma nel momento in cui la sceglie in un altra casella comparisse l'IDLavoro relativo a quella denominazione breve, la tabella lavoro è così fatta:

    IDLavoro    DenominazioneBreve

    12                      Lavoro1

    Allora io vorrei che quando l'utente interagisce con la maschera frmData inserisca la data, poi scorra tutte le denominazioni brevi della cboDenominazioneBreve, supponiamo scelga Lavoro1, allora in un altra casella combinata, chiamiamola cboIDLavoro, sempre posizionata sulla maschera frmData, uscisse automaticamente 12, in modo tale che ora nella cboIDLavoro ho il valore 12, allora nella query avrò questo filtro

    [Forms]![frmData]![cboIDLavoro]

    e tutto funziona, perché ora confronta un numero con un numero. 

  • Re: Passaggio filtro ad una query mediante una maschera.

    Come volevasi dimostrare eccoci alla query…

    Creati la vista query con la join e includi i campi della tabella lavori, a quel punto puoi dare il parametro descrizione preso dalla combo…

    Il parametro lo scrivi su descrizione lavoro non su idlavoro.

    Facci sapere!

  • Re: Passaggio filtro ad una query mediante una maschera.

    02/07/2023 - sihsandrea ha scritto:


    Come volevasi dimostrare eccoci alla query…

    Creati la vista query con la join e includi i campi della tabella lavori, a quel punto puoi dare il parametro descrizione preso dalla combo…

    Il parametro lo scrivi su descrizione lavoro non su idlavoro.

    Facci sapere!

    Come ho fatto a non pensarci! Sei gandeeee!

  • Re: Passaggio filtro ad una query mediante una maschera.

    Poi parliamo di provvigioni…

    :-)

  • Re: Passaggio filtro ad una query mediante una maschera.

    02/07/2023 - sihsandrea ha scritto:


    Creati la vista query con la join e includi i campi della tabella lavori

    OK.

    02/07/2023 - sihsandrea ha scritto:


    Il parametro lo scrivi su descrizione lavoro non su idlavoro.

    Non sono d'accordo. Il campo ID è sempre più efficace per il parametro…poi si utilizza la Descrizione per visualizzare per comodità umana. In questa discussione
    CASELLE DI RIEPILOGO - Pagina 3 - Forum Microsoft Access (iprogrammatori.it)
    dal post 1/7/2023 16:22 in poi viene sollevato il problema di eventuali caratteri speciali che potrebbero compromettere il parametro testuale.

  • Re: Passaggio filtro ad una query mediante una maschera.

    02/07/2023 - OsvaldoLaviosa ha scritto:


    02/07/2023 - sihsandrea ha scritto:


    Creati la vista query con la join e includi i campi della tabella lavori

    OK.

    02/07/2023 - sihsandrea ha scritto:


    Il parametro lo scrivi su descrizione lavoro non su idlavoro.

    Non sono d'accordo. Il campo ID è sempre più efficace per il parametro…poi si utilizza la Descrizione per visualizzare per comodità umana. In questa discussione
    CASELLE DI RIEPILOGO - Pagina 3 - Forum Microsoft Access (iprogrammatori.it)
    dal post 1/7/2023 16:22 in poi viene sollevato il problema di eventuali caratteri speciali che potrebbero compromettere il parametro testuale.

    Quello è codice… qui si tratta di passare il contenuto della combo.

    In questo caso è access che scrive il codice necessario per passare come parametro il contenuto della combo.

    L'unica accortezza che non ci siano duplicati. Non va in crash ma se descrizione “trasporto materiale infiammabile” ha id 1 e 2 il parametro mostrerà sia quelli con id1 che 2.

    L'alternativa è il codice…

Devi accedere o registrarti per scrivere nel forum
7 risposte