我在用户窗体上有一个多页控件。当用户导航到新页面时,我希望将当前页面上的数据保存到数据库中。用户可以通过各种方式在页面之间导航,我不想为所有这些页面编写一个过程。在选择新页面之前,是否有可以用来引用活动页面的事件?
我查看了多页控件的 Change 事件,但如果您在其中引用 multipage.selecteditem,它指的是新页面。我需要的是 BeforeChange 事件,但没有。
我还查看了 multipage.exit 事件,但它会在退出整个多页控件时触发,而不仅仅是一个页面。
有任何想法吗?
使用MultiPage1_Change事件。
如果您为 Multipage 指定了一个名称,那么您可以将子例程从MultiPage1_Change(这是默认值)更改为YourMultiPageName_Change.
例如我有一个叫做“MultiPageBannerFilter”的。我使用这个子程序执行一些代码来捕获这个对象的 _Change 事件。
Private Sub MultiPageBannerFilter_Change()
MsgBox "You have changed pages!", vbInformation
End Sub
Run Code Online (Sandbox Code Playgroud)
只需将您的代码用于将信息保存到数据库而不是消息框,并确保事件子例程正确命名并且这应该可以工作。
修订
Public previousPage As String
Sub UserForm_Activate()
previousPage = MultiPage1.SelectedItem.Name
End Sub
Private Sub MultiPage1_Change()
Dim currentPage As String
currentPage = MultiPage1.SelectedItem.Name
If Not currentPage = previousPage Then
previousPage = currentPage
'
'
MsgBox "Your Code Goes Here!", vbInformation
'
'
End If
End Sub
Run Code Online (Sandbox Code Playgroud)