MS Access: вызов функции VBA в свойстве события формы (например, при нажатии Dbl) - указывает на закрытый объект или не существует - PullRequest
0 голосов
/ 29 мая 2019

Я взял встроенный макрос и преобразовал его в vba, чтобы при необходимости вызывать его в разных формах.Форма, которую я использую, является формой списка сотрудников, и я использую ее по имени.Я попытался вызвать функцию, поставив =MyFunction(), и я получил объект закрыт или не существует.

Он работает как встроенный макрос;однако, когда я пытаюсь использовать его как автономный, я получаю сообщение об ошибке, а когда я его преобразовываю, я получаю вышеуказанную ошибку.

Function Copy_Of_CompID_Fields()
On Error GoTo Copy_Of_CompID_Fields_Err

    With CodeContextObject
        On Error Resume Next
        If (Eval("[Forms].[Dirty]")) Then
            DoCmd.RunCommand acCmdSaveRecord
        End If
        If (.MacroError.Number <> 0) Then
            Beep
            MsgBox .MacroError.Description, vbOKOnly, ""
            Exit Function
        End If
        On Error GoTo 0
        If (IsNull(.New_Id)) Then
            Exit Function
        End If
        If (.CreatedDate < #5/1/2019#) Then
            DoCmd.OpenForm "Employee Details", acNormal, "", "[ID]='" & .ID & "'", , acNormal
        Else
            DoCmd.OpenForm "Employee Details", acNormal, "", "[New_Id]=" & .ID, , acNormal
        End If
        TempVars.Add "CurrentID", .ID
        DoCmd.Requery ""
        DoCmd.SearchForRecord , "", acFirst, "[ID]='" & TempVars!CurrentID & "'"
        TempVars.Remove "CurrentID"
    End With

Copy_Of_CompID_Fields_Exit:
    Exit Function

Copy_Of_CompID_Fields_Err:
    MsgBox Error$
    Resume Copy_Of_CompID_Fields_Exit

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...