Hallo,
ich habe eine mdb (Access 2003) drei Sorten Tabellen:
- lokale Tabellen
- Tabellen, die aus einer anderen mdb verknüpft sind
- Tabellen, die aus Oracle verknüpft sind
Um die Möglichkeit zu bieten, mal ordentlich aufzuräumen, möchte ich ein Makro anlegen, das mir alle aus Oracle (oder SQL-Server) verknüpften Tabellen löscht (um sie danach sauber neu verknüpfen zu können).
Natürlich wird dieses Makro irgendeine VBA-Funktion aufrufen, es ist halt als Makro leichter aufrufbar. Wie gehe ich per VBA alle Tabellen durch, um welches Merkmal der Tabelle zu untersuchen und auf dieser Grundlage entscheiden, sie wie zu löschen?
Ich bin für jede Hilfe dankbar.
Hallo,
vieleicht hilft dir dies:
http://www.arstechnica.de/computer/msoffice/vba/vba0059.html
Danke, das ist doch mal ein Ansatz, auf dem man aufbauen kann. Wie ermittle ich nun, ob die Tabelle per ODBC verknüpft ist?
Sieh dir doch mal die Tabelle MSysObjects an. (Eigenschaften/Systemelemente einblenden)
Dort findest du die Spalte Connect, die auskunft gibt ob eine eingebundene Tabelle vorhanden ist.
Bei ODBC steht dort DSN=.....
Andreas
Danke, ich versuch es mal.
Dim td As TableDef
For Each td In CurrentDb.TableDefs
If Left(td.Connect, 4) = "ODBC" Then
' Dann ist es eine ODBC-verknüpfte Tabelle
End If
Next
Hab's jetzt:
Public Function VerknüpfungenLöschen()
Dim td As TableDef
For Each td In CurrentDb.TableDefs
If Left(td.Connect, 4) = "ODBC" Then
Call DoCmd.DeleteObject(acTable, td.Name)
End If
Next
End Function