Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Alle Kontrollfelder aktivieren über Button

Begonnen von Mokkie, Juni 18, 2025, 13:57:14

⏪ vorheriges - nächstes ⏩

Mokkie

Hallo,

ich würde gerne alle Kontrollfelder in meinem Endlosformularaktivieren.

Ich ahbe folgenden Code: Dim ctrl As Control
   
    ' Alle Steuerelemente im Formular durchlaufen
    For Each ctrl In Me.Controls
        ' Überprüfen, ob das Steuerelement ein Eingabefeld ist (Textfeld, Kombinationsfeld, etc.)
        If ctrl.ControlType = acCheckBox Then
            ' Setze das Steuerelement auf aktiviert
            ctrl.Value = True
        End If
    Next ctrl
End Sub
es wird leider aber nur das Kontroll aktiviert, in dessen Datensatz ich mich gerade befinde.
Was mach ich denn da falsch?

Grüße, Babsi

MzKlMu

llo,
Du musst auch einen Datensatzwechsel programmieren. Die Box gibt es im Formular ja nur 1x, die nächste Box ist ja der nächste Datensatz.
Warum machst Du das nicht mit einer einfachen Aktualisierungsabfrage (ggf. gefiltert) ?
Gruß Klaus

Mokkie

Hallo,

ja, hab ich auch gemerkt und entsprechend korrigiert.
  Dim rs As DAO.Recordset

    ' Datensatzquelle des Formulars durchlaufen
    Set rs = Me.RecordsetClone

    With rs
        If Not .EOF Then .MoveFirst
        Do While Not .EOF
            .Edit
             !genehmigt = True  ' <-- Name des gebundenen Feldes
            .Update
            .MoveNext
        Loop
    End With

    ' Formular neu abgleichen, damit Änderungen sichtbar werden
    Me.Requery

Knobbi38

Hallo,

ZitatIf Not .EOF Then .MoveFirst
        Do While Not .EOF

???  ::)

So etwas nenne ich doppelt gemoppelt! Not. EOF hintereinander zweimal abfragen gibt doch keinen Sinn.
Nach RecordsetClone ist immer der erste Datensatz aktiviert, wenn welche vorhanden sind. Also ein simples "Do While Not .EOF" hätte gereicht.
Wichtiger wäre ein Set rs = Nothing gewesen, wenn das Recordset nicht mehr gebraucht wird!

Knobbi38



MzKlMu

Hallo,
mit der genannten Aktualisierungsabfrage wird das zu einem Einzeiler.
Das mit dem EOF entfällt dann auch komplett.
Gruß Klaus

Knobbi38

@klaus:

Im Prinzip schon, hier kommt es jedoch darauf an, ob Filter des Formulars mit berücksichtigt werden müssen oder nicht, d.h., eine Aktualisierungsabfrage müsste ggf. dynamisch angepasst werden.

Grub Knobbi38
 

MzKlMu

@Ulrich
Zitat... müsste ggf. dynamisch angepasst werden.
Das habe ich in #1 schon angedeutet.
Gruß Klaus