使用 CodeContextObject 属性可以确定其中的宏或 Visual Basic 代码正在执行的对象。Object 型,只读。
expression.CodeContextObject
expression 必需。返回“应用于”列表中的一个对象的表达式。
CodeContextObject 属性由 Microsoft Access 设置,而且在所有视图中都是只读的。
Screen 对象的 ActiveControl、ActiveDataAccessPage、ActiveDatasheet、ActiveForm 和 ActiveReport 属性始终返回当前获得焦点的对象。带有焦点的对象既可能是也可能不是当前正在运行宏或 Visual Basic 代码的对象,例如 Visual Basic 代码可以执行一个隐藏窗体的 Timer 事件。
以下示例中,CodeContextObject 属性在函数中用于识别发生错误的对象的名称。对象名称然后显示在消息框标题及错误信息正文中。示例中,Error 语句用在命令按钮的 click 事件中以产生错误。
Private Sub Command1_Click()
On Error GoTo Command1_Err
Error 11 ' Generate divide-by-zero error.
Exit Sub
Command1_Err:
If ErrorMessage("Command1_Click() Event", vbYesNo + _
vbInformation, Err) = vbYes Then
Exit Sub
Else
Resume
End If
End Sub
Function ErrorMessage(strText As String, intType As Integer, _
intErrVal As Integer) As Integer
Dim objCurrent As Object
Dim strMsgboxTitle As String
Set objCurrent = CodeContextObject
strMsgboxTitle = "Error in " & objCurrent.Name
strText = strText & "Error #" & intErrVal _
& " occured in " & objCurrent.Name
ErrorMessage = MsgBox(strText, intType, strMsgboxTitle)
Err = 0
End Function