例えばレコードの値が「あああ'ああ」だった場合、
-----------------------------------------------------
Sub test()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim MyFileName As String
MyFileName = CurrentProject.FullName
cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & MyFileName
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic
rs.Filter = "フィールド1 = " & "'あああ'ああ'"
MsgBox rs.RecordCount
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
-----------------------------------------------------
とすると
実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」
になってしまいます。
ADOでアポストロフィー入りの値をフィルタする方法を教えてください。
No.3
- 回答日時:
rs.Filter = "フィールド1 = " & "'あああ'ああ'"
↓
rs.Filter = "フィールド1 = " & "'あああ''ああ'"
のように、'を'の数だけ水増しすれば出来ました、 (^^?
あああ''ああ なら
rs.Filter = "フィールド1 = " & "'あああ''''ああ'"
No.2
- 回答日時:
ADO自体は使っていないのですが、フィルタへの文字列の
渡し方であれば、DAOと同様のはずですので・・・
今回の例のように、文字列を二重で括る必要がある場合の
方法としては、『「"」と「'」の併用』の他に、『「"」を二つ重ねて
ひとつの「"」として渡す』という方法もあります。
ですので、以下のように修正すれば、ご希望の動作になるかと
思います:
【現状】
rs.Filter = "フィールド1 = " & "'あああ'ああ'"
【修正】
rs.Filter = "フィールド1 = " & """あああ'ああ"""
または(フィールドと文字列を合一して)
rs.Filter = "フィールド1 = ""あああ'ああ""
「"""あああ'ああ"""」の「"」のうち、両端の「"」が
VBA上での文字列の括りのためのもので、その内側の
「""」が、文字列として渡す「"」を指定するためのもの、
ということになります。
・・・なお、どうしてもわかりづらいという場合は、Chr関数
を使用する方法もあります(「Chr(34)」は「"」を返します):
rs.Filter = "フィールド1 = " & Chr(34) & "あああ'ああ" & Chr(34)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差し込み文書のルールで if the...
-
「#エラー」の回避
-
アクセスで入力したデータの順...
-
FileMakerで画像をまとめて書き...
-
Accessで値がnullの場合は計算...
-
accessのフィールドに10桁の数...
-
フィールドの中のテキストを分...
-
MSアクセス2000で英数の大文字...
-
ファイルメーカーでフィールド...
-
ファイルメーカー複数フィール...
-
WORDフィールドコード一括編集
-
ExcelからAccessデータを検索す...
-
ファイルメーカーで英字だけ取...
-
MS-WORDで、あるフィールドに入...
-
アクセス Access 時間の引き算
-
【Access】インポート時のメモ...
-
Accessで、他の二つのフィール...
-
ファイルメーカーでの西暦から...
-
WORDのIFにEqフィールドは使えない
-
FileMakerで読み込んだファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「#エラー」の回避
-
アクセスで入力したデータの順...
-
差し込み文書のルールで if the...
-
accessのフィールドに10桁の数...
-
ExcelからAccessデータを検索す...
-
Accessでボタンを押すと今日の...
-
Accessで値がnullの場合は計算...
-
フィールドの中のテキストを分...
-
WORD差し込み印刷:日付の処理 ...
-
FileMakerで、フィールドの値が...
-
MS-WORDで、あるフィールドに入...
-
WORDフィールドコード一括編集
-
FileMakerで画像をまとめて書き...
-
ACCESSでデータ変更箇所が分か...
-
accessのVBAで変数名でフィ...
-
Accessフォームで平均値の出し...
-
アクセス Access 時間の引き算
-
MS-ACCESSで中央値(ME...
-
ファイルメーカーのデータをc...
-
access フィールドのサイズ(文...
おすすめ情報