Find系メソッドで抽出条件を指定する場合や、SQLステートメントで文字列を記述
する場合など、文字列をクォーテーションで囲むことがあります。
それは、文字列の中に文字列が含まれていることを表すためです。
例えば、数値や変数や文字列を連結して文字列を作成する場合、次のように
クォーテーションを使用します。SQLステートメントで文字列を記述する場合を
例にして紹介します。
テーブル作成クエリのSQLステートメントを作成して、RunSQLメソッドで
アクションクエリを実行するとします。
テーブル作成クエリのSQLステートメントは、顧客マスタの
フィールド「氏名」が「笹野」と付くデータを全て抽出して、「顧客抽出」テーブル
を作成します。
SQLステートメントは次のようになります。
● サンプル ●
SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like '笹野*';
RunSQLメソッドの構文は次のとおりです。
<構文>
【例1】シングルクォーテーションを含める
Sub Sample1()
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like '笹野*';"
End Sub
★「笹野」が変数の場合(変数:myName)
Sub Sample2()
Dim myName As String
myName = "笹野"
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like '" & _
myName & "*';"
End Sub
【例2】ダブルクォーテーションを含める
(2つの連続するダブルクォーテーションを使って、1つのダブル
クォーテーションを表す。)
Sub Sample1()
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like """ & _
"笹野*" & """" & ";"
End Sub
★「笹野」が変数の場合(変数:myName)
Sub Sample2()
Dim myName As String
myName = "笹野"
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like """ & _
myName & "*""" & ";"
End Sub
【例3】クォーテーションマークを表す変数を含める
(ダブルクォーテーションのANSI文字表記はChr$(34)です。)
Sub Sample1()
Dim strQuote As String
strQuote = Chr(34)
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like " & _
strQuote & "笹野*" & strQuote & ";"
End Sub
★「笹野」が変数の場合(変数:myName)
Sub Sample2()
Dim myName As String
Dim strQuote As String
myName = "佐野"
strQuote = Chr(34)
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 氏名 Like " & _
strQuote & myName & "*" & strQuote & ";"
End Sub
数値はクォーテーションで囲む必要はありません。
【例】
Sub Sample1()
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 顧客番号 = 1;"
End Sub
Sub Sample2()
Dim myNo As Integer
myNo = 2
DoCmd.RunSQL _
"SELECT 氏名 INTO 顧客抽出 FROM 顧客マスタ WHERE 顧客番号 =" & myNo & ";"
End Sub
|