Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera

  • Creatore Discussione Creatore Discussione RAF66
  • Data di inizio Data di inizio

RAF66

Nuovo Utente
27 Mar 2022
8
0
1
Buongiorno a tutti,
ho un database di Access 2016 con 2 maschere:
- la prima si chiama "ELENCO 1" che in ogni record riporta tutti i dati di una persona con un certo
codice identificativo testuale riportato nel campo "VST 1"
- la seconda maschera si chiama APPUNTAMENTI", ed è continua con gli appuntamenti di piu'
persone in una singola giornata.
In questa seconda maschera l'identificativo testuale di ogni singola persona, è riportato nel campo "Testo35" e coincide con l'dentificativo riportato nel campo [VST 1] della
maschera "ELENCO 1".
Io ho creato il codice che, con un doppio clic nel campo "Testo35" permette di aprire
la maschera "ELENCO 1" e visualizzare solo la scheda relativa alla persona con quell'identificativo:

<CODE>
Private Sub Testo35_DblClick(Cancel As Integer)
DoCmd.OpenForm "ELENCO 1", , , "[VST 1] = " & Testo35.Value
End Sub
<CODE>

Purtroppo mi da questo errore:
Errore.JPG



Cosa ho sbagliato?
Ringrazio chiunque possa aiutarmi.
 
Prova così:
DoCmd.OpenForm "ELENCO 1", , , "[VST 1] = """ & Testo35 & """"
oppure:
DoCmd.OpenForm "ELENCO 1", , , "[VST 1] = " & Chr(34) & Testo35 & Chr(34)
 
Forse se alleghi un file di esempio, con un minimo di dati e sostituendo quelli eventualmente sensibili, riesce più facile e rapido aiutarti.
 
Ciao CarlettoFed

grazie al tuo aiuto ho elaborato questo codice:

Codice:
Private Sub Testo35_DblClick(Cancel As Integer)

Dim IDENTIFICATIVO As String

DoCmd.OpenForm "ELENCO C3", , , "[IDENTIFICATIVO] = """ & Me.Testo35 & """"

Me.FilterOn = True

End Sub

nel quale "IDENTIFICATIVO" è il valore e non il nome del campo come inserivo prima, sbagliando.

Così non mi da' più errori, apre il form "ELENCO1" e filtra con il dato presente nel campo "Testo35" dell'altra maschera.

L'unica cosa che ancora non funziona ancora è che non applica "Me.filter = True sulla nuova maschera

e bisogna cliccare manualmente su "Non Filtrato" per vedere la maschera filtrata.

Finestra 1.JPG


Spero di essermi spiegato e ringrazio ancora per tutto l'aiuto che mi hai dato.
 
Ciao CarlettoFed

grazie al tuo aiuto ho elaborato questo codice:

Codice:
Private Sub Testo35_DblClick(Cancel As Integer)

Dim IDENTIFICATIVO As String

DoCmd.OpenForm "ELENCO C3", , , "[IDENTIFICATIVO] = """ & Me.Testo35 & """"

Me.FilterOn = True

End Sub

nel quale "IDENTIFICATIVO" è il valore e non il nome del campo come inserivo prima, sbagliando.

Così non mi da' più errori, apre il form "ELENCO1" e filtra con il dato presente nel campo "Testo35" dell'altra maschera.

L'unica cosa che ancora non funziona ancora è che non applica "Me.filter = True sulla nuova maschera

e bisogna cliccare manualmente su "Non Filtrato" per vedere la maschera filtrata.

Vedi l'allegato 8049

Spero di essermi spiegato e ringrazio ancora per tutto l'aiuto che mi hai dato.
Errata corrige: il forma si chiama ELENCO C3 e non ELENCO1
 
La riga
Dim IDENTIFICATIVO As String
non serve a niente in quanto non viene utilizzara all'interno della routine di evento Testo35_DblClick

La riga
Me.FilterOn = True
non serve a niente in quanto forza a filtrata la maschera APPUNTAMENTI che è quella dove ti trovi nel momento che esegui il codice.

La routine dovrebbe essere semplicemente la seguente:

Codice:
Private Sub Testo35_DblClick(Cancel As Integer)
      DoCmd.OpenForm "ELENCO C3", , , "[IDENTIFICATIVO] = """ & Me.Testo35 & """"
End Sub
 
La riga
Dim IDENTIFICATIVO As String
non serve a niente in quanto non viene utilizzara all'interno della routine di evento Testo35_DblClick

La riga
Me.FilterOn = True
non serve a niente in quanto forza a filtrata la maschera APPUNTAMENTI che è quella dove ti trovi nel momento che esegui il codice.

La routine dovrebbe essere semplicemente la seguente:

Codice:
Private Sub Testo35_DblClick(Cancel As Integer)
      DoCmd.OpenForm "ELENCO C3", , , "[IDENTIFICATIVO] = """ & Me.Testo35 & """"
End Sub

Grazie ancora per i chiarimenti.

L'unica cosa che non riesco ancora a fare è poter attivare da codice il filtro sulla maschera "ELENCO C3",
ho tentato in ogni modo ma non ci sono riuscito.
 
Grazie ancora per i chiarimenti.

L'unica cosa che non riesco ancora a fare è poter attivare da codice il filtro sulla maschera "ELENCO C3",
ho tentato in ogni modo ma non ci sono riuscito.

Ho risolto.
E' bastato impostare

Codice:
Me.FilterOn = True

sull'evento apertura della maschera "ELENCO C3".

Ancora un grandissimo grazie.

Ho imparato molte nuove cose su access.

:)
:):):):):)
 

Discussioni simili