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

Status von Steuerelementen per Einzeiler steuern

Manche Konfigurationen erfordern, dass bestimmte Steuerelemente sichtbar sind und andere unsichtbar, oder dass diese aktiviert oder deaktiviert sind. Ein einfaches Beispiel ist eine Schaltflche, die abhngig von den angezeigten Daten gegebenenfalls nicht verfgbar sein soll, etwas umfangreicher wird es, wenn beispielsweise alle Steuerelemente eines Assistenten mit mehreren Schritten auf einem Formular abgebildet sein sollen.

Eigenschaften setzen per Boolean

Der Clou beim Setzen von True/False-Eigenschaften von Steuerelementen ist, den gewnschten Zustand direkt aus dem Ergebnis einer Vergleichsoperation abzuleiten.

Normalerweise verwendet man etwa folgenden Ausdruck, wenn man eine Schaltflche in Abhngigkeit einer Bedingung entweder aktivieren oder deaktivieren mchte:

If <Bedingung> Then

    Me!<Schaltflchenname>!Enabled = True

Else

    Me!<Schaltflchenname>!Enabled = False

End If

Das gleiche Ergebnis erhlt man mit folgendem Einzeiler:

Me!<Schaltflchenname>!Enabled = <Bedingung>

Linear statt potentiell

Je mehr Steuerelemente und Zustnde in ein Aktivieren/Deaktivieren beziehungsweise Sichtbar/Unsichtbar machen verwickelt sind, umso mehr und kompliziertere If...Then- oder Select...Case-Anweisungen bentigt man, wenn man die Bedingung nicht direkt als Eigenschaftswert zuweist.

Wenn man allerdings nach obiger Vorgehensweise verfhrt, ist die Sache recht schnell erledigt. Man bentigt keine If...Then- oder Select Case-Anweisungen mehr, sondern schreibt einfach die Zustnde mit den jeweiligen positiv formulierten Bedingungen runter. Bei vier Zustnden und vier Steuerelementen sieht die komplizierte Variante folgendermaen aus:

Select Case <Wert>

    Case 1

        Me!<Steuerelement1>.Visible = True

        Me!<Steuerelement2>.Visible = False

        Me!<Steuerelement3>.Visible = False

        Me!<Steuerelement4>.Visible = False

    Case 2

        Me!<Steuerelement1>.Visible = False

        Me!<Steuerelement2>.Visible = True

        Me!<Steuerelement3>.Visible = False

        Me!<Steuerelement4>.Visible = False

    Case 3

        Me!<Steuerelement1>.Visible = False

        Me!<Steuerelement2>.Visible = False

        Me!<Steuerelement3>.Visible = True

        Me!<Steuerelement4>.Visible = False

    Case 4

        Me!<Steuerelement1>.Visible = False

        Me!<Steuerelement2>.Visible = False

        Me!<Steuerelement3>.Visible = False

        Me!<Steuerelement4>.Visible = True

End Select

Die Variante mit der direkten Zuweisung spart erstens jede Menge Code und ist zweitens wesentlich performanter:

        Me!<Steuerelement1>.Visible = <Wert> = 1

        Me!<Steuerelement2>.Visible = <Wert> = 2

        Me!<Steuerelement3>.Visible = <Wert> = 3

        Me!<Steuerelement4>.Visible = <Wert> = 4

Fr jedes weitere Steuerelement kommt auch nur eine weitere Zeile hinzu, nicht wie bei erstgenannter Variante fr jeden mglichen Case-Wert jeweils eine.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.