|
Access2000です。
複数のPCからテーブルにデータを登録したいので、
テーブルのopen時にロックを掛けているつもりなのですが、
どうもダーティーリードされているようで、うまく更新されません。
解決法を教えて下さい。
一部、省略していますが以下の様にコーディングしています。
Dim dbs As Database
Dim rstCNT As Recordset
Dim INDEX As Long
On Error Resume Next
Do
Err.Number = 0
Set dbs = Nothing
Set dbs = Workspaces(0).OpenDatabase("データベースパス")
Set rstCNT = Nothing
Set rstCNT = DAO_db1.OpenRecordset("テーブル", dbOpenTable, dbDenyRead, dbPessimistic)
Loop Until Err.Number = 0
rstCNT.INDEX = "PrimaryKey"
rstCNT.Seek "=", 1 ←レコードは1件しかなく1が固定でユニークに成っています。
If rstCNT.NoMatch = False Then
INDEX = Nz(rstCNT!項目名, 0) + 1 ←同時に実行された場合、ここでINDEXに同じ値がセットされる場合があります。
rstCNT.Edit
rstCNT!項目名 = INDEX ←2度、実行されているのに1しか増えていない場合があります。
rstCNT.Update
End If
Set rstCNT = Nothing
Set dbs = Nothing
宜しくお願い致します。
|
|