Buongiorno.
Da buon novellino mi sono impantanato sul facile.
Però, dopo aver cercato variamente sulle altre pagine e su altri siti, non ho trovato risposta al mio problema. Arrivo ad esporvelo.
Ho una tabella, denominata "Tabella1" (un esempio creato in fretta per capire la logica delle istruzioni). Ha 3 campi:
RIF (indice e chiave primaria)
NOME (Testo)
COGNOME (Testo)
Ho inserito 3 record, e di fatto la numerazione di RIF riporta 1,2,3.
Poi, ho aggiunto un modulo con il seguente codice:
Sub test()
Dim rs As DAO.Recordset
Dim db As Database
Dim fld As Field
'
Set db = CurrentDb
Set rs = db.OpenRecordset("Tabella1", dbOpenDynaset)
rs.MoveLast
Debug.Print rs.RecordCount
For Each fld In rs.Fields
Debug.Print fld.Value
Next
ld = 2
sCrit = "[RIF] = " & ld
Debug.Print sCrit
With rs
.FindFirst (sCrit)
If Not .NoMatch Then
MsgBox "OK"
End If
End With
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
Quello che accade mi stupisce: il ciclo for...each elenca solo i campi del 1° record; il recordcount mi da 3 (correttamente); .findfirst non trova un tubo (ma RIF=2 dovrebbe essere il 2° record).
Vorrei capire dove sbaglio e/o qual è il problema.
Ringrazio anticipatamente chi avrà la pazienza di rispondermi.