betrifft MS Access |
Problembeschreibung:
Manchmal ist es notwendig, dass eine Tabelle mittels VBA verknüpft werden muss, weil der Verknüpfungsassistent von MS Access wiedereinmal nicht mit der Anzahl der Tabellen in einer externen Datenbank klar kommt, und so verhindert, dass die zu verknüpfende Tabelle ausgewählt werden kann.
Lösungsidee
Die Tabelle wird mittels VBA direkt verknüpft. Dazu muss der Pfad zur externen Datenbank, der Datenbanktyp und die Verknüpfungsinformationen bekannt sein. Diese Möglichkeit ist auch in der Onlinehilfe beschrieben (Stichwort: Connect (DAO))
Programmcode
'Code zum Verknüpfen einer Tabelle über ODBC mittels VBA
Dim db As Database
Dim Tabellenname As String
Dim Verbindungsinformation As String
Dim Name_Quelltabelle As String
Dim neue_Tabelle As TableDef
'Beispiele für Verbindungsinformationen
Tabellenname = "Meine_Tabelle" 'Name der Tabelle
Name_Quelltabelle = "externe_Tabelle" 'Name der Originaltabelle
'Beispiele
'MS Access DB
Verbindungsinformation = ";DATABASE=C:\Dokumente und Einstellungen\USER\Eigene Dateien\Datenbank.mdb"
'ODBC-Verbindung (muss über die ODBC-Verwaltung in der Systemsteuerung existieren)
'Verbindungsinformation = "ODBC;DSN=COMPUTER;Description=Beispieldatenbank;APP=Microsoft Office XP;WSID=SQLSERVER;DATABASE=MSSQL_DATENBANK;"
'Excel-Tabelle (die Quelltabelle bezeichnet hier das Arbeitsblatt)
'Verbindungsinformation = "Excel 5.0;DATABASE=C:\Dokumente und Einstellungen\user\Eigene Dateien\Tabelle.xls"
'weitere Beispiele siehe Online-Hilfe
'Datenbankobjekt ermitteln
Set db = CurrentDb
'Neues Tabellenobjekt anlegen
Set neue_Tabelle = db.CreateTableDef
neue_Tabelle.Name = Tabellenname 'Tabellenname festlegen
neue_Tabelle.Connect = Verbindungsinformation 'Verbindungsinformation festlegen
neue_Tabelle.SourceTableName = Name_Quelltabelle 'Name der Quelltabelle
'Tabelle anlegen
db.TableDefs.Append neue_Tabelle
db.TableDefs.Refresh
'Speicher freigeben
Set db = Nothing