使用 CodeContextObject 屬性可以確定其中的宏或 Visual Basic 代碼正在執(zhí)行的對象。Object 型,只讀。
expression.CodeContextObject
expression 必需。返回“應(yīng)用于”列表中的一個(gè)對象的表達(dá)式。
CodeContextObject 屬性由 Microsoft Access 設(shè)置,而且在所有視圖中都是只讀的。
Screen 對象的 ActiveControl、ActiveDataAccessPage、ActiveDatasheet、ActiveForm 和 ActiveReport 屬性始終返回當(dāng)前獲得焦點(diǎn)的對象。帶有焦點(diǎn)的對象既可能是也可能不是當(dāng)前正在運(yùn)行宏或 Visual Basic 代碼的對象,例如 Visual Basic 代碼可以執(zhí)行一個(gè)隱藏窗體的 Timer 事件。
以下示例中,CodeContextObject 屬性在函數(shù)中用于識別發(fā)生錯(cuò)誤的對象的名稱。對象名稱然后顯示在消息框標(biāo)題及錯(cuò)誤信息正文中。示例中,Error 語句用在命令按鈕的 click 事件中以產(chǎn)生錯(cuò)誤。
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