Application.MailMergeDataSourceValidate-Ereignis (Publisher)

Tritt auf, wenn ein Benutzer die Adressüberprüfung durchführt, indem er im Dialogfeld Seriendruckempfänger die Option Überprüfen auswählt.

Syntax

Ausdruck. MailMergeDataSourceValidate (Doc, Handled)

expression Eine Variable, die ein Application-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Doc Erforderlich Document Das Seriendruck-Hauptdokument.
Handled Erforderlich Boolean True, wird den zugehörige Validierungscode für die Seriendruck-Datenquelle ausgeführt. False bricht die Überprüfung der Datenquelle ab.

HinwBemerkungeneise

Wenn Sie keine Adressüberprüfungssoftware auf Ihrem Computer installiert haben, verwenden Sie das MailMergeDataSourceValidate-Ereignis , um einfache Filterroutinen zu erstellen, z. B. das Durchlaufen von Datensätzen, um die Postleitzahlen zu überprüfen, und entfernen Sie alle, die nicht zu den USA gehören. Nicht-US-Benutzer können alle US-Postleitzahlen herausfiltern, indem sie das folgende Codebeispiel ändern und Microsoft Visual Basic-Befehle verwenden, um nach Text oder Sonderzeichen zu suchen.

Um auf die Application-Objektereignisse zuzugreifen, deklarieren Sie eine Application-Objektvariable im Abschnitt Allgemeine Deklarationen eines Codemoduls, und legen Sie dann die Variable auf das Application-Objekt fest, für das Sie auf Ereignisse zugreifen möchten.

Informationen zur Verwendung von Ereignissen mit dem Microsoft Publisher-Anwendungsobjekt finden Sie unter Verwenden von Ereignissen mit dem Application-Objekt.

Beispiel

In diesem Beispiel werden Postleitzahlen in der verknüpften Datenquelle auf fünf Ziffern überprüft. Wenn die Länge der Postleitzahl weniger als fünf Ziffern beträgt, wird der Datensatz vom Seriendruckvorgang ausgeschlossen. In diesem Beispiel wird davon ausgegangen, dass es sich bei den Postleitzahlen um US-Postleitzahlen handelt. Sie können dieses Beispiel ändern, um nach Postleitzahlen zu suchen, deren vierstelliger Locatorcode an die Postleitzahl angefügt ist, und dann alle Datensätze ausschließen, die den Locatorcode nicht enthalten.

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

Damit dieses Ereignis eintritt, müssen Sie folgende Codezeile im allgemeinen Deklarationsbereich des Moduls platzieren und folgende Initialisierungsroutine ausführen:

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.