プロが教えるわが家の防犯対策術!

ADOでSQL文を作ってるのですが
WHERE句がうまくできません。

rs.Open "T_テーブル", cn, adOpenKeyset, adLockOptimistic
rs.Filter = "URL like '#*'"

なら、うまくいくのですが、
Filterを使うのをやめて、WHEREに書きかえると、エラーにはならないのですが
取得レコードが0件になります。

rs.Open "T_テーブル WHERE [URL] like '#*';", cn, adOpenKeyset, adLockOptimistic

rs.Open "T_テーブル WHERE URL like '#*';", cn, adOpenKeyset, adLockOptimistic

も、0件が返ります。
何がおかしいのでしょうか?

URLフィールドで、#で始まるレコードを抽出したいです。

A 回答 (2件)

> "T_テーブル WHERE URL like '#*';"



上記部分を

"T_テーブル WHERE URL like '#%';"

※ * → % に変更しただけです。

※「T_テーブル」がクエリなら、条件は無視される見たい
"SELECT * FROM T_テーブル WHERE URL like '#%';"
とした方が良いのかも

※ なお、 '#%' → '[#]%' の方が良いのかも
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2014/01/24 23:23

何も条件などを設定しなければ


rs.Open "T_テーブル", cn, adOpenKeyset, adLockOptimistic
で OK なのですが上記は
rs.Open "SELECT * FROM T_テーブル", cn, adOpenKeyset, adLockOptimistic
の省略形です。
条件や並び替えなどがある場合はきちんと SQL文を使用します。
また、ADOのワイルドカードは
* → %
? → _

になりますから
rs.Open "SELECT * T_テーブル WHERE [URL] like '#%';", cn, adOpenKeyset, adLockOptimistic
にしてみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2014/01/24 23:23

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