Supportnet / Forum / Datenbanken
SELECT WHERE BETWEEN
Frage
Ich sitze hier und komme nicht weiter wegen eine dumme SQL-Abfrage. Vielleicht kann mir einer helfen !!
Ich möchte Tabellendaten ausgeben lassen von einer bestimmten Firma und die zwischen zwei Datumsangaben liegen. Dabei sollen die zwei Datumsangaben parameter sein ... zum selber eingeben. Folgendes funktionier super ... aber mit festem Datum :
SELECT Zeiterfassung.*, Zeiterfassung.Datum
FROM Zeiterfassung
WHERE Firma = ? and Datum>=#2/1/2004# And Datum<=#3/1/2004#;
...ist wahrscheinlich irgendwas einfaches wo ich wegen "zuviel überlegen" gerade nicht drauf komme ???
Antwort 1 von Roadrunner90
Hallo Laura,
du musst, wenn das Datum als Parameter kommt auch die # verwenden. Also ungefähr so:
where Datum >= '#' & vondatum & '#' and Datum <=
& '#' bisdatum & '#'
ich bau mir für die einfachere Handhabung immer den SQL-String in einer Variablen zusammen.
Gruß Rudolf
du musst, wenn das Datum als Parameter kommt auch die # verwenden. Also ungefähr so:
where Datum >= '#' & vondatum & '#' and Datum <=
& '#' bisdatum & '#'
ich bau mir für die einfachere Handhabung immer den SQL-String in einer Variablen zusammen.
Gruß Rudolf
Antwort 2 von Laura
Hi Rudolf,
Ich schaff's einfach nicht ...
wenn ich folgendes abfrage :
SELECT Zeiterfassung.*, [Zeiterfassung].[Datum]
FROM Zeiterfassung
WHERE Firma=[?];
oder
SELECT Zeiterfassung.*, [Zeiterfassung].[Datum]
FROM Zeiterfassung
WHERE Datum<=[?];
klappt es natürlich ... aber er nimmt kein 2. parameter ...
bei "WHERE Datum>=[?] And Datum<=[?]" und "WHERE Firma=[?] And Datum<=[?]" fragt er auch nur einmal nach einem parameter.
In VB6 habe ich folgende Abfrage :
SELECT Zeiterfassung.*, Datum AS Expr1, Firma AS Expr2
FROM Zeiterfassung
WHERE (Datum >= ?) AND (Firma = ?)
diese 2 Parameter (Expr1 und Expr2) werden durch Textfelder übergeben und klappt auch super. Aber in access habe ich keine Textfelder die die Parameter übergeben können ...
Hast du noch eine idee ???
Kennst du dich zufällig mit Crystal Reports aus ??
Laura
Ich schaff's einfach nicht ...
wenn ich folgendes abfrage :
SELECT Zeiterfassung.*, [Zeiterfassung].[Datum]
FROM Zeiterfassung
WHERE Firma=[?];
oder
SELECT Zeiterfassung.*, [Zeiterfassung].[Datum]
FROM Zeiterfassung
WHERE Datum<=[?];
klappt es natürlich ... aber er nimmt kein 2. parameter ...
bei "WHERE Datum>=[?] And Datum<=[?]" und "WHERE Firma=[?] And Datum<=[?]" fragt er auch nur einmal nach einem parameter.
In VB6 habe ich folgende Abfrage :
SELECT Zeiterfassung.*, Datum AS Expr1, Firma AS Expr2
FROM Zeiterfassung
WHERE (Datum >= ?) AND (Firma = ?)
diese 2 Parameter (Expr1 und Expr2) werden durch Textfelder übergeben und klappt auch super. Aber in access habe ich keine Textfelder die die Parameter übergeben können ...
Hast du noch eine idee ???
Kennst du dich zufällig mit Crystal Reports aus ??
Laura
Antwort 3 von Knubbel
Hallo Laura,
ich kenne mich nicht mit VBA aus, daher kann ich auch keine Lösung zu einem Code anbieten.
Aber, warum erstellst du nicht eine Auswahlabfrage und gibst bei Datum als Kriterium folgendes ein:
ZWISCHEN[von Datum]UND[bis Datum]
Ebenso kannst du bei Firma als Kriterium angeben:
Wie("*"+[Firmenauswahl]+"*")
Durch diese Kriteriumangaben werden zunächst die Parameter abgefragt (bei Firma reichen fragmente des Namens) und dann die Auswahlabfrage ausgeführt.
mfg Knubbel
ich kenne mich nicht mit VBA aus, daher kann ich auch keine Lösung zu einem Code anbieten.
Aber, warum erstellst du nicht eine Auswahlabfrage und gibst bei Datum als Kriterium folgendes ein:
ZWISCHEN[von Datum]UND[bis Datum]
Ebenso kannst du bei Firma als Kriterium angeben:
Wie("*"+[Firmenauswahl]+"*")
Durch diese Kriteriumangaben werden zunächst die Parameter abgefragt (bei Firma reichen fragmente des Namens) und dann die Auswahlabfrage ausgeführt.
mfg Knubbel
Antwort 4 von Laura
Hi Rudolf & Knubbel,
danke für euer Hilfe !! Ich glaube ich hab's jetzt ... :
SELECT Zeiterfassung.*, Datum AS Expr1, Datum AS Expr2,Firma AS Expr3
FROM Zeiterfassung
WHERE (Datum >= ?) AND (Datum <= ?) AND (Firma = ?)
ORDER BY Datum
Jetzt weis ich nur nicht wie ich dies in Crystal Reports eingebunden bekomme. :-(
Laura
danke für euer Hilfe !! Ich glaube ich hab's jetzt ... :
SELECT Zeiterfassung.*, Datum AS Expr1, Datum AS Expr2,Firma AS Expr3
FROM Zeiterfassung
WHERE (Datum >= ?) AND (Datum <= ?) AND (Firma = ?)
ORDER BY Datum
Jetzt weis ich nur nicht wie ich dies in Crystal Reports eingebunden bekomme. :-(
Laura
Antwort 5 von Roadrunner90
Hi Laura,
das sollte in Crystal Reports auch so funktionieren. Soweit ich weiss kann man da auch SQL-Statements einbinden.
Gruß Rudolf
das sollte in Crystal Reports auch so funktionieren. Soweit ich weiss kann man da auch SQL-Statements einbinden.
Gruß Rudolf