Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Access Query und Datum (https://www.delphipraxis.net/65455-access-query-und-datum.html)

hokowa 16. Mär 2006 18:01

Datenbank: Access • Zugriff über: ADO

Access Query und Datum
 
Hallo alle zusammen,
eine Access Datenbank mit einer Tabelle und einem Feld nächste_Prüfung (Datum).
Wenn ich so abfrage wie unten beschrieben funktioniert alles,
ich bekomme die Datensätze mit dem Datum welches im DTPicker steht .
Nun brauche ich aber alle Datensätze mit <= Datum,
wenn ich LIKE durch <= ersetze, bekomme ich eine Fehlermeldung.


DatumEnde := DateToStr(DateTimePicker2.Date);

ADOQuery1.Sql.Clear;
sql :='select * from Abfrage2 where nächste_Prüfung LIKE ''%'+DatumEnde+'%''';
ADOQuery1.SQL.Add(sql);
ADOQuery1.Active:=true;


Wer kann mir bei meinem Problem helfen?
Vielen Dank
Horst

DP-Maintenance 16. Mär 2006 18:15

DP-Maintenance
 
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Datenbanken" verschoben.
Kein Beitrag für die Code-Library!

alzaimar 16. Mär 2006 19:58

Re: Access Query und Datum
 
'like' ist ein Operator, der prüft, ob der Text ein SubString des zu prüfenden Textes ist. Das '%' Zeichen ist hierbei ein 'Wildcard', steht also für beliebige Zeichen. Du musst das Datum in Quotes setzen. Unter Access-97 war das, glaube ich, sogar ein '#'....

holgerson 16. Mär 2006 20:31

Re: Access Query und Datum
 
in ACCESS selbst ist die Syntax folgendermaßen:

"#" + Month(DATUM) + "/" & Day(DATUM) + "/" & Year(DATUM) + "#"

hokowa 16. Mär 2006 20:39

Re: Access Query und Datum
 
Zitat:

Zitat von alzaimar
'like' ist ein Operator, der prüft, ob der Text ein SubString des zu prüfenden Textes ist. Das '%' Zeichen ist hierbei ein 'Wildcard', steht also für beliebige Zeichen. Du musst das Datum in Quotes setzen. Unter Access-97 war das, glaube ich, sogar ein '#'....


Danke
Habe ich gemacht,

sql := 'SELECT * FROM Abfrage2 WHERE nächste_Prüfung <= '+ QuotedStr(Datum);

Problem erkannt, wenn ich die Datenbank (Access2003) das Feld nächste_Prüfung auf Text ändere funktioniert es,
ich brauche aber ein Datum/Uhrzeit Feld.
Und die Wildcards bekomme ich in QuotedStr(Datum) nicht rein.

hokowa 16. Mär 2006 20:41

Re: Access Query und Datum
 
Zitat:

Zitat von holgerson
in ACCESS selbst ist die Syntax folgendermaßen:

"#" + Month(DATUM) + "/" & Day(DATUM) + "/" & Year(DATUM) + "#"


ich glaube da fehlt mir etwas Vorwissen,
wie löse ich damit mein Problem?

holgerson 16. Mär 2006 21:36

Re: Access Query und Datum
 
in Delphi würd ich folgendes veruchen,


function sql_date(day : integer; month:integer; year:integer): string;
begin
Result:='#' + inttostr(month) + '/' + inttostr(day) + '/' + inttostr(year) + '#';
end;


in Deiner Funktion dann weiter

sql :='select * from Abfrage2 where nächste_Prüfung <= '+ sql_date(17,3,2006);

für alle Datensätze <=17.03.2006

Ich programmiere eigentlich C++, kann man in Delphi also bestimmt noch schöner machen.

alzaimar 17. Mär 2006 06:43

Re: Access Query und Datum
 
@holgerson: Nö, nö, nicht schlecht. Aber in Delphi gibt es ein sprintf-Pendant: Format.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz