Allora premetto che parto proprio da zero. Devo fare uno scriptino VBA su Access.
Legge dati da tabelle, li analizza e modifica dei campi qua e là.
Vi posto subito il codice che sto iniziando a testare per capirci qualcosa:
Il problema sta nella riga con la freccina (lo so perchè se provo a stampare qualcosa prima di quella riga la stampa, se ci provo subito dopo no).Set db = CurrentDb
Set Sistemi = db.OpenRecordset("Sistemi", dbOpenDynaset)
Set Resi = db.OpenRecordset("Resi", dbOpenDynaset)
Set MDC = db.OpenRecordset("MDC", dbOpenDynaset)
Resi.MoveFirst
Do Until Resi.EOF
Query = "SELECT * FROM Sistemi WHERE [serial_number] = '" & Resi("SN") & "';"
Set Risultato = db.OpenRecordset(Query, dbOpenDynaset)
If IsNull(Risultato.RecordCount) Then GoTo Prossimo
-> Risultato.MoveFirst
Query = "SELECT * FROM MDC WHERE [custcode] = " & Risultato("custcode") & ";"
Set Risultato1 = db.OpenRecordset(Query, dbOpenDynaset)
If Not IsNull(Risultato1.RecordCount) Then
Risultato1.MoveFirst
MDC.Edit
MDC("Stato") = "Prova"
MDC.Update
End If
Prossimo:
Resi.MoveNext
Loop
Sistemi.Close
Resi.Close
MDC.Close
db.Close
All'inizio c'era un Do-Until per scorrere Risultato. Poi mi sono reso conto che i dati hanno una corrispondenza univoca quindi posso leggere tranquillamente i campi di risultato senza dover fare un ciclo perchè avrò un record solo.
A questo punto non sapevo se l'istruzione MoveFirst servisse ancora.
Ma tanto non funza sia che la levo sia che la lascio.
Cosa sbaglio?
Ah, il GoTo mi serve perchè non ho il Continue e non so come risolvere il problema dei recordset vuoti che mi facevano impallare i cicli.
Grazie!