Я выполнил следующий код On Lost Focus в Access 2010 без проблем.
Dim strSpell
strSpell = txtMyField
If IsNull(Len(strSpell)) Or Len(strSpell) = 0 Then
Exit Sub
End If
With txtMyField
.SetFocus
.SelStart = 0
.SelLength = Len(strSpell)
End With
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdSpelling
DoCmd.SetWarnings True
После обновления до O365 (Access 2016) проверка орфографии работает без проблем, если только не было несколько исправлений орфографии. Если пользователь выбирает «Заменить все» или изменяет более 1 слова, сбой доступа и пользователю необходимо перезапустить программу. Я пытался изменить код для запуска события «Выход», но это не помогло. Я также декомпилировал базу данных и не нашел ошибок.
Единственный способ запустить проверку правописания - использовать проверку правописания на ленте. Я скрываю ленту, чтобы пользователи не возились, поэтому эта опция не будет работать. Кроме того, я хотел бы ограничить проверку орфографии одним полем и заставить ее после того, как пользователь покинет поле.
Я предполагаю, что Access дает сбой, потому что более чем одно исправление снова вызывает событие, и так как Проверка орфографии уже запускает сбой программы. Есть идеи как это исправить?
ОБНОВЛЕННЫЕ ЗАМЕЧАНИЯ ИЗ КОММЕНТАРИЙ
- В моем тестировании я обнаружил, что когда вы нажимаете Enter несколько раз, когда вы
введите в поле, это вызывает сбой программы.
- Текстовое поле ДЛИТЕЛЬНЫЙ ТЕКСТ
- Поле формы привязано к текстовому полю