从 C# MS Access COMAddIn 在 MS Access 表单上引发事件/调用方法

发布于 2024-11-28 05:41:48 字数 184 浏览 0 评论 0原文

我有一个 VS 2008 C# MS Access 加载项,我想知道如何在 MS Access 表单上引发事件或调用方法。简而言之,如何从 C# 中引发事件或调用 Microsoft.Office.Interop.Access.Form 对象上的方法,并获取要在 MS Access 端执行的 VBA 代码。请任何人告诉我这样的事情是否可能以及如何进行。

I have an VS 2008 C# MS Access add-in and I wanted to know how I could raise events or call methods on an MS Access form. Simply put, how do I raise an event or call a method on a Microsoft.Office.Interop.Access.Form object from within C# and get the VBA code to execute o the MS Access side. Please anyone, let me know if such a thing is possible and how.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百思不得你姐 2024-12-05 05:41:48

我从来没有找到一个好的解决方案,不得不采取变通办法。如果我在 C# AddIn 代码中保留对 TextBox 的引用,并更改 C# 代码中的 Text 属性,则如果存在与该 TextBox 关联的 VBA 处理程序,则会引发 Change 事件。如果文本值太大,则 Text 属性将不会触发更改事件。因此,该解决方法的解决方法是使用两个文本框;一个用于引发事件(只需将 Text 属性设置为任何文本,例如“事件”一词),另一个 TextBox 将实际数据存储在其 Value 属性中。这很愚蠢,但很有效。

I never found a good solution for this and had to go with a work-around. If I keep a reference to a TextBox in my C# AddIn code and I change the Text property within my C# code, if there is a VBA handler associated with that TextBox, the Change event will be raised. The Text property will not fire the change event if the text value is too great. So a work-around for that work-around is to use two TextBoxes; one to raise the event (just set the Text property to any text like the word "event") and another TextBox that stores the actual data in it's Value property. This is stupid but it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文