1

MS Access では、次のようなクエリで日付をフィルター処理できます。

サインアップ日 > #31/12/2013#

これにより、データベースには、SignUpDate が 2014 年以降のレコードのみが表示されます。

Delphiでこれを行うにはどうすればよいですか?

dmGym.tblMembers.filter := 'SignUpDate > ''#31/12/2013#''' が機能していないようです

助けてください

4

4 に答える 4

0

#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 レイヤーによってプラグインする必要があると推測しています。

于 2015-09-26T15:22:36.270 に答える