我的问题是控制源属性和更新后事件在发生顺序方面如何相互关联?哪个先发生?我想要一个消息框,要求用户确认他是否要保存他刚刚在文本框中输入的数据。文本框的控制源属性设置为某个字段。如果用户取消操作,则不应保存他输入的文本. 如果我把msgbox放在文本框的OnChange事件中,提示用户确认数据输入会不会太早了?注意:控制源是日期类型的字段。
问问题
103 次
1 回答
1
ControlSource 与 Change、BeforeUpdate 或 AfterUpdate 事件并不真正直接相关。
您需要使用的事件是 BeforeUpdate 事件。
Private Sub txtFirstName_BeforeUpdate(Cancel as Integer)
If MsgBox("Are you sure you want to save this data?", vbYesNo, "Um...") = vbNo Then
Cancel = True
End If
End Sub
我想补充一点,在大多数情况下,最好使用 Form 的 BeforeUpdate 事件来验证事情,而不是在控件的 BeforeUpdate 事件上进行验证,因为它往往对用户更友好。Form 的 BeforeUpdate 事件的工作方式与我在上面发布的代码相同。
此外,在验证例程中使用 MsgBox 是大多数人这样做的方式,但它确实不被认为是一种好的设计实践。最好有一个文本框或标签,您可以使用它来输出验证消息,然后也可以播放声音,以便用户知道他们输入的数据无效。
于 2012-05-02T10:29:19.507 回答