Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se produce cuando un usuario realiza la comprobación de direcciones eligiendo Validar en el cuadro de diálogo Destinatarios de combinación de correspondencia .
Sintaxis
expresión. MailMergeDataSourceValidate (Doc, Handled)
expresión Variable que representa un objeto Application.
Parámetros
| Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
|---|---|---|---|
| Doc | Obligatorio | Document | Documento principal de la combinación de correspondencia. |
| Handled | Obligatorio | Boolean | True ejecuta el código de validación correspondiente en el origen de datos de combinación de correspondencia. False cancela la validación del origen de datos. |
Observaciones
Si no tiene instalado el software de comprobación de direcciones en el equipo, use el evento MailMergeDataSourceValidate para crear rutinas de filtrado sencillas, como recorrer en bucle los registros para comprobar los códigos postales y quitar los que no sean de EE. UU. Los usuarios no estadounidenses pueden filtrar todos los códigos postales de EE. UU. modificando el ejemplo de código siguiente y usando comandos de Microsoft Visual Basic para buscar texto o caracteres especiales.
Para acceder a los eventos de objeto Application , declare una variable de objeto Application en la sección Declaraciones generales de un módulo de código y, a continuación, establezca la variable igual al objeto Application para el que desea tener acceso a los eventos.
Para obtener información sobre cómo usar eventos con el objeto Application de Microsoft Publisher, consulte Uso de eventos con el objeto Application.
Ejemplo
En este ejemplo se validan los códigos postales de cinco dígitos en el origen de datos adjunto. Si la longitud del código postal es inferior a cinco dígitos, se excluirá el registro del proceso de combinación de correspondencia. En este ejemplo se supone que los códigos postales son códigos U.S. ZIP. Puede modificar este ejemplo para buscar códigos POSTALes que tengan un código de localizador de cuatro dígitos anexado al código postal y, a continuación, excluir todos los registros que no contengan el código del localizador.
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
Para que este evento tenga lugar, debe colocar la siguiente línea de código en la sección Declaraciones generales del módulo y ejecutar la siguiente rutina de inicialización.
Private WithEvents MailMergeApp As Application
Sub InitializeMailMergeApp()
Set MailMergeApp = Publisher.Application
End Sub
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.