我有一個彈出式窗口,其中包含一個清除數據按鈕。它運行撤消命令。在Access 2007表格上沒有觸發髒事件
Form_Current事件將此按鈕的enable屬性設置爲False。
Form_Dirty事件將此按鈕的啓用屬性設置爲True。
即使將數據輸入到表單中,該按鈕的屬性始終設置爲False。我認爲這是因爲我的Form_Load事件正在填充兩個字段。一個從主窗體傳遞爲OpenArgs,另一個是基於OpenArgs值計算的唯一ID。
有關如何讓Dirty事件在這些情況下激活的任何建議?如果不是,那麼可能採取另一種方法?
在此先感謝。下面
代碼:
Private Sub cmdUndoChanges_Click()
CustID_temp = Me!CustID
FacNo_temp = Me!Unique_ID
DoCmd.RunCommand acCmdUndo
Me!CustID = CustID_temp
Me!Unique_ID = FacNo_temp
End Sub
Private Sub Form_Current()
Me!cmdUndoChanges.Enabled = False
End Sub
Private Sub Form_Dirty(Cancel As Integer)
Me!cmdUndoChanges.Enabled = True
End Sub
Private Sub Form_Load()
Dim test As Integer
Me!CustID = OpenArgs
test = DCount("Unique_ID", "tbl_Table2", "CustID = '" & Me!CustID & "'")
If IsNull(Me!UNIQUE_No) Then
test = test + 1
Me!Unique_ID = CustID & "-" & test
MsgBox "No Previous Data"
Else
' these will be turned back on when the user selects the
' modify data button or add new data button.
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox, acOptionGroup, acCheckBox
ctl.Locked = True
ctl.BackColor = 15066597
Box40.BackColor = 15066597
End Select
Next ctl
End If
MsgBox Me!Unique_ID
End Sub
在'Form_Dirty'中放置一個斷點以確認事件根本不會觸發。如果它永遠不會觸發,這可能是因爲訪問偶爾會「失去跟蹤」事件過程。如果您返回到表單的屬性表並單擊On Dirty屬性框最右側的3個點,則可以提醒有關現有事件過程的Access。 – HansUp