Criterio query con due combobox in maschere diverse

di il
5 risposte

Criterio query con due combobox in maschere diverse

Buona sera,
ho una query con un campo il cui criterio altro non è che il valore scelto da una combobox. questa cmb si trova in una maschera detta m1. Poi ho una mschera m2, con la stessa cmb di m1. Il mio scopo è quello di creare un criterio in modo tale che il campo mi venga filtrato dal valore scelto dalla cmb della maschera m1, se sto usando la m1, oppure dalla cmb di m2 se sto usando m2. Come lo imposto? Ho usato un IIf con dentro isNull per disperazione , ma non va ovviamente.

Grazie !!!

5 Risposte

  • Re: Criterio query con due combobox in maschere diverse

    Non conosciamo il criterio che hai impostato. Non conosciamo i nomi propri di tabelle e campi.
    Potresti raccontare tutto con più dettagli?
  • Re: Criterio query con due combobox in maschere diverse

    Non ho capito nulla... forse.
    Vorresti che la Query avesse un Criterio o da M1 o da M2 e che avesse effetto su entrambe...?

    Usa una Query Parametrica invece di inserire nella Query il Riferimento alla Combo di una Maschera... oppure scrivi una Funzione che restituisce un Valore di Criterio e che con l'evento AfterUpdate delle combo modifichi...!

    Il primo esempio trovi indicazioni qui:

    Ovviamente è un esempio, nel tuo caso devi poi riassegnare il Recordset all'origine RecordSource.

    La 2° sicuramente ti risulta più semplice da capire.
    
    SELECT * FROM T1 Where Campo=NomeFunzione()
    In un Modulo Bas crei la Funzione richiamata dalla Query:
    
    Public Function NomeFunzione(Optional Valore as Variant)
       Static mValore as mValore 
       If Not IsMissing(Valore) Then mValore=Valore
       NomeFunzione=mValore
    End Function
    Ovviamente ho ipotizzato che il valore passato alla funzione sia già quello che serve a valorizzare il criterio della WHERE.

    Quindi su AfterUpdate delle Combo
    
    Private Combo1_AfterUpdate()
        Call NomeFunzione(me.combo1)
        OggettoConRecordSourceQuery.Requery
    End Sub
  • Re: Criterio query con due combobox in maschere diverse

    Mi scuso molto per il ritardo e ringrazio per il prezioso aiuto datomi.
    Un chiarimento :
    -cosa devo sostituire ai termini "valore " e "mValore" ?
    -la funzione la metto in un modulo di classe?

    perdono per la mia ignoranza...

    Per Osvaldo: hai ragione...

    il criterio precedentemente impostato nel campo della query (quando avevo una cmb in una sola form) era del tipo [Maschere]![m1]![cmb1] e mi restituiva il valore testo che ho scelto dalla cmb1. Cmb1 si collega a campo1 della tb1. la query è qy1 e il campo sotto al quale scrivevo il criterio era omonimo a quello della tb1, ovvero campo1.

    Parto dal presupposto che la cmb1 si trova una sottomaschera (sm1). questa sm1 la trovo sia nella maschera m1 che nella m2. quindi io vorrei che il campo1 della qy1 venga filtrato in base al valore scelto da cmb1, sia che l'abbia scelto aprendo la m1 o la m2.

    NB: m1 è la maschera principale, mentre la m2 si apre come finestra di dialogo attraverso bottone da m2 (m1 resta in "background")

    credo di essere stato piu chiaro e mi scuso per la scarsa conoscenza

    Jibi

    AGGIORNAMENTO:
    Tutto risolto grazie !!!
  • Re: Criterio query con due combobox in maschere diverse

    Il codice va messo in un modulo Standard e puoi lasciare tutto come sta, salvo correggere questo errore:
    Static mValore as Variant
    
  • Re: Criterio query con due combobox in maschere diverse

    Ancora grazie mille!!!
Devi accedere o registrarti per scrivere nel forum
5 risposte