MS Access では、次のようなクエリで日付をフィルター処理できます。
サインアップ日 > #31/12/2013#
これにより、データベースには、SignUpDate が 2014 年以降のレコードのみが表示されます。
Delphiでこれを行うにはどうすればよいですか?
dmGym.tblMembers.filter := 'SignUpDate > ''#31/12/2013#''' が機能していないようです
助けてください
#
sは必要ないと思います。試してみてください
[...].Filter := '12/31/2013'; // this is for Sql Server and tested
// for UK locale, for Access you may need to swap the dd and mm,
//and maybe even the yyyy as suggested by @kobik in a comment.
TAdoDataSet.Locate() で TDateTime フィールドを使用すると、関数 GetFilterStr が#
サインをプラグインします (文字列フィールドに対して同様の処理を行う場合は、そのハッシュを作成します (ダジャレを見つけます) - ADO の # サインを参照してください (Delphi XE5) )。
しかし、TAdoTable に単純なフィルターを設定すると、ADODB.GetFilterStr がバイパスされ、そのレコードセットの Filter プロパティに直接割り当てられるように見えるため、#
s が必要な場合は、ADO/MDac レイヤーによってプラグインする必要があると推測しています。