2013-10-29 62 views
1

有兩個領域,可能會改變我的VBA功能完成之前,我想要一種方法來防止這種情況發生。微軟訪問 - 原子功能

我知道Java有對象鎖,同步塊等,可用於協助這一點,但我一直無法在MS Access中找到這一點。

有沒有人知道MS Access中的任何技巧來完成相同的任務?


答:

Set rs = db.OpenRecordset("tblOptions", dbOpenTable, dbDenyWrite, dbPessimistic) 
rs.Edit 
pNum = rs!lastPolicyNumber 
... 
rs!lastPolicyNumber = pNum 
rs.Update 
rs.Close 
+0

用VBA你可以調用Windows API,比如CreateEvent,WaitForSingleObject等 – cha

+0

什麼是後端,如果是訪問,字段可能會如何改變? –

+0

@John - 後端是Access,但它的功能是作爲查詢來獲取值,執行一些操作,然後將值寫回數據庫。兩個用戶調用相同的函數會導致競爭條件。 – Searle

回答

1

您可以dbPessimistic打開記錄,並在要鎖定行調用.Edit。因此,您無法調用.Update或.CancelUpdate記錄(帶記錄的頁面)將被鎖定。