SQL 文を使って、データ表示をしたいと思っています。
Where 句を用いて日付の条件を指定したいのですが
条件指定の方法がわかりません。ご教授ください。
'Limit は有効期限です。有効期限切れのデータだけを取得したい
strSQL = "SELECT * FROM sample Where Limit <" & Cstr(DATE)
上記の条件指定では有効期限切れのデータを取得できません。
今日の日付を比較する方法をご教授ください。
情報に不備がございました。
Limit は DATE 型です。
日付型の実装はDBによって異なりますからなんともいえませんが、
ともかく同じフォーマットにして比較したらいいのでは?
Say さんありがとうございます。
DB は MDB を使用しております。
> ともかく同じフォーマットにして比較したらいいのでは?
VB 初心者なもので、同じフォーマットという意味がわからないのですが、もう少し判りやすくご教授いただけないでしょうか。
Access の場合、日付 (Date) 型の
定数(リテラル値)は # で囲むことになっています。
それなので、
strSQL = "... where Limit < #" & Format(Date, "yyyy/mm/dd") & "#"
という感じですね。
# 関係ありませんが、
# 有効期限切れのデータを取得するならば
# "<" でなく ">" のような気もしますが...
とろさんありがとうございます。
> strSQL = "... where Limit < #" & Format(Date, "yyyy/mm/dd") & "#"
を試しましたが、エラーで「行1:"#"の近くに無効な構文があります。」と言われてしまいました。
私の環境では、できましたけど。
データベースがホントは Access でないとか。
実際に発行している抽出クエリを表示させてみて下さい。
そのクエリを見てみたいと、なんとも言えません。
勘違いしてました、SQLでした、すみません。
' 接続を確立する
objADOConnection.Open "Provider=SQLOLEDB" & _
";Data Source=" & "****" & _
";Initial Catalog=" & "KuroDB", "sa", ""
自己解決しました。ありがとうございました。
strSQL = "... where Limit < '" & CStr(Date) & "'"
文字列の比較のため、'(シングルコーテーション)
でくくることで解決できました。
ツイート | ![]() |