あなたは使用する必要があります...
Debug.Print strSQLSearch
...strSQLSearch
文字列を作成した後のコードで。次に、イミディエイトウィンドウで文字列を表示できます(Ctrl+を使用してそこに移動しますg)。
イミディエイトウィンドウから、の値stateV
を「CA」に設定し、次のように文字列をテストしました。
stateV = "CA" : ? "SELECT [Company Information].Company_Name, " & _
"[Company Information].Industry" & _
"FROM Company Information" & _
"WHERE [Company Information].State ='" & stateV & "'" & _
"ORDER BY [Company Information].Company_Name;"
SELECT [Company Information].Company_Name, [Company Information].IndustryFROM Company InformationWHERE [Company Information].State ='CA'ORDER BY [Company Information].Company_Name;
完成した文字列を実際に確認すると、strSQLSearch
複数の問題を簡単に見つけることができます。
IndustryFROM
する必要がありますIndustry FROM
FROM Company Information
する必要がありますFROM [Company Information]
InformationWHERE
する必要がありますInformation WHERE
'CA'ORDER
する必要があります'CA' ORDER
SELECT
ステートメントのセクション間に改行を使用することを検討してください。dbエンジンは、スペースではなく改行に完全に満足しています。また、ステートメントを1つの長い行としてではなく、いくつかの短い行として読む方が簡単な場合があります。
Dim strSQLSearch As String
strSQLSearch = "SELECT ci.Company_Name, ci.Industry" & vbCrLf & _
"FROM [Company Information] AS ci" & vbCrLf & _
"WHERE ci.State ='" & stateV & "'" & vbCrLf & _
"ORDER BY ci.Company_Name;"
Debug.Print strSQLSearch
また、コードの最初に...
qdf = db.CreateQueryDef("Company_State_Q")
DAO.QueryDefオブジェクトである必要があるため、キーワードをqdf
使用して割り当てる必要があると思います。Set
Set qdf = db.CreateQueryDef("Company_State_Q")