Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    30

    [VB.NET] Copiare tabelle, query e macro da un db access ad un altro

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    30
    RISOLTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!



    Posto il codice!!!!!!


    codice:
        Sub Prova()
            Dim accApp1 As Access.Application
            Dim strPathDest As String
    
            accApp1 = Nothing
            ApriFileAccess(accApp1, "C:\DBSorgente.mdb", False)
            strPathDest = "C:\DBDest.mdb"
    
            accApp1.DoCmd.TransferDatabase(Access.AcDataTransferType.acExport, "Microsoft Access", strPathDest, Access.AcObjectType.acTable, "Tabella1", "Tabella1")
            accApp1.DoCmd.TransferDatabase(Access.AcDataTransferType.acExport, "Microsoft Access", strPathDest, Access.AcObjectType.acQuery, "Query1", "Query1")
            accApp1.DoCmd.TransferDatabase(Access.AcDataTransferType.acExport, "Microsoft Access", strPathDest, Access.AcObjectType.acMacro, "Macro1", "Macro1")
            ChiudiFileAccess(accApp1)
        End Sub


    Ciao a tutti!!!!!!!!!


    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.