|
▼YU-TANG さん:
ありがとうございました。
ご指示のとおり、
Replace(Me!コンボ7,"'","''",1,-1,vbBinaryCompare)
と、修正したところうまく動きました。
難問解決でホッとしているのですが、いまひとつ理屈がわかりませんので、もう少しおつきあい願えますか。
まず、Replace関数については、概ね理解しているつもりです。
以下の例では、Where句の部分を単純化するため、Likeをイコールに、ワイルドカード(*)省略としています。
a.
Me!コンボ7の中身が「What is this?」だとすれば、
MUSIC_TITLE="What is this?"
式全体を文字列として扱うので、内側のダブル…をシングル…にして、
"MUSIC_TITLE='What is this?'"
この場合、なんら問題なし。
b.
Me!コンボ7の中身が「What's this?」と「'」を含む場合、
MUSIC_TITLE="What's this?"
"MUSIC_TITLE='What's this?'"
となり、エラーが生じる。
回避策として、
Replace(Me!コンボ7,"'","''",1,-1,vbBinaryCompare)
置換すると以下のようになりますよね。
"MUSIC_TITLE='What''s this?'"
シングルコーテーションの数は対になり、エラーは生じませんが、これで[MUSIC_TITLE]に格納されている「What's this?」が検索できるのが理解できません。
「What」+「s this?」で検索していると考えればよいのでしょうか?
それとも、根本的に考え方が間違っている?
|
|