Office: (Office 2013) Variable Anzahl von Kriterien für Abfrage

Helfe beim Thema Variable Anzahl von Kriterien für Abfrage in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; von Josef P. Dann steht im In-Ausdruck im Prinzip nur ... IN ("1,8,2") Interessant. Das war mir nicht klar, da ich in Abfragen nie Bezüge auf... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von wksw06, 28. Januar 2017.

  1. Variable Anzahl von Kriterien für Abfrage


    Interessant. Das war mir nicht klar, da ich in Abfragen nie Bezüge auf Formulare verwende.


    Bei einer Hilfstabelle müsste man in einer Mehrbenutzerumgebung theoretisch auch dafür sorgen, dass es zu keinen Überschneidungen kommt. Aber das wäre ja einfach möglich.
    Jedenfalls ein interessanter Ansatz, den ich so noch nie verwendet habe.

    LG Markus
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 31. Januar 2017
    #16
  2. Doch, das wird bewältigt.
     
  3. Mein Ansatz wäre ein bitweiser Vergleich:

    Die Tabelle tblbackgrounds um eine Spalte "Flag" erweitern und den einzelnen Qualifikationen eine eindeutige Zweierpotenz zuordnen: 1,2,4,8 usw.

    Die Flagspalte mit in die Kombifelder aufnehmen und nach jedem Change die Flags aller Kombifelder aufsummieren und die Summe in einer Tempvar speichern. (Oder, was ich benutzerfreundlicher finde, im Frontend eine Kopie dieser Tabelle mit einer zusätzlichen Ja/Nein-Spalte anlegen und die Userauswahl mittels Checkbox im Unterformular erfolgen lassen, ließe sich dann auch ohne Mehraufwand um weitere Qualifikationen erweitern)

    Dann in der Abfrage die Tempvar mit der Summe der Flags aus dem Join von tblExpertQuali und tblbackgrounds bitweise vergleichen. Ist das Ergebnis gleich der Tempvar-Summe, sind alle Qualifikation vorhanden.

    Gruß
    Kawensmann
     
    Kawensmann, 31. Januar 2017
    #18
  4. Variable Anzahl von Kriterien für Abfrage

    Sehe gerade, dass Access von Haus aus wohl Bitoperationen in Queries gar nicht unterstützt ... Noch ein Grund mehr, nur mit "richtigen" Backends zu arbeiten ...

    Da wird man wohl zu einer Hilfsfunktion greifen oder auf ANSI-92 umstellen müssen, wobei ich bei Letzterem die Seiteneffekte nicht beurteilen kann.
     
    Kawensmann, 31. Januar 2017
    #19
  5. \@Kawensmann,
    ich tu mir noch schwer den Mehrwert gegenüber den bereits erwähnten Möglichkeiten zu erkennen.
    Die Bitsumme mit den Bitwerten zu aus den einzelnen Qualifikationen zu vergleichen?

    Erhelle mich.

    LG Markus
     
    markusxy, 31. Januar 2017
    #20
  6. Erhelle dich selbst indem du meinen Beitrag noch einmal gründlich liest.

    Ich vergleiche keine Summe mit einzelnen Qualifikationen, sondern die Summe der Auswahl mit der Summe aller vergebenen Qualifikationen pro Mitarbeiter.
     
    Kawensmann, 1. Februar 2017
    #21
  7. Hallo!

    Ich bastelte ein Beispiel mit einem MultiValue-Feld für die Auswahl der erforderlichen Qualifikationen.
    QualifikationsFilter.accdb

    Im Beispiel sind 2 Varianten:
    1. Filter dynamisch gestalten (Formular "fPersonenListe_QualiFilter_Dynamisch")
    2. Filter mit Hilfstabelle für Filterwerte (Formular "fPersonenListe_QualiFilter_FilterTabelle")


    [OT]
    .. oder um gleich datenbank-orientiert zu arbeiten. *wink.gif*

    mfg
    Josef
     
    Josef P., 1. Februar 2017
    #22
  8. Variable Anzahl von Kriterien für Abfrage

    Ich hoffe ich habs jetzt verstanden. Über einen Join ermittelst du die Summe aller zugeordneten Eigenschaften aus der M:N Tabelle und vergleichst das Ergebnis mit der Auswahl.


    Ich arbeite selbst auch nach einem ähnlichen Konzept.
    Allerdings erstelle ich nur in Ausnahmen die M:N Tabelle.
    Stattdessen speichere ich die BitSumme direkt in der Haupttabelle (Freelancer in diesem Fall) und vergleiche diese mit der Summe der geforderten Eigenschaften.

    Unter Verwendung von ADO kann man AND, OR, NOT und XOR auswerten.
    Die Indexnutzung fällt halt flach. Dafür gibt es beim Filtern mache Vorteile. Wenn ich unbedingt einen Index möchte, kann ich ja zusätzlich oder ausschließlich eine M:N Tabelle führen. In diesem Fall mit mindestens 3 Kriterien, müsste man sich aber zusätzlich behelfen.

    LG Markus
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 1. Februar 2017
    #23
  9. Hier meine Vorgehensweise am Beispiel. Die Queries lassen sich sicher zusammenfassen. So ist's erstmal übersichtlicher.
    Was nun "datenbank-orientierter" ist, möge jeder für sich selbst entscheiden ...
     
    Kawensmann, 1. Februar 2017
    #24
  10. \@Kawensmann:
    Wenn du in deinem Beispiel die Berechnung der Mitarbeitersumme auf die gewählte Auswahl beschränkst, benötigst du die VBA-Hilfsfunktion nicht, da du dann direkt die Summenwerte vergleichen kannst.

    .. und wenn man die Variante mit der Summenberechnung genauer betrachtet, braucht man nicht einmal Bit-Muster addieren. Es reicht aus, wenn man die Quali-ID addiert. Dann gibt es auch keine Probleme bezüglich Datensatzanzahl (wegen 2^n (n = Anzahl Qualifikationen) und Wertebereich von long int). Allerdings ist das dann nicht viel anders als die Anzahl zu vergleichen.


    Über SQL verglichen (kein Jet-SQL, da ich die Klammern bei Join weg lasse - es soll nur zum Lesen sein):

    1. Bit-Vergleich mit VBA-Hilfsfunktion wie von Kawensmann gezeigt:
    Code:
    2. Variante mit Sum(QualiID) .. angelehnt an Variante 1 nur ohne spezielles Bit-Flag, das bei etwas mehr Datensätzen in der Quali-Tab zum Problem wird
    Code:
    3. Variante mit Count(*)
    Code:
    die 3. Variante noch etwas geändert, damit gleich im Subselect gefiltert wird (das ginge auch bei Variante 1 und 2)
    Code:
    mfg
    Josef
     
    Josef P., 1. Februar 2017
    #25
  11. Danke erst einmal an alle. Damit habe ich verschiedene Lösungsmöglichkeiten an denen ich knabbern werde sobald mir meine übrigen Tätigkeiten wieder Raum lassen. Dann melde ich mich wieder mit *hands oder weitere Fragen.
    Viele Grüße
    Winfried
     
  12. In der Zwischenzeit habe ich mir beide Lösungen angesehen und die von Josef angepasst. Ich kann jetzt einmal nach einer wie auch immer gearteten Kombination von Qualifikationen oder Ländererfahrungen suchen.
    Dafür erst einmal herzlichen Dank! *hands

    Jetzt möchte ich gerne die beiden Abfrageergebnisse abspeichern und dann eine weitere Abfrage starten, in der ich die Personen identifiziere, die sowohl die gewählte Quali-Kombination als auch die gewählte Länder-Kombi hat.

    Code:
    Hier kommt nun allerdings die Fehlermeldung:
    Hat da jemand eine Idee?
    Grüße
    Winfried
     
  13. Variable Anzahl von Kriterien für Abfrage

    Dem Code in #27 ist jetzt nicht anzusehen, welcher Befehl in der Variablen SqlFilter steckt ...
    Was wird denn im Direktfenster ausgegeben?

    Nach der Fehlermeldung zu urteilen scheint irgendwas zu fehlen ...
     
    hcscherzer, 28. Februar 2017
    #28
  14. Man muss eine Abfrage nicht löschen und dann wieder neu erstellen. Man kann ihr auch gleich eine neue SQL zuweisen.
     
  15. Hallo!

    Willst du das Abfrageergebnis oder die SQL-Anweisung der Abfrage speichern.
    Warum willst du das Speichern?


    Kannst du das nicht in einer SQL-Anweisung kombinieren?
    Prinzip:
    Code:
    mfg
    Josef
     
    Josef P., 28. Februar 2017
    #30
