アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスの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】はダメなのでしょうか?

A 回答 (2件)

ADO ではANSI-92 のワイルドカード%_・・・を


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

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



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

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