Неисправность вызова функции формы - PullRequest
0 голосов
/ 13 апреля 2020

Первые некоторые определения:

  • Доступ к имени программы: ATS
  • Имя веб-инструмента: C360

C360 не всегда отображается Своевременно установите индикаторы, поэтому через пять секунд для ATS будет задан тайм-аут, чтобы спросить пользователя, что делать дальше (Ошибка 100). Я использую форму в качестве окна сообщения для лучшего форматирования. Эта кнопка (код ниже) - это то, что пользователь нажимает для захвата данных, отображаемых в C360, несмотря на то, что он не находится в состоянии готовности.

У меня есть две формы, одна из которых называется Basi c Ticksheet, а другая - Advanced Ticksheet (некоторые из моих пользователей немного перегружены, если им представлено слишком много информации), которые выполняют одни и те же функции, но отображают данные по-разному , Basi c и Advanced не могут быть открыты одновременно, или происходят ошибки чтения-записи. Таким образом, когда возникает ошибка 100, и пользователь нажимает эту кнопку, он должен сначала выполнить расширенный код, а если возникает ошибка, перенаправить к базовому c коду.

Я не могу понять, почему Ошибка 2450 («Microsoft Access не может найти ссылочную форму« Расширенная таблица результатов ») запускается, когда пользователь использует таблицу подсказок Basi c. Код работает безупречно, когда я вручную шаг за шагом пересекаю строку. Когда я нажимаю «Отладка», она выделяет строку, начинающуюся с: Формы вызова («Basi c Ticksheet»). Если я перейду к использованию Debug, он также будет работать безупречно.

Что я делаю не так? Есть ли лучший способ сделать это sh? 1017

1019 * Спасибо заранее за любую помощь, которую вы можете предложить!
Private Sub BTN_CaptureCase_Click()
    DoCmd.Close acForm, "Alert Error 100", acSaveYes

Advanced_Ticksheet:
    On Error GoTo Basic_Ticksheet
        Call Forms("Advanced Ticksheet").Controls("Primary_Review").Form.BTN_CaptureCaseWithWM_Click
    Exit Sub

Basic_Ticksheet:
    Call Forms("Basic Ticksheet").Controls("BasicCapture").Form.BTN_CaptureCaseWithWM_Click

End Sub

Код BTN_CaptureCaseWithWM_Click выглядит следующим образом (который вызывает дополнительный код, также помеченный как publi c):

Sub BTN_CaptureCaseWithWM_Click()
        CaptureC360CaseData
        ExtractCaseDetails
        WMTFrameClick
        ExtractWMTDetails
End Sub

1 Ответ

0 голосов
/ 14 апреля 2020

Ответ на этот вопрос был так же прост, как форма, содержащая функцию, на самом деле не была фокусом. Полностью избиение себя за это тоже!

Я добавил строку, чтобы убедиться, что правильная форма была в центре внимания, прежде чем вызывать код в форме. Конечно, я также разработал этот процесс, чтобы он работал лучше.

Sub BTN_CaptureCase_Click () DoCmd.Close acForm, «Ошибка оповещения 100», acSaveYes

If CurrentProject.AllForms("Basic Ticksheet").IsLoaded Then
    Forms("Basic Ticksheet").SetFocus
    Call Forms("Basic Ticksheet").Controls("BasicCapture").Form.BTN_CaptureCaseWithWM_Click
    Application.Echo True
    ElseIf CurrentProject.AllForms("Advanced Ticksheet").IsLoaded Then
        Forms("Advanced Ticksheet").SetFocus
        Call Forms("Advanced Ticksheet").Controls("Primary_Review").Form.BTN_CaptureCaseWithWM_Click
        Application.Echo True
        ElseIf CurrentProject.AllForms("Super Basic Ticksheet").IsLoaded Then
            Forms("Super Basic Ticksheet").SetFocus
            Call Forms("Super Basic Ticksheet").Controls("SuperBasicCapture").Form.BTN_CaptureCaseWithWM_Click
            Application.Echo True
            Else: MsgBox "Error 100 routing failure. Please notify ATS Administrator!"
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...