Navigationsbereich je Umgebung unterschiedlich gestalten
Zeigen Sie eine Gruppe oder einen Eintrag des Navigationsbereichs nur in der Entwicklung, nur in der ACCDB oder nur für Benutzer an, die die Anwendung zulässt.
Voraussetzungen: WKL Forms Object Library 1.50 oder höher.
Lösungsüberblick
Jede Gruppe und jeder Eintrag des Modells hat eine Bedingung aus drei Teilen, die alle erfüllt sein müssen, in derselben Form wie bei den Befehlen des Menübands: Profile (das Verbindungsprofil des Linked Tables Managers), Dateiart (ACCDB, ACCDE, Runtime) und Funktion (eine öffentliche VBA-Funktion ohne Argumente, die True zurückgibt). Ist die Bedingung nicht erfüllt, wird die Gruppe oder der Eintrag gar nicht erst in den Bereich geschrieben. Weil die Bedingungen beim Anwenden des Modells ausgewertet werden, wendet die Anwendung es bei jedem Start an.
Umsetzung
Markieren Sie im Designer des Navigationsbereichs auf der Seite Gruppen und Einträge die Gruppe oder den Eintrag, und füllen Sie Sichtbar, wenn aus, zum Beispiel ACCDB für eine Gruppe mit Entwicklungstabellen. Wenden Sie das Modell dann bei jedem Start an, zum Beispiel im Ereignis “Beim Laden” des Startformulars:
Private Sub Form_Load()
Dim pane As Object
Set pane = CreateObject("WklForms.NavPane")
pane.Apply
End Sub
Stammt die Rolle aus der Anmeldung, setzen Sie sie vor dem Anwenden:
Public Function IsAdmin() As Boolean
On Error Resume Next
IsAdmin = Nz(TempVars("rolle"), "") = "Admin"
End Function
TempVars("rolle") = "Admin"
CreateObject("WklForms.NavPane").Apply
Hinweise
- Das Profil ist das mit
WklNavPane.ProfileoderWklRibbon.Profilegesetzte (beide teilen es), andernfalls das, das die meisten verknüpften Tabellen verwenden (wieWklLinkManager.DetectEnvironment). - Das Build-Werkzeug wendet das Modell auf dem Build-Rechner an, in einer ACCDB. Eine daraus erstellte ACCDE trägt diesen Navigationsbereich, bis die Anwendung das Modell selbst anwendet.
Applygibt die Einträge zurück, deren Objekte es in der Datenbank nicht gibt, einen je Zeile; es zeigt nie ein Dialogfeld an.- Das Ausblenden ist eine Bequemlichkeit, kein Schutz: Ein im Bereich weggelassenes Objekt lässt sich weiterhin per Code oder über seinen Namen öffnen.
Verwandte Themen
- Befehle nur in der Entwicklung anzeigen (dieselben Bedingungen im Menüband)