我的问题是控制源属性和事后更新事件在发生顺序方面是如何相互关联的?首先出现哪一个? 我想要一个msgbox要求用户确认他是否要保存他刚输入到文本框中的数据。文本框将控制源prpoerty设置为某个字段。如果用户取消操作,则他输入的文本不应保存。 如果我将msgbox放在文本框的OnChange事件中,提示用户确认数据输入不是太早了吗? 注意:控件源是date类型的字段。
答案 0 :(得分: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是大多数人这样做的方式,但它确实不被认为是一个好的设计实践。最好有一个文本框或标签,您可以使用它来输出验证消息,然后播放声音,以便用户知道他们输入的数据无效。