procedure TForm4.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from 帳簿');
Query1.SQL.Add(Format('WHERE (日付 = "%s")',
[FormatDateTime('mm"/"dd"/"yyyy', DateTimePicker1.date)]
));
Query1.SQL.Add(' AND ');
Query1.SQL.Add(Format(' (日付 = "%s")',
[FormatDateTime('mm"/"dd"/"yyyy', DateTimePicker2.date)]
));
try
query1.Open;
except end;
end;
お世話になります。
いつも拝見させて貰っています。
過去レスを参考にして、上記のような事をしたいと思っています。
何とかここまでこぎ着けたのですが、範囲指定の仕方が判りません。
sqlのエラーメッセージも出ず、
チャートに出力してるのですが、白紙になってしまいます。
因みに「日付」は、Datatime型です。
例
2010/04/20 〜 2010/10/27 を、
SQLで検索したいと思っています。
何とか、範囲指定する方法は無いでしょうか?
どうかよろしくお願いします。
BETWEENを使えば出来ます。
SQLにselect * from 帳簿 WHERE 日付 BETWEEN :Hiduke1 AND Hiduke2
を設定して、
Query1.paramByName('Hiduke1').asDatetime = DateTimePicker1.date;
Query1.paramByName('Hiduke2').asDatetime = DateTimePicker2.date;
でOpenします。
>SQLにselect * from 帳簿 WHERE 日付 BETWEEN :Hiduke1 AND Hiduke2
Hiduke2 → :Hiduke2
Hiduke2の前にもコロンが必要ですね。
Hotaさんありがとうございます!!
なんと、一発で成功しました^^。
一度BETWEENでチャレンジして失敗してたのですが、こんな方法もあるんですね。
Delphi搭載のSQLでも、奥が深いんですね・・・。
初めて見る書き方です^^。
DelphiのSQL解説本は1冊しか持ってないので、目から鱗です。
おかげ様で無事動作し、後は仕上げの簡単なSQL処理を入れるだけで完成です。
ありがとうございましたm(__”)m
解決ボタン忘れました^^;
ソフトは無事完成しました。
改めてありがとうございましたm(__”)m
ツイート | ![]() |