Как отправить слияние из Access 2013

Слияние почты из Access 2013, а не из Access 2000

Существуют документы для слияния почты со старыми версиями доступа: https://support.microsoft.com/en-us/kb/209976

Но я не могу найти никаких документов или советов по версиям 2013 года.

Цель: иметь кнопку в MS Access, которая запускает слияние почты на основе выбранных данных.

Проблема:
Хотя слияние почты работает нормально, если я делаю это вручную, и экспортирую свои данные перед выполнением слияния. Это не удается, если я пытаюсь создать живую ссылку. Мои таблицы представляют собой списки точек общего доступа в стиле Office 365 - похоже, это вызывает проблемы с тайм-аутом и проблемами с блокировкой. Поэтому я подозреваю, что, возможно, мне нужно выполнить экспорт, прежде чем я смогу выполнить слияние.

Доступ к коду слияния почты в стиле 2000:

Function MergeIt()
   Dim objWord As Word.Document
   Set objWord = GetObject("C:\MyMerge.doc", "Word.Document")
   ' Make Word visible.
   objWord.Application.Visible = True
   ' Set the mail merge data source as the Northwind database.
   objWord.MailMerge.OpenDataSource _
      Name:="C:\Program Files\Microsoft " & _
    "Office\Office\Samples\Northwind.mdb", _
      LinkToSource:=True, _
      Connection:="TABLE Customers", _
      SQLStatement:="SELECT * FROM [Customers]"
   ' Execute the mail merge.
   objWord.MailMerge.Execute
End Function

person eddyparkinson    schedule 15.07.2015    source источник


Ответы (1)


Экспортируйте как xls, затем запустите слияние.

Private Sub Command53_Click()

   DoCmd.OutputTo acOutputQuery, "Mail Merge Query Name", acFormatXLS, "Temp export mail merge file.xls"

   Set objWord = GetObject("path to Mail Merge file.docx", "Word.Document")
   ' objWord.Application.Visible = True

   objWord.MailMerge.OpenDataSource _
      Name:="Temp export mail merge file.xls", _
      ReadOnly:=True, _
      SQLStatement:="SELECT * FROM [Mail Merge Query Name$]"
   objWord.MailMerge.Execute
   objWord.Application.ActiveDocument.SaveAs2 FileName:="TmpMergeOuput.docx"
   objWord.Application.ActiveDocument.Close
   objWord.Close SaveChanges:=wdDoNotSaveChanges
End Sub

Примечания:

person eddyparkinson    schedule 15.07.2015