在Excel工作簿中执行更新时出错

在Excel工作簿中执行更新时出错,excel,excel-2007,adodb,vba,Excel,Excel 2007,Adodb,Vba,在下面的代码中,我正在测试如何更新当前Excel工作簿中选项卡中的数据。 select语句有效。 update语句不起作用。它会产生以下错误: Run-time error -2147457259 The Microsoft Office Access engine stopped the process because you and another user are attempting to change the same data at the same time. VBA宏位于包含

在下面的代码中,我正在测试如何更新当前Excel工作簿中选项卡中的数据。 select语句有效。 update语句不起作用。它会产生以下错误:

Run-time error -2147457259 
The Microsoft Office Access engine stopped the process because you and another user are attempting to change the same data at the same time.
VBA宏位于包含数据的同一工作簿中。 这就是问题所在吗? 谢谢

选项显式
全局cn作为对象,rs作为对象,输出作为字符串,sql作为字符串
子主逻辑()
呼叫数据库连接
调用DB_Select
呼叫DB_断开连接
呼叫数据库连接
调用数据库更新
呼叫DB_断开连接
端接头
子数据库连接()
Set cn=CreateObject(“ADODB.Connection”)
与cn
.Provider=“Microsoft.ACE.OLEDB.12.0”
.ConnectionString=“Data Source=“&ThisWorkbook.Path&“\”&ThisWorkbook.Name&“;”&_
“Extended Properties='Excel 12.0 Xml;HDR=YES;READONLY=FALSE'
打开
以
端接头
子DB_断开连接()
rs.Close
cn.Close
设置cn=Nothing
设置rs=无
端接头
子数据库_选择()
sql=“从[Trans$]”和“其中BrkrID='Brkr C'和TransStatus=1,Transtype='Fund'”中选择*
设置rs=cn.Execute(sql)
做
产出=rs(0)&“&rs(1)&”&rs(2)&“&rs(3)&”&rs(4)&“&rs(5)&”&rs(6)&”&rs(7)
调试。打印输出
下一个
循环至rs.EOF
端接头
子数据库_更新()

sql=“Update[Trans$]Set TransStatus=2;”我认为当您需要从同一WB提取数据时,可以使用另一种方法。我会仔细研究一下,但我记得当我在编写针对excel文件的sql时遇到问题时看到了这一点。顺便说一句,代码结构也不错:DI这一点与您的兴趣有关@Dougats,谢谢您的评论并愿意提供帮助。您提供的链接没有解决更新问题。奇怪的是,连接字符串没有为共享访问提供参数。如果你发现什么,请告诉我。谢谢。我认为当你需要从同一个WB中提取时,还有另一种方法可以使用。我会仔细研究一下,但我记得当我在编写针对excel文件的sql时遇到问题时看到了这一点。顺便说一句,代码结构也不错:DI这一点与您的兴趣有关@Dougats,谢谢您的评论并愿意提供帮助。您提供的链接没有解决更新问题。奇怪的是,连接字符串没有为共享访问提供参数。如果你发现什么,请告诉我。谢谢
Option Explicit

 Global cn As Object, rs As Object, output As String, sql As String
Sub MainLogic()
    Call DB_Connect
    Call DB_Select
    Call DB_Disconnect

    Call DB_Connect
    Call DB_Update
    Call DB_Disconnect

End Sub
Sub DB_Connect()
   Set cn = CreateObject("ADODB.Connection")
   With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
        "Extended Properties='Excel 12.0 Xml;HDR=YES;READONLY=FALSE';"

        .Open
    End With

End Sub
Sub DB_Disconnect()
    rs.Close
    cn.Close
    Set cn = Nothing
    Set rs = Nothing
End Sub
Sub DB_Select()

    sql = "SELECT * FROM [Trans$]" & " WHERE BrkrID='Brkr C' and TransStatus =1 And Transtype='Fund'"
    Set rs = cn.Execute(sql)
    Do
       output = rs(0) & ";" & rs(1) & ";" & rs(2) & ";" & rs(3) & ";" & rs(4) & ";" & rs(5) & ";" & rs(6) & ";" & rs(7)
       Debug.Print output
       rs.MoveNext
    Loop Until rs.EOF
End Sub

Sub DB_Update()

    sql = "Update [Trans$] Set TransStatus = 2;" '<-- Porblem is here
    Set rs = cn.Execute(sql)

End Sub