vba - MS 访问控制值
问题描述
MS Access 和 VBA 似乎具有内置的数据类型转换功能。例如,我的表单中有一个文本框控件,我看到它以以下两种方式之一进行引用:
If Form!transaction_type = "Credit Card"
If Form!transaction_type.Value = "Credit Card"
transaction_type控件的Value属性有什么意义?有人可以指导我查看有关 Value 属性的一些文档,什么时候使用它,什么时候不使用它等等。
解决方案
为方便起见,对象通常具有默认属性。这允许您的第一个示例的表示法,乍一看似乎为对象本身分配了一个字符串值。幕后实际发生的是 VBA 将数据分配给默认属性,在本例中为.Value
. 您可以自己使用您创建的类在 VBA 中模仿这种行为。VBA 编辑器中有一种方法可以做到这一点,但在我目前坐的机器上,我没有安装 Office。它的作用基本上是用这些值编辑类文件:https ://www.vbforums.com/showthread.php?839161-Default-Class-Properties-and-Let-Get
我个人不太喜欢依赖那个机制,因为它会导致你正在经历的那种困惑。虽然这将是一种非常糟糕的处理方式,但想象一下原始作者在对象的未来版本中更改了默认属性。突然之间,您的代码充其量是中断和错误,最坏的情况是仍然可以工作,但会导致难以跟踪错误。如果您不依赖默认属性,而是直接处理它,您的代码将不会受到该更改的影响并继续正常工作。
编辑:( 我最初链接到用于创建默认属性的 VB.NET 文档,即Default Property)
推荐阅读
- node.js - `variables` 在 `graphql-subscriptions` withFilter 函数中如何工作?
- php - PHP 使用 $_GET 获取包含变量的 URL
- php - PHP 联系表返回 500 内部错误
- javascript - 如何将我的 Webpack/Vue 代码拆分为单独的 vendor.js 文件并将其从 app.js 中删除?
- tensorflow - Keras VAE 的输入尺寸不正确
- php - 我是否以正确的方式使用 Auraphp 进行依赖注入?
- xslt - WiX 安装程序:使用 xslt 和 heat.exe 如何在找到父/子匹配后更改父 ID 的值?
- angular-material - Material Angular 8:没有主要内容时,抽屉内容消失
- java - 在 Java 中持续高效地写入文件
- c - 如何获取“字符串”数组并将它们放入C中的字符数组中?