Доступ к VBA «Ошибка компиляции: метка не определена»

Один из моих коллег по неосторожности испортил старый сценарий экспорта Access, и теперь мы получаем ошибку «Ярлык не определен», а я далеко не гуру Access, любая помощь была бы кстати.

Function Macro2()
On Error GoTo Macro2_Err

    DoCmd.TransferText acExportDelim, "golfexport", "ctcexport", "P:\transferdata\golfexport05052017"
    Exit Function

Macro2_Err:
    MsgBox Error$
    Resume Macro2_Exit

End Function

Ошибка заключается в выделении верхней строки желтым цветом и строки «Resume Macro2_Exit».

У кого-нибудь есть идеи, так как, скорее всего, это был толстый палец, чтобы что-то убить.

Благодарность


person Jeremy    schedule 08.05.2017    source источник
comment
Посмотрите на свой код. Где определяется Macro2_Exit?   -  person Mathieu Guindon    schedule 08.05.2017


Ответы (1)


Resume [Label]

Эта инструкция требует существования метки строки, чтобы выполнение могло возобновиться там. Если метка не определена, переходить некуда, и код не может скомпилироваться.

Если это все, что есть в процедуре, вы можете просто удалить инструкцию Resume и на этом закончить. Если между DoCmd и Exit Function есть код, вы можете определить метку там:

Macro2_Exit:
    Exit Function
Macro2_Err:
    MsgBox Err.Description
    Resume Macro2_Exit

Обратите внимание на использование Err.Description вместо динозавровой строки Error$. Хотя просто предложение.

person Mathieu Guindon    schedule 08.05.2017
comment
Возможно, стоит отметить, что вы получаете ту же ошибку, если пишете End Function или End Sub под меткой выхода вместо Exit Function или Exit Sub. - person Nat; 27.08.2018
comment
@Nat, может быть .. опять же, есть бесчисленное множество способов заставить VBA не компилироваться. Также знаете ли вы, что можете легально Exit Function или Exit Sub внутри Property? - person Mathieu Guindon; 27.08.2018