Problem mit Bedigungen bei Kreutabellen Abfrage
Hallo zusammen,
ich möchte in einer Kreuztabellen-Abfrage (Spalten: Kostenstellen, Zeilen: Monate) als Bedingung benutzen, dass der in einem Formular gewählte Zeitraum abgefragt wird. Bei allen anderen Abfragen funktioniert die Bedingung auch einwandfrei. Bei Monat gebe ich als Kriterium ein:
Zwischen [Formulare]![Report Assistent]![Datum] Und [Formulare]![Report Assistent]![Enddatum]
Die funktioniert sonst einwandfrei. Stattdessen erscheint die Meldung: Microsoft Jet Datenbank Modul erkennt [Formulare]![Report Assistent]![Datum] nicht als gültigen Feldnamen oder Ausdruck.
Was kann ich machen bzw. was mache ich falsch?
Wenn es hilft, hier der SQL-Code der Abfrage:
TRANSFORM Sum([Tankrechnung MOL].KO_Bruttó_Összeg) AS SummevonKO_Bruttó_Összeg
SELECT [Tankrechnung MOL].Monat
FROM Tanken INNER JOIN [Tankrechnung MOL] ON Tanken.Tankkartennummer = [Tankrechnung MOL].Kártyaszám
WHERE ((([Tankrechnung MOL].Monat) Between [Formulare]![Report Assistent]![Datum] And [Formulare]![Report Assistent]![Enddatum]))
GROUP BY [Tankrechnung MOL].Monat
PIVOT Tanken.Kostenstelle;
Antwort schreiben
Antwort 1 von erik vom 19.01.2019, 12:44 Options
Hallo!
Es könnte helfen, wenn du die Bedingungen ausdrücklich als Parameter mit passendem Datentyp definierst.
PARAMETERS [Formulare]![Report Assistent]![Datum] DateTime, [Formulare]![Report Assistent]![Enddatum])) DateTime;
TRANSFORM Sum([Tankrechnung MOL].KO_Bruttó_Összeg) AS SummevonKO_Bruttó_Összeg
SELECT [Tankrechnung MOL].Monat
FROM Tanken INNER JOIN [Tankrechnung MOL] ON Tanken.Tankkartennummer = [Tankrechnung MOL].Kártyaszám
WHERE ((([Tankrechnung MOL].Monat) Between [Formulare]![Report Assistent]![Datum] And [Formulare]![Report Assistent]![Enddatum]))
GROUP BY [Tankrechnung MOL].Monat
PIVOT Tanken.Kostenstelle;
Antwort 2 von DCAH vom 19.01.2019, 12:49 Options
@ Erik:
Danke für die schnelle Antwort.
Ich kennen mich nicht besonders mit SQL aus. Ich weiss also nicht genau wass DU damit meinst. Wäre nett, wenn Du das nochmal genauer erläutern könntest.
Hab versucht, Deinen Code per Copy and past einzufügen, geht aber nicht (Syntaxfehler im Bereich Parameter).
Wäre nett, wenn Du da noch mal helfen könntest!
Antwort 3 von erik vom 19.01.2019, 13:16 Options
Am Ende der Parameter-Zeile habe ich versehentlich zwei Klammern mitkopiert, die müssen noch entfernt werden.
Richtig ist:
PARAMETERS [Formulare]![Report Assistent]![Datum] DateTime, [Formulare]![Report Assistent]![Enddatum] DateTime;
Mit der Zeile werden die Datentypen an die Parameter zugewiesen. Damit wird verhindert, dass Access versucht, selbst den Datentyp zu bestimmen. Das kann gelegentlich zu einem falschen Verhalten führen.
Antwort 4 von DCAH vom 19.01.2019, 13:24 Options
@ erik:
Hat perfekt geklappt.
Vielen, vielen Dank für die Hilfe!!!
Bringt mich echt weiter.
Schönes Wochenende!