Supportnet / Forum / Datenbanken
Datum in FindFirst-Abfrage
Frage
Hallo,
kann mir jemand helfen? Ich habe ein Datumsfeld in meiner Tabelle, und das möchte ich mit FindFirst auf das aktuelle Tagesdatum abfragen. Ich hab schon die folgenden Varianten probiert:
suchstring = "[e_datum] = '" & date & "'"
rs.FindFirst suchstring
suchstring = "[e_datum] = " & date
rs.FindFirst suchstring
suchstring = "[e_datum] = #" & date & "#"
rs.FindFirst suchstring
Immer gibt es Fehlermeldungen (meist Syntax error). Weiß jemand, wie ich das machen muß?
Danke
Uschi
Antwort 1 von Uschi
Ich konnte das Problem ein wenig eingrenzen:
Wenn ich das deutsche Datumsformat (dd.mm.yyyy) verwende, bekomme ich einen Syntaxfehler:
suchstring = "[e_datum] = #26.08.2003#"
rs2.FindFirst suchstring
Wenn ich das englische Datumsformat verwende (mm/dd/yyyy), funktioniert der FindFirst zwar syntaktisch, findet jedoch keine Datensätze:
suchstring = "[e_datum] = #08/26/2003#"
rs2.FindFirst suchstring
Wer kennt das Problem? Kann ich da irgenwo etwas einstellen? Access Version ist 2000 (9.0.2812) deutsch.
Wenn ich das deutsche Datumsformat (dd.mm.yyyy) verwende, bekomme ich einen Syntaxfehler:
suchstring = "[e_datum] = #26.08.2003#"
rs2.FindFirst suchstring
Wenn ich das englische Datumsformat verwende (mm/dd/yyyy), funktioniert der FindFirst zwar syntaktisch, findet jedoch keine Datensätze:
suchstring = "[e_datum] = #08/26/2003#"
rs2.FindFirst suchstring
Wer kennt das Problem? Kann ich da irgenwo etwas einstellen? Access Version ist 2000 (9.0.2812) deutsch.
Antwort 2 von DatenKay
Hi Uschi,
man kann auf Tabellenebene (Entwurfansicht)die im Prinzip die Datumseigenschaften und auch das Eingabeformat festlegen und sogar die Datumsformate bearbeiten. Das bringt für die Suche allerdings nicht wirklich etwas. Access ist und bleibt halt 'n amerikanisches Produkt.
Versuch's 'mal mit so einem Code:
[Code]
Set DB = CurrentDb()
Set rstLinked = Me.RecordsetClone
rstLinked.FindFirst "[Letzte Änderung]= " & "#" & [datsuch] & "#"
Me.Bookmark = rstLinked.Bookmark
rstLinked.Close
[/Code]
...wobei hier [datsuch] ein Textfeld zur Eingabe des Datums im Formular ist.
Wichtig ist, dass das Datum im Suchfeld mit / als Trennzeichen und einer 4-stelligen Jahreszahl eingegeben wird !!!
Dabei ist es egal, ob die deutsche oder die englische Datumsschreibweise verwendet wird.
26/08/2003 liefert bei mir das
gleiche Ergebnis wie 08/26/2003
Wie gesagt, bei mir (AcessXP) geht das, ob's in AC2000 auch funzt, weiß ich nicht.
Probier's einfach 'mal aus.
Gruß,
DatenKay
man kann auf Tabellenebene (Entwurfansicht)die im Prinzip die Datumseigenschaften und auch das Eingabeformat festlegen und sogar die Datumsformate bearbeiten. Das bringt für die Suche allerdings nicht wirklich etwas. Access ist und bleibt halt 'n amerikanisches Produkt.
Versuch's 'mal mit so einem Code:
[Code]
Set DB = CurrentDb()
Set rstLinked = Me.RecordsetClone
rstLinked.FindFirst "[Letzte Änderung]= " & "#" & [datsuch] & "#"
Me.Bookmark = rstLinked.Bookmark
rstLinked.Close
[/Code]
...wobei hier [datsuch] ein Textfeld zur Eingabe des Datums im Formular ist.
Wichtig ist, dass das Datum im Suchfeld mit / als Trennzeichen und einer 4-stelligen Jahreszahl eingegeben wird !!!
Dabei ist es egal, ob die deutsche oder die englische Datumsschreibweise verwendet wird.
26/08/2003 liefert bei mir das
gleiche Ergebnis wie 08/26/2003
Wie gesagt, bei mir (AcessXP) geht das, ob's in AC2000 auch funzt, weiß ich nicht.
Probier's einfach 'mal aus.
Gruß,
DatenKay
Antwort 3 von Uschi
Danke. Hab's irgendwie nicht zum Laufen gebracht mit dem Datumsfeld. Als Workaround speichere ich jetzt das Datum als String in einem zusätzlichen Tabellenfeld (argh!) und verwende dieses Feld bei FindFirst. Microschrott...
Grüße
Uschi
Grüße
Uschi

