Office: (Office 2003) Kriterium einer Access Abfrage in VBA ändern (s. Code)

Helfe beim Thema Kriterium einer Access Abfrage in VBA ändern (s. Code) in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo ans Forum, ich lasse über meine Access-DB diverse Abfragen laufen und exportiere diese dann in eine einzige Excel Datei. Um das Kriterium... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von MC_Chris, 27. Juli 2011.

  1. Kriterium einer Access Abfrage in VBA ändern (s. Code)


    Hallo ans Forum,

    ich lasse über meine Access-DB diverse Abfragen laufen und exportiere diese dann in eine einzige Excel Datei. Um das Kriterium (Schiffsname), das ich abfrage nicht für jede Abfrage ändern zu müssen, würde ich das gerne VBA-seitig lösen.

    Ziel ist letztendlich alle Schiffnamen nacheinander über eine Excel-Liste einzulesen, das jeweilige Schiff in alle 8 Abfragen zu übernehmen, und das Ergebnis in einer Excel-Datei zu speichern.

    Ich habe folgenden Ansatz gefunden:

    Code:
    übertragen auf meine Abfrage habe ich versucht das so umzusetzen:

    Code:
    Allerdings erhalte ich einen Kompilierungsfehler.

    Nach der Abfrage würde ich gerne ein

    Code:
    ausführen. Das funktioniert bereits - funktioniert das auch, wenn ich das Kriterium der Abfrage in VBA ändere? Wie kann ich die Abfrage dann ansteuern? Heißt die Abfrage dann quasi "strSQL?

    Ideal wäre natürlich, wenn man das Kriterium wie bei einem Bericht ändern könnte - aber das geht glaube ich nicht, oder?

    Code:
    Vielen Dank für eure Hilfe.

    Grüße
    Christian

    :)
     
    MC_Chris, 27. Juli 2011
    #1
  2. Hallo Christian,
    wenn Du den Code hierher kopiert hast, dann liegt es wohl am fehlenden Anführungszeichen am Ende des SQL-Strings.
    Du kannst übrigens den Code deutlich übersichtlicher gestalten, wenn Du für die Tabellen jeweils einen Buchstaben als Alias verwendest. Der SQL-String wird dadruch deutlich kürzer, übersichtlicher und damit leichter erständlich.

    CU
     
    Thomas Möller, 29. Juli 2011
    #2
  3. -> Die Execute-Methode macht nur Sinn bei Aktionsabfragen, Du hast jedoch eine Auswahlabfrage.
    -> TransferSpreadsheet benötigt eine gespeicherte Abfrage als Datenquelle, eine SQL-Anweisung reicht da nicht. Du könntest aber eine temporäre gespeicherte Abfrage aus Deiner SQL-Anweisung erzeugen, siehe CreateQueryDef (VBA-Hilfe).
    -> Bei Deinem Vorhaben wäre auch die CopyFromRecordset-Methode sehr geeignet. Hier wird ein Recordset, das man auch aus einer SQL-Anweisung erzeugen kann, direkt nach Excel kopiert (wie der Name sagt). Dazu findest Du auch reichlich Beispiele.
     
    ebs17, 29. Juli 2011
    #3
  4. Kriterium einer Access Abfrage in VBA ändern (s. Code)

    Ergänzend zu Eberhards 2. Vorschlag
    kannst du eine Parameterabfrage erstellen,
    per VBA die Parameter einstellen (FAQ 6.16: Parameterabfrage per VBA öffnen)
    und dann wie beim 3. Vorschlag die CopyFromRecordset-Methode verwenden.

    Du kannst auch auf deine Abfrage eine Abfrage erstellen.
    Select * From Abfragename Where ...
     
    Marsu65, 29. Juli 2011
    #4
  5. Hallo,

    danke erstmal. Leider erhalte ich bei der Umsetzung die Fehlermeldung "Element in dieser Auflistung nicht enthalten".

    Folgende "Verbessungen" haben leider auch nicht geholfen:
    Code:
    Code:
    In Summe habe ich versucht es so umzusetzen:

    Code:
    Danke für eure Hilfe.
    Christian
     
    MC_Chris, 1. August 2011
    #5
  6. Hallo Christian,
    die Fehlermeldung besagt, dass es keinen Parameter mit dem von Dir angegebenen Namen in der Abfrage gibt. Überprüf doch bitte noch einmal den Namen des Parameters.
    Wenn Du so nicht zum Ziel kommst poste uns hier die WHERE-Klausel aus dem SQL-String Deiner Abfrage.

    CU
     
    Thomas Möller, 1. August 2011
    #6
  7. Hallo Christian,
    hat die Abfrage denn Schiffsname als Parameter?
    Hiermit ist nicht das Feld gemeint, sondern das Kriterium als Parameter!

    Das heißt, du trägst
    im Abfrageentwurf
    in der Spalte Schiffsname z.B.
    [aktSchiff] als Kriterium ein (mit den eckigen Klammern).
    Dann mit rechter Maustaste auf den Abfrageentwurf (Tabellenbereich) und und im Kontextmenü Parameter... den Parameter einzutragen.

    Im VBA-Code kannst du dann
    qdf.Parameters("[aktSchiff]") = "DeinSchifname"
    setzen.

    Suche mal in der Accesshilfe nach dem Stichwort Parameterabfrage. Da sollte es reichlich Infos geben.
     
    Marsu65, 1. August 2011
    #7
  8. Kriterium einer Access Abfrage in VBA ändern (s. Code)

    Danke Marsu,

    das war genau das Puzzle-Stück was mir fehlte. Der Code geht hier gerade richtig durch die Decke. Danke Dir.

    Mein aktuelles -eher trivialerers Problem- findet ihr unter

    http://www.ms-office-forum.net/forum...=1#post1398980

    War im Urlaub als Vorbereitung auf die 100km Cyclassics. Daher erst jetzt meine Antwort. War n geiles Rennen. =)

    LG
    Christian
     
    MC_Chris, 24. August 2011
    #8
  9. Dann wollen wir mal hoffen, das der Dachstuhl stabil genug ist *wink.gif*

    Wenn dieses Problem zur Zufriedenheit gelöst ist, bitte das Thema als ERLEDIGT kennzeichnen.
     
    Marsu65, 24. August 2011
    #9
