Я взял встроенный макрос и преобразовал его в 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