У меня есть некоторый тип ошибки с моим кодом, но я не уверен, что. Этот код работал для меня менее месяца назад.Доступ к Word Mail Merge - проблема с последней частью
То, что я пытаюсь сделать: Выделите письмо слияния для каждого адреса в базе данных.
Результат моего кода: В зависимости от того, сколько адресов я проверяю, говоря, что это дает мне много точных копий шаблона, заполненных последними и последними записями базы данных.
Пример: Я проверяю 18 адресов в базе данных и передаю эту переменную в мою таблицу экспорта. Он выплескивает 18 файлов Microsoft Word, каждый файл слова имеет копию заполненного шаблона с первым адресом, указанным на странице 1, и последним адресом, указанным на странице 2.
Что я делаю неправильно?
Private Sub MailMerge(ClientTemplate As String)
Dim Word As Object
Dim Doc As Object
Dim Sel As Object
Dim nRows As Integer
Set Word = CreateObject("Word.Application")
Set Doc = Word.Documents.Open(ClientTemplate)
Set Sel = Word.Selection
nRows = DCount("*", "tblFinalMailMerge")
With Word
.Visible = True
.Application.Activate
'.Documents.Open (ClientTemplate)
End With
With Doc.MailMerge
.MainDocumentType = wdFormLetters
.Destination = wdSendToNewDocument
.OpenDataSource Name:=CurrentDb.Name, SQLStatement:="SELECT * FROM [tblFinalMailMerge]"
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
For x = 1 To nRows
With Doc.MailMerge.DataSource
.ActiveRecord = x
If ActiveRecord > .LastRecord Then Exit For
End With
Word.ActiveDocument.SaveAs _
FileName:="C:\temp\test" & x & ".docx"
Next x
Кто-нибудь? Это действительно кусает меня в заднице - у него есть wdSendToNewDocument, я не понимаю, почему он делает 2 шаблона (первый и последний) в одном документе. – user2296381