Aktivieren eines Kontrollkästchens basierend auf anderen Kontrollkästchen, die beim Zugriff eingecheckt werden

662
Lane Massey

Ich habe ein Formular in Access 2010 mit einem Ankreuzfeld mit dem Namen DR-Prozess. Dann habe ich 25 andere Ankreuzfeldfelder, die bei Auswahl des Kontrollkästchens DR-Prozess automatisch aktiviert werden. Wenn eines der 25 Felder markiert ist, sollte das Kontrollkästchen DR-Prozess deaktiviert werden. Gibt es eine Möglichkeit, dies zu tun?

Vielen Dank

0

1 Antwort auf die Frage

0
Lee Mac

Das Verhalten, das Sie für Ihre Steuerelemente beschreiben, klingt ähnlich wie das Vorhandensein mehrerer Kontrollkästchen, zusammen mit einem Kontrollkästchen Alle auswählen, um alle Kontrollkästchen des Satzes gleichzeitig zu aktivieren oder zu deaktivieren:

Wählen Sie Alle

Um dies zu erreichen, müssen Sie meiner Ansicht nach in den verschiedenen After UpdateEreignishandlern VBA-Code für Ihre Steuerelemente verwenden.

Im folgenden Beispiel gehe ich davon aus, dass Sie eine Reihe von Ankreuzfeldern mit dem Namen chk1, chk2und chk3und ein einzelnes Ankreuzfeld Alle auswählen haben chkA(dies kann jedoch durch Hinzufügen der oberen Begrenzung der ForSchleifen auf eine beliebige Anzahl von Ankreuzfeldern erweitert werden).

Sie können dann das gewünschte Verhalten mithilfe der folgenden zwei Funktionen erreichen:

Eine Funktion zum Umschalten aller Optionskästchen auf einen bestimmten Wert:

Function ToggleAll(v As Integer) Dim i As Integer For i = 1 To 3 Controls("chk" & i).Value = v Next i End Function 

Eine Funktion zum Testen, ob alle Kontrollkästchen für Optionen aktiviert sind, und das Kontrollkästchen Alle auswählen entsprechend aktivieren oder deaktivieren :

Function AllEnabled() Dim i As Integer, v As Integer: v = -1 For i = 1 To 3 v = v * Abs(Controls("chk" & i).Value) Next i chkA.Value = v End Function 

Dann müssen Sie einfach die oben genannten Funktionen in den After UpdateEvent-Handlern für Ihre Steuerelemente auswerten :

Private Sub chk1_AfterUpdate() AllEnabled End Sub  Private Sub chk2_AfterUpdate() AllEnabled End Sub  Private Sub chk3_AfterUpdate() AllEnabled End Sub  Private Sub chkA_AfterUpdate() ToggleAll chkA End Sub 

Jedes Mal, wenn der Wert der einzelnen Optionskästchen geändert wird, AllEnabledüberprüft die Funktion, ob alle Optionsfelder aktiviert sind, und setzt den Wert des Kontrollkästchens Alle auswählen entsprechend.

Wenn der Wert des Kontrollkästchens Alle auswählen ( chkA) geändert wird, wird die ToggleAllFunktion ausgewertet und gleichzeitig die Einstellung aller Optionskästchen im Formular aktiviert oder deaktiviert.