即効テクニック |
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