DLookup con riferimenti impliciti.

di il
1 risposte

DLookup con riferimenti impliciti.

Buongiorno a tutti,
Avrei bisogno di un suggerimento inerente alla seguente problematica Access.
In una maschera di input, ho necessità di acquisire e visualizzare dei valori da altra tabella Access,
e per questo utilizzo la funzione nativa DLookup, che nel modo esplicito funziona regolarmente.
Ma per una evidente neutralizzazione del codice e replicabilità, vorrei ove possibile evitare di esplicitare i nomi degli oggetti.
Più precisamente riporto sotto la routine che utilizzo:

Private Sub IDABICAB_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
'Visualizzo sulla barra di stato il DLookup del ABI-CAB.
Dim strBanca As String, strNForm as String
strNForm = Me.Name ' "Titoli"

   'Questa riga NON funziona – Errore restituito: 2450, Impossibile trovare la maschera ‘strNForm’-------
   strBanca = Nz(DLookup("[DesABI]", "[Banche]", "[IDBanca]= Forms!strNForm![IDABICAB]"), vbNullString)

   'Questa riga funziona correttamente-----------------------------------------------------------------------------
   'strBanca = Nz(DLookup("[DesABI]", "[Banche]", "[IDBanca]= Forms![Titoli]![IDABICAB]"), vbNullString)

   StatusMessageSet strBanca
End Sub
Ho provato altre varie soluzioni, tipo Me.Name, ma senza successo.
Ringrazio in anticipo tutti coloro che volessero darmi una dritta e/o contribuire alla soluzione.

1 Risposte

  • Re: DLookup con riferimenti impliciti.

    strNForm = Me.Name ' "Titoli"
    Per me questa istruzione non ti serve. Quando in una Private Sub dichiari Me, stai già dichiarando la stessa maschera dove stai lavorando. Per tanto le dichiarazioni possibili sono:
    Forms!NomeMaschera!NomeCampo
    oppure
    Me!NomeCampo
    Se proprio vuoi usare una variabile strNForm di tipo String, dopo avergli assegnato il valore
    strNForm = Me.Name
    è vero che in strNForm ci va a finire il valore "Titoli", ma la dichiarazione si fa così
    Forms(strNForm)!NomeCampo
Devi accedere o registrarti per scrivere nel forum
1 risposte