dポイントプレゼントキャンペーン実施中!

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も正常に動作しませんでした。

どなたかご教示願えませんでしょうか。
よろしくお願いします。

A 回答 (2件)

#1さんの言うとおり、#の中にはワイルドカード(*)は使えません。




月を抽出条件にするなら、Month関数を使ってはどうですか。

Sql = "select * from 顧客データ where Month(誕生日) = " + sTanzyou
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/24 13:33

#*/10/*#がいけないのでは。


#はDate型のシリアル値を意味しますが、Likeで使えるのは文字列型なので。ダブルクォートで囲む必要があるかと。

でもAccessを使っているなら、パラメータ付きクエリーを定義して、それを呼び出すようにするほうが手っ取り早そう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/24 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!