online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon lacasalatina vom 20.03.2021, 23:51 Options

Lösung

Access: Kontrollkästchen gefilterter DS im Endlosformular markieren

Hallo Profis,

ich habe ein Endlosformular, in dem über entsprechende (Such-)Felder für Name und Ort die Datensätze des Endlosformulars gefiltert werden. Das Feld "Auswahl", ein Ja-/Nein-Feld, soll dann mit einem Klick für die gefilterten DS markiert und demarkiert werden.

Hat jemand eine Idee, ob/wie so etwas funktionieren kann?


Antwort schreiben

Antwort 1 von RaHi vom 22.03.2021, 12:30 Options

Hallo,

eine mögliche Lösung wäre

Private Sub button_Click()
If Me.FilterOn Then
    DoCmd.RunSQL "UPDATE tblTabelle set auswahl= true where " & Me.Filter
    DoCmd.RunSQL "UPDATE tblTabelle set auswahl= false where not (" & Me.Filter & ")"
   Else
    DoCmd.RunSQL "UPDATE blBOOL set b = true"
End If

Me.Requery
End Sub

Der Code muss im Codebereich des Formulars stehen. Ersetzen müsstest du noch den Tabellenname. In Me.Filter stehen die Filterkriterien als SQL-Statement. Mit den zwei RunSQL-Statements setzt du dann den Wert für das Feld Auswahl in deiner Tabelle entsprechende auf true und false. Falls du keinen Filter gesetzt hast, muss das getrennt behandelt werden, da sonst das Where-Kriterium nicht syntaktisch korrekt wäre.

Gruß
Ralf

Antwort 2 von RaHi vom 22.03.2021, 14:56 Options

Hallo,

im Else-Zweig meinte ich natürlich
DoCmd.RunSQL "UPDATE tblTabelle set auswahl= true"

Gruß
Ralf

Antwort 3 von lacasalatina vom 22.03.2021, 19:07 Options

Hallo Ralf,

super, das hat geklappt!!! Vielen Dank für Deine Hilfe!!!

Hast Du evtl. auch eine Idee, wie ich ALLE angehakten Datensätze wieder "de-markiere"? Also zB habe ich als 1. Schritt alle Schmitt´sgefiltert und die über Deine obige Funktion markiert. Dann filter ich im 2. Schritt nach dem Ort, zB Hamburg. Die werden dann "dazumarkiert" zu den Schmitts. Und dann sollen ALLE Markierungen, also Schmitts und Hamburger, mit einem Klick gelöscht werden.

Wäre super, wenn Du hierfür auch noch eine Idee hättest!!!

Vielen Dank schon mal für die "erste" Lösung :-)

Antwort 4 von RaHi vom 22.03.2021, 19:39 OptionsLösung

Lösung
Hallo,

für deine Anforderung (alle Schmidt und alle aus Hamburg) musst du das zweite "Update" im Then-Zweig weg lassen. Bei meiner ersten Lösung wurden entweder alle Schmidts oder alle Hamburger markiert, bzw. die Schnittmenge, wenn du die Kriterien zusammen angegeben hast. So wie ich dich jetzt verstehe, willst du die Vereinigungsmenge.

Für das Löschen der Markierungen verwende einfach einen weiteren Button mit
DoCmd.RunSQL "UPDATE tblTabelle set auswahl= false"
Me.Filter = ""
Me.FilterOn = false
Me.requery
Hast du das gemeint?

Gruß
Ralf

Antwort 5 von lacasalatina vom 22.03.2021, 19:54 Options

Mit EINEM Wort: PERFEKT !!!

Mit VIER Worten: besser geht es nicht !!!

Vielen, vielen Dank, ich hab was gelernt !!!

Ähnliche Themen

Abfrageformular mit Kontrollkästchen
esupanetz  24.10.2007 - 94 Hits - 3 Antworten

Kontrollkästchen im Formular
Mrfivejunior  03.12.2007 - 149 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026