![]() |
||
![]() |
Eigene Navigations-Schaltflächen programmierenSie haben auf einem Formular die Navigations-Schaltflächen durch eigene, größere Knöpfe ersetzt. Die sollen sich wie die Originale verhalten: Der »Zurück«-Knopf deaktiviert sich bei Erreichen des ersten Eintrags der Datenbank, der »Vorwärts«-Knopf beim letzten Element. Angenommen, Ihre eigenen Schaltflächen zur Navigation heißen »ErsterDatensatz«, »VorigerDatensatz«, »NaechsterDatensatz« und »LetzterDatensatz«. Um die Schaltflächen kontextsensitiv zu programmieren, öffnen Sie Ihr Formular in der Entwurfsansicht. Dann wählen Sie »Ansicht | Code«. Definieren Sie mit »Einfügen | Prozedur« die neue Prozedur »RefreshNavigation« und wählen Sie als »Gültigkeitsbereich« den Wert »Private« – sie ist dann nur auf dem Formular gültig. Geben Sie folgende Anweisungen ein: Private Sub RefreshNavigation()Die neue Prozedur aktiviert zunächst alle Schaltflächen, indem sie ihrer Eigenschaft »Enabled« den Wert »True« zuweist. Dann ermittelt sie, ob das Formular den ersten oder letzten Datensatz anzeigt. Dafür liest sie mit »Me.Recordset.AbsolutePosition« die relative Nummer des aktuellen Datensatzes. Bei »0« handelt es sich um den ersten Satz. Also entspricht die Position des letzten Datensatzes der Gesamtzahl aller Datensätze weniger eins, also »Me.Recordset. RecordCount - 1«. Abhängig von der ermittelten Position deaktiviert die Prozedur durch Belegen der Eigenschaft »Enabled« mit »False« alle nutzlosen Schaltflächen – für den ersten Eintrag werden etwa »ErsterDatensatz« und »VorigerDatensatz« nicht benötigt. Zuvor setzt die Prozedur den Fokus mit der Methode »SetFocus« auf eine weiterhin sinnvolle Schaltfläche. Abschließend müssen Sie sicherstellen, dass Access die Prozedur »RefreshNavigation« zum richtigen Zeitpunkt aufruft. Geben Sie dazu einen Aufruf in den Ereignisprozeduren »Beim Klicken« der vier Schaltflächen ein, wie hier an »ErsterDatensatz_Click« demonstriert: Private Sub ErsterDatensatz_Click()Außerdem ergänzen Sie den Code der Ereignisprozedur »Beim Öffnen« des Formulars noch um die beiden Zeilen Me.ErsterDatensatz.Enabled = False |
![]() |