- ベストアンサー
ADOでアポストロフィー入りの値をフィルタする方法を教えてください
- ADOを使用してアポストロフィー入りの値をフィルタする方法を教えてください。
- 質問文章のVBAコードでアポストロフィー入りの値をフィルタすると実行時エラー3001が発生します。
- このエラーの原因と、解決する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
rs.Filter = "フィールド1 = " & """あああ'ああ""" ですね。
その他の回答 (2)
- nicotinism
- ベストアンサー率70% (1019/1452)
rs.Filter = "フィールド1 = " & "'あああ'ああ'" ↓ rs.Filter = "フィールド1 = " & "'あああ''ああ'" のように、'を'の数だけ水増しすれば出来ました、 (^^? あああ''ああ なら rs.Filter = "フィールド1 = " & "'あああ''''ああ'"
お礼
ご回答ありがとうございました。
- DexMachina
- ベストアンサー率73% (1287/1744)
ADO自体は使っていないのですが、フィルタへの文字列の 渡し方であれば、DAOと同様のはずですので・・・ 今回の例のように、文字列を二重で括る必要がある場合の 方法としては、『「"」と「'」の併用』の他に、『「"」を二つ重ねて ひとつの「"」として渡す』という方法もあります。 ですので、以下のように修正すれば、ご希望の動作になるかと 思います: 【現状】 rs.Filter = "フィールド1 = " & "'あああ'ああ'" 【修正】 rs.Filter = "フィールド1 = " & """あああ'ああ""" または(フィールドと文字列を合一して) rs.Filter = "フィールド1 = ""あああ'ああ"" 「"""あああ'ああ"""」の「"」のうち、両端の「"」が VBA上での文字列の括りのためのもので、その内側の 「""」が、文字列として渡す「"」を指定するためのもの、 ということになります。 ・・・なお、どうしてもわかりづらいという場合は、Chr関数 を使用する方法もあります(「Chr(34)」は「"」を返します): rs.Filter = "フィールド1 = " & Chr(34) & "あああ'ああ" & Chr(34)
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。