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:

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
L'errore che mi da è:
"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