Ciao a tutti,ho passato un po' di ore su questo problema ma non ne esco ... premetto che non sono un programmatore
Ho adattato qualche riga di codice per migrare delle tabelle da Access a Sql server. Queste sono le funzioni
------------------------------------
Public Function exportTable(table As String, destTable As String)
DoCmd.TransferDatabase acExport, "ODBC Database", _
"ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=192.168.0.1;UID=XXXX;PWD=XXXX;Trusted_Connection=No;APP=SSMA;DATABASE=DBname;", _
acTable, table, destTable
End Function
Public Sub exportToSQLserver()
Dim a as Variant
Dim b as Variant
Dim c as Variant
a = exportTable("Source tablename1", "Dest tablename1")
b = exportTable("Source tablename2", "Dest tablename2")
c = exportTable("Source tablename3", "Dest tablename3")
End Sub
------------------------------------
Chiamando exportToSQLserver la procedura funziona perfettamente per "Source tablename1", ma fallisce per "Source tablename2". Dopo svariate prove ho capito che l'operazione funziona solo per la prima tabella (qualunque essa sia), dalla seconda in poi fallisce; fallisce nel senso che viene creata su SQL server la tabella di destinazione, ma rimane completamente
vuota.
L'errore e':
Errore di run time '3146'
ODBC: chiamata non riuscita
Il workaround e' eseguire l'operazione solo per la prima tabella, chiudere il db Access, riaprirlo, eseguire l'operazione solo per
la seconda tabella e via cosi'
Ho il sospetto che dovrei in qualche modo chiudere la connessione al SQL server tra un trasferimento e l'altro, ma non ho idea di come fare. Idee / suggerimenti ?
Grazie
Marco