你應該使用...
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
語句的不同部分之間的換行符。數據庫引擎完全滿意換行而不是空格。你可能會發現閱讀陳述更簡單,而不是一條長線。
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")
看來qdf
必須是DAO.QueryDef對象,所以我覺得你應該使用Set
關鍵字分配給它。
Set qdf = db.CreateQueryDef("Company_State_Q")
問:你是否收到任何錯誤信息?問:你是否有任何理由不把「來自公司信息」的內容放在方括號內?一個像這樣的空間名稱可能會毀了你的整個一天;) – paulsm4 2012-07-06 00:26:50
paulsm4的建議是正確的,只要「stateV」給出所需的字符串,那麼你的問題是沒有用[] – 2012-07-06 08:59:43