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/2011.

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

Erfahren Sie, wie Sie Steuerelemente aktivieren und deaktivieren und was dabei zu beachten ist.

Techniken

Formulare, Steuerelemente, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

SteuerelementeDeaktivieren.mdb

Shortlink

www.access-im-unternehmen.de/764

Steuerelemente aktivieren und deaktivieren

André Minhorst, Duisburg

Wenn eine Funktion oder ein Steuerelemente temporär nicht zur Verfügung steht, haben Sie zwei Möglichkeiten: Entweder Sie weisen den Benutzer per Meldungsfenster auf diesen Umstand hin, wenn er versucht, das Steuerelemente dennoch zu benutzen. Das ist schlecht, weil dies den Benutzer einen unnötigen Klick kostet. Oder Sie deaktivieren das Steuerelement direkt. Das dies manchmal gar nicht so einfach ist und wie Sie es dennoch schaffen, zeigt dieser Beitrag.

Gründe, Steuerelemente zu deaktivieren, gibt es viele:

  • Eine Speichern-Schaltfläche oder eine Abbrechen-Schaltfläche soll nur aktiviert sein, wenn es überhaupt Änderungen gibt, die gespeichert oder verworfen werden könnten.
  • Eine OK-Schaltfläche soll nur aktiviert sein, wenn der Benutzer alle notwendigen Daten eingegeben hat.
  • Eine Suchen-Schaltfläche wird nur aktiviert, wenn der Benutzer einen Suchbegriff eingegeben hat.
  • Ein Textfeld steht nicht zur Verfügung, weil die entsprechende Option nicht ausgewählt ist.

Schauen wir uns also erstmal an, wie wir Steuerelemente in Abhängigkeit bestimmter Bedingungen aktiviern und deaktivieren können.

Steuerelemente in Abhängigkeit anderer Steuerelemente aktivieren oder deaktivieren

Das Formular aus Abb. 1 besteht aus einem Kombinationsfeld, das die Kundenart festlegt (Firma oder Privatperson) und davon abhängig die Textfelder txtFirma, txtVorname und txtNachname aktivieren beziehungsweise deaktivieren soll. Wenn keine Kundenart ausgewählt ist, sollen dementsprechend alle Steuerelemente deaktiviert sein.

pic001.png

Abb. 1: Beispielformular der Datenbank

Schauen wir uns erst an, was geschehen soll, wenn der Benutzer eine Kundenart auswählt. Dies löst das Ereignis Nach Aktualisierung des Kombinationsfelds aus. Die entsprechende Ereignisprozedur sieht wie folgt aus:

Private Sub cboKundenartID_AfterUpdate()

    Select Case Me!cboKundenartID

        Case 1

            Me!txtFirma.Enabled = True

            Me!txtVorname.Enabled = False

            Me!txtNachname.Enabled = False

        Case 2

            Me!txtFirma.Enabled = False

            Me!txtVorname.Enabled = True

            Me!txtNachname.Enabled = True

        Case Else

            Me!txtFirma.Enabled = False

            Me!txtVorname.Enabled = False

            Me!txtNachname.Enabled = False

    End Select

End Sub

Sie fragt den Wert von cboKundenartID ab und stellt die Enabled-Eigenschaft der folgenden Textfelder entsprechend ein.

Das Einstellen von Eigenschaften wie Enabled, Locked, Visible et cetera, die abhängig von einer oder mehrerer Bedingungen auf True oder False eingestellt werden können, ist grundsätzlich auf zwei Arten möglich: Auf die die schreibintensive Art wie oben oder auf eine etwas pfiffigere Weise wie in der folgenden Variante:

Private Sub cboKundenartID_AfterUpdate()

    Me!txtFirma.Enabled = Nz(Me!cboKundenartID) = 1

    Me!txtVorname.Enabled = Nz(Me!cboKundenartID) = 2

    Me!txtNachname.Enabled = Nz(Me!cboKundenartID) = 2

End Sub

Genau wie oben soll das Feld txtFirma nur aktiviert sein, wenn das Kombinationsfeld cboKundenartID den Wert 1 enthält. Beim Wert 2 sollen nur die beiden Felder txtVorname und txtNachname aktiviert sein.

Die zweite Variante löst dies etwas eleganter und mit wesentlich weniger Codezeilen. Die erste Zeile sorgt beispielsweise dafür, dass die Eigenschaft Enabled des Textfeldes txtFirma nur auf True eingestellt wird, wenn cboKundenartID den Wert 1 hat (sollte cboKundenartID den Wert Null aufweisen, was darauf hindeutet, dass gar kein Eintrag ausgewählt ist, liefert Nz(Me!cboKundenartID) ersatzweise den Wert 0).

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.