Thema:

Variable Anzahl von Kriterien für Abfrage

Die Seite wird geladen...
  1. Variable Anzahl von Kriterien für Abfrage - Similar Threads - Variable Anzahl Kriterien

  2. Variable Anzahl immer 9er Kombination StellenBerechnung

    in Microsoft Excel Hilfe
    Variable Anzahl immer 9er Kombination StellenBerechnung: Hallo schönen Guten Abend mit Bauchweh, das ich bereits habe bei meiner Nicht weiter kommenden Formel. Folgendes Es lässt sich Schwer beschreiben doch ich versuche es Ich habe in J3 einen Wert...
  3. Makro für variable Anzahl von Datensätzen

    in Microsoft Excel Hilfe
    Makro für variable Anzahl von Datensätzen: Hallo zusammen, ich habe wieder einmal ein kleines Excel-Problem, bei dem Ihr mir sicherlich helfen könnt. Ich habe eine Excel-Liste, das ist ein Export aus einem anderen Programm (siehe...
  4. VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren

    in Microsoft Excel Hilfe
    VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren: Hallo zusammen, ich konnte bislang nur bruchstückhafte Ansätze zu meinem Problem finden, jedoch keinen um mehrere Kriterien zu erfassen und anschließend zu ordnen, daher brauche ich (mal wieder)...
  5. Variable Anzahl von Werten in eine Zelle schreiben

    in Microsoft Excel Hilfe
    Variable Anzahl von Werten in eine Zelle schreiben: Hallo, Ich möchte Werte aus verschiedenen Zellen in ein und dieselbe schreiben und dies abhängig davon. ob die Quellzellen gefüllt sind oder nicht. ich habe einen kleinen Code geschrieben, der...
  6. Anzahl von Zeilen als Variable speichern

    in Microsoft Excel Hilfe
    Anzahl von Zeilen als Variable speichern: Hallo, ich bin recht neu bei Makros und habe ein Problem, welches ich nicht selbst lösen kann. Ich konnte dazu auch bisher nichts verständliches für mich hier im Forum finden. Daher stelle ich...
  7. Variable Anzahl von Zeilen einfügen und Daten kopieren

    in Microsoft Excel Hilfe
    Variable Anzahl von Zeilen einfügen und Daten kopieren: Hallo zusammen, um mein Problem zu darzustellen, erkläre ich kurz was ich vor habe: ich möchte gerne gefilterte Daten aus einer Liste per Button-Klick in eine Vorlage übertragen. Da die Vorlage...
  8. Anzahl Stellen in variable übergeben

    in Microsoft Excel Hilfe
    Anzahl Stellen in variable übergeben: Hallo zusammen, meine aktive Zelle ist c1. Ich möchte jetzt die Anzahl der Stellen einer Zahl in A1 ermitteln und als variable k ausgeben. Also wenn in A1 der Wert 125 steht, soll k = 3 ergebn....
  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