collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 39
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13797
  • stats Beiträge insgesamt: 63470
  • stats Themen insgesamt: 8600
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Mit SQL Datumsvergleich  (Gelesen 1011 mal)

Offline smily68

  • Access-Profi
  • **
  • Beiträge: 185
Mit SQL Datumsvergleich
« am: August 13, 2013, 10:02:25 »
Hallo

Ich will mit einem SQL Befehl eine Selektion in einer Abfrage machen. Doch ich finde nicht heraus wie ich die beiden Daten konvertieren muss, damit ich diese vergleichen kann.

Ich habe folgendes probiert: 

      strSQL = "Select * FROM qryAusleihPos Where ausleihPos_RetourDatSoll <= " & Me.txtBisDatum
      strSQL = "Select * FROM qryAusleihPos Where Convert (char(10), ausleihPos_RetourDatSoll, 104) <= '" & Me.txtBisDatum & "' "

Die zweite Variante habe ich meinem Accesshanbuch gefunden. Dort schreibt man, dass man die Felder am besten in Textfelder umwandelt. Doch dies funktioniert auch nicht richtig.

Kann mir jemand sagen, wie das Datum richtig formatieren muss, um es zu vergleichen

Gruss Daniel

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23087
Re: Mit SQL Datumsvergleich
« Antwort #1 am: August 13, 2013, 10:30:23 »
Hallo,

bestimmt schn 1000 Mal hier im Forum beschrieben...

Es ist das ISO- oder USA-Format im Kriterium erforderlich.


strSQL = "Select * FROM qryAusleihPos Where ausleihPos_RetourDatSoll <= " & Format(nz(Me!txtBisDatum ,Date), "\#yyyy-mm-dd\#")

Offline Chris_Kaa

  • Newbie
  • Beiträge: 2
Re: Mit SQL Datumsvergleich
« Antwort #2 am: September 28, 2017, 09:42:16 »
Danke Franz, das hat mir geholfen:
Format(nz(Me!txtBisDatum ,Date), "\#yyyy-mm-dd\#")
bin leider erst nach 30 Minuten Suche auf diesen Thread gestossen... :'(
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1600
Re: Mit SQL Datumsvergleich
« Antwort #3 am: September 28, 2017, 16:20:55 »
Hallo Chris,
Und da du das sicher öfter brauchen wirst, schreibe dir dazu eine Function
in ein allgemeines Modul.
Public Function SQLDatum(ByVal MeinDatum As Date) As String

    SQLDatum = Format$(MeinDatum, "\#yyyy\-mm\-dd\#")

End Function
Das kannst du dann überall verwenden, auch in Abfragen; - spart 'ne Menge Tipperei  :D
... Where ausleihPos_RetourDatSoll <= " & SQLDatum(Nz(Me!txtBisDatum, Date)gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 850
Re: Mit SQL Datumsvergleich
« Antwort #4 am: September 28, 2017, 17:11:25 »
... und ganz dumm kommt es dann, wenn der Parameterwert einmal Null ist.

Deswegen bevorzuge ich die Anwendung echter Parameterabfragen gegenüber dem Zusammenkleistern von Textsegmenten oder verwende zumindest die Access beiliegende Funktion BuildCriteria*, die auch Null-Werte entsprechend behandelt.
d = VBA.Date() 

?BuildCriteria("a", dbDate, Nz(d, "Null"))
a=#9/28/2017#

d = Null

?BuildCriteria("a", dbDate, Nz(d, "Null"))
a Is Null

?BuildCriteria("a", dbDate, "1.2.2017")
a=#2/1/2017#

*Buildcriteria weist Mänglel bei Textkriterien mit Klammern innerhalb von Textparametern auf und sollte deshalb nicht blind verwendet werden.
Grüße von der (⌒▽⌒)
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1600
Re: Mit SQL Datumsvergleich
« Antwort #5 am: September 28, 2017, 17:24:19 »
Hallo Lachtaube,
Zitat
wenn der Parameterwert einmal Null ist.
Dürfte eigentlich nicht passieren bei der Verwendung von Nz().
BuildCriteria wird von mir, frag' mich nicht warum, sehr stiefmütterlich behandelt  >:(
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 850
Re: Mit SQL Datumsvergleich
« Antwort #6 am: September 28, 2017, 18:13:41 »
Ekkehard,

mit Nz() allein ist das nicht getan, auch der Vergleichsoperator muss ja angepasst werden.
Grüße von der (⌒▽⌒)