こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA ADOのフィルタのアポストロフィーの意味は

VBAで文字列はダブルコーテーション「”」で括りますが
------------------------------------------------
Sub ADO_Filter()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "T社員名簿", cn, adOpenKeyset, adLockOptimistic
rs.Filter = "質問タイトル LIKE '*田*'"

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
------------------------------------------------

上記の '*田*' のアポストロフィーはどういう時に必要なのでしょうか?
LIKE演算子を使ってるからか
Filterだからか
など理由があれば教えて下さい。

また、「'」を使っているのに、以後がコメントにならないのも不思議です。
よろしくお願い致します。

投稿日時 - 2011-10-30 10:07:44

QNo.7102522

暇なときに回答ください

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

http://www.accessclub.jp/bibouroku/010.html

それは、文字列中に他の文字列を指定する場合の書き方です。

投稿日時 - 2011-10-30 10:21:57

お礼

ありがとうございます。
「文字列中に他の文字列を指定する場合の書き方」を覚えます。

投稿日時 - 2011-10-30 18:24:29

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>'*田*' のアポストロフィーはどういう時に必要なのでしょうか?

ADOってデータベースサーバ(相手がAccessだろうがExcelだろうが同じこと)に対して、
命令を渡していて、それはSQL言語でかかれます。
SQL言語では、文字列は、''でくくります。
FilterはADOの中で処理されるためSQL言語と言っていいのかどうかあやしいですが、
同様です。
たとえば、質問タイトルが「ADOの質問」というタイトルだけ出す処理、
rs.Filter = "質問タイトル = 'ADOの質問'"
でも同じことです。

>また、「'」を使っているのに、以後がコメントにならないのも不思議です。
A = "abc'" & "DEF"
はどうでしょう?
Aには、abc'DEFと入ります。
""内で囲まれている場合、'も1つの文字として扱われます。
なお、余談ですが、"を入れたければ""としますので、
B = """XYZ"""
とするとBには、"XYZ"と入ります。

投稿日時 - 2011-11-04 01:40:10

お礼

ありがとうございます。参考になりました。

投稿日時 - 2011-11-05 00:26:38

あなたにオススメの質問