• ベストアンサー

Access2002 Find メソッドでエラー

パソコン名をTableに登録していますが、重複チェック はSQLでレコードを絞ったあとにFindをかけています。 次の式ですが、    RS.Find "機種名='" & str機種名(i) & "'" 条件にパナソニックのLet's Noteのように "'" アポスト ロフィーがはいると 実行時エラー 3001で止まります。    "機種名='Let's NOTE LIGHT R3 CF-R3FC1AXS'" Let's Note が一台も登録されていないときはエラーに なりませんが、一台でも登録されているとダメです。 このような場合、どうして回避するものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 すみません。試してないし、自信ないのですが、、、 > RS.Find "機種名='" & str機種名(i) & "'" 変数 str機種名(i) にあるアポストロフィーをエスケープすれば 良いのでは? こんな感じで。 str機種名(i) = Replace(str機種名(i), "'", "''") RS.Find "[機種名]='" & str機種名(i) & "'" はずしてたら、済みません。

noname#27115
質問者

補足

その通りでした。 ありがとうございました。 ただ、もともと "''"とか "'''"とかだったらどうなるんでしょうか? あまりそういうのはないとは思いますが。。。

その他の回答 (1)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

こんにちは~ No.1の KenKen_SPさんとは別のやり方です。 同じく検証してないので自信ありませんが‥ "機種名=""" & str機種名 & """" でどうでしょうか? シングルクォーテーションの代わりに、ダブルクォーテーションを 2つにしています。 > もともと "''"とか "'''"とかだったらどうなるんでしょうか? の場合にも対応できると思います。 もちろん、クォーテーションを含まない場合にも。 ACCESSのヘルプで 「クォーテーションマーク」 をキーワードにして検索し、<文字列内のクォーテーション> という項目を読んでみてください。 2002だとちょっとちがうかもしれませんが‥

関連するQ&A

専門家に質問してみよう