Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Tabellenverknüpfung per VBA aktualisieren

Begonnen von ReAcc, Mai 23, 2022, 18:28:20

⏪ vorheriges - nächstes ⏩

ReAcc

Hallo,

nach langem Suchen habe ich folgenden Code für die Aktualisierung der verknüpften Tabellen in meiner DB gefunden:

    For Each td In CurrentDb.TableDefs
        If (td.Attributes And dbAttachedTable) = dbAttachedTable Then
            td.Connect = ";DATABASE=" & PFAD & "Test.mdb"
            td.RefreshLink
        End If
    Next td

Der Code funktioniert zwar gut wenn ich alle Tabellen aus der gleichen Quelle verknüpfen will. Ich habe jedoch Verknüpfungen aus unterscheidlichen Quellen.

Kann mir bitte jemand einen Tipp geben, wie ich den Code verändern muss, wenn ich einzelne Tabellen mit unterschiedlichen Quellen verknüfen will?

Vielen Dank im Voraus!

Rene
  •  

ebs17

Du müsstest zuerst erfassen, welche Tabellen zu welchem Backend gehören. Dazu könnte man
- ein Extra-Tabelle mit diesen Informationen führen und auswerten
- unmittelbar die Systemtabelle MSysObjects auswerten
Mit freundlichem Glück Auf!

Eberhard
  •  


ReAcc

ich habe lediglich eine Handvoll Tabellen, die zu drei unterschiedlichen Backends gehören. Da wäre doch das einfachste, wenn ich die Tabellen und Backends jeweils einzeln direkt in der Funktion benenne. Ich weiß nur leider nicht wie.

Ein Tipp, wie ich den Code ändern muss, um einzelne Dateien jweils einem Backend zuzuordnen wäre fantastisch!

  •  

DF6GL

Hallo,

hast Du die Tipps von Eberhard nicht gelesen?


Aus der Tabelle MSysObjects kann der Name der BE-Datei und der Name der entspr. Tabellen ausgelesen werden. Mit Hilfe einer (neuen) Tabelle, die den neuen BE-Dateinamen mit dem jeweils ausgelesenen verknüpft, können die Tabellen neu eingebunden werden (Durchlaufen der Tabelle mittels Recordset).

ReAcc

Hallo Franz,

gelesen habe ich die Tipps von Eberhard schon, allerdings bin ich nicht fit genug in der Erstellung von Funktionen, um das umsetzen zu können.

Ich konnte mein Problem dennoch lösen, weil ich letztlich den Teil, in dem die Verknüpfungen gemacht werden ( td.Connect = ";DATABASE=" & PFAD & "Test.mdb" ) weggelassen habe, denn die ändern sich eigentlich nicht.

Offenbar müssen diese aber aktualisiert werden ( td.RefreshLink) wenn ich die DB gelöscht und neu erstellt habe (nach Aktualisierungen/Anpassungen). Hier reicht der Befehl RefreshLink aber offenbar aus.
  •