Entwickler-Ecke
Datenbanken - Über MonthCalendar Datenbank auf Datum Filtern per Query
Arne Danikowski - Fr 19.12.08 13:43
Titel: Über MonthCalendar Datenbank auf Datum Filtern per Query
Hallo,
ich finde hier irgendwie nicht die richtige Lösung.
Ich möchte über einen MonthCalendar ein SQLQuery erstellen, welches nur die Datensätze anzeigt, mit dem markiertem Datum aus dem MonthCalendar.
Ich habe eine Access Datenbank das Feld ist ein Datumsfeld mit Format kurz (tt.mm.jjjj)
folgendes haben ich versucht:
Delphi-Quelltext
1:
| DM.ADOQuery1.SQL.Text := 'Select * From Eintrag WHERE DATUM = '+ DateToStr(MonthCalendar1.Date); |
ich erhalte allerding die Fehlermeldung Syntaxfehler in Zahl in Abfrageausdruck 'Datum = 19.12.2008'
kann da jemand helfen?
Delete - Fr 19.12.08 13:49
Versuch es mal mit einer parametrisierten Abfrage:
Delphi-Quelltext
1: 2:
| DM.ADOQuery1.SQL.Text := 'Select * From Eintrag WHERE DATUM = :datum'; DM.ADOQuery1.Parameters.ParamByName('datum').Value := MonthCalendar1.Date; |
Ohne Gewähr, ich mache normalerweise nix mit ADO.
Arne Danikowski - Fr 19.12.08 13:57
Da bekomme ich die Fehlermeldung:
ADOQuery1: Parameter 'Datum' nicht gefunden
Delete - Fr 19.12.08 14:09
Komisch, zeig mal den aktuellen Code.
Arne Danikowski - Fr 19.12.08 14:15
Ich hatte die Zeilen in falscher Reihenfolge
so sieht das auch und nun bekomme ich zwar keine Fehlermeldung, aber es funktioniert nicht. Eigentlich passiert gar nichts.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm2.MonthCalendar1Click(Sender: TObject);
begin DM.ADOQuery1.SQL.Text := 'Select * From Eintrag WHERE DATUM = :datum ORDER BY DATUM'; DM.ADOQuery1.Parameters.ParamByName('datum').Value := MonthCalendar1.Date; DM.ADOQuery1.open;
end; |
Delete - Fr 19.12.08 14:24
Nächster Versuch (ich hab von Access keine Ahnung, sag ich gleich dazu):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm2.MonthCalendar1Click(Sender: TObject); begin DM.ADOQuery1.Close; DM.ADOQuery1.SQL.Text := 'Select * From Eintrag WHERE DATUM = :datum ORDER BY DATUM'; DM.ADOQuery1.Parameters.ParamByName('datum').DataType := ftDate; DM.ADOQuery1.Parameters.ParamByName('datum').Value := MonthCalendar1.Date; DM.ADOQuery1.open; end; |
Arne Danikowski - Fr 19.12.08 14:28
voher hast du denn ftdate? Wie deklariere ich den? Ist das nur ne Variable?
Delete - Fr 19.12.08 14:36
Das ist eine Konstante (Unit DB).
Arne Danikowski - Fr 19.12.08 14:39
:) hab keine DB Unit
Arne Danikowski - Fr 19.12.08 14:43
Habe die USES mal hinzugefügt. Bring aber leider uch nichts. egal, welches Datum ich über den MonthCalendar auswähle, er springt immer zum ersten Datensatz.
Delete - Fr 19.12.08 14:44
Gut, dann anders (ansonsten muss ich das zu Hause mal mit einem "richtigen" Delphi versuchen):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm2.MonthCalendar1Click(Sender: TObject); begin DM.ADOQuery1.Close; DM.ADOQuery1.SQL.Text := 'Select * From Eintrag WHERE DATUM = :datum ORDER BY DATUM'; DM.ADOQuery1.Parameters.ParamByName('datum').Value := trunc(MonthCalendar1.Date); DM.ADOQuery1.open; end; |
[edit] Hö? Nach einem Open springt der Datensatzzeiger
immer auf den ersten Datensatz, das hat aber mit der Abfrage an sich nichts zu tun. [/edit]
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!