こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

WHERE句だと抽出できない VBA ADO

アクセスのADOについて質問があります。

SQL文の中でWHERE句を使ってフィルタをすると返り値が0件になるのに、
rs.Open strSQLした後に、
rs.Filterで抽出すると、適切な数値が返ります。

具体的に言うと
【1】

strSQL = "SELECT T_会社名.*, T_会社名.住所 FROM T_会社名 WHERE (((T_会社名.住所) Like ""*埼玉*""));"
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic
i = rs.RecordCount

【2】
strSQL = "SELECT T_会社名.*, T_会社名.住所 FROM T_会社名;"
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic
rs.Filter = "T_会社名.住所 like '%埼玉%'"
i = rs.RecordCount

だと、【2】が、適切な数値が返ります。

なぜ【1】はダメなのでしょうか?

投稿日時 - 2014-10-05 20:36:54

QNo.8780201

困ってます

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ADO ではANSI-92 のワイルドカード%_・・・を
DAO(クエリ)ではANSI-89 のワイルドカード*?・・・を採用したから。
詳しくは
Access ワイルドカード文字リファレンス
http://office.microsoft.com/ja-jp/access-help/HA010076601.aspx
にて。

投稿日時 - 2014-10-05 22:32:52

ANo.1

Likeの記述に差があるのはなぜ?

ADOのワイルドカードキャラクタは 「【2】が、適切」

投稿日時 - 2014-10-05 22:29:20

あなたにオススメの質問