06. Данный пример показывает как можно проверять текстовые документы в Access, используя Word. Дается 2 варианта - быстрый и медленный с вызовом диалога коррекции текста.
' Проверка текста с диалогом
Private Sub butExecute_Click()
Dim app As Word.Application 'Приложение программы
'Dim obj As Object 'Приложение программы, 2 вариант
On Error GoTo 999
' Нужна проверка на ввод текст
If Nz(Me.Text, "") = "" Then
MsgBox "Введите текст!"
Exit Sub
End If
' Сообщение о начале проверки
Me.Result = "Думаю ... Для замены фраз откройте Word"
DoEvents
Set app = New Word.Application
' Set app = CreateObject("Word.Application") ' 2 вариант
With app
' Отображаем Word
.Visible = True
' Добавляем документ для проверки
.Documents.Add
' Печатаем проверяемый текст
.Selection.TypeText Me.Text
' Настраиваем опции проверки
.Options.CheckGrammarWithSpelling = False
.Options.IgnoreUppercase = False
' Выполняем проверку
.ActiveDocument.CheckSpelling
' Выбираем новый для проверки текст
.Selection.WholeStory
' Копируем текст в буфер
.Selection.Copy
' Возвращаем результат после проверки
Me.Result = .Selection.Text
' Возвращаем текст из буфера
' Me.Result = Clipboard.GetText
' Закрываем Word
.ActiveDocument.Close (0)
.Quit
End With
' Закрываем приложение
Set app = Nothing
Exit Sub
999:
MsgBox Err.Description 'Ошибка
Err.Clear
End Sub
' Быстрая проверка на наличие ошибок
Private Sub butExecute2_Click()
Dim app As Word.Application
'Dim obj As Object 'Приложение программы, 2 вариант
On Error GoTo 999
' Нужна проверка на ввод текст
If Nz(Me.Text, "") = "" Then
MsgBox "Введите текст!"
Exit Sub
End If
' Сообщение о начале проверки
Me.Result = "Думаю ..."
DoEvents
' Set app = CreateObject("Word.Application") ' 2 вариант
Set app = New Word.Application
' Быстрая проверка
If app.CheckSpelling(Me.Text) Then
Me.Result = "Проверка текста прошла успешно!"
Else
Me.Result = "В тексте есть ошибки"
End If
' Освобождаем память
app.Quit
Set app = Nothing
Exit Sub
999:
MsgBox Err.Description 'Ошибка
Err.Clear
End Sub