所以我已經開始學習訪問權限了,因爲負責它的人通過了路,而且有人不得不繼續這樣做。 我注意到他創建的所有數據庫中有一個非常糟糕的(至少是IMO)行爲:每個表單都直接綁定到表或保存的查詢。這樣,如果用戶打開表單,他必須完成他應該完成的所有步驟,因爲如果他關閉了表單中間過程(或計算機凍結或其他任何類型),則實際數據會被泄露因爲它會完成一半。這往往會破壞流程鏈中的所有內容,導致無法執行連續的步驟,並迫使我直接在表中手動更正數據。在ms-access中使用表單編輯數據的最佳實踐
,因爲我已經開始升級他的東西和發展我自己的,我一直在努力學習的方式來使數據只在表格進行編輯,從而有可能取消該過程隨時或全部保存更改一次到最後。
如果版本很簡單,我發現我可以創建一個記錄集,將相關數據複製到表單中的未綁定字段,最後如果用戶選擇將表單字段中的數據複製回記錄。
其他時候需要更復雜的解決方案,因爲我需要以連續的形式同時編輯多個數據片段,「保存」它們,運行更多的代碼,可能會添加字段以保存源自該處理的信息等等上。然後我學會了使用臨時表,但不喜歡它,因爲它傾向於使數據庫膨脹。我甚至在代碼執行期間繼續創建臨時數據庫,這些臨時數據庫將承載臨時表並最終銷燬,但這增加了太多不必要的複雜性。
現在我使用斷開的ADO記錄集來保存臨時數據和字段。它工作但有其侷限性。
所以我想知道,什麼是最好的方式 - 比我更有經驗 - 人們用來處理這種情況?在內存中使用ADO記錄集真的是最好的方法嗎?
Access的威力是綁定的形式。要僅保存經過驗證的(完整)數據,請創建一個驗證函數,並且在BeforeUpdate中,如果驗證失敗,請將Cancel設置爲True。隨意選擇未綁定的表單,但使用Access之外的其他工具,例如Visual Studio和WinForms。 – Gustav
我開發了一個數據庫來管理我們的用戶羣和他們對我們其他數據庫的使用權限。在那裏有一個表單來管理選定用戶的權限。其中,加載所有相關權限,管理員可以根據需要刪除,創建或編輯現有的權限。所有這些都發生在臨時表中,所以如果用戶在不保存的情況下關閉表單,則不會有任何更改。你能告訴我如何用一個綁定到「真實」表的表單來處理這個問題嗎? – fmonacos
您可以將更新包裝在事務中。然後,如果沒有提交就關閉表單,則回滾更改。 – Gustav