多个用户更新Excel表 - 可能已断开连接的ADO记录集?

时间:2014-10-31 18:43:13

标签: excel vba excel-vba

我有以下excel表格,该表格已设为共享,并且可供团队内多个用户访问:

Sheet http://im47.gulfup.com/xQTWqT.png

由于工作表经常使用新记录进行更新,因此我设置了以下共享选项,并且正在保存工作表,其他用户更改每五分钟更新一次(您可以设置的最小值):< / p>

Options http://im47.gulfup.com/SBX4jf.png

当2个用户尝试在5分钟内同时更新数据库时会出现问题,然后excel将提示他们此单元已包含数据并将提供解决更改的信息。

有没有办法避免这种情况发生。

我已经搜索并遇到了断开连接的ADO Recordset,但我不清楚他们如何在我的场景中提供帮助。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

别介意我弄清楚了:

在一个工作簿中创建一个用户输入表单,并创建另一个用于存储数据的工作簿(我们称之为Book1)。

接下来是代码:

    Private Sub CommandButton1_Click()

'  Add the ActiveX Object Library
'  Tools ---> References ---> Microsoft ActiveX Data Objects 2.5 Library

    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    With cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=C:\Users\Name\Downloads\Book1.xls;" & _
    "Extended Properties=Excel 8.0;"
        .Open
    End With

    strSQL = "INSERT INTO [Sheet1$](Name, Age, Nationality, Amount) values('" & UserForm1.TextBox1.Value & "','" & UserForm1.TextBox2.Value & "','" & UserForm1.TextBox3.Value & "','" & UserForm1.TextBox4.Value & "')"
    cn.Execute strSQL

    End Sub