知識社群登入
[Access VBA] 如何得知表單資料內容已更新?
by 艾鍗學院, 2012-12-11 19:58, 人氣(2375)


 Private Sub Form_BeforeUpdate(Cancel As Integer)
 Call Check_Dirty(Me)
End Sub


Public Sub Check_Dirty(myform As Form)

      If myform.Dirty Then
         If MsgBox("本筆資料已修改!要儲存嗎?", vbYesNo, "確認儲存") = vbNo Then
            myform.Undo
         End If
         
     End If
End Sub
   
 為什麼是在BeforeUpdate 事件裡檢查? 

   因為.Form.dirty 指的是資料改變到尚未儲存該筆資料的這段期間, 
  所以在"更新前"先提示使用者, 若是在AfterUpdate 事件,那時候表示資料已儲存了. 
  故Form.dirty 會是false 的狀態,不是true

  
###

When do we use each of them, and what does it mean.
Rather, how do i know what to use when....

dbOpenDynaset
dbOpenDynamic
dbOpenForwardOnly
dbOpenSnapshot
dbOpenTable
dbOpenOptimistic