Ho un problema con VBA su Access2000
Questo codice non funziona (mi crea solo un record nella tabella "Marche"):
codice:
Dim db As Database
Dim origine As DAO.Recordset
Dim marche As DAO.Recordset
Dim strCriterio As String
Set db = CurrentDb
Set origine = db.OpenRecordset("AUTOXX", dbOpenDynaset)
Set marche = db.OpenRecordset("Marche", dbOpenDynaset)
origine.MoveFirst
Do Until origine.EOF
strCriterio = "txtMarca = '" & origine!MARCA & "'"
marche.FindFirst strCriterio
If marche.EOF Then
marche.AddNew
marche!txtMarca = CStr(origine!MARCA)
marche.Update
End If
origine.MoveNext
Loop
marche.Close
origine.Close
Set marche = Nothing
Set origine = Nothing
Questo codice invece funziona perfettamente: tutte le marche vengono riportate (una volta sola) dalla tabella "origine" alla tabella "marche".
codice:
Dim db As Database
Dim origine As DAO.Recordset
Dim marche As DAO.Recordset
Dim strCriterio As String
Set db = CurrentDb
Set origine = db.OpenRecordset("AUTOXX", dbOpenDynaset)
Set marche = db.OpenRecordset("Marche", dbOpenDynaset)
origine.MoveFirst
Do Until origine.EOF
strCriterio = "txtMarca = '" & origine!MARCA & "'"
If IsNull(DLookup("idMarca", "Marche", strCriterio)) Then
marche.AddNew
marche!txtMarca = CStr(origine!MARCA)
marche.Update
End If
origine.MoveNext
Loop
marche.Close
origine.Close
Set marche = Nothing
Set origine = Nothing
Qualcuno mi sa dare qualche consiglio? Non riesco a capire perchè il primo codice non funziona. Grazie!