Événement Application.MailMergeDataSourceValidate (Publisher)

Se produit lorsqu’un utilisateur effectue la vérification d’adresse en choisissant Valider dans la boîte de dialogue Destinataires de fusion et publipostage .

Syntaxe

expression. MailMergeDataSourceValidate (Doc, Handled)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
Doc Obligatoire Document Document principal de publipostage.
Handled Obligatoire Booléen La valeur True, le code de validation joint s'exécute par rapport à la source de données de fusion et publipostage. La valeur False annule la validation de source de données.

Remarques

Si vous n’avez pas de logiciel de vérification d’adresse installé sur votre ordinateur, utilisez l’événement MailMergeDataSourceValidate pour créer des routines de filtrage simples, telles que l’exécution d’enregistrements en boucle pour vérifier les codes postaux et supprimer celles qui ne sont pas américaines. Les utilisateurs non américains peuvent filtrer tous les codes postaux américains en modifiant l’exemple de code suivant et en utilisant les commandes Microsoft Visual Basic pour rechercher du texte ou des caractères spéciaux.

Pour accéder aux événements de l’objet Application , déclarez une variable objet Application dans la section Déclarations générales d’un module de code, puis définissez la variable sur l’objet Application pour lequel vous souhaitez accéder aux événements.

Pour plus d’informations sur l’utilisation d’événements avec l’objet Application Microsoft Publisher, consultez Utilisation d’événements avec l’objet Application.

Exemple

Cet exemple valide les codes postaux à cinq chiffres dans la source de données jointe. Si le code postal comprend moins de cinq chiffres, l'enregistrement est exclu de l'opération de fusion et publipostage. Cet exemple suppose que les codes postaux sont des codes postaux américains. Vous pouvez modifier cet exemple pour rechercher des codes postaux qui ont un code de localisateur à quatre chiffres ajouté au code postal, puis exclure tous les enregistrements qui ne contiennent pas le code de localisateur.

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

Pour que cet événement se produise, vous devez placer la ligne de code suivante dans la section Général - Déclarations de votre module et exécuter la routine d'initialisation suivante.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.