MS Access la Tabella di Collegamento Con VBA

Come posso collegare una tabella da un Database di microsoft Access (*.mdb o *.accdb) a un altro database di Access in VBA?

In pratica ho solo era di utilizzare VBA per replicare quello Esterno guidata Dati.

Ho cercato su google questo e vedo che molti esempi di come aggiornare o ricollegare le tabelle e molti esempi di collegamento a database SQL, ma molto pochi di semplice collegamento di tabelle tra i database di Access.

Non so la risposta, e non sto cercando di dissuadere, ma è in questo modo che si può semplicemente fare clic su un pulsante di sincronizzazione e il rispetto per l’esecuzione della procedura guidata? Vorrei essere riluttanti a fare questo a causa della bella built-in di convalida che viene nativamente con Accesso (maggio?) hanno anche il codice per.
Sì, questo è esattamente il motivo per fare questo. Ho automatizzato quasi tutte le mie manipolazioni del database in VBA tranne questo. Posso usare la procedura guidata, ma sembra che io sto all’ultimo ostacolo!

OriginaleL’autore Mark | 2016-04-27

2 Replies
  1. 11

    È possibile utilizzare il DoCmd.Metodo TransferDatabase per creare un collegamento a una tabella di un altro database di Access.

    DoCmd.TransferDatabase TransferType:=acLink, _
            DatabaseType:="Microsoft Access", _
            DatabaseName:="C:\share\Access\Example Database.accdb", _
            ObjectType:=acTable, _
            Source:="Addresses", _
            Destination:="Addresses_link"

    Ho inserito l’opzione nomi sperando che possa rendere più facile per tenere traccia di quale opzione è che. Ma se questo sembra troppo prolisso, è possibile omettere i nomi delle opzioni e fare tutto su una riga:

    DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\share\Access\Example Database.accdb", acTable , "Addresses", "Addresses_link"

    OriginaleL’autore HansUp

  2. 3

    Realtà è abbastanza facile: basta creare un nuovo oggetto tabledef e impostare il suo .proprietà di connessione per una stringa di connessione ODBC che i collegamenti ad altri database di Access.

    Private Function LinkTable(LinkedTableName As String, TableToLink As String, connectString As String) As Boolean
    
        Dim tdf As New dao.TableDef
    
        On Error GoTo LinkTable_Error
    
        With CurrentDb
    
            .TableDefs.Refresh
    
            Set tdf = .CreateTableDef(LinkedTableName)
            tdf.Connect = connectString
            tdf.SourceTableName = TableToLink
            .TableDefs.Append tdf
            .TableDefs.Refresh
    
    
        End With
    
        Set tdf = Nothing
    End Function
    

    La stringa di connessione sarebbe qualcosa di simile a questo (preso da connectionstrings.com):

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;
    

    OriginaleL’autore DataWriter

Lascia un commento