Ciao a tutti.
Mi trovo a dover riversare dati da alcune tabelle di un mio DB in tabelle analoghe di un altro DB (non mio)
Parlo di tabelle "analoghe" in quanto, sebbene di base i due DB richiedano gli stessi dati, tuttavia io tratto i miei in modo diverso; ad es. io uso il campo Denominazione, l'altro il campo Ditta, per me l'indirizzo usa 3 campi (Citta, Indirizzo, CAP - in tal modo posso effettuare ricerche specifiche), l'altro un campo unico Indirizzo, e così via.
Pensavo di aver risolto in VBA in questo modo:
'RIVERSO TUTTI I FORNITORI
Dim Rst As DAO.Recordset
Dim Totale As Integer
Totale = 0
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM tblFornitori")
With Rst
.MoveLast
.MoveFirst
Do Until .EOF
Debug.Print !IDFornitori
DBEngine(0)(0).Execute ("INSERT INTO Fornitori ([N°],[Fornitore],[Indirizzo],[Telefono e fax],[Fax],[e-mail e WEB],[Campo di attività]) VALUES (" & _
!IDFornitori & ",'" & !Denominazione & "','" & !Sede & " - " & Replace(!Indirizzo, "'", " ") & " - " & !CAP & "','" & !Tel1 & "','" & !Fax & "','" & !Website & " - " & !MailDitta & "','" & !Campo & "');"), dbFailOnError
Totale = Totale + 1
.MoveNext
Loop
End With
Rst.Close
Set Rst = Nothing
MsgBox "FINITO" & vbNewLine & "Inseriti " & Totale & " records", vbOKOnly + vbCritical, "Fine inserimento"
Funziona, i dati vengono riversati nella tabella bersaglio, trane nel caso in cui io abbia qualche campo nullo (vuoi perchè non possiedo il dato, vuoi perchè in quel caso non mi interessa.
Avrei pensato ad un ResumeNext, ed in effetti tutto è stato riversato, apparentemente senza saltare nessun dato.
E' il modo giusto di evitare l'errore, o potrei rischiare perdite di dati o simili? Se non è il modo giusto, in che modo gestire la cosa?
Grazie
Andrea