记录集关闭后,dbDenyWrite仍然有效

时间:2016-03-31 14:49:33

标签: ms-access-2013

我有一些代码从另一个表中获取值,然后更新表中的值。此代码位于循环中,该循环基于另一个表对记录集中的每个项执行。代码第一次工作,但下一次在第一行上出现错误,表示访问被拒绝,因为该表由另一个用户或用户界面持有。该代码使用DAO。

任何人都知道为什么dbDenyWrite在关闭记录集并销毁其引用后仍然有效?

以下是代码段:

Set rsRR = DataDB.OpenRecordset("Railroads", dbOpenTable, dbDenyWrite)
rsRR.Index = "Railroads_RRIx"
rsRR.Seek "=", RTrs!RR
If rsRR.NoMatch Then
    '   Write ERROR MESSAGE
    rsRR.Close
    Set rsRR = Nothing
    GoSub CleanUp
    ReverseRouteDataCollect = 0
    Exit Function
End If
If Not dWork Is Nothing Then Set dWork = Nothing
Set dWork = New Scripting.Dictionary
FieldsSave dWork, rsRR
i = FieldsCopy(drr, dWork, "TemplatesRailroad")
If dWork(rsRR.Name & "$LastWaybillNo") = "999999" Then
    rsRR.Edit
        rsRR!LastWaybillNo = 2001
    rsRR.Update
Else
    rsRR.Edit
        rsRR!LastWaybillNo = dWork(rsRR.Name & "$LastWaybillNo") + 1
    rsRR.Update
End If
rsRR.Close
Set rsRR = Nothing

1 个答案:

答案 0 :(得分:0)

  

..为什么dbDenyWrite在关闭记录集后仍然有效   并摧毁它的参考?

因为你只在NoMatch的情况下这样做。

所以要么改变dbDenyWrite以允许编辑,要么(慢)重置记录集,然后再开始编辑它:

<?php wp_nav_menu( array('container' => false, 'container_class' => false, 'menu' => 1, 'menu_class' => 'nav nav-bar-right') ); ?>