У меня есть журнал ошибок, который регистрирует в таблице доступа всякий раз, когда возникает ошибка времени выполнения для пользователя в перехватчике ошибок, и кажется, что конкретная ошибка возникает для 10 случайных пользователей, по крайней мере, каждый час.
Эта ошибка, по-видимому, возникает совершенно случайно, на случайном модуле с кодом Set ActiveForm, со случайными пользователями с произвольными интервалами. Насколько я вижу, между пользователями нет закономерностей.
2475 - «Вы ввели выражение, которое требует, чтобы форма была активным окном».
Это происходит в любом из модулей, которые содержат какие-либо настройки формы. Я использую следующие строки:
Dim af as Object
Set af = Screen.ActiveForm
Я пытался использовать альтернативы, такие как объявление формы как формы, а также пробовал следующее:
Dim sstatus as String
Dim ps as String
If DLookup("[TM_UserType]", "[SD_Teams]", "[TM_username]= '" & usernm & "'") = "adj" Then
sstatus = "adj"
Else
sstatus = "tm"
End If
ps = "frmProdSubmit_" & sstatus
Затем ссылаемся на форму следующим образом:
Forms(ps).cmbTeam.Value = ""
Но это все еще вызывает ту же проблему, даже удаляя часть ActiveForm.
Последнее, что следует упомянуть (поскольку я считаю, что они могут быть факторами), это то, что доступ к интерфейсу осуществляется через ярлык, который минимизирует окно доступа. Не уверен, что это может быть причиной или пользователь, щелкнувший по другому приложению, может убрать фокус.
К базе данных также ежедневно обращаются около 700 пользователей.
В существующем состоянии отображается сообщение об ошибке, но интерфейс продолжает работать правильно. Это просто надоедливая проблема, которую нужно решить, но сейчас у меня постепенно заканчиваются идеи, и любая помощь будет чрезвычайно признательна!