window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Fixierte Formulare

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wenn Sie Formulare nicht aus speziellen Vorlagen oder aus bereits existierenden über Kopien erstellen, so ist einige Fleißarbeit im Entwurf angesagt, bis die Voreinstellungen von Access für neue Formulare durch Ihre eigenen Designvorstellungen ersetzt sind. Das unterbleibt oft, und so fristet auch die unscheinbare Eigenschaft Verschiebbar häufig ein Schattendasein. Schade, denn sie eröffnet ganz neue Gestaltungsmöglichkeiten für Ihre Datenbank!

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1606_FixedForms.accdb.

Verschiebbarkeit deaktivieren

Um unteren Bereich des Eigenschaftenblatts eines Formulars finden Sie den Eintrag Verschiebbar, den Access zunächst auf den Wert Ja einstellt. ändern Sie das auf Nein (siehe Bild 1), so kann das Formular zur Laufzeit weder über Maus und Titelzeile auf dem MDI-Arbeitsbereich von Access verschoben werden, noch über Tastenkombinationen oder Tools. Es bleibt an Ort und Stelle. Das funktioniert auch bei Formularen, bei denen die Eigenschaft Popup auf Ja steht. Popup-Formulare sind eigene Fenster, die nicht der Verwaltung des MDI-Arbeitsbereichs unterliegen, und dennoch kann Access sie anweisen, am Desktop festzukleben. Sie sind etwas schwieriger zu handhaben, weil sie leicht durch andere geöffnete Anwendungen oder Access selbst in den Hintergrund geraten.

Die Eigenschaft Verschiebbar eines Formulars

Bild 1: Die Eigenschaft Verschiebbar eines Formulars

Das Formular frmFix der Beispieldatenbank öffnet sich gleich nach deren Start (Bild 2). In seinem Code Beim Laden blendet es zusätzlich den Navigationsbereich aus und außerdem den Ribbon. Von Access bleibt somit nur dessen Rahmen und Titelzeile übrig, und im Arbeitsbereich befindet sich das Formular in der linken oberen Ecke, aus der es auch nicht herausgeholt werden kann. Das Formular schaltet nach 5 Sekunden den Ribbon und Navigationsbereich wieder ein, womit sich die Darstellung aus Bild 3 ergibt. Gibt es nützliche Anwendungsgründe für diese Einstellung

Am fixierten Modus des Formulars ändert sich auch bei eingeblendetem Ribbon und Navigationsbereich nichts

Bild 2: Am fixierten Modus des Formulars ändert sich auch bei eingeblendetem Ribbon und Navigationsbereich nichts

Das Formular frmFix ist nicht über dessen Titelleiste verschiebbar

Bild 3: Das Formular frmFix ist nicht über dessen Titelleiste verschiebbar

Die in der Regel verschiebbaren Formulare von Access werden spätestens dann unerfreulich, wenn mehrere Formulare in der Oberfläche geöffnet sind. Sie überlappen sich dann unter Umständen, oder ein Maximieren des einen überdeckt das andere. Das kann beim Anwender zu Irritationen führen – vor allem dann, wenn die Daten des einen mit denen das anderen in irgendeiner Weise verknüpft sind. Derlei Missverständnisse räumen Sie aus, wenn Sie Formulare an einem vorbestimmten Ort öffnen lassen und gegebenenfalls nebeneinander oder untereinander positionieren.

Sehr praktisch ist, dass die Eigenschaft Verschiebbar sich auch über VBA steuern lässt (Form.Moveable), und das auch noch zur Laufzeit des Formulars! Sie können also die Modi jederzeit ändern. Das Beispielformular frmFix wartet nach Einblenden des Ribbon nochmals 5 Sekunden und schaltet dann die Eigenschaft Verschiebbar auf Ja, worüber zusätzlich der Schriftzug in ihm informiert:

Me.Moveable = True
Me!LblInfo.Caption = _
  "Sie können mich jetzt verschieben!"

Falls Sie interessiert, wie der Code zum Ausblenden von Ribbon und Navigationsbereich aussieht, so sehen Sie sich die Prozedur in Listing 1 an. übergeben Sie keinen Parameter für UnHide, wodurch der Wert der Variablen automatisch False beträgt, so werden die beiden Elemente ausgeblendet. Bei übergabe von True werden sie wieder eingeblendet.

Sub ShowNavigationPane(Optional UnHide As Boolean)
     On Error Resume Next
     DoCmd.SelectObject acTable, , True
     If UnHide Then
         RunCommand acCmdWindowUnhide
         DoCmd.ShowToolbar "Ribbon", acToolbarYes
     Else
         RunCommand acCmdWindowHide
         DoCmd.ShowToolbar "Ribbon", acToolbarNo
     End If
End Sub

Listing 1: Ein- und Ausblenden des Ribbon und Navigationsbereichs

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar