我将textbox1.text
的值传递到查询中,有时传递到一个字符串中:
Dim combor1 As String
combor1 = comboReason1.Text
我该在何时使用 combor1 = comboReason1.Value
?
此外,为什么需要设置控件的焦点才能引用其属性?这对我来说没有意义。
另外,当我设置 combor4 = comboReason4.Value
并且 .value
为空时,就会收到关于无效使用空值的错误信息。
两者通常给出相同的结果,除非对应的控件是:
例如:
在这种情况下:
.text 属性仅在相应的控件具有焦点时可用。
.text 是一个字符串值,因此它不能为 Null,而 .value 可以为 Null。
编辑:只有当控件具有焦点时,才能调用 .text 属性,而可以随时调用 .value 属性...
您可以使用Text
属性来设置或返回文本框或组合框中文本框部分包含的文本。
要设置或返回控件的Text
属性,必须将焦点放在该控件上,否则会出现错误。要将焦点移动到控件上,可以使用SetFocus方法或GoToControl操作。
您可以使用Value
属性来确定或指定控件是否被选中、控件内所选值或选项、文本框控件中包含的文本或自定义属性的值。
Value
属性返回或设置控件的默认属性,即当您没有明确指定属性名称时假定的属性。在下面的示例中,因为文本框的默认值是Text属性的值,所以您可以在不明确指定属性名称的情况下引用其Text属性设置。
Forms!frmCustomers!txtLastName = "Smith"
文本属性参考
http://msdn.microsoft.com/zh-cn/library/aa173453.aspx
这个线程和其中的答案很好地解释了这个问题。我想补充几点,这些是我通过实验发现的:
属性的优先级顺序为:
.ControlSource
.Value
.Text
从我在Access 2007中看到的情况来看,如果在表单打开时未定义.ControlSource
,则.Value
将为Null
。
如果将.ControlSource
属性设置为=""
(空字符串),那么.Value
属性将默认为该值,而不是Null
。
您可以在Form_Load
事件中将.Value
属性设置为""
。但是...我在那里看到了一些不稳定的操作;似乎.Value
有时会从""
更改回Null
,我还没有弄清楚具体情况。
所以最好在设计视图或Form_Load
事件中将.ControlSource
定义为=""
。但要注意,由于嵌入的双引号,这个小片段很棘手,有时很难读懂。
一些实现方法包括:
此外,这里还有一个扩展提示。如果将.TextFormat
属性设置为Rich Text
,则可以使用粗体、斜体、颜色等格式对其中的文本进行格式化。但要注意(再次提醒),从Office 2007开始,原始的Microsoft RTF格式已被废弃,取而代之的是一种“迷你”版本的HTML,仅支持与字体和段落格式相关的少数标记。
myTextbox.TextFormat = acTextFormatHTMLRichText
myTextbox.ControlSource = "=" & Chr(34) & "<font color=#80CA45><font face=Wingdings>" & _
Chr(254) & "</font> <font face=Calibri><i>Valid.</i></font></font>" & Chr(34)
.text
开始字段验证,如果字段验证失败,则会导致错误。 .value
不会开始字段验证,您可以输入任何值