我有一些代码从另一个表中获取值,然后更新表中的值。此代码位于循环中,该循环基于另一个表对记录集中的每个项执行。代码第一次工作,但下一次在第一行上出现错误,表示访问被拒绝,因为该表由另一个用户或用户界面持有。该代码使用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
答案 0 :(得分:0)
..为什么dbDenyWrite在关闭记录集后仍然有效 并摧毁它的参考?
因为你只在NoMatch的情况下这样做。
所以要么改变dbDenyWrite以允许编辑,要么(慢)重置记录集,然后再开始编辑它:
<?php wp_nav_menu( array('container' => false, 'container_class' => false, 'menu' => 1, 'menu_class' => 'nav nav-bar-right') ); ?>