• 締切済み

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

みんなの回答

回答No.2

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

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Likeの記述に差があるのはなぜ? ADOのワイルドカードキャラクタは 「【2】が、適切」