在VBA Access中使用.text和.value之间的区别

我正在传递textbox1.text值到一个查询,有时到一个string:

 Dim combor1 As String combor1 = comboReason1.Text 

我怎么知道我应该把combor1 = comboReason1.Value

另外,为什么我需要为控件设置焦点来引用它的属性? 这对我来说没有意义。

此外,当我设置combor4 = comboReason4.Value.value为null,那么我得到一个错误关于无效使用null。

  • “.text”给你显示在屏幕上的内容
  • “。价值”给你的基础价值

两者通常会给出相同的结果,除非相应的控制是

  1. 一个combobox或列表框控件
  2. 显示的值与绑定列不同

例:

  • id_Person是一个窗体中的combobox控件
  • 行源是“SELECT id_Person,personName FROM Tbl_Person”
  • 栏宽为“0cm; 3cm”
  • 绑定列是1

在这个情况下:

  • id_Person.text显示Tbl_Person.personName
  • id_Person.value显示Tbl_Person.id_Person。

.text属性只有在相应的控件具有焦点时才可用。

.text是一个string值,因此它不能是Null,而.value可以是Null

编辑:.text只能在控件具有焦点时调用,而.value可以随时调用…

您可以使用Text属性来设置或返回包含在文本框或combobox的文本框部分中的文本。

要设置或返回控件的Text属性, 控件必须具有焦点 ,否则会发生错误。 要将焦点移到控件上,可以使用SetFocus方法或GoToControl操作。

您可以使用Value属性来确定或指定是否select了控件,控件中的选定值或选项,文本框控件中包含的文本或定制属性的值。

Value属性返回或设置控件的默认属性,这是您未显式指定属性名称时所采用的属性。 在以下示例中,由于文本框的默认值是Text属性的值,因此您可以引用其Text属性设置,而不显式指定属性的名称。

 Forms!frmCustomers!txtLastName = "Smith" 

文本属性参考
http://msdn.microsoft.com/en-us/library/aa173453.aspx

值属性参考
http://msdn.microsoft.com/en-us/library/aa173476.aspx

.text启动字段validation,如果字段validation受到影响,则会导致错误。 .value不启动字段validation,您可以input任何值

如果文本框是ReadOnly控件,则不会使用value属性,但如果设置了文本peoprty,则该值仍将用于表单数据。