• 締切済み

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も正常に動作しませんでした。 どなたかご教示願えませんでしょうか。 よろしくお願いします。

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

#1さんの言うとおり、#の中にはワイルドカード(*)は使えません。 月を抽出条件にするなら、Month関数を使ってはどうですか。 Sql = "select * from 顧客データ where Month(誕生日) = " + sTanzyou

firstkuji
質問者

お礼

ありがとうございます。 連絡が遅くなり申し訳ありません。 Month関数を使って動作確認してみます。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

#*/10/*#がいけないのでは。 #はDate型のシリアル値を意味しますが、Likeで使えるのは文字列型なので。ダブルクォートで囲む必要があるかと。 でもAccessを使っているなら、パラメータ付きクエリーを定義して、それを呼び出すようにするほうが手っ取り早そう。

firstkuji
質問者

お礼

ありがとうございます。 連絡が遅くなり申し訳ありません。 パラメータ付きクエリーを勉強してみます。

関連するQ&A