MS-ACCESS 如何通过子程序或函数更改文本框字体颜色

MS-ACCESS How to change a textbox font color via subroutine or function

我在表单中有一些文本框,默认情况下我用这些属性设置了其中一个

txtSearchBox.Value = "Wait.."
txtSearchBox.ForeColor = 2
txtSearchBox.FontItalic = True

我想向此 txtSearchBox 添加一个 onClick 事件,以便通过子例程或函数更改其属性,因为我想在其他文本框上使用此 sub/fun..

所以我声明了一个全局变量

Dim CurrentCtrl As Object

并尝试完成这项工作..

Private Sub txtSearchBox_Click()
CurrentCtrl = txtSearchBox.Name
txtWait4Input (CurrentCtrl)
End Sub

Private Sub txtWait4Input(CurrentCtrl As Object)
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub

但这行不通..

  1. 使用Set

  2. 从子调用中删除 parens

  3. 使用控件collection

  4. Dim 语句不创建全局变量,需要 Global 或 Public,Dim 声明了一个变量,该变量仅对它在

    中声明的模块可用=33=]
  5. 不应在两个位置声明变量 CurrentCtrl

因此,如果所有代码都在表单后面:

Dim CurrentCtrl As Object
_________________________________________
Private Sub txtSearchBox_Click()
Set CurrentCtrl = Me.Controls("txtSearchBox")
txtWait4Input
End Sub
_________________________________________
Private Sub txtWait4Input()
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub

可以消除 header 中的变量并设置行:

Private Sub txtSearchBox_Click()
txtWait4Input Me.Controls("txtSearchBox")
End Sub
_________________________________________
Private Sub txtWait4Input(CurrentCtrl As Object)
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub