Verbindungen einer ausgelieferten Anwendung durch den Betrieb umstellen lassen
Lassen Sie die Person, die eine ausgelieferte Anwendung betreibt, deren verknüpfte Tabellen auf einen anderen Server oder eine andere Datenbank umstellen – einen neuen SQL Server, eine Testdatenbank –, ohne Entwicklungszugang und ohne neue Version.
Voraussetzungen: WKL Forms Object Library 1.51 oder höher; die Tabellen werden über WklLinkManager verknüpft.
Lösungsüberblick
Das Anwendungsmodell gibt frei, was im Betrieb angepasst werden darf: Verbindungen umstellen (neu verknüpfen) und
benannte Optionen. WklApplication.ShowSettings öffnet ein kleines Dialogfeld nur mit diesen Einstellungen – auch in
einer ACCDE und in der Access Runtime, wo kein Designer verfügbar ist. OK schreibt die abweichenden Werte in die
Einstellungsdatei des Benutzers außerhalb der Datenbank und verknüpft die Tabellen über WklLinkManager.EnsureLinks
neu. Bei jedem späteren Start verwendet EnsureLinks dieselbe Datei, und eine neue Version der Anwendung behält sie
bei.
Umsetzung
- Schalten Sie im Anwendungsdesigner auf der Seite Im Betrieb anpassbar die Option Verbindungen umstellen ein. Fügen Sie bei Bedarf Optionen hinzu (zum Beispiel
Branch, Art Auswahl, WerteWien;Graz), und füllen Sie Wer die Einstellungen öffnen darf aus, zum Beispiel mit einer FunktionIsAdministratorder Anwendung. Geben Sie dem Betreiber einen Weg, die Einstellungen zu öffnen, zum Beispiel eine Schaltfläche in der Shell:
Private Sub cmdSettings_Click() On Error GoTo Failed If CreateObject("WklForms.Application").ShowSettings() Then Me.Requery End If Exit Sub Failed: MsgBox Err.Description, vbExclamation Resume Done Done: End SubVerknüpfen Sie bei jedem Start neu, bevor das erste Formular Daten liest (im Startformular oder in einem AutoExec-Makro):
CreateObject("WklForms.LinkManager").EnsureLinks- Lesen Sie eine Option dort, wo die Anwendung sie braucht:
CreateObject("WklForms.Application").OptionValue("Branch").
Hinweise
- Wo die Werte liegen: je Benutzer in
%LOCALAPPDATA%\WKL\<database>\settings.json, über der Datei des Rechners%ProgramData%\WKL\<database>\settings.json, die ein Administrator verteilen kann. Geschrieben werden nur Werte, die von der Datenbank abweichen; eine Verbindung wird über ihren Namen zugeordnet. - Eine beschädigte Datei meldet
EnsureApplicationund ignoriert sie: Die Anwendung startet mit den Verbindungen, die in der Datenbank gespeichert sind. - Abgelehnte Aufrufe lösen
wkeNotAvailableohne Dialogfeld aus: wenn das Modell nichts freigibt oder die Bedingung für diesen Benutzer nicht erfüllt ist.
Verwandte Themen
- Alle Verbindungen auf einen anderen Server umstellen (mit dem Designer des Linked Tables Managers)