在VBA Access中使用.text和.value之间的区别
我正在传递textbox1.text
值到一个查询,有时到一个string:
Dim combor1 As String combor1 = comboReason1.Text
我怎么知道我应该把combor1 = comboReason1.Value
?
另外,为什么我需要为控件设置焦点来引用它的属性? 这对我来说没有意义。
此外,当我设置combor4 = comboReason4.Value
和.value
为null,那么我得到一个错误关于无效使用null。
- “.text”给你显示在屏幕上的内容
- “。价值”给你的基础价值
两者通常会给出相同的结果,除非相应的控制是
- 一个combobox或列表框控件
- 显示的值与绑定列不同
例:
- 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
.text
启动字段validation,如果字段validation受到影响,则会导致错误。 .value
不启动字段validation,您可以input任何值
如果文本框是ReadOnly控件,则不会使用value属性,但如果设置了文本peoprty,则该值仍将用于表单数据。