не может поверить, что я теряю столько времени на этом.Доступ: Отмена генерации отчетов вызывает ошибку 2501
У меня есть форма заказа, и когда я нажимаю кнопку «отчеты», диалог всплывает со списком разных отчетов на выбор. Двойным щелчком выбирается и начинается соответствующий отчет.
В одном из этих отчетов есть несвязанное текстовое поле Мне нужно, чтобы пользователь вводил данные. Элемент управления этим полем присваивается свойству Name. При запуске отчета появляется окно ввода с кнопкой «ОК» и «Отмена». Всякий раз, когда я ввожу некоторые данные, все в порядке.
Но когда я нажимаю «Отмена», приложение выходит из строя, и я получаю сообщение об ошибке: «Ошибка выполнения 2501: действие OpenReport отменено» (перевод с немецкого).
Отчет вызывается через этот код:
DoCmd.OpenReport vBerichtName, nAnsicht
End If
On Error Resume Next
DoCmd.Close acForm, "F_BerichtDrucken"
On Error GoTo 0
1) Почему обработка ошибок не пинайте в?
2) Я googled и нашел много странных решений для этого, как официальный Microsoft, говорящий, что вам нужно установить/обновить драйвер принтера (давай ...). Ничего не помогло.
Я делаю это для друга, и я обычно работаю над linux/php, java и т. Д. Приносим извинения, если решение несколько очевидно или что-то в этом роде.
ОК, ребята, спасибо, я сделал шаг дальше. Теперь это выглядит так:
On Error GoTo CancelError If Not IsNull(vFilter) Then DoCmd.OpenReport vBerichtName, nAnsicht, , vFilter Else DoCmd.OpenReport vBerichtName, nAnsicht End If Echo True CancelError: Exit Function
(Эй, я редактирую чужой код, и я довольно новичок в VB, пожалуйста, подумайте;) Теперь на самом деле это работает, но когда я нажимаю на отмену, я возвращаюсь с диалогом - но приложение зависает .... нужно перезапустить Access, чтобы иметь возможность продолжить! – faboolousИзвините за уродливое форматирование кода в комментариях, нужно выяснить, как это сделать;) – faboolous
Yup - в любое время, когда вы используете DoCmd.OpenReport, вам нужно поймать эту ошибку –