为 MS Access 制作 QRCode ActiveX 控件:控件源属性

Com*_*tix 5 vb6 ms-access vba activex qr-code

我想在Access2010中实现QR码,我找到了https://github.com/yas78/QRCodeLibVBA。从 Access 引用 XLAM 不起作用,我不想将所有模块直接插入 Access,因为这会使项目变得混乱。因此,我决定使用古老的 VB6 创建一个 OCX 文件,因为这似乎是将所有位封装到一个简单对象中的最简单方法。

最后,我制作了一个OCX,它有几个关键属性:这是DataString要显示的字符串、、、、、ByteModeCharsetName还有方法ErrorCorrectionLevel、事件和ForeRGBBackRGBRefreshClsOnClickOnDblClick

它在 VB6 应用程序 + Excel 工作表 + Excel 表单中工作正常,但在 Access 表单、报告等中表现得很奇怪。

Excel 中的一切看起来都如人们所期望的那样: Excel 打印屏幕

这是它在 Access 中的样子: MS Access 打印屏幕

  • 自定义属性在“其他”选项卡上可见,但 VBA 编辑器中根本不提供它们!但是,手动输入时它会编译。
  • 调整控件大小的行为很奇怪
  • 控件的事件(如OnClick属性表的“事件”选项卡中不显示)

这是我的问题:

  1. 访问控制与其他办公应用程序“不同”吗?
  2. 为什么属性隐藏在编辑器中?
  3. 如何将某些属性“移动”到其他选项卡(类别),例如ForeRGB选项卡格式(如通常的文本框等)?
  4. 如何创建ControlSource可以直接绑定到记录集而无需使用 VBA 的属性(在“数据”选项卡上)?这样,我希望我也可以在连续表单上使用该控件。事实上,这是最重要的问题。
  5. 调整大小的一些技巧?(不重要)

我认为我已经非常接近我的目标了,但我现在陷入了困境。我知道 VB6 已过时,但在阅读了为 ms access 2010 创建自定义控件后,VB6 似乎是一个简单的选择。编写 OCX 有其他选择吗?

编辑:最终工作控制可在此处 https://github.com/Combinatix/QRCodeAX

wqw*_*wqw 1

对于 4. 尝试将控件设置DataBindingBehaviorvbSimpleBound,以便可以通过和ControlSource绑定标量属性(在您的情况下)DataSourceDataMember

对于 3. 使用Tools->Procedure Attributes...菜单,ControlSource在“名称”中选择,展开并在组合框中Advanced>>选择“数据”Property Category您可以通过对象浏览器 (F2)执行相同的操作。找到您的控件,右键单击您的属性/方法(应为粗体)并选择Properties...上下文菜单选项。这与方法一起使用,并且比Tools->Procedure Attributes...方法更通用。