Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba MS访问控制值_Vba_Ms Access - Fatal编程技术网

Vba MS访问控制值

Vba MS访问控制值,vba,ms-access,Vba,Ms Access,MS Access和VBA似乎具有内置的数据类型转换。例如,我的表单中有一个textbox控件,我看到它以以下两种方式引用: If Form!transaction_type = "Credit Card" If Form!transaction_type.Value = "Credit Card" 事务类型控件的Value属性的意义是什么?有人能告诉我一些关于Value属性的文档,什么时候使用它,什么时候不使用它,等等。为了方便起见,对象通常有一个默

MS Access和VBA似乎具有内置的数据类型转换。例如,我的表单中有一个textbox控件,我看到它以以下两种方式引用:

If Form!transaction_type = "Credit Card"

If Form!transaction_type.Value = "Credit Card"

事务类型控件的Value属性的意义是什么?有人能告诉我一些关于Value属性的文档,什么时候使用它,什么时候不使用它,等等。

为了方便起见,对象通常有一个默认属性。这就允许使用第一个示例的符号,乍一看,它似乎为对象本身指定了一个字符串值。幕后的实际情况是VBA将数据分配给默认属性,在本例中为
.Value
。您可以自己用创建的类在VBA中模拟这种行为。VBA编辑器中有一种方法可以做到这一点,但在我目前坐的机器上,我没有安装Office。它所做的基本上是使用以下值编辑类文件:

我个人不太喜欢依赖那个机械师,因为它会让你感到困惑。虽然这是一种非常糟糕的处理方式,但想象一下原始作者在对象的未来版本中更改了默认属性。突然之间,你的代码在最好的情况下出现了中断和错误,在最坏的情况下仍然可以工作,但会导致难以跟踪的bug。如果您不依赖默认属性,而是始终直接对其进行寻址,那么您的代码将不会受到该更改的影响,并继续正常工作

编辑:
(我最初链接到VB.NET文档以创建默认属性,即)

为方便起见,对象通常具有默认属性。这就允许使用第一个示例的符号,乍一看,它似乎为对象本身指定了一个字符串值。幕后的实际情况是VBA将数据分配给默认属性,在本例中为
.Value
。您可以自己用创建的类在VBA中模拟这种行为。VBA编辑器中有一种方法可以做到这一点,但在我目前坐的机器上,我没有安装Office。它所做的基本上是使用以下值编辑类文件:

我个人不太喜欢依赖那个机械师,因为它会让你感到困惑。虽然这是一种非常糟糕的处理方式,但想象一下原始作者在对象的未来版本中更改了默认属性。突然之间,你的代码在最好的情况下出现了中断和错误,在最坏的情况下仍然可以工作,但会导致难以跟踪的bug。如果您不依赖默认属性,而是始终直接对其进行寻址,那么您的代码将不会受到该更改的影响,并继续正常工作

编辑: (我最初链接到VB.NET文档,用于创建默认属性,即)