Поделиться через


Событие Application.MailMergeDataSourceValidate (Publisher)

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

Синтаксис

expression. MailMergeDataSourceValidate (Doc, Handled)

выражение: переменная, представляющая объект Application.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Док Обязательный Документ Основной документ слияния.
Обрабатываются Обязательный Boolean Выполняется сопроводимый код проверки источника данных слияния. Значение False отменяет проверку источника данных.

Замечания

Если на компьютере не установлено программное обеспечение для проверки адресов, используйте событие MailMergeDataSourceValidate для создания простых процедур фильтрации, таких как циклирование записей для проверки почтовых индексов и удаление всех, которые не являются сша. Пользователи, не являющиеся пользователями США, могут отфильтровать все почтовые индексы США, изменив приведенный ниже пример кода и используя команды Microsoft Visual Basic для поиска текста или специальных символов.

Чтобы получить доступ к событиям объекта Application , объявите переменную объекта Application в разделе Общие объявления модуля кода, а затем задайте переменную, равную объекту Application , для которого требуется получить доступ к событиям.

Сведения об использовании событий с объектом Microsoft Publisher Application см. в разделе Использование событий с объектом Application.

Пример

В этом примере почтовые индексы во присоединенном источнике данных проверяются на пять цифр. Если длина почтового индекса меньше пяти цифр, запись исключается из процесса слияния. В этом примере предполагается, что почтовые индексы являются почтовыми индексами США. Вы можете изменить этот пример для поиска почтовых индексов с четырехзначным кодом указателя, добавленным в почтовый индекс, а затем исключить все записи, которые не содержат код указателя.

Private Sub MailMergeApp_MailMergeDataSourceValidate( _ 
 ByVal Doc As Document, _ 
 Handled As Boolean) 
 
 Dim intCount As Integer 
 
 Handled = True 
 
 On Error Resume Next 
 
 With ActiveDocument.MailMerge.DataSource 
 
 'Set the active record equal to the first included record in the 
 'data source 
 .ActiveRecord = 1 
 Do 
 intCount = intCount + 1 
 
 'Set the condition that field six must be greater than or 
 'equal to five 
 If Len(.DataFields.Item(6).Value) < 5 Then 
 
 'Exclude the record if field six is shorter than five digits 
 .Included = False 
 
 'Mark the record as containing an invalid address field 
 .InvalidAddress = True 
 
 'Specify the comment attached to the record explaining 
 'why the record was excluded from the mail merge 
 .InvalidComments = "The ZIP Code for this record has " _ 
 & "fewer than five digits. It will be removed " _ 
 & "from the mail merge process." 
 
 End If 
 
 'Move the record to the next record in the data source 
 .ActiveRecord = .ActiveRecord + 1 
 
 'End the loop when the counter variable 
 'equals the number of records in the data source 
 Loop Until intCount = .RecordCount 
 End With 
 
End Sub

Чтобы это событие произошло, необходимо поместить следующую строку кода в раздел Общие объявления модуля и выполнить следующую подпрограмму инициализации.

Private WithEvents MailMergeApp As Application 
 
Sub InitializeMailMergeApp() 
 Set MailMergeApp = Publisher.Application 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.