Alle Verbindungen auf einen anderen Server umstellen
Stellen Sie alle Verbindungen eines Profils auf einmal auf einen neuen Server (oder eine neue Datenbank, einen neuen Treiber, ein neues Schema) um, zum Beispiel nach dem Umzug einer Datenbank, und verknüpfen Sie die Tabellen neu.
Voraussetzungen: WKL Forms Object Library 1.23 oder höher.
Lösungsüberblick
Die Designerseite Verbindungen enthält die Leiste Auf alle anwenden. Sie setzt ein Feld (Treiber,
Server, Datenbank oder Schema) für die markierten Zeilen oder für alle Zeilen, die der Profilfilter
anzeigt, auf einen Wert. Übernehmen speichert; die Seite Prüfen und abgleichen zeigt danach jede Tabelle als
mit einer anderen Quelle verknüpft, und Alle aktualisieren verknüpft sie neu. In VBA entspricht das einem
UPDATE auf USysConnection mit anschließendem EnsureLinks.
Umsetzung
Im Designer:
- Seite Verbindungen: Wählen Sie im Filter Profil das Profil (zum Beispiel
TEST). - Wählen Sie unter Auf alle anwenden den Eintrag Server, geben Sie den neuen Server ein, wählen Sie alle angezeigten Zeilen und klicken Sie auf Anwenden.
- Klicken Sie auf Übernehmen, öffnen Sie Prüfen und abgleichen, wählen Sie dasselbe Profil und klicken Sie auf Alle aktualisieren.
In VBA, zum Beispiel in einer Wartungsroutine:
Public Sub MoveTestToNewServer()
Dim links As New WklLinkManager
CurrentDb.Execute "UPDATE USysConnection SET Server = 'sql02' " & _
"WHERE Environment = 'TEST' AND Server = 'sql01'", dbFailOnError
Debug.Print links.EnsureLinks("TEST") & " Tabellen neu verknüpft"
End Sub
Hinweise
- Ein Profilfilter zeigt nur die Zeilen dieses Profils. Zeilen ohne Profil gelten für jedes Profil und werden nur geändert, wenn sie angezeigt werden, zum Beispiel mit dem Filter Alle Profile, der jede Zeile zeigt. Prüfen Sie daher den Filter, bevor Sie einen Wert auf alle angezeigten Zeilen anwenden.
- Das Neuverknüpfen setzt die neue Verbindung an den vorhandenen Verknüpfungen. Beschreibungen, Formate und Nachschlagefelder der verknüpften Tabellen bleiben erhalten.
- Ist das Profil betroffen, mit dem die Anwendung startet, ist sonst nichts zu tun: Das nächste
EnsureLinksbeim Start verknüpft die Tabellen neu, die noch auf den alten Server zeigen. - Mit Verbindung testen prüfen Sie den neuen Server an einer Zeile, bevor Sie alles neu verknüpfen.