Wie aktualisiere ich verknĂŒpfte Tabellen per VBA mit dem neuen Relink-Dialog?

In Access-Datenbanken werden hĂ€ufig Tabellen aus externen Datenquellen wie anderen Access-Backends, SQL Server, Excel oder Textdateien verknĂŒpft. Wenn sich der Speicherort der Quelldateien Ă€ndert – z. B. durch einen neuen Server oder Pfad – funktionieren diese VerknĂŒpfungen nicht mehr. Benutzer erhalten dann Fehlermeldungen oder sehen leere Tabellen.

Access bietet seit Office 2016 einen neuen RelinkDialog, der ĂŒbersichtlicher und moderner gestaltet ist als das klassische VerknĂŒpfungs-Manager-Fenster. Mit VBA kannst Du diesen neuen Dialog direkt ansprechen – entweder um die VerknĂŒpfungen automatisch zu aktualisieren oder um dem Benutzer eine einfache Möglichkeit zu geben, die VerknĂŒpfungen selbst zu reparieren.

Neuer Relink-Dialog: Was ist anders?

Der neue Relink-Dialog bietet u. a.:

  • Bessere Übersicht ĂŒber alle verknĂŒpften Tabellen
  • Gruppierung nach Quelle (z. B. Pfad)
  • Möglichkeit, gezielt Pfade zu aktualisieren
  • UnterstĂŒtzung fĂŒr mehrere Datenquellen
  • Benutzerfreundliche Navigation bei Netzwerkpfaden

Microsoft hat diesen Dialog in Access ĂŒber das Objektmodell zugĂ€nglich gemacht. So kannst Du ihn in Deine Anwendungen integrieren.

Beispiel: VerknĂŒpfte Tabellen mit dem Relink-Dialog aktualisieren

Du kannst den neuen Dialog wie folgt per VBA aufrufen:

Public Sub StarteRelinkDialog()
    On Error GoTo Fehler

    ' Access internen Dialog verwenden
    Application.RunCommand acCmdManageLinkedTables
    Exit Sub

Fehler:
    MsgBox "Fehler beim Öffnen des Relink-Dialogs: " & Err.Number & " - " & Err.Description, vbCritical
End Sub

Das ist besonders nĂŒtzlich, wenn ein Benutzer beim Öffnen der Datenbank feststellt, dass die VerknĂŒpfung nicht funktioniert. Du kannst diesen Befehl z. B. direkt im Startformular anbieten.

Alternativ: Automatisches Relinking per VBA

Wenn Du den Pfad kennst (z. B. weil die Datenbank portable sein soll oder auf einem Netzlaufwerk liegt), kannst Du auch alle TabellenverknĂŒpfungen automatisch aktualisieren:

Public Sub RelinkeAccessTabellen(Optional NeuerPfad As String)
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim AlteVerbindung As String
    Dim NeueVerbindung As String

    Set db = CurrentDb

    For Each tdf In db.TableDefs
        ' Nur verknĂŒpfte Tabellen bearbeiten
        If Len(tdf.Connect) > 0 And Left(tdf.Connect, 10) Like ";DATABASE=*" Then
            AlteVerbindung = tdf.Connect
            
            ' Wenn kein neuer Pfad ĂŒbergeben wurde, alten Pfad extrahieren und Dialog anbieten
            If NeuerPfad = "" Then
                MsgBox "Tabelle """ & tdf.Name & """ ist verknĂŒpft mit:" & vbCrLf & AlteVerbindung, vbInformation
                Application.RunCommand acCmdManageLinkedTables
                Exit Sub
            End If
            
            ' Neue Verbindung erzeugen
            NeueVerbindung = ";DATABASE=" & NeuerPfad
            
            ' VerknĂŒpfung aktualisieren
            tdf.Connect = NeueVerbindung
            On Error Resume Next
            tdf.RefreshLink
            On Error GoTo 0
        End If
    Next

    MsgBox "VerknĂŒpfungen wurden aktualisiert.", vbInformation
End Sub

Diese Routine kannst Du z. B. bei Programmstart nutzen, um automatisch auf ein neues Backend zu verlinken, etwa in C:\Daten\backend.accdb.

Beispielaufruf:

Call RelinkeAccessTabellen("C:\Daten\backend.accdb")

Oder ohne Pfadangabe:

Call RelinkeAccessTabellen  ' → Öffnet neuen Relink-Dialog

Tipps fĂŒr den produktiven Einsatz

  • Biete den Dialog nur dann an, wenn die Datenquelle fehlt (Dir(Path) = "")
  • Speichere den zuletzt genutzten Pfad in einer lokalen Tabelle oder INI-Datei
  • Vermeide harte Pfadangaben – nutze relative Pfade oder Umgebungsvariablen
  • Verlinke Tabellen möglichst zentral ĂŒber eine kleine Konfigurationsfunktion

Fazit

Der neue Relink-Dialog in Access ist eine willkommene Verbesserung fĂŒr Benutzerfreundlichkeit und Wartbarkeit – besonders in Mehrbenutzerumgebungen. Mit wenigen Zeilen VBA kannst Du ihn bequem in Deine Anwendung einbauen oder alternativ sogar vollautomatisches Relinking umsetzen.

Du brauchst UnterstĂŒtzung bei der Verlinkung von Tabellen, Migration von Access-Backends oder Automatisierung per VBA? Dann melde Dich bei mir – ich helfe Dir gern!

🐑 DatenschĂ€fer – Auswertung, Analyse und Automatisierung fĂŒr KMU im Norden
📧 Kontakt ĂŒber sesoft.de | 🧠 Access · VBA · SQL Server · Power Platform

Kategorien:

Schlagwörter:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert