- 締切済み
sqlでの誕生月検索の仕方を教えてください
WindowsXP EXCEL2003 ACCESS2000 を使用しユーザーフォームのテキストボックスへ誕生月を入力しACCESSのフィールド誕生日(日付/時刻型)から指定の月データのみを検索しようとしていますがうまくいきません。 ちなみに、ACCESS単体でのクエリ検索は Like "*/10/*"で正常に動作しますが、ユーザーフォームからのsqlでは正常に動作しません。 sTanzyou="10"'たとえば10月 Sql = "select * from 顧客データ where 誕生日 like #" + "*/" + sTanzyou + "/*#" Set RS = New ADODB.Recordset RS.Open Sql, gcn, adOpenKeyset, adLockOptimistic また、*のかわりに_を使用してもだめでした。BETWEENも正常に動作しませんでした。 どなたかご教示願えませんでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nag0720
- ベストアンサー率58% (1093/1860)
#1さんの言うとおり、#の中にはワイルドカード(*)は使えません。 月を抽出条件にするなら、Month関数を使ってはどうですか。 Sql = "select * from 顧客データ where Month(誕生日) = " + sTanzyou
- osamuy
- ベストアンサー率42% (1231/2878)
#*/10/*#がいけないのでは。 #はDate型のシリアル値を意味しますが、Likeで使えるのは文字列型なので。ダブルクォートで囲む必要があるかと。 でもAccessを使っているなら、パラメータ付きクエリーを定義して、それを呼び出すようにするほうが手っ取り早そう。
お礼
ありがとうございます。 連絡が遅くなり申し訳ありません。 パラメータ付きクエリーを勉強してみます。
お礼
ありがとうございます。 連絡が遅くなり申し訳ありません。 Month関数を使って動作確認してみます。