luna01
Goto Top

Access Problem bei Abfrage mit Datum

Guten morgen,
erst mal vielen Dank, ich habe hier schon viel nützliche Hilfe bekommen.

ich habe eine Abfrage in der ich einen Datumszeitraum aus einer Tabelle (tblTaetigkeit) über ein Formular abfragen möchte.
Desweiteren wollte ich abfrage nach taetName (Kombinationsfeld) filtern und beim ende Datum wollte ich mir auch die leeren Felder anzeigen lassen.

Das Formular enthält zwei ungebundene Textfelder vonDaum und bisDatum
sowie ein Kombinationsfeld mit Namen aus einer Werteliste kombiName
Als Kriterien habe ich folgendes probiert.

beim Feld startDatum im Kriterium Zwischen [Forms]![frmTestSuche]![vonDatum] Und [Forms]![frmTestSuche]![bisDatum]
Oder Zwischen [Forms]![frmTestSuche]![vonDatum] Und [Forms]![frmTestSuche]![bisDatum]

beim Feld endeDatum Kriterium Zwischen [Forms]![frmTestSuche]![vonDatum] Und [Forms]![frmTestSuche]![bisDatum] Oder ist Null
Oder Zwischen [Forms]![frmTestSuche]![vonDatum] Und [Forms]![frmTestSuche]![bisDatum] Oder ist Null

beim Feld taetName Kriterium [Forms]![frmTestSuche]![kombiName]


desweiteren habe ich in der Abfrage folgendes Feld [Forms]![frmTestSuche]![kombiName] im Kriterium bei Oder steht "Alle Namen" (kein Häckchen)
Abfrage funktioniert leider nur bedingt, wenn ich ein Datum z.B. 15.03.2017 bis 31.12.2017 eingebe, werden noch alle Daten die vor oder nach dem 31.12.2017 liegen angezeigt.

Desweiteren habe ich es auch so versucht,

strDatumMin = Format(Me!vonDatum, "\#mm\-dd\-yyyy\#")
strDatumMax = Format(Me!bisDatum, "\#mm\-dd\-yyyy\#")
strKombiName = Me!kombiName
strSQL = "SELECT startDatum, endeDatum, taetName" _
& " FROM tblTaetigkeit" _
& " WHERE startDatum And endeDatum Between " & strDatumMin & " And " & strDatumMax

Vielleicht kann mir jemand sagen was ich falsch mache. Danke!

Content-Key: 363165

Url: https://administrator.de/contentid/363165

Printed on: April 25, 2024 at 15:04 o'clock

Member: eisbein
Solution eisbein Feb 01, 2018 at 11:56:22 (UTC)
Goto Top
Mahlzeit!

Hab es jetzt nur überfolgen:

strSQL = "SELECT startDatum, endeDatum, taetName" _  
& " FROM tblTaetigkeit" _  
& " WHERE startDatum And (endeDatum Between " & strDatumMin & " And " & strDatumMax & ")"  

Teste diese Abfrage mal.

Gruß
eisbein
Member: Volchy
Solution Volchy Feb 01, 2018 at 12:09:06 (UTC)
Goto Top
Moin,

in der Where-Klausel mal separieren:
& "WHERE (startDatum Between " & strDatumMin & " And " & strDatumMax) And (endeDatum Between " & strDatumMin & " And " & strDatumMax)   
Im Debug kannst du dir vorab mal noch anschauen, ob die strDatumMin und Max entsprechend koorekt gefüllt werden.
Member: Luna01
Luna01 Feb 02, 2018 at 07:22:27 (UTC)
Goto Top
Danke euch Beiden!
Funktioniert jetzt, mein Fehler lag am Datentyp des Feldes endeDatum in der DB.
Hatte statt date als Datentyp text.
Ohne den Hinweis von Volchy das im Debugger zu testen wäre ich wohl nicht drauf gekommen.