Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
Вы можете создать операцию слияния с помощью мастера слияния в Microsoft Word. Этот мастер также доступен в Access и позволяет настроить процесс слияния, в качестве источника данных для писем на бланке, сообщений электронной почты, почтовых наклеев, конвертов или каталогов с помощью таблицы или запроса в базе данных Access.
В этой теме объясняется, как запустить мастер слияния из Access и создать прямую связь между таблицей или запросом и документом Microsoft Word. В этой теме описывается процесс написания писем. Пошаговая информация о том, как настроить процесс слияния, см. в справке Microsoft Word.
Использование таблицы или запроса в качестве источника данных
-
Откройте базу данных и в области навигации выберите таблицу или запрос, которые вы хотите использовать в качестве источника данных слияния.
-
На вкладке «Внешние данные» в группе «Экспорт» нажмите кнопку «Слияние Word».
Запускается мастер слияния Microsoft Word.
-
Укажете, хотите ли вы создать ссылку в существующем или новом документе, а затем нажмите кнопку «ОК».
-
Если вы решили связать с существующим документом, в диалоговом окне «Выбор документа Microsoft Word» найдите и выберите файл, а затем нажмите кнопку «Открыть».
Word запускается. В зависимости от вашего выбора Word откроет указанный документ или новый.
-
В области «Слияние» в списке «Выберите тип документа» щелкните «Письма» и нажмите кнопку «Далее: начало документа», чтобы продолжить шаг 2.
-
На шаге 2 нажмите кнопку «Далее» и выберите получателей.
На шаге 3 создается связь между источником данных в Access и документом Word. Так как вы запустили мастер в Access, эта ссылка создается автоматически. В списке «Выбратьполучателей» обратите внимание, что выбрано «Использовать существующий список», а в списке «Использовать существующий список» отображается имя источника данных.
-
Щелкните «Изменить список получателей», если вы хотите настроить содержимое таблицы или запроса.
Вы можете фильтровать, сортировать и проверять данные. Нажмите кнопку ОК, чтобы продолжить.
-
Нажмите кнопку «Далее». Напишите письмо, чтобы продолжить. Выполните оставшиеся инструкции на области слияния и в шаге 5 нажмите кнопку «Далее: завершение слияния».
Другие способы использования таблицы или запроса в качестве источника данных
Таблицу или запрос можно указать в качестве источника данных дополнительными способами. Например, можно экспортировать таблицу или запрос из Access в базу данных ODBC, файл Microsoft Excel, текстовый файл или любой другой файл, совместимый с Word, а затем связать его с итогом с помощью мастера слияния Word.
-
Если вы еще не экспортировали таблицу или запрос, сделайте это. В области навигации Access выберите таблицу или запрос, а затем на вкладке «Внешние данные» в группе «Экспорт» выберите формат, в который нужно экспортировать данные, и следуйте инструкциям.
-
Если в Word не отображается области слияния, на вкладке «Рассылки» в группе «Начало слияния» щелкните стрелку под кнопкой «Начать слияние» и выберите пошаговую кнопку мастера слияния. Появится области слияния.
-
На шаге 3 в области «Слияние» в списке «Использовать существующийсписок» нажмите кнопку «Обзор» или «Изменить список получателей».
-
В диалоговом окне «Выбор источника данных» укажите файл данных, созданный в Access, и нажмите кнопку «Открыть».
-
Следуйте инструкциям в последующих диалогах. В диалоговом окне «Получатели слияния» просмотрите и настройте содержимое файла. Перед продолжением можно отфильтровать, отсортировать и проверить содержимое.
-
Нажмите кнопку«ОК» и выберите «Далее: Напишите письмо» в области «Слияние». Дополнительные инструкции по настройке слияния см. в справке Word.
К началу страницы
Нужна дополнительная помощь?
Сейчас мы с Вами рассмотрим пример реализации того, как можно выполнить слияние данных Word с данными Microsoft SQL Server, при этом данный процесс будет автоматизирован средствами VBA Access 2003.
Многие, наверное, уже умеют осуществлять слияние документов Word, например, с источником данных Excel или с тем же SQL сервером, но не все знают, как можно автоматизировать данный процесс или внедрить его в какую-нибудь программу.
Однажды у меня встала задача автоматизировать слияние некого шаблона Word с данными расположенными на SQL сервере, при этом все это необходимо было внедрить в программу, разработанную в Access 2003 (ADP проект). И сегодня я покажу пример решения данной задачи.
Содержание
- Исходные данные
- Создаем файл подключения к источнику данных MS SQL Server
- Создаем шаблон Word для слияния
- Код VBA Access 2003 для слияния документа Word с источником данных MS SQL Server
Исходные данные
И для начала давайте разберем исходные данные, т.е. что мы имеем.
Итак, в качестве клиента, как я уже сказал, у нас будет выступать ADP проект Access 2003. В качестве источника данных для примера будет выступать SQL Server 2012 Express. На компьютере установлен Microsoft Office 2013 (и Access 2003).
Создадим на сервере тестовую таблицу и заполним ее данными (допустим в базе данных Test). Для этого Вы можете запустить следующую SQL инструкцию.
Заметка! Начинающим программистам рекомендую почитать книгу «SQL код», с помощью которой Вы научитесь работать с языком SQL во всех популярных системах управления базами данных.
CREATE TABLE dbo.TestTable( ID INT IDENTITY(1,1) NOT NULL, ProductName VARCHAR(50) NOT NULL, Price MONEY NULL, CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED (ID ASC) ) GO INSERT INTO dbo.TestTable(ProductName, Price) VALUES ('Компьютер', 500) GO INSERT INTO dbo.TestTable(ProductName, Price) VALUES ('Монитор', 400) GO INSERT INTO dbo.TestTable(ProductName, Price) VALUES ('Телефон', 200) GO INSERT INTO dbo.TestTable(ProductName, Price) VALUES ('Планшет', 300) GO INSERT INTO dbo.TestTable(ProductName, Price) VALUES ('Принтер', 250) GO SELECT * FROM TestTable
Заметка! Если Вы не знаете, что делает вышеуказанная инструкция, рекомендую посмотреть мой видеокурс «T-SQL. Путь программиста от новичка к профессионалу. Уровень 1 – Новичок», который предназначен для начинающих. В нем подробно рассмотрены все базовые конструкции языка SQL, включая все вышеперечисленные.
Теперь давайте создадим файл подключения (ODC) к нашему источнику данных. Данный файл будет выступать своего рода «шаблоном файла подключения», так как впоследствии мы можем, и будем переопределять и базу данных и сам SQL запрос.
Для создания файла подключения к SQL серверу давайте откроем Word и стандартным способом создадим данный файл, т.е. с помощью функционала «Рассылки». (Кстати пример создания подключения к SQL серверу из Excel мы с Вами уже рассматривали в материале – Excel — Подключение и получение данных с SQL сервера).
Переходим на вкладку рассылки и в меню «Выбрать получателей» выбираем «Использовать существующий список».
Затем в окне выбора источника данных нажимаем кнопку «Создать».
Далее выбираем тип источника данных, т.е. Microsoft SQL Server. Жмем «Далее».
Потом вводим адрес сервера и нажимаем «Далее».
Затем выбираем базу данных и таблицу для подключения, еще раз напомню, это всего лишь шаблон, все эти параметры мы будем переопределять, жмем «Далее».
И в заключение вводим понятное название файла подключения, а также мы можем сразу его сохранить в нужный нам каталог путем кнопки «Обзор», по умолчанию он сохраняется в «C:UsersИмя_ПользователяDocumentsМои источники данных». Нажимаем «Готово».
Все, файл создан, Word можем закрыть без сохранения.
Создаем шаблон Word для слияния
Теперь давайте подготовим шаблон Word, т.е. это тот документ, в который мы будем подставлять данные из базы данных SQL сервера.
Вся подготовка сводится к тому, что нам необходимо вставить поля слияния там, где это нам нужно. Это делается следующим образом. Вкладка «Вставка -> Экспресс-блоки -> Поле».
Ищем поле MERGEFIELD и вводим название поля, которое будет соответствовать полю в источнике данных (в моем случае это ProductName и Price). Жмем «ОК».
Так как у меня это тестовый шаблон в нем текста практически не будет, и выводить я буду всего два поля, у Вас скорей всего будет много текста и много полей слияния.
Код VBA Access 2003 для слияния документа Word с источником данных MS SQL Server
Осталось написать код VBA, который будет осуществлять слияние. Для примера давайте добавим на форму кнопку StartMerge и поле Price для фильтрации данных. Затем в редакторе Visual Basic напишем процедуру для слияния, допустим с названием MergeWord, и в обработчик события кнопки StartMerge (нажатие кнопки) вставляем код вызова этой процедуры. Весь код будет выглядеть следующим образом (я его прокомментировал). Сразу поясню, что шаблон Word и файл ODC у меня лежат в каталоге D:Test.
'Процедура для запуска слияния Private Sub MergeWord(TemplateWord As String, QuerySQL As String) 'Первый параметр - Путь к шаблону Word 'Второй параметр - Строка запроса к БД On Error GoTo Err1 Dim ConnectString As String, PathOdc As String Dim WordApp As Object Dim WordDoc As Object 'Шаблон файла ODC для подключения к данным PathOdc = "D:TestTestSourceData.odc" If TemplateWord <> "" Then 'Создаем документ Word Set WordDoc = CreateObject("Word.document") Set WordDoc = GetObject(TemplateWord) Set WordApp = WordDoc.Parent 'Создаём подключение к источнику данных (MS SQL Server) 'Некоторые данные берём из текущего подключения ADP проекта ConnectString="Provider=SQLOLEDB.1; " & _ "Integrated Security=SSPI;" & _ "Persist Security Info=True; " & _ "Initial Catalog=" & CurrentProject.Connection.Properties("Initial Catalog") & "; " & _ "Data Source=" & CurrentProject.Connection.Properties("Data Source") & "; " & _ "Use Procedure for Prepare=1;" & _ "Auto Translate=True;" & _ "Packet Size=4096;" & _ "Use Encryption for Data=False;" 'Задаем источник данных WordDoc.MailMerge.OpenDataSource NAME:=PathOdc, _ Connection:=ConnectString, _ SQLStatement:=QuerySQL 'Делаем видимым Word WordApp.Visible = True WordApp.Activate 'Начинаем слияние With WordDoc.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True .Execute Pause:=False End With 'Закрываем шаблон без сохранения WordDoc.close (wddonotsavechanges) Set WordDoc = Nothing Set WordApp = Nothing Else MsgBox "Не указан шаблон для слияния", vbCritical, "Ошибка" End If Ex1: Exit Sub Err1: MsgBox Err.Description WordDoc.close (wddonotsavechanges) WordApp.Quit Set WordDoc = Nothing Set WordApp = Nothing Resume Ex1 End Sub Private Sub StartMerge_Click() Dim Filter As String Filter = "" 'Условие If Nz(Me.Price, "") <> "" Then Filter = "WHERE Price >= " & Me.Price End If 'Вызов процедуры слияния Call MergeWord("D:TestШаблон.docx", "SELECT * FROM ""TestTable"" " & Filter & " ") End Sub
Сохраняем и проверяем работу.
После нажатия на кнопку (StartMerge) запустится Word, в котором уже все данные заполнены и документов будет столько, сколько строк в источнике.
Как видим, все работает. На этом у меня все, надеюсь, материал был полезен. Пока!
Слияние
Слияние
– это средство MS
Word,
позволяющее создать набор однотипных
документов, каждый из которых содержит
уникальные
данные.
Применив
слияние можно создать:
-
набор
конвертов или наклеек с одинаковым
адресом отправителя, но с разными
адресами получателей; -
набор
документов на банке (писем) или
сообщений электронной почты с одинаковым
содержимым, но с разными сведениями,
предназначенными для определённых
получателей; -
каталог
с набором однородных сведений, но
различных для каждого элемента.
Для
выполнения слияния используются:
-
пошаговый
мастер слияния (вкладка РАССЫЛКИ/группа
НАЧАЛО СЛИЯНИЯ/список НАЧАТЬ
СЛИЯНИЕ/команда ПОШАГОВЫЙ МАСТЕР
СЛИЯНИЯ); -
соответствующие
элементы вкладки РАССЫЛКИ.
Задача:
создайте рассылку писем должникам по
оплате квартплаты.
Последовательность
выполнения работы:
-
создание
постоянной части основного документа; -
создание
источника данных; -
вставка
в основной документ полей слияния и
полей Word; -
предварительный
просмотр результатов слияния; -
получение
составного документа.
-
Создание постоянной части основного документа
Основной
документ
– это документ Word,
содержащий данные и др. настройки1,
которые остаются неизменными в конечном
составном документе после слияния.
Также в основной документ вставляются
поля (см. п. Вставка полей в основной документ).
Допускается
обратное преобразование основного
документа в обычный документ путём
удаления связи с источником данных из
основного документа (вкладка РАССЫЛКИ/группа
НАЧАЛО СЛИЯНИЯ/список НАЧАТЬ СЛИЯНИЕ/команда
ОБЫЧНЫЙ ДОКУМЕНТ WORD)..
Задание.
Создайте
следующий основной документ (Рисунок 1).
Сохраните документ в своей папке.
Рисунок
1
-
Создание источника данных
Источник
данных
— файл2,
содержащие организованные данные,
предназначенные для объединения с
основным документом.
Источник
данных можно создать из основного
документа как базу
данных Access, использовать
существующий файл или непосредственно
выбрать из контактов Outlook
(вкладка РАССЫЛКИ/группа НАЧАЛО
СЛИЯНИЯ/список ВЫБРАТЬ ПОЛУЧАТЕЛЕЙ).
Если
в качестве источника данных используется
документ Word, то этот документ должен
содержать одну таблицу. Первая строка
таблицы должна содержать заголовки, а
остальные строки — записи,
которые нужно включить в составной
документ.
Задание.
Создайте
следующий источник данных в Word (Рисунок 2).
Сохраните документ в своей папке.
Рисунок
2
-
Вставка полей в основной документ
Вставка
поля в основной документ означает, что
в этом месте должна отображаться
определённая категория данных.
Полями
слияния
называются текстовые заполнители,
например адрес или приветствие.
Для
часто используемых элементов, таких
как блоки адреса и строки приветствия,
в Word предусмотрены составные поля,
позволяющие группировать несколько
отдельных полей. Например, поле БЛОК
АДРЕСА — это сочетание нескольких
полей, включая имя, фамилию, адрес, город
и почтовый индекс. Причём содержимое
каждого из этих составных полей можно
настроить. Например, в адресе можно
использовать официальный формат имени
(Г-н
Иванов).
Кроме
полей слияния существуют стандартные
поля Word.
При слиянии используется ограниченный
список стандартных полей Word.
Полный список этих полей можно посмотреть
в окне ПОЛЕ (вкладка ВСТАВКА/группа
ТЕКСТ/список ЭКСПРЕСС-БЛОКИ/команда
ПОЛЕ…) или в помощи Word.
При
вставке поля в основной документ всегда
заключается имя поля в двойные угловые
скобки (« »), например «Адрес».
Если
поля отображаются внутри фигурных
скобок, например {MERGEFIELD Адрес}, то значит
Word отображает коды полей вместо значений
полей3.
Это не влияет на слияние, но при
необходимости отобразить значения,
следует в контекстном меню для конкретного
поля выбрать команду КОДЫ/ЗНАЧЕНИЯ
ПОЛЕЙ. Переключать
режимы отображения всех кодов полей и
их значений можно нажатием клавиш <ALT>
+ <F9>.
Поля
вводятся с помощью соответствующих
средств Word.
Только опытный пользователь может
редактировать коды полей вручную, т.к.
необходимо соблюдать правила написания
данного поля.
Последовательность
действий для вставки полей в основной
документ:
-
откройте
основной документ; -
перейдите
на вкладку РАССЫЛКИ. Большинство
элементов вкладки будут недоступны
(Рисунок 3); -
нажмите
кнопку ВЫБРАТЬ ПОЛУЧАТЕЛЕЙ; -
выберите
команду ИСПОЛЬЗОВАТЬ СУЩЕСТВУЮЩИЙ
СПИСОК…;
Рисунок
3
-
в
окне ВЫБОР ИСТОЧНИКА ДАННЫХ укажите
файл источника данных4.
После этого будут доступны элементы
вкладки РАССЫЛКИ; -
для
вставки поля
слияния
из источника данных установите курсор
в то место основного документа, в которое
требуется вставить это поле, щёлкните
по кнопке со стрелкой ВСТАВИТЬ ПОЛЕ
СЛИЯНИЯ (Рисунок 4) и выберите вставляемое
поле из списка; -
для
вставки поля
Word
в указанное курсором место, используйте
кнопку ПРАВИЛА (Рисунок 5).
-
Рисунок
4Рисунок
5
Появление
диалогового окна ПОДБОР ПОЛЕЙ может
означать, что Word не удалось найти
некоторые из сведений, необходимые для
вставки поля. Щёлкните кнопку со стрелкой
рядом с текстом (НЕТ СООТВЕТСТВИЯ) и
выберите поле из источника данных,
соответствующее полю, которое требуется
включить в слияние.
Для
удаления поля выделите его и нажмите
клавишу <DELETE>. Если курсор находится
внутри текстового поля, то после нажатия
клавиши <DELETE> будет удалён текст
внутри текстового поля, а не сам объект.
Задание.
-
Вставьте
в основной документ следующие поля
слияния (Рисунок 6).
Рисунок
6
-
Вставьте
в основной документ поле MERGEREC
(Рисунок 7) для отображения порядкового
номера записи в источнике данных (без
строки заголовков столбцов).
Рисунок
7
-
Вставьте
в основной документ поле IF
(Рисунок для вставки того или иного
текста в зависимости от результата
сравнения.
Рисунок
8
В
основном документе отобразится текст,
указанный в поле IF,
в зависимости от значения поля
ЗАДОЛЖЕННОСТЬ в первой записи источника
данных.
-
Вставьте
в основной документ строку приветствия
– кнопка СТРОКА ПРИВЕТСТВИЯ (вкладка
РАССЫЛКИ/группа СОСТАВЛЕНИЕ ДОКУМЕНТА
И ВСТАВКА ПОЛЕЙ). Настройте формат
строки приветствия, строку приветствия
для неправильно заданных имён получателей,
подбор полей5
– для имени в списке выберите поле ФИО
(Рисунок 9). В окне ВСТАВКА СТРОКИ
ПРИВЕТСТВИЯ сразу же можно просмотреть
приветствия для каждого получателя из
источника данных (раздел ПРОСМОТР
СПИСКА ПОЛУЧАТЕЛЕЙ).
Рисунок
9
-
Для
выделения полей слияния используйте
кнопку ВЫДЕЛИТЬ ПОЛЯ СЛИЯНИЯ (вкладка
РАССЫЛКИ/группа СОСТАВЛЕНИЕ ДОКУМЕНТА
И ВСТАВКА ПОЛЕЙ). -
Получите
следующий основной документ (Рисунок 10).
Рисунок
10
Для
форматирования полей в основном
документе:
-
выделите
поле вместе с угловыми кавычками (« »); -
задайте
нужные параметры форматирования.
Задание.
Настройте
строку приветствия (12 пт., курсив), поле
ЗАДОЛЖЕННОСТЬ (14 пт., красный цвет
текста), поле IF
(подчёркивание) (Рисунок 11). Сохраните
документ в своей папке.
Рисунок
11
При
сохранении основного документа
сохраняется и его подключение к источнику
данных. Далее при открытии основного
документа будет предложено снова
объединить с ним сведения из источника
данных (Рисунок 12), после чего будет
выполнена команда SQL:
Рисунок
12
При
нажатии на кнопку НЕТ, подключение
основного документа к источнику данных
будет потеряно, появится текст документа
вместе со всеми вставленными полями.
При
нажатии на кнопку ДА, возможно,
дополнительно придётся установить
подключение к источнику данных (Рисунок 13)
– кнопка ПОИСК ИСТОЧНИКА ДАННЫХ.
Рисунок
13
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #