我正在尝试使用 VBA 从 excel 查询访问文件,但出现错误rs.Open queryStatement, conn, adOpenStatic, adLockOptimistic
。错误是“运行时错误‘-2147217904 (80040e10)’:没有为一个或多个必需参数给出值。”
Function queryAccess()
'inputs: filterID, desired output
Dim toSheet As Worksheet
Set toSheet = ThisWorkbook.Sheets("Sheet3")
Dim filterID As String
filterID = "CH0002"
Dim conn As ADODB.Connection
Dim rs As ADODB.recordSet
Dim connStr As String
Dim queryStatement As String
Dim cmd As ADODB.Command
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\rtpwfil03\etu2\cat\projects\asbestos\STREAMS TO101\Testing\TO101 Testing Data.mdb;Persist Security Info=False;"
'conn.Provider=""Microsoft.Jet.OLEDB.4.0"
Set conn = New ADODB.Connection
Set rs = New ADODB.recordSet
Set cmd = New ADODB.Command
queryStatement = "SELECT Filters.NominalLoading FROM Filters WHERE Filters.FilterID=" & filterID & ";"
conn.Open connStr
Debug.Print connStr
Debug.Print queryStatement
rs.Open queryStatement, conn, adOpenStatic, adLockOptimistic
toSheet.Range(toSheet.Cells(1, 1)).CopyFromRecordset rs
conn.Close
rs.Close
End Function
当我在 connStr 和 queryStatement 上执行 debug.print 时,我分别得到:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\rtpwfil03\etu2\cat\projects\asbestos\STREAMS TO101\Testing\TO101 Testing Data.mdb;Persist Security Info=False;
SELECT Filters.NominalLoading FROM Filters WHERE Filters.FilterID=CH0002;
我从以下位置获取了连接字符串http://www.connectionstrings.com/access-2007 http://www.connectionstrings.com/access-2007“标准安全”
关于如何修复此错误有什么想法吗?
您需要将查询中的 CH002 字符串用单引号引起来。改变:
queryStatement = "SELECT Filters.NominalLoading FROM Filters WHERE Filters.FilterID=" & filterID & ";"
to
queryStatement = "SELECT Filters.NominalLoading FROM Filters WHERE Filters.FilterID='" & filterID & "';"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)