Подавить ошибку 3021: нет текущей записи в Access - PullRequest
0 голосов
/ 21 января 2019

У меня есть форма доступа с прикрепленным набором записей. Элементы управления в заголовке настраивают фильтры набора записей. Иногда эти фильтры возвращают пустой набор записей, что нормально.

Однако, когда набор записей пуст и пользователь нажимает на любой элемент управления в заголовке (скажем, чтобы снова изменить фильтр), Access открывает сообщение об ошибке с 3021 - Нет текущей записи.

Мне не удалось найти источник этой ошибки в коде - однако я добавил в форму триггер события - onError для самой формы.

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    MsgBox "caught error: " & DataErr
End Sub

Это работает! Но я ожидал, что этот суб заменит Ошибка доступа. Вместо этого мой код выполняется, и после!

появляется оригинальное сообщение об ошибке

Я знаю, что есть много вопросов об избавлении от этой ошибки, но большинство из них связаны с выполнением действия VBA - речь идет об устранении ошибки, когда не запускается никакой другой VBA. Есть ли способ получить сабвуфер Form_Error, чтобы не показывать всплывающее окно?

1 Ответ

0 голосов
/ 21 января 2019

Простое решение - использовать параметр Response в событии Form Error. Установка его в acDataErrContinue указывает на продолжение и игнорирование ошибки.

Вы можете увидеть больше примеров на странице документа .

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