VBA“查询太复杂”错误使用rs.UpdateBatch(MS SQL)

在试图运行下面的代码时得到“查询过于复杂”的VBA错误,不能完全弄清楚为什么?

Public Sub Update9MonthsDB(ByVal colSelection As Collection) Dim rs As ADODB.Recordset Dim strSQL As String Call Open_Conn(strDb) Set rs = New ADODB.Recordset rs.ActiveConnection = CON rs.CursorType = adOpenKeyset rs.CursorLocation = adUseClient rs.LockType = adLockBatchOptimistic rs.Open ("Select * From [PortfolioDB$]") For Each Item In colSelection strSQL = "Grid_Ref='" & Item & "'" rs.Find strSQL Debug.Print rs!Grid_Ref rs("MonthCheck9") = "1" Debug.Print rs!MonthCheck9 Next Item rs.UpdateBatch rs.Close Call Close_Conn End Sub 

我的连接string在代码中的其他地方使用,并正常工作正常更新/select等声明。 我的debugging打印显示集合不是空的,并返回正确的值与其他debugging值检查。 但一旦它到达rs.UpdateBatch,它崩溃了“查询太复杂”的错误。

编辑:只是为了澄清对不起,这是更新一个Excel电子表格充当数据库(后端)

编辑:下面的连接string请求在评论。

 Sub Open_Conn(strDb As String) On Error GoTo conError Debug.Print (Time() & " - Connecting to: " & strDb) Set CON = New ADODB.Connection CON.Provider = "Microsoft.ACE.OLEDB.12.0" CON.Open "Data Source=" & strDb & ";" & _ "Extended Properties=""Excel 12.0 XML;HDR=Yes""" Debug.Print (Time() & " - Connected") Exit Sub conError: logevents ("There was an error processing the connection: " & strSQL & _ vbNewLine & vbTab & vbTab & vbTab & vbTab & Error(Err)) Resume Next End Sub