Forums Neueste Beiträge
 

Resultset einer dynamischen Abfrage aktualisieren

07/10/2008 - 11:31 von Gerhard Mayer | Report spam
Hallo,

ich habe zwei Abfragen, wobei die erste Abfrage statisch ist und sich auf
das Ergebnis der zweiten Abfrage bezieht, welche dynamisch ist, d.h.
der SQL-Text der zweiten Abfrage wird per VBA wàhrend des Programmlaufs
gesetzt per:

sSQLStr = "hier steht der SQL-Text ..."
CurrentDb.QueryDefs("Abfrage2").SQL = sSQLStr

und die erste Abfrage sieht etwa folgendermaßen aus:
SELECT Feld1, ... Feldn
FROM Abfrage2
WHERE ...

Mein Problem ist jetzt, dass ein Bericht, welcher auf der ersten Abfrage
basiert,
beim ersten Aufruf immer ein falsches Ergebnis liefert. Erst beim zweiten
Aufruf
erhalte ich immer das richtige Ergebnis.
Es sieht also so aus, daß zunàchst immer ein veralteter ResultSet der
zweiten Abfrage verwendet wird.

Frage: Wie kann ich erreichen, das die erste (statische) Abfrage immer auf
den aktuellen Resultset der zweiten (dynamischen) Abfrage zugreift?

Gruß
Gerhard Mayer
 

Lesen sie die antworten

#1 Thomas Möller
07/10/2008 - 17:41 | Warnen spam
Hallo Gerhard,

Gerhard Mayer schrieb:
ich habe zwei Abfragen, wobei die erste Abfrage statisch ist und sich auf
das Ergebnis der zweiten Abfrage bezieht, welche dynamisch ist, d.h.
der SQL-Text der zweiten Abfrage wird per VBA wàhrend des Programmlaufs
gesetzt per:

sSQLStr = "hier steht der SQL-Text ..."
CurrentDb.QueryDefs("Abfrage2").SQL = sSQLStr

und die erste Abfrage sieht etwa folgendermaßen aus:
SELECT Feld1, ... Feldn
FROM Abfrage2
WHERE ...

Mein Problem ist jetzt, dass ein Bericht, welcher auf der ersten Abfrage
basiert,
beim ersten Aufruf immer ein falsches Ergebnis liefert. Erst beim zweiten
Aufruf
erhalte ich immer das richtige Ergebnis.
Es sieht also so aus, daß zunàchst immer ein veralteter ResultSet der
zweiten Abfrage verwendet wird.

Frage: Wie kann ich erreichen, das die erste (statische) Abfrage immer auf
den aktuellen Resultset der zweiten (dynamischen) Abfrage zugreift?



Deine Beschreibung klingt so, als ob Access beim ersten Ausführen der
Abfrage noch nicht mitbekommen hat, dass Du die Abfrage geàndert hast.

Mir persönlich ist ein solches Verhalten nicht im Gedàchtnis. Daher auch
nur ein vager Hinweis. Vielleicht hilft es, wenn Du nach dem
Aktualisieren der Abfrage folgende Codezeile ausführst:

CurrentDb.QueryDefs.Refresh


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen