Office: Kriterien einer Abfrage aus VBA übergeben

Helfe beim Thema Kriterien einer Abfrage aus VBA übergeben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi leute, Folgendes Problem: Ich habe eine Abfrage welcher Felder aus mehreren Tabellen beinhaltet. In der Abfrage selbst möchte ich keine Kriterien... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Kalaschnikov, 31. Dezember 2003.

  1. Kriterien einer Abfrage aus VBA übergeben


    Hi leute,

    Folgendes Problem:

    Ich habe eine Abfrage welcher Felder aus mehreren Tabellen beinhaltet. In der Abfrage selbst möchte ich keine Kriterien fix hinterlegen, da sich diese je nachdem von welcher maske man sie aufruft ändern können.

    Ein Feld in der Abfrage heisst Monat (wo eben 1 bis 12 enthalten sein kann)
    In einer Maske habe ich zwei kombinationsfelder: vonMonat und BisMonat.

    Wie kann ich nun nachdem ich auf einen Button klicke, über VBA ein Kriterium für die Abfrage definieren welche mir alle Datensätze liefert wo das Feld Monat eben zwischen den Werten VonMonat und BisMonat liegt?

    Vielen Dank für eure infos

    :)
     
    Kalaschnikov, 31. Dezember 2003
    #1
  2. Hallo Kalaschnikov,

    am einfachsten ist es wohl, wenn Du den Inhalt der Formularfelder innerhalb der Abfrage abfragst. Dazu schreibst Du als Kriterium in der Entwurfsansicht der Abfrage beispielsweise folgenden Ausdruck:

    >=[Forms]![Formularname]![vonMonat]

    Für das andere Feld verwendest Du analog diesen Ausdruck:

    =IIF(IsNull[Forms]![Formularname]![vonMonat];1;[Forms]![Formularname]![vonMonat])

    und

    >=IIF(IsNull[Forms]![Formularname]![bisMonat];12;[Forms]![Formularname]![bisMonat])

    So würde immer, wenn die beiden Felder vonMonat und bisMonat keinen Wert enthalten, jeweils der kleinste beziehungsweise größte Wert angenommen, um alle Einträge der Abfrage anzuzeigen.

    So, ich hoffe, dass hilft erstmal weiter.

    Viele Grüße
    André
     
    Andre Minhorst, 2. Januar 2004
    #2
  3. Stellt sich natürlich zuerst die Frage: Wo werden die Datensätze angezeigt, die Deinen Kriterien entsprechen?

    Im selben Formular (Maske), wo Du die Kriterien festlegst?
    Oder in einem neu zu öffnenden Formular?

    Im selben Formular kannst Du es über die Filter-Eigenschaft realisieren, in etwa:

    Code:
     
    Johnny Loser, 2. Januar 2004
    #3
  4. Kriterien einer Abfrage aus VBA übergeben

    Da wirst Du wohl den SQL-String der Abfrage dynamisch verändern müssen.

    Sieh dir mal das Beispiel Suchen-SQL dynamisch erstellen von Reinhard Kraasch an. Den Link findest Du in meiner Fusszeile.

    Mfg, Michael
     
    stpimi, 2. Januar 2004
    #4
  5. danke für deine antwort - aber das triffts leider nicht!

    Ich möchte eben im Abfrageentwurf überhaupt kein kriterium eintragen (auch keinen verweis auf ein feld in einer maske)

    das ganze muss über VBA code irgendwie mit QueryDef machbar sein.

    Bei mir siehts derzeit in VBA so aus:

    Dim rs As DAO.Recordset
    Dim query As QueryDef

    Set query = CurrentDb().QueryDefs("qryinvoice")

    NUN SOLLTE FOLGENDES KRITERIUM IRGENDWIE GREIFEN:
    Kriterium-Feld für Monat in Abfrage>= Forms![frminvoicecreate]![cmbFromMonth] and
     
    Kalaschnikov, 2. Januar 2004
    #5
  6. Probier mal:

    Code:
    Sollte das Format von Monat nicht numerisch sein, musst Du noch Hochkommas einfügen.

    Mfg, Michael
     
    stpimi, 2. Januar 2004
    #6
  7. Hi Kalaschnikov,

    das mit dem QueryDef solltest Du m.E. vergessen, da Du ja keine neue Abfrage erstellen, sondern lediglich eine existierende Abfrage ausführen willst.

    Wenn Du es in ein Recordset laden willst, dann reicht folgender Code:

    Code:
     
    Johnny Loser, 2. Januar 2004
    #7
  8. Kriterien einer Abfrage aus VBA übergeben

    hi nochmal

    so was auf die art wie du es schreibst benötige ich.

    wenn ich deinen code hernehme sagt er mir bei

    query.SQL = query.SQL + strWhere

    "Zeichen nach Ende der SQL Anweisung gefunden"!!??


    Das Kriterium strWhere ist aber perfekt!
     
    Kalaschnikov, 2. Januar 2004
    #8
  9. Ist eigentlich klar:

    Der String query.SQL endet mit einem Semikolon, das bedeutet dann Ende des SQL-Strings.

    Probier mal:

    Code:
    Mfg, Michael
     
    stpimi, 2. Januar 2004
    #9
  10. Hi,

    das Problem ist, dass Deine Abfrage vermutlich schon eine Where-Klausel, eine Sortierung oder etwas ähnliches enthält, so dass Du keine weitere Where-Klausel mehr anhängen kannst.

    Ich rate daher zu dem Vorschlag von Jonny Loser.

    Viele Grüße
    André

    PS: Wenn Du die Antwortenden anredest, schreib doch dazu, wen Du meinst - dann wissen wir auch, auf welche Antwort Du Dich gerade beziehst.
     
    Andre Minhorst, 2. Januar 2004
    #10
  11. hab deinen code verwendet - und funktioniert auch soweit

    ABER

    leider speichert er sich nun die neuen Kriterien in die Abfrage und wenn ich die prozedur erneut starte, hab ich plötzlich die WHERE-Klausel doppelt.

    Meine Frage daher:

    Wie kann ich diese Kriterien wieder zurücksetzen?
     
    Kalaschnikov, 2. Januar 2004
    #11
  12. Letztendlich ist beides möglich. Mir gefällt auch die QueryDef-Variante gut - wobei man hier nicht unbedingt den ganzen SQL-String verändern müsste -sondern auch einfach die beiden Datumsfelder in eine Parameter-Abfrage mit zwei Parameter (Von, Bis) integrieren könnte (d.h. Definition als query.Parameters) siehe Kalaschnikov´s Idee aus seinem vorletzten Beitrag.
    Wichtig ist hierbei, dass in der zugrundeliegenden Parameter-Abfrage zuvor die beiden Parameter definiert wurden (siehe auch OHL zu Parameterabfragen)
     
  13. Kriterien einer Abfrage aus VBA übergeben

    Theoretisch kannst Du die eingefügte WHERE-Klausel wieder entfernen, indem Du den alten Wert des SQL zwischenspeicherst und nach Durchführung wieder zuweist.
    Das ist aber eher die russische Variante. Schöner scheint mit Smaug's Variante mit query.parameters.
    Habe ich allerdings in dieser Form noch nicht verwendet.

    Mfg, Michael
     
