你应该使用...
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