Thema:

Kriterium einer Access Abfrage in VBA ändern (s. Code)

Die Seite wird geladen...
  1. Kriterium einer Access Abfrage in VBA ändern (s. Code) - Similar Threads - Kriterium Access Abfrage

  2. zählen INTERVAL_COUNT: Intervalle (optional nach Kriterium) zählen

    in Microsoft Excel Tutorials
    zählen INTERVAL_COUNT: Intervalle (optional nach Kriterium) zählen: Als INTERVAL_COUNT sei folgende Formel benannt: =LAMBDA(Bereich;LET( xx;Bereich; y;ZEILEN(xx); x;WENN(SPALTEN(xx)=3;xx;HSTAPELN(SEQUENZ(y;;1;0);xx)); a;INDEX(x;;1); b;INDEX(x;;2); c;INDEX(x;;3);...
  3. Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...

    in Microsoft Excel Hilfe
    Datenexport wenn Kriterium Datum gleich, oder kleiner als erfüllt ist...: Hallo zusammen, nachdem ich lange zeit mit einer Handvoll Formeln ausgekommen bin, gegebenenfalls diese ein wenig modifiziert habe, stehe ich jetzt auf dem Schlauch...(bzw. bin nicht so...
  4. If-Then-Else...Verständnisfrage zu Kriterium String > Zahl

    in Microsoft Access Hilfe
    If-Then-Else...Verständnisfrage zu Kriterium String > Zahl: Hallo, ich habe eine Funktion erstellt. Diese wird mit Werten gefüttert, generell Zahlen als String und "echte" Strings. Damit ich mit den Zahlen Vergleiche anstellen kann wandele ich diese mit...
  5. Minwenns - 2 Datum als Kriterium

    in Microsoft Excel Hilfe
    Minwenns - 2 Datum als Kriterium: Liebe Community, Ich versuche mich gerade an einer minwenns Funktion und ich scheitere... In Spalte A stehen ganz viele Datums (Datümer?), in Spalte B Zahlen. Ich möchte nun den min-Wert...
  6. Zählenwenns mit Datum als Kriterium

    in Microsoft Excel Hilfe
    Zählenwenns mit Datum als Kriterium: Hallo zusammen, Ich bekomme es leider nicht hin das zu erreichen was ich gerne hätte. Ich möchte in einem 2. Tabellenblatt gerne das 1. Tabellenblatt(Auftragstabelle 2023)in Form einer Tabelle mit...
  7. 4 Arbeitsblätter exportieren nach Kriterium VBA

    in Microsoft Excel Hilfe
    4 Arbeitsblätter exportieren nach Kriterium VBA: Hallo zusammen, aus einer Arbeitsmappe sollen 4 Arbeitsblätter ("Name1", "Name2" etc.) anhand des Bereich in Spalte A in separat zu erstellende Arbeitsmappen je Bereich exportiert werden, sie...
  8. Formel für Auflistung nach bestimmten Kriterium

    in Microsoft Excel Hilfe
    Formel für Auflistung nach bestimmten Kriterium: Hi zusammen, ich hänge seit Wochen an einer Formel und komme nicht weiter. Ich habe 3 Key-Schlüssel in Spalte A, B und C. In Spalte A sind immer die "Haupt-Key-Schlüssel" und in Spalte B und C...
  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