Есть ли способ иметь подписчика событий в непосредственном окне (например, с помощью Debug.Print) в VBA в Microsoft Access для отладки?Абонент событий В Microsoft Access VBA
ответ
Этот код является одной остановки для всех излучающих объектов Microsoft Access ...
Option Explicit
'* In a class module
Private WithEvents o_PageEvents As Access.Page
Private WithEvents o__ControlInReportEvents As Access.[_ControlInReportEvents]
Private WithEvents o_LabelEvents As Access.Label
Private WithEvents o_RectangleEvents As Access.Rectangle
Private WithEvents o_LineEvents As Access.Line
Private WithEvents o_ImageEvents As Access.Image
Private WithEvents o_CommandButtonEvents As Access.CommandButton
Private WithEvents o_OptionButtonEvents As Access.OptionButton
Private WithEvents o_OptionButtonInOptionEvents As Access.[_OptionButtonInOption]
Private WithEvents o_CheckBoxEvents As Access.CheckBox
Private WithEvents o_CheckBoxInOptionEvents As Access.[_CheckBoxInOption]
Private WithEvents o_OptionGroupEvents As Access.OptionGroup
Private WithEvents o_BoundObjectFrameEvents As Access.BoundObjectFrame
Private WithEvents o_TextBoxEvents As Access.TextBox
Private WithEvents o_ListBoxEvents As Access.ListBox
Private WithEvents o_ComboBoxEvents As Access.ComboBox
Private WithEvents o_ObjectFrameEvents As Access.ObjectFrame
Private WithEvents o_PageBreakEvents As Access.PageBreak
Private WithEvents o_ToggleButtonEvents As Access.ToggleButton
Private WithEvents o_ToggleButtonInOptionEvents As Access.[_ToggleButtonInOption]
Private WithEvents o_PaletteButtonEvents As Access.PaletteButton
Private WithEvents o_SubFormEvents As Access.SubForm
Private WithEvents o_SubReportEvents As Access.SubReport
Private WithEvents o_CustomControlEvents As Access.CustomControl
Private WithEvents o_CustomControlInReportEvents As Access.[_CustomControlInReport]
Private WithEvents o_TabControlEvents As Access.TabControl
Private WithEvents o_SectionEvents As Access.Section
Private WithEvents o_SectionInReportEvents As Access.[_SectionInReport]
Private WithEvents o_PageHdrFtrInReportEvents As Access.[_PageHdrFtrInReport]
Private WithEvents o_FormEvents As Access.Form
Private WithEvents o_ReportEvents As Access.Report
Private WithEvents o_References_Events As Access.References
Private WithEvents oDispAttachmentEvents As Access.Attachment
Private WithEvents oDispEmptyCellEvents As Access.EmptyCell
Private WithEvents oDispWebBrowserControlEvents As Access.WebBrowserControl
Private WithEvents oDispNavigationButtonEvents As Access.NavigationButton
Private WithEvents oDispNavigationControlEvents As Access.NavigationControl
Некоторые примеры их использования приведены в этих ссылок | Adding Classes WithEvents to MS Access Form | MS Access WithEvents in Class Module for OnClick Event |.
Также переполнение стека аналогичный вопрос Click event handler withevents
@S Meaden Благодарим за отзыв. Извините меня, если это тривиальный вопрос, но я все еще смущен тем, как использовать приведенный выше фрагмент кода, чтобы, скажем, распечатать все события, выпущенные из определенного объекта, передав его ссылку. Не могли бы вы изменить пример ответа. Я был бы очень признателен. – falhumai
Я обычно не делаю Access и не могу сразу заставить его работать. Я привел некоторые ссылки, показывающие примеры. –
Спасибо вам большое! – falhumai
Nope. Окно Immediate в основном представляет собой консоль и даже не содержит элемент управления для отображения текста - он нарисован непосредственно на клиентской области. Вам нужно будет подключить IO напрямую от отладчика. Программисты VBA \ 6 пробовали это на протяжении десятилетий без успеха ... – Comintern
Подпишитесь на какие события? Изучите ключевое слово 'WithEvents', используемое для объявления переменной, например. 'Dim WithEvents foo as Access.Form' –