Иллюстрированный самоучитель по Access 2002


         

Рис. 15.35. Диалоговое окно с содержимым таблицы "СписокПриглашенных" - часть 2


rstNew.AddNew

For i = 0 To rst.Fields.Count - 1

rstNew.Fields(i) = rst.Fields(i)

Next i

rstNew.Update

rst.MoveNext Loop

' создаем объект Application Word

On Error GoTo err_StartWord

Set wda = GetObject(, "Word.Application")

wda.Visible = True

'

открываем документ на основе шаблона - он добавляется в семейство

Documents wda.Documents.Add "C: \Doc\nj»iMiaEieHHe.dot"

' выполняем слияние основного документа и данных из источника

With wda.ActiveDocument.MailMerge

.Destination = wdSendToNewDocument

.Execute End With

' печатаем приглашения wda.ActiveDocument.Printout

Do While wda.BackgroundPrintingStatus <> 0

DoEvents Loop

' сохраняем получившийся документ

wda.ActiveDocument.SaveAs "C:\Doc\MailMergeDoc.doc"

' закрываем окно с новым документом

wda.ActiveWindow.Close False

' закрываем, не сохраняя, окно с первоначальным документом

wda.Documents (1).Close False

'

если нет больше открытых документов, то закрываем Word If

wda.Documents.Count = 0 Then

wda.Quit End If

' Удаляем временную таблицу

db.TableDefs.Delete "СписокПриглашенных"

db.Close

Set wda = Nothing

Set rst = Nothing

Set rstNew = Nothing

Exit Sub

err_StartWord:

If Err = 429 Then ' Word не запущен

Set wdd = CreateObject("Word.Application")

Resume Next Else

MsgBox Err.Description & " " & Err.Number, vblnformation

Exit Sub End If

End Sub

Сначала создается таблица "СписокПриглашенных" с той же структурой, которая была создана вручную. Затем все данные, отображаемые в форме, записываются в эту таблицу. Все операции с данными выполняются с использованием объектов DАО. Объект Application Word создается с помощью функции GetObject() или CreateObject () в зависимости от того, запущен ли уже Word. Для создания нового документа на основе шаблона используется метод Add семейства Documents. При слиянии основного документа с записями в таблице создается новый документ. Для этого устанавливается значение свойства Destination объекта MailMerge равным константе wdSendToNewDocument. Этот документ уже не содержит поля слияния, а является просто текстовым документом, который можно сохранить в виде файла, задав его имя. Перед сохранением в файле документ выводится на печать. После этого нужно аккуратно закрыть сначала новый документ, потом основной документ, к которому присоединен источник данных, и потом, если нужно, сам Word.

CompEbook.ru Железо, дизайн, обучение и другие




Содержание  Назад  Вперед