Il problema è proprio quando si copia/incolla codice non capito...
Spiegazione:
Dim fld As Field
For Each fld In scelta.Fields
MsgBox scelta.Name ' mi risponde solo e sempre " Select id_Vis, Nome, datanas.....)"
Next
Premesso che questa parte di codice va eliminata....
Secondo te Scelta cosa è...?
La proprietà Nome dell'oggetto Scelta che è un Recordset rappresenta l'origine del Recordset quindi come fa a cambiare...?
In quella riga con il MSGBOX eventualmente dovevi scrivere fld.Name....
Detto questo altro errore
str(Me!trovati)
Se devi convertire in Stringa leggi la guida cosa dice di quella funzione...
Eventualmente fosse servito qualche cosa avresti dovuto usare CSTR(..)... ma in quel caso bastava non mettere nulla in quanto la concatenazione di un numero con il resto della stringa attiva la conversione o casting implicito.
Alla fine mi piacerebbbe capkre perche non eviti di usare un Recordset aggiuntivo che l'oggetto Recordsetclone è fatto apposta per essere usato direttamente...
Elimina il recordset Scelta ed utilizza in modo diretto il recordsetclone.
Ora mi chiedo perché non hai usato una Combobox che funziona da textbox ed in automatico scorre al primo corrispondente...?
poi su AfterUpdate o Enter o Exit fai il FINDFIRST sul recordsetclone di form e poi aggiorni il bookmark...?
P.S. Dimenticavo... altri errori gravi, 2 in 3 righe di codice:
antocuomo ha scritto:
....
Private Sub sceltanome_Change()
Dim indizio, ricerca As String <-------------- ### La dichiarazione della Variabile [indizio] è errata ###
indizio = Me!sceltanome.Text
ricerca = "Select id_vis, nome, datana from Visitatori Where ([nome] like " & Chr$(34) & "*" & indizio & "*" & Chr(34) & ");"
Me!trovati.RowSource = ricerca
Me!trovati.Requery <-------------- [NON SERVE] l'assegnazione del ROWSOURCE lo fa già...
End Sub
Il codice giusto senza sprechi che consente DEBUG regolare sarebbe questo:
Private Sub sceltanome_Change()
Dim ricerca As String
ricerca = Me!sceltanome.Text
ricerca = "Select id_vis, nome, datana from Visitatori Where ([nome] like " & Chr$(34) & "*" & ricerca & "*" & Chr(34) & ");"
Me!trovati.RowSource = ricerca
End Sub