[Risolto] Caselle combinate a cascata unico per più maschere

di il
2 risposte

[Risolto] Caselle combinate a cascata unico per più maschere

Ho 3 maschere aventi gli stessi meccanismi di caselle combinate a cascata sugli stessi campi (Combo1, Combo2, Combo3). Per chi conosce questo meccanisco, occorre impostare 2 query su Combo2 e Combo3 tali da includere i filtri, rispettivamente:
[Forms]![NomeMaschera]![Combo1]
[Forms]![NomeMaschera]![Combo2]
Siccome devo fare lo stesso giochetto su 3 maschere diverse, mi scoccia dover creare 6 query che riportano il corrispondente [NomeMaschera].
Esisterebbe una sintassi che permetterebbe di chiamare [NomeMascheraCorrente] valida per tutte?

Soluzione alternativa. Siccome per tutte e 3 le maschere in definitiva mi interessa impostare un solo valore (quello finale di Combo3), forse converrebbe:
1. sostituire le 3 combo nelle 3 maschere con un solo CampoA
2. costruire una sola maschera X col giochetto delle caselle combinate in cascata.
3. ogni volta che voglio impostare il valore in CampoA, apro maschera X, scelgo con le 3 caselle combinate e poi ImpostaValore in CampoA.

Quale soluzione sarebbe preferibile?

2 Risposte

  • Re: [Risolto] Caselle combinate a cascata unico per più maschere

    Non ho capito quasi nulla... ma, si potrebbe creare una Funzione che costruisca e quindi restituisca un CRITERIO in base alla Maschera aperta...!
    In sostanza da VBA potresti leggere la ActiveForm(qualsiasi essa sia, ma ovviamente è una delle 3 di cui parli...), su questa Form se i controlli Combo sono sempre gli stessi... sarà semplice costruire un Criterio...
    
    Public Function GetCriterio(ID as Long) As String
       Dim strCriterio  As String
       Dim frm as Access.Form
       Set frm=Screen.ActiveForm
       strCriterio="NomeCampo=" & frm.Controls("NomeCombo1").Value
       ' Nel caso di più criteri Concatenati...
       strCriterio= strCriterio & " AND NomeCampo2=" & frm.Controls("NomeCombo2").Value
       GetCriterio=strCriterio
    End Function
    Ora se metti la chiamata di questa Funzione in una Query...
    
    SELECT * FROM T1 WHERE GetCriterio(T1.ID)
    Fai attenzione al PARAMETRO, non ricordo bene in quanto è molto che non lavoro più con Access... ma credo che serva passare un PARAMETRO per far funzionare il tutto, anche se poi non viene usato...

    Ovviamente questo esempio è solo per farti capire di cosa parlavo, e forse non ho nemmeno centrato il problema...
  • Re: [Risolto] Caselle combinate a cascata unico per più maschere

    Ho risolto con la seconda soluzione alternativa.
Devi accedere o registrarti per scrivere nel forum
2 risposte