PDA

Vollständige Version anzeigen : alle Kontrollkästchen gleichzeitig markieren


schubert.marbella
09.11.2003, 21:56
Hallo Profis!

Wie kann ich denn realisieren, in einem Formular mit zahlreichen Datensätzen im Detailbereich mit einem Klick (z.B. im Formularfuß) alle Kontrollkästchen gleichzeitig zu markieren, ohne in jedem Datensatz einzeln klicken zu müssen?

Vielen Dank und sonnige Grüße aus Marbella!

P.S. an Johnny Loser: bin noch nicht so ein Crack im Forum und oft auf Eure Hilfe angewiesen.

Johnny Loser
09.11.2003, 22:29
Hi schubert.marbella,

wenn es sich bei der Datenherkunft der Kontrollkästchen um Ja/Nein-Felder der Datenherkunfts-Tabelle handelt, könntest Du diese mit einem SQL-Statement updaten.

Eine Möglichkeit wäre, wie Du schon schreibst, das Einfügen eines Buttons in Formularkopf oder -fuß. Im OnClick-Ereignis des Buttons könnte dann folgende Anweisung stehen:

Private Sub btAllesAufTrue_Click()
CurrentDb.Execute("UPDATE tbl SET fld = True")
Me.Requery
End Sub
tbl = Deine Herkunftstabelle, die aktualisiert werden soll
fld = Dein Ja/Nein-Feld, welches als CheckBox im Formular dargestellt ist

Falls das Formular jedoch gefiltert ist und nur die gefilterten Datensätze aktualisiert werden sollen, muß der Filter (WHERE-Klausel) in das Update-Statement integriert werden. Um heirzu einen entscheidenden Tip abzugeben, müßte ich allerdings mehr darüber wissen, wie sich die Datenherkunft des Formulars aufbaut.

schubert.marbella
09.11.2003, 22:38
...tatsächlich werden alle Datensätze, die aus einer Abfrage kommen, mittels

Private Sub PatientenFilter_AfterUpdate()

If Me!PatientenFilter = "Alle" Then

'Filter deaktivieren
Me.FilterOn = False

Else

Me.Filter = "Patientennummer Like '" & Me.PatientenFilter & "'"
Me.FilterOn = True

End If

End Sub

gefiltert (nach Patient). Die nun vorhandenen Rechnungen sollen meistens alle zusammen auf eine Rechnung. Das Häkchen soll dies mit einem Rechnungsdatum bestätigen. Bei zig Rechnungen ist es für den Doc lästig, jede einzelne Behandlung anzuklicken.

Wie müsste die Where-Klausel also aussehen?

Gracias!

Alexander Jan Peters
09.11.2003, 22:44
Hallo,

wie Johnny in einen Nebensatz schon gesagt hat, der Filter ist die WHERE-Klausel, also:
"UPDATE tblRechnungspositionen SET AufRechnung=True WHERE Patientennummer Like '" & Me.PatientenFilter & "'"

Gruß Alex

Johnny Loser
09.11.2003, 22:52
OK, zurück zu meinem kleinen Beispiel. Für die WHERE-Klausel bedienen wir uns einer Variablen, die abhängig vom Status Me.FilterOn gefüllt wird.


Private Sub btAllesAufTrue_Click()
Dim strWhere As String
strWhere = ""
If Me.FilterOn Then strWhere = " WHERE " & Me.Filter
CurrentDb.Execute("UPDATE tbl SET fld = True" & strWhere)
Me.Requery
End Sub

Grundsätzlich würde ich den Button aber deaktivieren, wenn als Filter "Alle" gewählt sind, da ich mir kaum vorstellen aknn, daß alle Rechnungen gleichzeitig ausgelöst werden sollen.

De nada

schubert.marbella
09.11.2003, 22:59
...ick werd varrückt - dat funzt!

Gracias!