我有一个弹出式窗口,其中包含一个清除数据按钮。它运行撤消命令。在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