Einzelnen Beitrag anzeigen

LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#1

Access verändert Abfrage nach der Nutzung

  Alt 20. Feb 2009, 14:44
Datenbank: Access • Version: XP • Zugriff über: -
Hi,

ich hab dieses Phänomen jetzt schon zum 2ten Mal.
Und zwar habe ich eine SQL Abfrage, die anhand verschiedener Combobox-Einträgen verschiedene Ergebnisse liefert. (Je nach Auswahl der Combobox Einträge halt). Wenn die Einträge leer sind (qasi Null), dann löscht sich die Abfrage selbst bzw. verändert und speichert sich nach der Nutzung so, dass nur noch "SELECT ;" drin steht. An diesem Pkt. habe ich einfach Initialwerte in den Comboboxen gesetzt, worauf sich die Abfrage jetzt nicht mehr von alleine ändert.

Nun habe ich die Query erweitert um 5 Subselects. Die Abfrage insgesamt liefert auch das richtige Ergebnis. Auch noch solange das Formular, in dem die Abfrage in einem Unterformular ausgegeben wird, nicht geschlossen wird. Sobald man die Form neu öffnen will, geht das nicht, weil ja die Abfrage in Nonsens geändert wurde ("SELECT ;")...

Mir ist aufgefallen das schon sobald die Form geöffnet wird, die Abfrage sich ebenfalls ändert. Ich verstehe blos nicht warum. Wie oben beschrieben hatte ich das Problem schonmal und konnte es durch Initialwerte lösen, sodass die Abfrage auf jeden Fall alle Parameter (bzw. Variablen) mit Werten füllen kann.

Ich häng mal noch die gesamte Abfrage dran, vll bringts was

SQL-Code:
SELECT SS.*,
(SELECT COUNT(*) FROM Garagenvertraege_SIA GV WHERE ((GV.LC_PLZ = SS.SPLZ) AND (GV.LC_STR = SS.SStrassencode) AND (GV.LC_HNR = SS.SHausnummer))) AS ["GV"],
(SELECT COUNT(*) FROM Bezirkbesonderheiten_SIA BB WHERE ((BB.PLZ=SS.SPLZ) AND (BB.STR_CODE=SS.SStrassencode) AND (BB.HAUS_NR=SS.SHausnummer))) AS ["BB"],
(SELECT COUNT(*) FROM Nachsendeinformationen_SIA NSI WHERE ((NSI.PLZ_ALT=SS.SPLZ) AND (NSI.STR_CODE_ALT=SS.SStrassencode) AND (NSI.HNR_ALT=SS.SHausnummer))) AS ["NSI"],
(SELECT COUNT(*) FROM PostCardDaten_SIA PC WHERE ((PC.PLZ=SS.SPLZ) AND (PC.STR_CODE=SS.SStrassencode) AND (PC.HAUS_NR=SS.SHausnummer))) AS ["PC"],
(SELECT COUNT(*) FROM Rueckstellinformationen_SIA RSI WHERE ((RSI.PLZ=SS.SPLZ) AND (RSI.STR_CODE=SS.SStrassencode) AND (RSI.HAUS_NR=SS.SHausnummer))) AS ["RSI"]
FROM Sendungssolldaten_SIA AS SS
WHERE (((SS.Bezirk) Like Forms!Suchfunktion.combobez & "*") And ((SS.SPLZ) Like Forms!Suchfunktion.comboplz & "*") And ((SS.SStrassencode) Like Forms!Suchfunktion.combosc & "*") And ((SS.Sendungsart) Like Forms!Suchfunktion.combosa & "*") And ((SS.Produkttyp) Like Forms!Suchfunktion.combopt & "*") And ((SS.AUSLIEFER_FLAG) Like Forms!Suchfunktion.comboaf & "*"));
Die Abfrage liefert das gewünschte und richtige Ergebnis allerdings nur solange wie das Formular geöffnet ist. hab deshalb eine Sicherungsabfrage angelegt...Klar kann ich per VBA dann die richtige wieder überschreiben aber ich würde gern das Problem beheben.

Grüße lucster
  Mit Zitat antworten Zitat