![]() |
Geburtstagselektion funktioniert nicht
Hallo,
ich habe ein Programm in dem ich eine Geburtstagsselektion aufrufen möchte, wer heute Geburtag hat. Ich benutze Delphi 7 und eine Access Datenbank. Ich benutze folgenden Befehl um die Datenbank abzufragen: select Nummer, Vorname, Name, Geburtsdatum, Tel_privat, Mobil_privat from Mandanten where (((Geburtsdatum) like '18.02.????')) wenn ich den Befehl in Access direkt eingebe kommen die gesuchten Datensätze. aber an Delphi kommt nix zurück!!! Wenn ich den Befehl aber in Delphi abändere auf selcet * from Mandanten zum Beipiel, werden Daten in Delphi ausgegeben. Also es muss an dem SQL-Befehl liegen. Hat jemand eine Idee woran es liegen könnte? |
Re: Geburtstagselektion funktioniert nicht
Erstens: Könntest du bitte dein SQL-Statement in SQL-Tags setzen ? (
Einfach Beitrag editieren, Vor der Abfrage auf den SQL-Button drücken und am Ende nochmal) zum Problem: Sieht nach implizierter Datumsumwandlung aus. Auf die Art dürfte MS Jet keine Möglichkeit haben, das Datum falsch zu interpretieren:
Delphi-Quellcode:
Nachtrag: War wohl ein bisschen knapp an Infos...
With Query Do
Begin SQL.Text := 'SELECT Nummer,' + #10 + ' Vorname,' + #10 + ' Name,' + #10 + ' Geburtsdatum,' + #10 + ' Tel_privat,' + #10 + ' Mobil_privat' + #10 + 'FROM Mandanten' + #10 + 'WHERE (((Geburtsdatum) = :i_Date))'; Prepared := True; Parameters.ParamByName('i_Date').Value := SysUtils.Date; Open; END; SysUtils.Date enthält das Datum der WindowsSystemzeit. Es enthält keine Uhrzeit und sollte deshalb dem Wert entsprechen, den ein normales Datum in Access/MS Jet hat. |
Re: Geburtstagselektion funktioniert nicht
@GeorgeWNewbie:
das bringt ja nur die Werte von heute also 19.02.2004. Was ist mit denen die am 19.02.1986 oder 19.02.1950 Geburtstag haben? Was muss ich da noch abändern? ist i-Date ein System wert? |
Re: Geburtstagselektion funktioniert nicht
:wall:
Natürlich! (Ich hatte mir deinen Post nicht genau genug durchgelesen :oops: ) Da musst du dich an Funktionen von MS Jet halten ... Day(IrgendeinDate) müsste dir den Tag geben Month(IrgendeinDate) den Monat:
Delphi-Quellcode:
Var
Day, Month, Year :Word; Begin ... With Query DO Begin SQL.Text := 'SELECT Nummer,' + #10 + ' Vorname,' + #10 + ' Name,' + #10 + ' Geburtsdatum,' + #10 + ' Tel_privat,' + #10 + ' Mobil_privat' + #10 + 'FROM Mandanten' + #10 + 'WHERE Day(Geburtsdatum) = :i_Day And' + #10 + ' Month(Geburtsdatum) = :i_Month'; Prepared := True; DecodeDate(Now, Year, Month, Day); Parameters.ParamByName('i_Day').Value := Day; Parameters.ParamByName('i_Month').Value := Month; Open; ... While Not Eof do Begin ... Next; End; End; |
Re: Geburtstagselektion funktioniert nicht
wahnsinn! du bist genial! Es geht! Vielen lieben Dank!!!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz