Januar 20, 2022, 04:32:09

Neuigkeiten:

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


combobox Filter in Form funktioniert nicht mehr nach checkbox filter

Begonnen von steho80, Oktober 22, 2021, 22:17:05

⏪ vorheriges - nächstes ⏩

steho80

Hallo liebe Community,

ich habe folgendes Problem (versuche es ohne das hochladen der DB zu erläutern):

Ich habe eine Form "frmSuche" (Endlosformular) erstellt. Datensatzquelle ist eine Query. Im Formular selbst habe ich eine Combobox mit drei Status(-werten)zum Filtern des Endlosformulares eingebaut. Die Filterung funktioniert wunderbar, ebenso wie das zurücksetzen des Filters über einen Button. Den Filter des Formulares über die Combobox erziele ich über das Kriterium in der Query des Formulars:

Wie "*" & [Formulare]![frmSuche]![cmbSearchPartnerStatus]

Des weiteren habe ich eine Checkbox "cbxElectrolysers" im Formular, die mir ebenfalls zur Filterung der Form dient (eines Status "Electrolyser" --> "ja/nein" filtert):
Die Filterung findet hier über einen VBA Filter statt, wobei ich für die Checkbox einen Dreifachstatus zulassen (Status "Null" zum zurücksetzen des Filters).

Private Sub cbxElectrolysers_AfterUpdate()
    If Me!cbxElectrolysers = -1 Or Me!cbxElectrolysers = 0 Then
        Form_frmSuche.Filter = "Electrolysers = " & Me!cbxElectrolysers
        Form_frmSuche.FilterOn = True
        'Form_frmSuche.Requery
    Else
        Form_frmSuche.FilterOn = False              'Abfangen dreifachstatus zum zurücksetzen des Filters
        Form_frmSuche!cbxElectrolysers = Null
        'Form_frmSuche.Requery
    End If
End Sub

Auch das funktioniert für sich genommen wunderbar.

Jetzt das Problem: Wenn ich nach der Filterung der Form über die Checkbox wieder die Filterung des Formulars über die Combobox benutzen möchte funktioniert diese nicht mehr. Sie funktioniert also nur solange ich den Checkbox -Filter nicht verwende.

In der Formulareigenschaft steht beim Reiter "Daten" unter "Filter" der letzte Status der Checkbox vor "Null" (also dem zurücksetzen) drin (siehe Anhang), also "Electrolysers1 = 0". Lösche ich diesen von Hand, kann ich anschließend auch die Filterung der Combobox wieder benutzen.

Nun stellen sich mir die Fragen:

1.) Wieso kann ich die Combobox nicht (mehr) verwenden, wenn "FilterOn" der Checkbox doch eigentlich "False" ist.
2.) Muss ich den Filterausdruck löschen auch wenn er nicht aktiv ist und wenn ja wie?!
3.) Oder wo liegt das Problem?!

Wiedermal vielen Dank für Eure Hilfe im Voraus.

Mit freundlichen Grüßen

steho80

ebs17

Pauschal: Wenn die ComboBox ihren Wert  verändert, bekommt das das Recordset des Formulars nicht mit, es sei denn, es folgt ein explizites Requery. Hast Du so etwas?

Ansonsten ist Deine Konstellation unüblich und verkompliziert:

- Wenn schon dynamische Filterung, dann würde man neben der CheckBox die ComboBox gleich mit einbeziehen und die entstehenden Kriterien per AND verknüpfen.
- 3 Statuswerte und Mustersuche - was ist das für eine Pirouette?
Mit freundlichem Glück Auf!

Eberhard

steho80

Guten Morgen und Danke für den Hinweis,

ich bin mir jetzt nicht mehr sicher, aber der Meinung, das Requery des Formulars im Anschluss auch versucht zu haben, zumindest habe ich im gepostetem VBA - Code, wenn auch hier auskommentiert, ein Requery der Form nach dem Staus "Null" der Checkbox. Ich nehme an, ich habe es auskommentiert, da es wirklungslos war. Oder müsste ich das Requery für die Combobox dann nochmals explizit für die Combobox ausführen  (BeforeUpdate der Combobox oder ähnliches?!?).

Ansonsten bin ich mir im Klaren, dass die Konstellation so natürlich unsinnig ist, da ich so entweder nur nach dem einen oder dem anderen Filtern kann. Das ist bzw. war quasi ein Arbeitsstand, der so nicht bleiben soll. Es hat mich nur gewundert, dass die trotz "FilterOn = False" die Combobox anschließend nicht funktioniert. Der Effekt tritt nebenbei bemerkt nicht ein, wenn ich die Combobox mittels VBA  - Filter anwende (ohne auch hier beide Filter zusammengefasst zu haben.)

Vielen Dank und viele Grüße

steho80