MS Access更新查询到SharePoint列表锁定,没有错误

时间:2015-07-07 11:55:49

标签: ms-access sharepoint-2010 access-vba

我将多个Excel工作表组合到一个SharePoint列表中,因此我们的数据全部集中在一个位置,并且可以由多个用户同时修改。 Append查询顺利运行。

现在我尝试使用更新查询更新列表中的一个字段,但它一直锁定MS Access(无响应,100%CPU使用率)。我必须从任务管理器终止。

我让它运行了10分钟。那么我切换到下面的一次性使用子程序来更新记录集。同样的问题。

我可以通过MS Access中的链接列表一次手动更新字段。我可以通过SharePoint中的数据表和对话框更新该字段。

SharePoint 2010
MS Access 2013

有没有人有任何想法?

 
Option Compare Database
Option Explicit

Public Sub UpdateDataPlateDates()

On Error GoTo err_trap
    Dim db As DAO.Database: Set db = CurrentDb()
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim i As Integer: i = 1
    Dim vDate As Variant
    Dim sNum As String

    strSQL = "SELECT TML.[SERIAL NUMBER], TML.[DATA PLATE DATE] FROM [Tool Master List] AS TML WHERE (((TML.[DATA PLATE DATE]) Is Null));"

    Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
    With rst
        If Not (.BOF And .EOF) Then
            .MoveLast: .MoveFirst
            Do Until .EOF
                sNum = ![SERIAL NUMBER].Value
                vDate = DLookup("[ACCEPT DATE]", "Tool information", "[SERIAL NUMBER]='" & sNum & "'")
                Debug.Print i, sNum, vDate
                If Not (IsNull(vDate) Or IsEmpty(vDate)) Then
                    vDate = CDate(vDate)

                    .Edit

                        ![DATA Plate Date] = vDate  '//FAILS-LOCKS UP RIGHT HERE WITHOUT and ERROR
                    .Update
                End If

                .MoveNext

                i = i + 1

                sNum = vbNullString
                vDate = Null
                DoEvents
            Loop
        End If
        .Close
    End With
    Set rst = Nothing
    Set db = Nothing
exit_sub:
    Exit Sub
err_trap:
    Debug.Print Err.Number, Err.Description
    Stop
    Resume


End Sub

1 个答案:

答案 0 :(得分:0)

您尝试更新的项目是否可能正由用户编辑?您是否考虑过链接SharePoint表并执行更新查询?