Ciao a tutti,
sto cercando di copiare tabelle, query e macro da un db access ad un altro.
Utilizzo un comando stupidissimo che dovrebbe funzionare ma che purtroppo va in errore:
L'errore che mi da è:codice:sub Copia() Dim accApp1 As Access.Application Dim accApp2 As Access.Application accApp1 = Nothing accApp2 = Nothing ApriFileAccess(accApp1, "C:\DBOrigine.mdb", False) ApriFileAccess(accApp2, "C:\DBDestinazione.mdb", False) accApp1.DoCmd.CopyObject(accApp2.CurrentDb, , Access.AcObjectType.acTable, "Tabella1") accApp1.DoCmd.CopyObject(accApp2.CurrentDb, , Access.AcObjectType.acQuery, "Query1") accApp1.DoCmd.CopyObject(accApp2.CurrentDb, , Access.AcObjectType.acMacro, "Macro1") ChiudiFileAccess(accApp1) ChiudiFileAccess(accApp2) end sub Sub ApriFileAccess(ByRef accApp As Access.Application, ByVal file As String, ByVal visibile As Boolean) accApp = New Access.ApplicationClass() accApp.OpenCurrentDatabase(file, True) accApp.Visible = visibile End Sub Public Sub ChiudiFileAccess(ByRef accApp As Access.Application) System.Runtime.InteropServices.Marshal.ReleaseComObject(accApp.CurrentDb) accApp.CloseCurrentDatabase() accApp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(accApp) accApp = Nothing GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() End Sub
"An expression you entered is the wrong data type for one of the arguments."
eppure mi sembra tutto corretto visto che gli argomenti della funzione sono:
DestinationDatabase As Object
NewName As Object
SourceObjectType As Access.acObjectType
SourceObjectName As Object
Dove sbaglio?![]()
![]()
![]()
![]()
![]()
![]()
![]()
Grazie
Andrea