2016-07-23 9 views
1

Ich versuche Tabellen zum hinteren Ende in Access 2010 beim Start einer Verknüpfung zu machen,Dynamische Verknüpfung von Tabellen in VBA

Hier ist der Code:

dbs.TableDefs(intLoop - 1).Connect = ";DATABASE=" & strBack & strBackEnd 
Debug.Print (dbs.TableDefs(intLoop - 1).Connect) 
dbs.TableDefs(intLoop - 1).RefreshLink 

jetzt die connect auf eine Datei Das C: oder D: Laufwerk hängt vom PC-Setup ab. Aber anstatt sich mit der Datei zu verbinden, öffnet sich das System-DNS-Auswahlfenster.

Irgendwelche Hinweise, warum? Der Pfad ist gültig, die Datenbank ist gültig.

+0

Was wird 'strBack & strBackEnd' ausgegeben? Sind sie jeweils Verzeichnis- und Basisnamen mit Schrägstrich Windows Trennzeichen und Erweiterung? – Parfait

+0

Ja, die Zeichenfolge ist ein gültiger Pfad zu einer gültigen MDB-Datei. Es ist der RefreshLink, der das DSN-Fenster öffnet. – Rob

+0

Der einzige Grund, ein DSN-Setup zu starten, ist, wenn eine ODBC-verknüpfte Tabelle (eine Nicht-Access-Quelle) verwendet wird. – Parfait

Antwort

0

In einem Kommentar, der Sie erklären:

Die Datenbank, die eine Mischung aus lokalen Tabellen hat, verknüpfte Dateien mdb und Links zu SQLServer.

Sie mit dieser Mischung durch Prüfen der .Connect Eigenschaft jedes TableDef und die Änderung nur solche, die sich Links zu anderen Access-Datenbank umgehen kann.

Dim dbs As DAO.Database 
Dim tdf As DAO.TableDef 

Set dbs = CurrentDb 
For Each tdf In dbs.TableDefs 
    With tdf 
     If .Connect Like ";DATABASE=*" Then 
      .Connect = ";DATABASE=" & strBack & strBackEnd 
      .RefreshLink 
     End If 
    End With 
Next 

Dieser Vorschlag geht davon aus den Verbindungen existieren bereits und Sie versuchen, nur ihre Verbindungseigenschaften zu verändern. Wenn Sie die Verknüpfungen von Grund auf neu erstellen müssen, fügen Sie eine lokale Tabelle mit den Informationen für jede verknüpfte Tabelle hinzu und steuern Sie die Linkerstellung anhand dieser Informationen.

+0

Danke, sobald ich meinen Fehler freigegeben habe, hatte ich das sortiert, aber ich werde Markieren Sie dies als die Antwort für andere, die den gleichen Weg wandern mögen, – Rob

Verwandte Themen