Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Alle verknüpften Tabellen per VBA löschen

Begonnen von Glaurung, Juni 08, 2011, 18:11:10

⏪ vorheriges - nächstes ⏩

Glaurung

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.

Hondo


Glaurung

Danke, das ist doch mal ein Ansatz, auf dem man aufbauen kann. Wie ermittle ich nun, ob die Tabelle per ODBC verknüpft ist?

Hondo

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

Glaurung


imp666

    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

Glaurung

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