Ciao a tutti, ho un problema nel passaggio di valori tra due maschere.
Nella prima maschera ho un bottone che fa eseguire una ricerca su un campo. Il campo può contenere più volte lo stesso valore, quindi l'utente può continuare o interrompere la ricerca. Potrei usare una msgbox, ma mi appare in un punto fastidioso e mi copre proprio il campo di ricerca.
Quindi ho risolto chiamando una maschera modale con due bottoni e devo intercettare quale bottone è stato premuto.
Quando si preme il bottone di ricerca, il codice interrompe il loop, apre la seconda maschera e chiede all'utente se proseguire o meno la ricerca. In caso positivo, deve chiudere la maschera e riprendere il loop; in caso negativo, deve fermarsi su quel record e uscire dal loop.
Non riesco a capire dove sbaglio, allego il codice di entrambe le maschere.
Form “madre” (Ruoli 2023):
Private Sub CercaRuolo_Click()
Dim valoreRicerca As Variant
valoreRicerca = InputBox("Ruolo da cercare:", , , 8000, 6000)
If valoreRicerca <> "" Then
' Salva la posizione corrente nel recordset
Dim posizioneCorrente As Variant
posizioneCorrente = Me.CurrentRecord
' Cerca il record con il criterio specifico
If Me.RecordsetClone.RecordCount > 0 Then
Me.RecordsetClone.FindFirst "Ruolo LIKE '*" & valoreRicerca & "*'"
Do While Not Me.RecordsetClone.NoMatch
' Verifica se il record trovato è quello giusto
Me.bookmark = Me.RecordsetClone.bookmark
' Visualizza la tua form personalizzata
DoCmd.OpenForm "ContinuaRicerca", , , , , acDialog
' Verifica la risposta dall'utente
CheHaDetto = Forms("ContinuaRicerca").Tag
'DoCmd.Close acForm, "ContinuaRicerca"
If CheHaDetto = "NO" Then
' L'utente ha trovato il record che cercava, esci dal loop
Exit Do
Else
' Prova a trovare il successivo
Me.RecordsetClone.FindNext "Ruolo LIKE '*" & valoreRicerca & "*'"
End If
Loop
If Me.RecordsetClone.NoMatch Then
' Nessun record trovato o confermato, ripristina la posizione corrente
MsgBox "Nessun record trovato o confermato."
DoCmd.GoToRecord , , acGoTo, posizioneCorrente
End If
End If
End If
End Sub
Form “figlia” (ContinuaRicerca):
Private Sub btnSi_Click()
' Imposta il tag della form su "SI"
Me.Forms.Tag = "SI"
' Chiudi la form "ContinuaRicerca"
DoCmd.Close acForm, Me.Name
End Sub
Private Sub btnNo_Click()
' Imposta il tag della form su "NO"
Me.Forms.Tag = "NO"
' Chiudi la form "ContinuaRicerca"
DoCmd.Close acForm, Me.Name
End Sub
Qualcuno può aiutarmi?
Grazie in anticipo!