如果用戶#1刪除了我們的Access 2007數據庫(SQL Server ODBC鏈接表)中的記錄,其他用戶可能會在該記錄中顯示#Deleted#(在數據表視圖窗體上) 。在某些情況下,這可能會導致問題,因爲我擁有在窗體當前事件上運行的代碼,並簡單地假定存在有效記錄(或新記錄)。如果當前記錄在訪問綁定表中被刪除
是否有任何可靠的方法來檢測當前記錄是否已被刪除?我想它包在像這樣的功能:
Public Function IsRecordDeleted(ByRef r As DAO.Recordset)
'what goes here?
End Function
我發現在MSDN中的DAO參考RECORDSTATUS屬性,但該屬性出現如果記錄配置爲批量更新僅是有效的。當我嘗試檢查它的值時:運行時錯誤3251 - 此類對象不支持操作。
我實際上在一年或兩年前在另一個論壇上發佈了關於這個同樣的問題。給出的建議不工作:
- DCOUNT()
- 書籤和記錄的NOMATCH
- 在PK或FK場
好問題,但我不認爲它會適用於當前事件中的Requery。那會導致無限循環。但是,如果我確實檢測到刪除的記錄,那麼我確實需要重新查詢才能解決問題。 – HK1
@ HK1這可能不會有什麼幫助,但我總是建議使用db服務器作爲避免使用DAO鏈接綁定表單的後端。與ADO一起運行任何查詢服務器端而不是本地服務器,並且爲表單提供未綁定的解決方案。 –
感謝您的推薦。我傾向於使用ADO作爲最後的手段。如果DAO和ODBC做我需要的東西,我想我沒有看到需要改變。但是我意識到ADO通常被認爲更穩定和更強大。 – HK1