0
別のテーブルから値を取得してテーブルの値を更新するコードがあります。このコードは、別のテーブルに基づいてレコードセット内の各アイテムに対して実行されるループ内にあります。このコードは初めて動作しますが、次にテーブルが別の用途やユーザーインターフェイスによって保持されているため、アクセスが拒否されたという最初の行でエラーが発生したときに発生します。コードはDAOを使用します。レコードセットのクローズ後にdbDenyWriteがまだ有効になっています
誰かが、レコードセットを閉じてその参照を破棄した後もまだ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