Объект Letter
В код статьи включен модуль класса cLetter,
использующийся для создания писем в Microsoft Word. Письмо составляется автоматически. Для этого используется шаблон Microsoft Word, а данные для письма получает SQL-оператор. Метод ShowWord (Boolean) определяет, отображается ли Word для данного пользователя. Иногда требуется отправлять письма непосредственно на принтер без редактирования.
Код модуля класса cSound приведен ниже;
Option Explicit Private objWord As Word.Application
' Локальные переменные для хранения значений свойств. Private mvarTemplate As String ' локальная копия
Private mvarSQLStatement As String ' локальная копия
Public Property Let SQLStatement(ByVal vData As String)
mvarSQLStatement = vData
End Property
Public Property Get SQLStatement() As String
SQLStatement = mvarSQLStatement
End Property
Public Property Let Template(ByVal vData As String)
mvarTemplate = vData
End Property
Public Property Get Template() As String
Template = mvarTemplate
End Property
Public Sub CreateLetter(DatabasePath As String, ShowWord As Boolean)
' Запись данных о покупателях во временный файл для использования
' почтового слияния. Это быстрее, чем получение данных непосредственно
' из Access.
DoCmd.OutputTo acOutputQuery, "qryCustomers", AcFormatRTF, "С:\Temp.rtf", False
objWord.Documents.Add (Me.Template)
' Запуск почтового слияния.
With objWord.ActiveDocument.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:="C:\ Temp.rtf"
.Destination = wdSendToNewDocument
.Execute End With
It ShowWord Then
Me.ShowWord
End If
End Sub
Friend Sub ShowWord()
' Отображение экрана приложения Word для пользователя.
objWord.Visible = True
End Sub
Private Sub Class_Initialize()
1
Переход к следующей строке после оиибки.
On Error Resume Next
' Попытка использовать приложение Word, окно которого уже открыто. Set objWord =
Get0bject(, "Word.Application")
' Если истинно. Word не открыт.
If objWord Is Nothing Then
' Запуск новой копии приложения Word.
Set objWord = New Word.Application
' Если истинно, MS Word не установлен.
If objWord Is Nothing Then
MsgBox "MS Word is not installed on your computer"
End If
End If
End Sub
Private Sub Class Terminate()
Set objWord = Nothing
End Sub
Приведенный далее код инициализирует объект objLetter и использует его свойства и методы:
' Переменные Dimension.
Dim objLetter As cLetter
Dim strPath As String
strPath = CurrentProject.Path
' Присваивание объектных переменных объекту cLetter.
Set objLetter = New cLetter
' Шаблон Word для использования в данном документе.
objLetter.Template = strPath & "\Business Services Letter.dot"
' SQL-оператор, использующийся для получения данных для формы.
ObjLetter.SQLStatement = "SELECT * FROM tbICustomers"
' Вызов метода "CreateLetter" для создания письма.
objLetter.CreateLetter strPath С "\0bjects.mdb", True
' Разрушение объектной переменной.
Set objLetter = Nothing