这里写自定义目录标题


ACCESS文本框的VALUE属性和TEXT属性确实容易搞混。两者都是引用文本框里的内容,但是引用的时机有分别。因为引用的时机不同,同样引用文本框里的内容,这两种属性值就会有时相同,有时又不相同。
TEXT属性必须在文本框获得焦点的情况下才能引用,系统会在焦点离开文本框时将最后出现的TEXT值保存为VALUE值,焦点离开文本框后如果引用其TEXT属性就会报错。
VALUE属性则是文本框失去焦点后文本框里的值,或者文本框获得焦点时输入新值前的原有值或者说旧值。
下面例子有助于理解这两个属性的分别:
假设ACCESS窗体里有两个文本框,TEXT1和TEXT2 外加一个命令按钮COMMAND1,开始时那两个文本框内均无内容。
我们在TEXT1输入1,此时 TEXT1.Text=1 / TEXT1.Value=Null
接着在TEXT1输入2,此时 TEXT1.Text=12 / TEXT1.Value=Null
跟着在TEXT1输入3,此时 TEXT1.Text=123 / TEXT1.Value=Null
将焦点移到TEXT2,此时 TEXT1.Text=未知 / TEXT1.Value=123 (因为TEXT1已无焦点故其TEXT值未知)
再将焦点移回TEXT1,此时 TEXT1.Text=123 / TEXT1.Value=123
接着删除 TEXT1的内容,此时 TEXT1.Text=Null / TEXT1.Value=123
在TEXT1输入456,此时 TEXT1.Text=456 / TEXT1.Value=123
再将焦点移到TEXT2,此时 TEXT1.Text=未知 / TEXT1.Value=456
如果这个时候COMMAND1,单击事件过程为
Private Sub Command1_Click()
MsgBox Text1.Value '引用Value属性
End Sub
那么此时将弹出消息框,显示“456”
如果单击事件过程为
Private Sub Command1_Click()
MsgBox Text1.Text '引用Text属性
End Sub
那么这时系统就会报错,因为此时焦点在命令按钮上,不能引用TEXT1的TEXT属性。

大多数情况下,特别是文本框没有焦点时,引用文本框内容应使用VALUE属性,在文本框获得焦点的情况下我们则可以引用TEXT属性,以反映文本框内容的最新情况。例如,下列TEXT1的更改事件过程就可以实现在TEXT1里输入什么字符,TEXT2随即显示什么字符:
Private Sub Text1_Change()
TEXT2.Value = Text1.Text '引用Text属性
End Sub
注意:如果上述代码引用VALUE属性,则没有TEXT2显示的内容随TEXT1变化而变化的效果,因为文本框丧失焦点前其Value值将保持原样。