Почему вы пытаетесь управлять слиянием почты с помощью кода VBA?Вы должны быть в состоянии A) настроить данные в Excel или Access, B) настроить шаблон в Word и подключить его к источнику данных, C) запустить слияние по почте.Если вы не делаете что-то действительно, действительно причудливое, VBA не должна быть нужна.
Так как кажется, что какой-то садист заставил вас делать трудные вещи, похоже, что ваша ошибка, скорее всего, здесь:
Connection:="User ID=Admin;DataSource=strWorkbookName;" & _
"Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _
SQLStatement:="SELECT * FROM `Sheet1
SQLStatement:=", _
SubType:=wdMergeSubTypeAccess
Прежде всего:
Connection:="User ID=Admin;DataSource=strWorkbookName;" & _
должно быть
Connection:="User ID=Admin;DataSource=" & strWorkbookName & ";" & _
Во-вторых, ваш параметр SQLStatement
не определен, и я уверен, что"Sheet1"
(не уверен, почему у вас есть дополнительный обратный удар), это не способ ссылаться на «таблицу» (т. Е. Рабочий лист) при выборе из книги Excel.IIRC, это должно быть "WorkBook$WorkSheet"
, так что это:
SQLStatement:="SELECT * FROM `Sheet1
должно быть что-то вроде:
SQLStatement:="SELECT * FROM " & strWorkbookName & "$Sheet1", _
За этой строкой следует конец строки
SQLStatement:=", _
который был частью фактической строки SQL, отправляемой ядру базы данных в Excel.Это не сработает.
То, как я это читаю, должно выглядеть следующим образом:
Connection:="User ID=Admin;DataSource=" & strWorkbookName & ";" & _
"Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _
SQLStatement:="SELECT * FROM " & strWorkbookName & "$Sheet1", _
SubType:=wdMergeSubTypeAccess
Возможно, вам придется немного подправить, но я думаю, что это поможет вамна правильном пути.