Variable Werte in Abfragen aus VBA heraus verwenden

11/09/2008 - 12:38 von Markus Fuenfrocken | Report spam
Hallo,

ich habe einige Abfragen erstellt die via OBDC auf Sybase DBs zugreifen und
dort Daten abfragen. Nun möchte ich allerdings dieselbe Abfrage mehrfach
verwenden, wobei mehrere Kriterienparameter variabel sein sollen.
Wie unter www.donkarl.com?FAQ3.15 beschrieben habe ich eine Globale Variable
definiert, eine Funktion erstellt und diese Funktion als Kriterium in die
Abfrage eingegeben. Wenn ich aus VBA heraus die Globale Variable mit dem
nötigen Wert (z.B. 1) definiere und die Abfrage aufrufe, so "hàngt" sich
Access auf. Füge ich das Kriterium als Zahl 1 direkt in die Abfrage ein und
rufe diese aus VBA auf, klappt es.

Irgendwas mache ich also noch falsch. was kann das sein?
Darüberhinaus habe ich noch die Frage, wie man ein Kriterium zur
Datumseingrenzung am geschicktesten so definiert, dass es variabel
einsetzbar ist. Im aktuellen Fall wir mit dem Kriterienausdruck

=#01.08.2008# Und <#01.09.2008# auf Werte des Monats August 2008
eingegrenzt.



Danke und Gruß,
Markus
 

Lesen sie die antworten

#1 Peter Doering
11/09/2008 - 13:39 | Warnen spam
Hallo,

Markus Fuenfrocken wrote:

ich habe einige Abfragen erstellt die via OBDC auf Sybase DBs zugreifen und
dort Daten abfragen. Nun möchte ich allerdings dieselbe Abfrage mehrfach
verwenden, wobei mehrere Kriterienparameter variabel sein sollen.
Wie unter www.donkarl.com?FAQ3.15 beschrieben habe ich eine Globale Variable
definiert, eine Funktion erstellt und diese Funktion als Kriterium in die
Abfrage eingegeben. Wenn ich aus VBA heraus die Globale Variable mit dem
nötigen Wert (z.B. 1) definiere und die Abfrage aufrufe, so "hàngt" sich
Access auf.



Wie oeffnest du die Abfrage? Direkt aus dem DB-Fenster? Oder ueber ein
Formular oder per VBA. Zeig bitte auch mal den SQL-String der Abfrage. Wie
drueckt sich das Aufhaengen aus? Fehlermeldung?

Füge ich das Kriterium als Zahl 1 direkt in die Abfrage ein und
rufe diese aus VBA auf, klappt es.

Irgendwas mache ich also noch falsch. was kann das sein?



Wenn die Abfrage lokal auf per ODBC eingebundene Tabellen zugreift, sollte
mit der Vorgehensweise alles funktionieren. Wenn du per PassThrough
zugreifst, funktioniert FAQ 3.15 natuerlich nicht, du muesstest den
kompletten SQL-String per VBA aufbauen und das Ergebnis der Funktion als
Wert eintragen. Vielleicht musst du das sowieso machen.

Darüberhinaus habe ich noch die Frage, wie man ein Kriterium zur
Datumseingrenzung am geschicktesten so definiert, dass es variabel
einsetzbar ist. Im aktuellen Fall wir mit dem Kriterienausdruck
>=#01.08.2008# Und <#01.09.2008# auf Werte des Monats August 2008
eingegrenzt.



Bei Ansicht im dt. Abfrage-Designer ist das Format ok. In SQL-Ansicht
sollte das Kriterium so aussehen:

=#8/1/2008# And <#9/1/2008#



Wenn dein Datum keine Uhrzeit enthaelt, kannst du das Kriterium auch so
schreiben:

Between #8/1/2008# And #8/31/2008#

Gruss - Peter

Anmeldung zur 11. AEK unter www.donkarl.com/?AEK
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen