Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA“;“查询太复杂”;使用rs.UpdateBatch(MS SQL)时出错_Vba_Excel - Fatal编程技术网

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

VBA“;“查询太复杂”;使用rs.UpdateBatch(MS SQL)时出错,vba,excel,Vba,Excel,在尝试运行下面的代码时出现“Query too complex”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

在尝试运行下面的代码时出现“Query too complex”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
我的连接字符串在代码中的其他地方使用,对于正常的update/select etc语句来说工作正常。我的调试打印显示集合不是空的,并通过其他调试值检查返回正确的值。但一旦到达rs.UpdateBatch,它就会崩溃为“查询太复杂”错误

编辑:只是想澄清一下,很抱歉,这是在更新作为数据库的excel电子表格(后端)

编辑:注释中要求的下面的连接字符串

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

哪一行返回错误?你能直接在RDBMS中运行查询吗?它出错的那一行是
rs.UpdateBatch
它更新了我正在用作后端的另一个电子表格。我的雇主不喜欢Access数据库,但需要能够完成类似工作的东西,所以不确定我将如何直接测试它?请尝试调用该方法。在进入下一个项目之前,您需要在循环中处理。使用某些数据源、大量数据和没有主键的数据集。您的雇主不喜欢Access,但可以使用Excel作为数据库?@TimWilliams更正哪一行返回错误?你能直接在RDBMS中运行查询吗?它出错的那一行是
rs.UpdateBatch
它更新了我正在用作后端的另一个电子表格。我的雇主不喜欢Access数据库,但需要能够完成类似工作的东西,所以不确定我将如何直接测试它?请尝试调用该方法。在进入下一个项目之前,您需要在循环中处理。使用某些数据源、大量数据和没有主键的数据集。您的雇主不喜欢Access,但可以使用Excel作为数据库?@TimWilliams正确吗