VBA:为什么我必须每次都设定焦点来控制?

时间:2013-06-25 19:47:55

标签: vba ms-access properties ms-access-2007 access-vba

我正在使用Access 2007数据库创建个人库清单系统。在代码中,每当我引用表单控件的.Text属性时,无论是更改值,还是只是检查IF语句中的值,我都会收到Run-time error '2185': You can't reference a property or method for a control unless the control has the focus的提示。

这是为什么?

设置.Text并不是什么大不了的事,但是当我在IF语句中查看值时,我无法设置焦点,而不是{&1;}。检查多个条件。

1 个答案:

答案 0 :(得分:29)

使用.Value代替 - 不需要先设置焦点。从文档中,例如TextBox control(强调我的):

  

当控件具有焦点时,Text属性包含文本   目前在控制中的数据; Value属性包含最后一个   保存的控件数据。将焦点移动到另一个焦点时   控制,更新控件的数据,并设置Value属性   这个新价值。 Text属性设置随后不可用   控件再次成为焦点。