Периодическая ошибка времени выполнения 3021 - Нет текущей записи - MS Access - PullRequest
0 голосов
/ 24 октября 2019

TL; DR - подпрограммы для действий с данными в форме ввода данных доступа в других приложениях MS иногда выдают ошибку 3021 для некоторых пользователей, но следуя точно таким же шагамснова не вызывает ошибку.

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

У меня есть разделенная база данных с BE, хранящаяся в списках Sharepoint. FE это просто приложение на локальном компьютере каждого пользователя. Существует довольно много форм, отчетов и запросов, но общая идея заключается в том, что это используется для регистрации проблем между двумя разными отделами с множеством другой информации в разных форматах. Используются 3 основные формы: форма ввода проблемы, а затем 2 формы для каждого отдела для обновления информации о стороне.

В основной форме ввода проблемы есть несколько командных кнопок, а кнопка закрытия -отключен. Двумя этими кнопками являются «Сохранить и новый», «Сохранить и выйти», «Удалить и выйти». Они работают, как ожидалось, и там нет проблем. Все остальные кнопки открывают задачу Outlook или открывают файл Excel и заполняют эти элементы данными из формы. Все сабвуферы для командных кнопок выглядят примерно так:

If Me.Dirty Then Me.Dirty = False
Set OApp = CreateObject("Outlook.Application")
Set OTask = "OApp.CreateItem(3)

'Start taking pieces of the form and assigning it to the task

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

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

...