Событие 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 и обратная связь.