Thema:

Kriterien einer Abfrage aus VBA übergeben

Die Seite wird geladen...
  1. Kriterien einer Abfrage aus VBA übergeben - Similar Threads - Kriterien Abfrage VBA

  2. RowSource aus Abfrage mit Kriterien

    in Microsoft Access Hilfe
    RowSource aus Abfrage mit Kriterien: Hallo, ich bin dabei eine Bundesliga-Datenbank zu erstellen, in der es auch eine Menge Statistiken geben soll. Ich will z.B. in einem Listenfeld die Namen der Schiedsrichter und deren Einsätze...
  3. Mehrere Abfragen mit gleichen Kriterien in bestimmten Felder

    in Microsoft Access Hilfe
    Mehrere Abfragen mit gleichen Kriterien in bestimmten Felder: Ich habe so ca. 30 Abfragen mit jeweils den Feldern "Vertriebsstellen" und "Austritt". In den 30 Abfragen sind jeweils zwei Kriterien. Nun muss ich in den Abfragen immer in dem Feld...
  4. Excel lädt die Daten nicht sobald Abfragekriterium für ein Textfeld erstellt wird

    in Microsoft Access Hilfe
    Excel lädt die Daten nicht sobald Abfragekriterium für ein Textfeld erstellt wird: Hey Ihr Lieben, ich habe eine Abfrage erstellt und das Kriterium - Wie "*gelb*" - angegeben. Sprich: Mir werden alle Datensätze angezeigt die irgendwo das Wort "gelb" in sich haben. Nun...
  5. SVerweis, WennDann oder Makro

    in Microsoft Excel Hilfe
    SVerweis, WennDann oder Makro: Hallo zusammen, Ich habe zwar ähnliche Themen gefunden aber komme trotzdem bei meinem Problem nicht weiter. Anbei meine Beispieldatei, da die echten Daten viel umfangreicher sind. Ich würde...
  6. Abfrage per VBA zusammenbauen

    in Microsoft Access Hilfe
    Abfrage per VBA zusammenbauen: Hi, Ich habe in meiner Datenbank das angehängte Formular, mit dem die Datensätze (Prüfungsfragen) nach bis zu 3 verschiedenen Kriterien gefiltert werden können. Bislang habe ich 8 Verschiedene...
  7. Abfrage mit mehreren Kriterien

    in Microsoft Access Hilfe
    Abfrage mit mehreren Kriterien: Moin Leute, vorweg ich habe ewig nicht mehr mit Access gearbeitet *tongue.gif*. nun aber zu meiner Frage: Ich habe eine Tabelle mit mehreren Feldern. Ich möchte gern das alle Felder die im...
  8. Abfrage Kriterien in VBA Rückgabewert

    in Microsoft Access Hilfe
    Abfrage Kriterien in VBA Rückgabewert: Moin, ich habe in einer Abfrage eine VBA Funktion die mir einen Rückgabewert als Long liefert. Will ich nun in der Abfrage in den Kriterien z.B. den Wert 1 filtern so bekomme ich die...
  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