Office: (Office 2010) Filterkonflikt ?

Helfe beim Thema Filterkonflikt ? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo ihr Lieben, da ich wie vielleicht schon der eine oder andere mitbekommen hat, ich in einer DB mit Button&Filtern arbeite bemerke ich seit Tagen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Prof.Adv, 31. Oktober 2020.

  1. Filterkonflikt ?


    Hallo ihr Lieben,
    da ich wie vielleicht schon der eine oder andere mitbekommen hat, ich in
    einer DB mit Button&Filtern arbeite bemerke ich seit Tagen einen Fehler.

    In einem Frm hab ich eine Reihe von Buttons die bestimmte Daten filtern.
    Ausgeschaltet werden diese mit diesem Code(1):
    Das setzen von Filtern funktioniert tadellos, auch das Löschen bzw. neutralisieren.
    Code(1)

    PHP:
             Private Sub AlleFilterAus_Click()
    Me.FilterOn False
    End Sub
    :)
     
    Prof.Adv, 31. Oktober 2020
    #1
  2. Hast Du in diesem Code neben der Filterzuweisung auch
    Code:
    stehen?

    Ansonsten: Zeige mal alle relevanten Codes vollständig.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  3. Hallo,
    ich würde auch den Filter selbst löschen.
    Code:
    Und dem Suchfeld zum Löschen Null zuweisen und keinen Leerstring. Mit einem Leerstring ist das Feld nur scheinbar leer.
    Code:
     
    gpswanderer, 2. November 2020
    #3
  4. Filterkonflikt ?

    Also, ich habe die Codes gemäß #3 verändert. Leider ändert sich am Verhalten dadurch nichts.Klaus.

    Maxel
    nun, die Buttons (über 30) filtern alle korrekt mit z.B. solchen Codes

    PHP:
             Private Sub ABT2018_Click()
    Me.Filter "Ziel = 'ABT2018'"
    Me.FilterOn True
    End Sub
     
    Prof.Adv, 2. November 2020
    #4
  5. Hallo,
    Du solltest trotzdem das Feld ganz leeren durch Zuweisung von Null mit ="" ist das Suchfeld nicht leer.
    Und natürlich auch den Filterstring. Der muss aber mit ="" gelöscht werden.
    Völlig unabhängig von dem Problem das Du hast.
     
    gpswanderer, 2. November 2020
    #5
  6. Klaus, das mag sein. Die Codes die für das Txt Suchfeld gelten stehen oben in #3.
    Gebe ich einen Suchtext ein wird dieser auch angezeigt.
    nach drücken des Button (btnSuch2AUS, siehe #3) wird das Suchfeld geleert, so wie in der Abfrage definiert.
    Ob jetzt "" oder Null, macht keinen Unterschied.
    Für das Textsuchfeld gibt es ja keinen Filterstring, es sei denn ich gebe irgendetwas ein was er suchen soll.

    Oder habe ich dich falsch verstanden? Bitte Nachsicht mit mir......
     
    Prof.Adv, 2. November 2020
    #6
  7. Hallo,
    Ganz ehrlich - ich habe den Eindruck, dass Du noch gar nichts von logischen Programmabläufen verstanden hast. Der Wink mit dem Zaunpfahl von Maxel ist anscheinend wirkungslos an Dir vorbei gerauscht. Mit der Zeile Me.Filteron = False schaltest Du die Filterung ab. Solange Du die nicht wieder einschaltest, bleibt sie aus. Wenn Du den Kühlschrank ausmachst, kühlt er nicht mehr, und da ist es egal, ob du das Bier rausholst und dafür Milch oder Wurst reinstellst - der bleibt einfach aus, solange Du ihn nicht wieder anmachst.
    Unabhängig davon kann ich die ganze Filterbuttonorgie nicht nachvollziehen. Eine Kombox zum Filtern und gut ist - das ist übersichtlich, spart Platz im Formular und viel überflüssigen Code, in den man Fehler einbauen kann.

    0,02
    Fred
     
    Fred_BS, 2. November 2020
    #7
  8. Filterkonflikt ?

    Ich vermute, die Crux besteht darin, dass Du in der Abfrage mit Formularbezug arbeitest (Where-Klausel, deshalb auch das seltsame Requery) und parallel im Formular mit Formularfiltern. Das muss Konflikte geben.

    Ich würde die Where-Klausel in der Abfrage streichen und mich nur auf Formularfilter beschränken. Das ist sauberer zu programmieren.
     
  9. Maxel. ich habe in einem anderen Frm einen ähnlichen Aufbau, nur weniger Buttons, aber auch mit dieser Klausel in der Abfrage. Das klappt alles super.

    Ich verstehe nicht warum das nicht in "diesem" Formular klappt, wo die Codes genauso aufgebaut sind.
    In einen Nachbar Frm habe ich auch ein Suchtextfeld, allerdings keine Button mit Filtern, auch dort klappt alles.

    @Fred_BS
    Ich muss auch nichts verstehen von tieferen Programierkünsten, ich muss (möchte) nur das anwenden was ich verstehe und umsetzen kann. Nur so.
    Was du die "Filterbuttonorgie" bezeichnest ist äusserst wirksam und blitzschnell.
    Hier geht es nicht um ein paar, eine überschaubare Handvoll Kriterien, sondern um das Filtern von ca. 40 Kostentypen plus parallel aus 15 Jahren und der daraus resultierenden Varianten.
    Das wäre mit Komboboxen sicher machbar, aber sehr unübersichtlich und viel langsamer.
    Ich filtere z.B. Kostentyp A1, A2, A3, A4, A5 aus 2019, jeden für sich, oder aber alle aus 2019, oder nur A1+A3 z.B. zusammen und so weiter. So auch mit B1.B2, B3 usw, bis Z1. Z2 usw.- sehr komplex.

    Ausserdem müsste man sich dann den Aufbau VORHER ausdenken und nicht später aus 1300 DS das passende auswählen zu wollen. Da magst du sicher Recht haben.

    Ich stand halt vor der Aufgabe mit wenig Kenntnissen eine Unmenge von Daten nach div. Gruppen filtern zu können.
    Das geht mit Buttons leicht. Auch die Anordnung der Buttons ist logisch aufgebaut und macht Spass damit zu hantieren.
    Ist allerdings alles Hobby. Nun denn, jeder nach seinem Können.

    Einer der Gründe hier zu fragen, weil ich weiß das hier viele Kenner vieles lösen können weil sie eben mehr wissen als ich. Um das Ganze einigermaßen zu beherrschen müsste ich mich viel mehr damit beschäftigen, aber ich habe halt noch weitere Hobbys.*Smilie und bin immer dankbar für jede Hilfe.
    Natürlich macht das jeder freiwillig und ich stelle niemals einen Anspruch.
     
    Prof.Adv, 2. November 2020
    #9
  10. Nun, nachdem ich alle o.g. Varianten versucht habe......
    Zum Vorwurf ich hatte Maxels Tip ignoriert, die Filter der div. Buttons werden immer mit Me.FilterOn= True aktiviert.
    Sobald ich aber den Code1 aus #1 nutze, kann ich im Suchfeld keinen Text mehr suchen.
    Suche ich im im Suchfeld vorher, geht alles super.

    Ich vermute, wenn ein beliebiger Filter AUS geschaltet wird, kann man danach im Textsuchfeld nicht mehr filtern, denn
    Textsuche ist ja auch ein Art Filter.

    Der Weg der Datenselektion mit der Anweisung in der Abfrage ist ein durchaus üblicher Weg Daten zu filtern.
    Das Requery muss auch sein, um danach wieder alle Daten anzuzeigen.

    Warum das allerdings in einer anderen DB mit gleichem Aufbau funktioniert ist mir ein Rätsel.
    Ich habe die Felder samt Codes 1:1 probeweise in mein Frm übernommen. Trotzdem klappt es nicht.
    Vielleicht liegt es an der Masse der Codes für die ganzen Filter. Damit kommt Access offenbar nicht zurecht.

    Habe jetzt das Textsuchfeld aus dem Frm entfernt, samt Codes - und nutze das Suchfeld aus dem Nachbar Frm welches die
    gleichen Daten liefert.

    Lieben Dank für eure Tips. Sicherlich sind meine Praktiken weit von euren Möglichkeiten entfernt, aber das sollte man nicht immer jemand an den Kopf werfen. Das erzeugt nur Frust. Wer wird schon gerne aus seine fehlenden Fähigkeiten reduziert?
     
    Prof.Adv, 2. November 2020
    #10
  11. Hallo Prof.Adv,

    ich konnte das Problem nachvollziehen. Als Workaround hilft es, FilterOn kurzzeitig umzuschalten, also zweimal auszuführen, wenn die Suchfeldaktion ausgeführt wird. Z. B. in der Art:
    Code:
    ----------

    Noch ein Tipp:
    1) Dem txtSuch2 nicht "" sondern NULL zuweisen:
    Code:
    und
    2) in der Abfrage ergänzen:
    Code:
    Somit wird sichergestellt, dass wirklich alle Datensätze (auch welche mit NULL) angezeigt werden, wenn txtSuch2 leer ist (NULL)!

    Siehe auch dazu bei
    donkarls Access-Seiten
     
    readonly, 2. November 2020
    #11
  12. hallo, lieben Dank dafür....

    Habe inzwischen intensiv nach meinem Fehler gesucht. Dabei habe ich bemerkt das in der DB wohl offenbar eine Sortierung nicht mehr aktiviert wurde. Standardmäßig hatte ich eingestellt das nach dem Feld "ID" sortiert wird. Auch nach lösen von Filtern.
    Das wurde aber nicht mehr ausgeführt, warum auch immer.

    Jetzt, nachdem ich, nach LÖSEN einer Filterung die Standardreihenfolge gemäß ID wieder aktiviert habe, läuft alles wie gewollt.
    Wie man sieht, ganz dumme Fehler.

    Das mit dem Parameter "NULL" hatte ich bereits geändert, weil Klaus meinte das dies so besser ist.

    Wenn ich allerdings diese doppelte Me.FilterOn = Not Me.FilterOn setze dann wird der Bildschirm offenbar mehrmals sehr schnell aktualisiert oder so etwas, denn er zuckt mehrfach. Das habe ich dann aber wieder aus dem Code entfernt.

    Es läuft ja jetzt. Ich hoffe das dies jetzt so bleibt. Somit kann ich meine "Filterbutton-Orgien" weiter nutzen.*biggrin.gif*

    Mir ging es darum, zu lernen, wie man diese Filter nutzt und welche Varianten man einsetzen kann. Das geht prima.

    PS: Auf der Seite "DonCarl" war ich auch schon mal, habe aber nichts gefunden was mein Problem lösen konnte.

    Also....danke vielmals.*Smilie
     
    Prof.Adv, 3. November 2020
    #12
  13. Filterkonflikt ?

    Hallo,
    Wie und wo hast Du die eingestellt ?
     
    gpswanderer, 3. November 2020
    #13
  14. Deshalb wurde die Bildschirmaktualisierung ja davor abgeschaltet und danach wieder eingeschaltet, um das Flackern auszuschalten:
    Code:
     
    readonly, 3. November 2020
    #14
  15. Im Eigenschaftenblatt unter DATEN, sortiert nach, Beim laden sortieren JA

    Ist das falsch?

    Habe offenbar irgendwann während der Nutzung im Ribbon die Filter und Sortierung entfernt. Könnte ich mir denken.

    Na, es klappt ja jetzt. Die Codes sind alle ok und zuviele sind es auch nicht.

    PS: Die Zeile mit dem Application.Echo False hatte ich vergessen.Sorry
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Prof.Adv, 3. November 2020
    #15
Thema:

Filterkonflikt ?

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden