Office: (Office 2016) Suchfunktion

Helfe beim Thema Suchfunktion in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; tut mir leid, LindaMcKinney ...steht in den Modulen.(sind z.Z.ausgeblendet) das hatte ich dann wohl missverstanden. Es liegt mir fern, hier... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Kurt K, 17. Januar 2021.

  1. Suchfunktion


    tut mir leid, LindaMcKinney
    das hatte ich dann wohl missverstanden.
    Es liegt mir fern, hier irgendwelche Glaubenskriege anzuzetteln.
    Ich weise nur aus Erfahrung auf bestimmte Dinge hin und da finde
    ich es jetzt aber schon merkwürdig, dass Du das Bitsqueezer Suchformular
    anzweifelst, ohne Dich sowohl mal informiert zu haben, wer dahinter steckt,
    als auch es anscheinend gar nicht so richtig mal auf Validität und Geschwindigkeit getestet zu haben.
    Gleichzeitig bietest Du ein onChange Ereignis bei einer Suche an, welches sogar jedem fortgeschrittenen
    Amateurprogrammierer die Zehennägel hochrollen lässt, wenn er hört, dass das eine Alternative sein soll
    zu einem von Dir noch nicht getesteten professionellen Filterformular von Bitsqueezer.
    Dieses Filterformular erklärt sich über die Kommentare in den Modulen selbst,
    bietet für viele Anwendungsfälle angepasste Formulare und !!!!!:
    Der Profiprogrammierer mit seinem Alias Bitsqueezer ist jederzeit erreichbar in einem anderen Forum
    Office Forum • Foren-Übersicht
    Dort kann man ihn über PN erreichen und er gehört zu den geduldigsten
    Programmiererprofis, die mir bekannt sind.
     
    Ohrkester, 25. Januar 2021
    #46
  2. \@Ohrkester
    Also irgendwie versteh ich die Welt nicht mehr !
    Ich habe nie angezweifelt das CC Filter nicht perfekt ist für viele Zwecke.
    Sonst würde ich es nie empfehlen oder selbst nutzen.
    Was sollen jetzt bitte deine Belehrungen?
    Das On Change Ereignis welches ich in die DB (Post #38) eingesetzt habe stammt aus CC Filter, das ist nicht von mir.
    Das sich CC Filter selbst erklärt schrieb ich weiter oben schon.

    Die anderen Suchfelder ( vorher) sind nicht OnChange sondern funktionieren nur über Kriterien.

    Weil ich den CC Filtern schön öfter benutzt habe und auch einiges dabei schief gelaufen ist, meinte ich das es für Anfänger tricky sein könnte.
    Mehr nicht.
    Aber ich glaube das es besser ist mich mal auszuklinken, wenn meine Hilfe unerwünscht ist.
     
    LindaMcKinney, 25. Januar 2021
    #47
  3. Hallo zusammen,

    keiner kämpft so hart für meine Module wie Ohrkester (nicht mal ich), wenn ich je einen Manager brauchen sollte, wende ich mich auf jeden Fall an ihn...vielen Dank für Dein Engagement...*wink.gif*

    Er hat mich gebeten, hier mal reinzuschauen. Habe den Thread nur überflogen, aber streitet Euch doch nicht wegen des Filtermoduls. Ich habe jetzt die Anmerkungen von Linda nicht als Angriff empfunden.

    Zu dem CCFilter-Modul: Es gibt 3 Varianten, einstellbar per #-Konstanten zu Beginn der Module. DAO (Standard Access), ADO und ADO/ADP. Letzteres ab A2013 nicht mehr verwendbar (sniff), ist es sehr unterschiedlich, wie beide funktionieren. Bei DAO wird einfach der Formularfilter von Access verwendet, bei ADO wird stattdessen der WHERE-String geändert. Grund ist, daß ich ursprünglich auch DAO verwendet habe, aber leider ist Access bei größeren Datenmengen mit dem Access-Filter nicht mehr stabil, da kommt es zu Abstürzen. Daher später die ADO-Version hinzugefügt, hier werden die Daten dafür immer neu abgefragt (der Access-DAO-Filter fragt nur einmal ab und filtert nur), läuft dafür bisher in allen Fällen stabil. Allerdings hatte ich diese Abstürze bei A2007 (und rd. 100.000 Datensätzen), nicht gesagt, daß das immer noch der Fall ist. Auch der Hauptspeicher heutiger Rechner hat ganz andere Größen als damals.

    "Tricky" ist das Modul eigentlich nicht, im Gegenteil. Es ist darauf ausgelegt, in einem Standard-Endlosformular (geht natürlich auch in einem Einzelformular) alle Einstellungen anhand des verwendeten Recordsets selbst herauszufinden. In der Grundversion muß man die Suchfelder auf dem Formular einfach nur erstellen, das Design nach Wunsch anpassen und dann müssen sie nur korrekt benannt werden, also etwa eine Textbox oder Kombobox "Filter_Kundenname" für ein Feld namens "Kundenname" - fertig. Im eigenen Formular benötigt es nur eine modulglobale Variable und ein Initialisierungscode beim Laden, der so etwa 4 Zeilen lang ist, das war's.

    Das Klassenmodul untersucht dann das verwendete Recordset, identifiziert alle Controlnamen und stellt deren Eigenschaften entsprechend ein, übernimmt deren Events und steuert die ganze Handhabung, inklusive eines Kontextmenüs, das man in den Filter-Controls per rechter Maustaste aufrufen kann, darüber kann man z.B. den Filtertyp einstellen, wenn man dafür nicht sowieso eigene Komboboxen eingebaut hat (die Demodatenbank zeigt an Beispielen, wie das aussieht).

    Später habe ich dann die Sache noch weiter vereinfacht, weil es mir zu lästig wurde, ständig erst die passenden Filtercontrols zu erstellen. Daher hat die Erweiterungsklasse ein Popup-Formular, so daß man im eigenen Formular nur noch einen Button und den kurzen Init-Code einstellen muß. Klickt man den, öffnet sich das Filterformular, das (bei CCFilter2_7) die ersten bis zu 50 Felder des Recordsets verwendet, um selbst alle Filterfelder dynamisch zu erstellen (die man per Konfiguration aber auch noch vielfältig im eigenen Code anpassen kann, z.B. die Beschriftung oder ob man von/bis-Felder haben möchte oder Textboxen statt Komboboxen usw. - für jedes Feld einzeln, versteht sich).

    Damit muß ich als Programmierer einer neuen Datenbank nur noch alle Module einfügen, einen Button in mein Endlosformular einbauen, den Initcode einstellen und fertig. Dazu muß man keine Zeile des Codes gelesen haben, nur einfach die Beispiele in der Demodatenbank anwenden.

    Die Datentyperkennung muß natürlich voraussetzen, daß auch die richtigen Datentypen in der Abfrage sind. Heißt: Wenn ich nach einem Kundennamen suche, hilft es nichts, in die Abfrage die KundenID einzubauen und im Formular eine Kombobox anzuzeigen. Dann kann man natürlich auch nur nach der ID suchen, weil nur diese im Datensatz ist. Trotzdem kann man beides machen, wenn man einfach nur den Kundennamen als zusätzliches Feld mit einbaut. Die Kombobox im Endlosbereich kann dann wie gewohnt verwendet werden und das Feld Kundennname wird als verstecktes Control eingebaut oder nur im Recordset. Solange das Filterfeld dann eben "Filter_Kundenname" und nicht "Filter_KundenID" heißt, wird dann die Textvariante verwendet. Also ziemlich simpel: What you insert is what you get. Wer sein Datum im SQL-String als Text formatiert, muß sich nicht wundern, wenn auch das Filterfeld nur wie eine Textsuche funktioniert.

    OnChange: Diese Filtermethode habe ich der Vollständigkeit halber eingebaut, für kleine Recordsets bis vielleicht 100 Datensätze kann man sie auch verwenden. Ist aber definitiv nicht für ellenlange Endlosformulare geeignet. Wie lange der Access-Filter das verkraftet, ist zweifelhaft und die WHERE-Variante feuert bei schnellem Tippen dann jedesmal eine Abfrage an das Backend, was eine deutliche Belastung darstellt. Wer vernünftig und performant filtern will, läßt so einen Quatsch grundsätzlich sein.

    Nicht wenige meiner Kollegen zeigen ein Endlosformular auch erst mal grundsätzlich leer an und filtern erst, wenn eine Eingabe beendet wurde. Kann man so machen. Ich persönlich finde es immer etwas leer, wenn man nicht auch ohne Filtern erst mal einfach durch die Datensätze blättern will.

    Aber Google zeigt einem ja auch nicht erst das ganze Internet und läßt dann filtern...*Smilie
    Es kommt halt immer auf die Datenmenge an.

    Gruß

    Christian
     
    Bitsqueezer, 25. Januar 2021
    #48
  4. Suchfunktion

    Danke, Christian - besonders diese Aussage hat mir gefallen.
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
  5. Guten Morgen,
    vielen Dank auch von mir Christian, für deine Zeit alles etwas genauer zu beschreiben. Ich muss auch gestehen, dass ich einige Zeit gebraucht habe um dein Filter-System (einigermaßen) zu verstehen .
    Allerdings ist mir beim verwenden des CC Filters schon einige Male Access abgestürzt, das mag an den von dir beschriebenen Fakten liegen. Das meinte ich mit tricky.

    Maxel, was deinen Seitenhieb betrifft, OnChange funktioniert bei mir bis dato einwandfrei bei ca. 2000 Datensätzen.
    Wie man weiter oben lesen kann gibts noch andere User hier, die diese Art der Filterung sehr schätzen.
    Das die CC Filter OnChange Suche sehr speziell ist, habe ich allerdings nicht gewusst. Wenn man etwas nicht weiß, ist man deswegen dumm?

    Jetzt kann ich es besser machen und die LOAD Zeile für den OnChange löschen und gut ist.

    Wer grundsätzlich gegen den CC Filter ist kann ja immer noch andere Suchmechanismen verwenden wie mein ganz am Anfang gemachtes Beispiel welches hier anzuschauen ist. Stichwort bei You Tube: Access 2013 - Suchformular (fast) ohne VBA.

    @kurt
    Eine Antwort darauf, was du vom CC Filter hälst, wäre noch interessant, speziell weil du dich als "Beginner" siehst.
     
    LindaMcKinney, 25. Januar 2021
    #50
  6. Guten Morgen LindaMcKinney,
    ehrlich gesagt, ist für meinen Kenntnisstand alles zu hoch.
    Welches Beispiel soll ich den nun nehmen ?
    Ich werde ca. 20.000 Datensätze später haben.
    Würde mich gern um eine Information freuen, vielleicht mit
    klarem Beispiel für mich.

    Mit freundlichen Grüßen
    Kurt
     
  7. Was für eine merkwürdige Formulierung? Ein Lösung tut das, wofür sie programmiert ist, und diese ist überzeugend, sehr umfangreich, gut - bestens geeignet, um sich Routinearbeiten, die häufig auftreten, erledigen zu lassen. Punkt. Man hat immer eine Möglichkeit, eine Lösung am falschen Platz einzusetzen und Probleme zu erzeugen. Das liegt dann nicht an einer Lösung, sondern am einsetzenden Verwender, der schon wissen sollte, was er da hat, was die Lösung kann und was sie nicht kann und ggf. (wie ja auch schon begleitend mitgeteilt) welche Randbedingungen doch zu Problemen führen könnten, bei aller umgesetzten Robustheit.
    Die Anwendung selber ist doch einfach: Schlicht ein paar Codes als Ganzes kopieren und in betreffenden Formularen das Ganze initialisieren.

    Das eigentliche Problem an einer solchen umfänglichen Lösung ist, dass es dem Verwender das Denken abzunehmen scheint. Abnahme von Routinearbeit, die man als solche beherrscht, und das Abnehmen von Denken sind sehr unterschiedliche Felder. Blackbox, wozu sich mit Grundlagen beschäftigen, wenn man doch zusammenklicken und gedankenarm kopieren kann?
    Im vielleicht schon nächsten kleinen Schritt, z.B. außerhalb dieser Lösung wie dem Kriterium für ein DLookup, bräuchte man dann doch Grundlagen und Entwicklerwissen, um nicht in den tiefen Schrei der Ahnungslosigkeit fallen zu müssen.

    Nebenbei: "Suchfunktion"
    Ich finde das Finden regelmäßig interessanter als das Suchen - schon als Beschreibung der Aufgabenstellung - weil ein Fund die Basis für eine nachfolgende Verarbeitung wie Weiterberechnung und irgendwann Anzeige, Export oder so ist und somit das eigentliche Anliegen unmittelbar fortgeführt werden kann.
     
  8. Suchfunktion

    \@ebs17
    irre ich oder warst du nicht einer der gesagt hat, die "OnChange" Suche wäre super?
    Oh sorry, ich sehe grade, das war schon abwertend gemeint. Hatte ich falsch interpretiert.

    Meine Aussage das Der CC Filter "tricky" sein könnte, beweist meine schon geäusserte Vermutung und der 2. Satz im Post#51.
    Weiter entnehme ich deinem Text in Post 52 das alle User die nicht über umfangreiches Wissen über die Access Eigenheiten verfügen, automatisch als Dummköpfe abqualifiziert werden, oder was soll der TE (Kurt) deinen Ausführungen entnehmen?
    Meine Vermutung das Kurt mit der umfänglichen CC Lösung niemals klar kommen wird hat sich also bestätigt.
    Für mich selbst kann ich behaupten das der CC Filter eine tolle Sache ist. Auch wenn er nicht geeignet zu sein scheint für riesige Datenmengen. Dafür soll er auch nicht sein.

    @kurt
    Schau dir mal das von mir zitierte Video an, vielleicht versetzt es dich in die Lage dir deine Suchformulare in Eigenregie zu modifizieren. Wenn nicht, dann "wirst du hier geholfen"*biggrin.gif*
     
    LindaMcKinney, 26. Januar 2021
    #53
  9. @Kurt
    das soll sicher DIR gelten.
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    LindaMcKinney, 26. Januar 2021
    #54
  10. Servus,
    Bitsqueezers Filterformular ist nichts anderes, als das Ergebnis einer mehr als 15 Jahre lang (oder länger schon ?) währenden
    Diskussion eines Such- oder Filterformulars für Access-Anfänger bzw. fortgeschrittene Accessanwender,
    welche dauernd auf der Suche nach einer optimalen Filterformularlösung waren und sind, es mittels einer vorprogrammierten
    und in sich geschlossenen äusserst flexiblen VBA-Lösung für Access zu ermöglichen.
    Es ist doch niemandem verboten, wieder beim "Suchformular in 10 Minuten" zu beginnen, welches als Vorgänger
    seit ca. 2002 ansatztechnisch nichts anderes war. http:\\www.office-loesung....71_0_0_asc.php (nur noch teilweise erreichbar)
    Es funktioniert ganz nebenbei auch noch immer.
    Damals hatte sich auch niemand über bequemes Übernehmen von Codes beschwert und über eine Verwahrlosung des Programmierens
    durch solche "Fertigprodukte" aufgeregt, sondern ganz im Gegenteil begeistert sich damit auseinandergesetzt.
    Bitsqueezers CCFilter-Modul bietet eine ganz moderne Form, angefangen von der einfachen Anpassung einer eigenen DB daran,
    ohne Details des CCFilter-Moduls kennen zu müssen, bis hin zu den Möglichkeiten, den gesamten offenen Code bis in die
    kleinsten Details nachvollziehen zu können.
    Was will man mehr?
    Bitte nicht sich wundern: ebs17 ist bei mir gesperrt. Ich reagiere daher auch nicht auf Zitate von ihm.
     
    Ohrkester, 26. Januar 2021
    #55
  11. Lieber Kollege Ohrkester, deinen Einsatz in der Sache in Ehren aber:
    Auch hier hast du mich offenbar falsch verstanden.
    Ich biete an > genau diesen Teil des CC Filters und nannte es "OnChange" < (Anhang in #38)

    Ansonsten hatte ich Kurt eine andere Filtermöglichkeit in seine DB eingebaut die recht simpel ist. OHNE "OnChange"!! (Anhang in #34)

    Auch wenn ich mich wiederhole, ich selbst benutze Christians Filter schon länger, erfolgreich.
    Hätte ich es sonst weitergetragen?
    "Tricky" nannte ich es, weil es je nach Datenmenge zu Abstürzen kommen könnte wenn eine bestimmte Konfiguration vorgenommen wurde.

    Kann ich annehmen das wir uns in der Sache einig sind? Kein Kriegsbeil,- ok?
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    LindaMcKinney, 26. Januar 2021
    #56
  12. Servus LindaMcKinney,
    ich wüsste gar nicht, wo ich ein solches Beil herholen sollte.*Smilie
    Ich bin kein auf Auseinandersetzung gebürsteter Forumbesucher.

    Trotzdem muss ich dringend darum bitten, dass Du solche Behauptungen
    sofort mit Beweisen unterfütterst oder sie einfach offiziell hier zurücknimmst.
    Schönen Abend noch.

    p.s.: Vielen Dank an Bitsqueezer für seinen Sondereinsatz hier.
     
    Ohrkester, 26. Januar 2021
    #57
  13. Suchfunktion

    Guten Morgen zusammen,

    ehrlich geantwortet, das ist für mich manchmal zu viel.
    Kann ich bei diesem Muster (Anlage) die OnChange Methode
    für die Such Textfelder einbinden und Wie ?

    Sonst bin ich hier sehr zufrieden, da ich evt. Erweiterungen
    verstanden habe.

    mfg
    kurt
     
  14. Hi Kurt,
    ohne dir zu nahe treten zu wollen, ich glaube nicht das du den Unterschied verstanden hast.*Smilie
    Wenn du den Anhang im Post # 34 verwendest so ist der OHNE CC Filter (OnChange).
    Wenn du den Anhang im Post # 38 verwendest so ist der MIT CC Filter (OnChange).
    Du musst dich mal festlegen, welche Variante du nutzen willst, mit oder ohne CC Filter.

    Wegen deiner "riesigen" Datenmengen ist es aber nicht zweckmäßig mit OnChange zu suchen, sondern besser ohne.
    Man kann das selber bestimmen, je nach LOAD Ereignis. Hast du diese Möglichkeit schon getestet? Ich denke nein.

    Wie man den CCFilter einbindet hat der Kollege im Post 48 erklärt, aber ich zweifle ob du das selber hinbekommst.

    Leg dich mal fest was du in welchem Umfang mit deiner DB anstellen willst und beschreibe es.
    Dann schauen wir mal.

    OT. Deine Codes in der KD_Datenbank sind eine einzige Katastrophe.*rolleyes.gif*
    Da musst du unbedingt aufräumen.
     
    Zuletzt von einem Moderator bearbeitet: 2. März 2021
    LindaMcKinney, 27. Januar 2021
    #59
  15. Servus Kurt K,
    hier eine Version Deiner zuletzt geschickten Version mit einer Umschaltoption 'afterUpdate/onChange' .
    Es wird dort der Formularfilter benutzt und über eine Optionsgruppe 'optSuchmodus ' zwischen den 2 Ereignisprozeduren
    'afterUpdate' und 'onChange' ausgewählt. Das wird durch das Ein- und Ausschalten dieser Ereignisprozeduren erreicht.
    Es dürfen dabei keine der beiden Ereignisprozeduren in der Entwurfsansicht vorausgewählt sein.
    Die LIKE-Suche wurde erweitert (Wildcard *.* statt .*)
    Eine kleine Hilfe für das Positionieren des Cursors während eines 'onChange' Ereignisses wurde hinzugefügt.
    Die Anwendung Deiner Abfrage wird vermieden. Ob ein Filter in Deinem Fall oder das dauernde Aufrufen der Abfrage
    insbesondere bei 'onChange' Ereignissen optimaler ist, überlasse ich den Profis hier.
    Mein Gefühl sagt, dass das Filtern auf eine im Speicher schon vorhandene Datenmenge schneller ist.
    Alles weitere im Anhang

    Code:
    p.s.: Weitere Codes habe ich nicht angeschaut.
     
    Ohrkester, 27. Januar 2021
    #60
Thema:

Suchfunktion

Die Seite wird geladen...
  1. Suchfunktion - Similar Threads - Suchfunktion

  2. Alte Mails nur noch auf Server

    in Microsoft Outlook Hilfe
    Alte Mails nur noch auf Server: Guten Tag. Ich habe eben Outlook aus Office 16 auf einem neuen PC einrichten wollen. Es hat soweit geklappt, ich kann Mails versenden und auch empfangen. Ich verwende IMAP. Leider sehe ich im...
  3. Suchfunktion funktioniert in Outlook für Mac nach Mac OS-Upgrade nicht

    in Microsoft Outlook Tutorials
    Suchfunktion funktioniert in Outlook für Mac nach Mac OS-Upgrade nicht: Suchfunktion funktioniert in Outlook für Mac nach Mac OS-Upgrade nicht Outlook 2016 für Mac Outlook 2019 für Mac Mehr... Weniger...
  4. Suchfunktion in Tabelle einbinden

    in Microsoft Excel Hilfe
    Suchfunktion in Tabelle einbinden: Hallo, ich habe hier eine Tabelle in der ich gerne eine Suchfunktion hinzufügen möchte. Bei der Eingabe der Artikelnummer soll er mir Vorschläge aus der 2 Tabelle anbieten. ... leider habe ich...
  5. Effektive Suchfunktion 30000 Einträge

    in Microsoft Excel Hilfe
    Effektive Suchfunktion 30000 Einträge: Hallo Zusammen, ich möchte in meiner Tabelle alle Zeilen aufgelistet haben bei dem zwei Suchkriterien zutreffen. Die Zeilen möchte ich in meinem späteren Makro weiter verwenden. Da die Tabelle...
  6. excel via Suchfunktion ok und abbrechen belegen

    in Microsoft Excel Hilfe
    excel via Suchfunktion ok und abbrechen belegen: Hallo zusammen, zunächst möchte ich mich für euere Antworten im Voraus bedanken. Ich versuche mir selber VBA in Excel beizubringen. Ich habe per VBA ein Suchfenster erstellt, wo eine...
  7. Suchfunktion funktioniert nicht mehr

    in Microsoft Outlook Hilfe
    Suchfunktion funktioniert nicht mehr: Mein Outlook 2007 lässt mich nichts mehr suchen... was ich bisher versucht habe: Index erneuern Outlook neu installiert ScanPST neue Datendatei erstellt, Mails importiert...
  8. Artikel bestellen mit Suchfunktion

    in Microsoft Excel Hilfe
    Artikel bestellen mit Suchfunktion: Hallo, ich bin leider kein Excel-Profi, vielleicht könnt ihr mir helfen. Ich möchte in Tabelle2 verschiedene Artikel aus sheet1 bestellen. Dazu möchte ich als Suche QP eingeben, alle QP-Typen...
  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