シングルクォーテーションとダブルクォーテーション
 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


Access2000



戻る


Excel Word Access VBA! モーグ