- ベストアンサー
Access2002 Find メソッドでエラー
パソコン名をTableに登録していますが、重複チェック はSQLでレコードを絞ったあとにFindをかけています。 次の式ですが、 RS.Find "機種名='" & str機種名(i) & "'" 条件にパナソニックのLet's Noteのように "'" アポスト ロフィーがはいると 実行時エラー 3001で止まります。 "機種名='Let's NOTE LIGHT R3 CF-R3FC1AXS'" Let's Note が一台も登録されていないときはエラーに なりませんが、一台でも登録されているとダメです。 このような場合、どうして回避するものでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 すみません。試してないし、自信ないのですが、、、 > RS.Find "機種名='" & str機種名(i) & "'" 変数 str機種名(i) にあるアポストロフィーをエスケープすれば 良いのでは? こんな感じで。 str機種名(i) = Replace(str機種名(i), "'", "''") RS.Find "[機種名]='" & str機種名(i) & "'" はずしてたら、済みません。
その他の回答 (1)
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ No.1の KenKen_SPさんとは別のやり方です。 同じく検証してないので自信ありませんが‥ "機種名=""" & str機種名 & """" でどうでしょうか? シングルクォーテーションの代わりに、ダブルクォーテーションを 2つにしています。 > もともと "''"とか "'''"とかだったらどうなるんでしょうか? の場合にも対応できると思います。 もちろん、クォーテーションを含まない場合にも。 ACCESSのヘルプで 「クォーテーションマーク」 をキーワードにして検索し、<文字列内のクォーテーション> という項目を読んでみてください。 2002だとちょっとちがうかもしれませんが‥
補足
その通りでした。 ありがとうございました。 ただ、もともと "''"とか "'''"とかだったらどうなるんでしょうか? あまりそういうのはないとは思いますが。。。