Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8070 / 9994 ←次へ | 前へ→

【5105】ダーティーリードの解決法
質問  twining  - 05/5/25(水) 19:02 -

引用なし
パスワード
   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

宜しくお願い致します。

302 hits

【5105】ダーティーリードの解決法 twining 05/5/25(水) 19:02 質問

8070 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078242
(SS)C-BOARD v3.8 is Free