Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2012.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Statten Sie Endlosformulare mit einem Schaltflächen-Ersatz mit Texten oder Bildern aus, die vom jeweiligen Datensatz abhängen.

Techniken

Formulare, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

BedingteSchaltflaechen2003.mdb, BedingteSchaltflaechen2007.accdb, BedingteSchaltflaechen2010.accdb

Shortlink

www.access-im-unternehmen.de/824

Bedingte Schaltflächen

André Minhorst, Duisburg

Haben Sie sich auch schonmal darüber geärgert? Sie wollen einem Endlosformular Schaltflächen zuweisen, die mal aktiviert sind und mal nicht - oder auch mal ausgeblendet oder auch nicht. Dummerweise erlaubt die Endlosansicht aber für ungebundene Steuerelemente keine vom jeweiligen Datensatz abhängigen Einstellungen. Zum Glück kann man mit Access hier und da tricksen - und so stellen wir in diesem Beitrag Möglichkeiten vor, wie Sie in den verschiedenen Access-Versionen doch noch anklickbare Steuerelemente mit individuellem Aussehen offerieren.

Die Möglichkeiten unterschieden sich dabei je nach der Access-Version, wobei es von Version zu Version leichter wird, entsprechende Schaltflächen bereitzustellen beziehungsweise zu simulieren (in der Tat gelang es uns mit keiner Version, eine echte Schaltfläche mit wechselnden Icons, Beschriftungen oder Eigenschaften zu versehen - dazu mussten andere Steuerelemente wie Textfelder oder Bildsteuerelemente herhalten).

In Access 2003 und älter sind wir auf die Verwendung von Texten und Sonderzeichen beschränkt, ab Access 2007 bietet das Bildsteuerelement durch seine Eigenschaft als gebundenes Steuerelement weitaus bessere Möglichkeiten. Diese werden unter Access 2010 noch getoppt.

Grundsätzlich besteht das Problem darin, dass das Zuweisen eines Wertes zu einer Eigenschaft eines Steuerelements sich immer auf alle Datensätze auswirkt. Das bedeutet, dass Sie etwa eine Schaltfläche nicht für einen Datensatz ausblenden oder deaktivieren können und für die anderen nicht - es werden immer alle Schaltflächen ausgeblendet oder deaktiviert.

Die einzige Möglichkeit, ein Steuerelement in einem Datensatz über eine Eigenschaft anders als das gleiche Steuerelement in den übrigen Datensätzen zu gestalten, findet sich in der Eigenschaft Steuerelementinhalt.

Dabei ist der eigentliche Wert der Eigenschaft natürlich immer für alle Datensätze gleich, aber das durch die Eigenschaft referenzierte Feld liefert je nach Datensatz unterschiedliche Werte. Die zweite Möglichkeit, ein Steuerelement in verschiedenen Datensätzen unterschiedlich zu gestalten, liegt in der bedingten Formatierung - die soll jedoch nicht Thema des vorliegenden Beitrags sein.

Beispielanwendung

Damit es nicht zu kompliziert wird, soll in einem Beispielformular in der Endlosansicht eine schaltflächenartige Möglichkeit geboten werden, einen Datensatz zu löschen, wenn ein Ja/Nein-Feld namens Loeschen den Wert True enthält.

Die übrigen Felder der Beispieltabelle sind ein Primärschlüsselfeld (BeispielID) und ein Textfeld (Beispieltext) mit beliebigen Inhalten. Das Ja/Nein-Feld steht stellvertretend für beliebig komplexe Ausdrücke, die festlegen, ob eine Schaltfläche aktiviert sein soll oder nicht. Der Wert des gewünschten Ausdrucks kann dann in einer Abfrage als Boolean-Wert zur Datenherkunft des Formulars in der Endlosansicht hinzugefügt werden.

Bedingte Schaltflächen unter Access 2003 und älter

Unter Access 2003 und älter ist der höchste Grad an Improvisation gefragt. Hier steht noch nicht einmal ein Bild-Steuerelement bereit, dem man ein schickes Icon zuweisen könnte.

Also verwenden Sie entweder ein Textfeld mit einem entsprechenden Text (Löschen oder X). Dieser Text soll jedoch nur angezeigt werden, wenn das Feld Loeschen auch den Wert True enthält, der Benutzer den Datensatz also löschen können soll. Damit der gewünschte Text nur in diesem Fall angezeigt wird, fügen Sie der Eigenschaft Steuerelementinhalt des Textfeldes etwa den folgenden Ausdruck hinzu:

=Wenn([Loeschen];"X";"")

In der Entwurfsansicht sieht das Formular nun etwa wie in Abb. 1 aus. Zur optischen Hervorhebung können Sie die Textfarbe noch auf Rot und die Schriftbreite auf Fett einstellen.

pic002.png

Abb. 1: Das Formular mit der datenabhängigen Löschen-Schaltfläche in der Entwurfsansicht

Nun lässt sich das Textfeld durchaus mit einem Beim Klicken-Ereignis versehen. Dummerweise landet beim Anklicken auch der Fokus im Textfeld, was sich durch die blinkende Einfügemarke bemerkbar macht - das sieht natürlich nicht besonders professionell aus.

Also legen Sie noch eine Schaltfläche mit gleichen Abmessungen genau über das Textfeld und stellen seine Eigenschaft Transparent auf Ja ein. Nun legen Sie noch eine entsprechende Ereignisprozedur für das Ereignis Beim Klicken der Schaltfläche an, die etwa wie folgt aussieht:

Private Sub cmdLoeschen_Click()

    If Me!Loeschen = True Then

        If MsgBox("Datensatz wirklich löschen?", vbYesNo, "Löschen") = vbYes Then

            DoCmd.RunCommand acCmdDelete

        End If

    End If

End Sub

Dies führt zu einer Ansicht wie in Abb. 2.

pic001.png

Abb. 2: Löschen-Schaltfläche, die in Abhängigkeit von den Daten ein- oder ausgeblendet wird.

Bedingte Schaltflächen in Access 2007

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.