Compartilhar via


Evento Application.MailMergeDataSourceValidate (Publisher)

Ocorre quando um utilizador efetua a verificação de endereço ao selecionar Validar na caixa de diálogo Destinatários da Impressão em Série.

Sintaxe

expressão. MailMergeDataSourceValidate (Doc, Processado)

expressão Uma variável que representa um Aplicativo objeto.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Doc Obrigatório Document O documento principal de mala direta.
Handled Obrigatório Boolean True executa o código de validação acompanha contra a fonte de dados de mala direta. False cancela a validação de fonte de dados.

Comentários

Se não tiver o software de verificação de endereços instalado no seu computador, utilize o evento MailMergeDataSourceValidate para criar rotinas de filtragem simples, como percorrer os registos para marcar os códigos postais e remover quaisquer que não sejam dos EUA. Os utilizadores não americanos podem filtrar todos os códigos postais dos EUA ao modificar o seguinte exemplo de código e ao utilizar comandos do Microsoft Visual Basic para procurar texto ou carateres especiais.

Para aceder aos eventos de objeto da Aplicação , declare uma variável de objeto Aplicação na secção Declarações Gerais de um módulo de código e, em seguida, defina a variável igual ao objeto Aplicação para o qual pretende aceder a eventos.

Para obter informações sobre como utilizar eventos com o objeto Aplicação do Microsoft Publisher, veja Utilizar eventos com o objeto Aplicação.

Exemplo

Este exemplo valida códigos de CEP na fonte de dados vinculada de cinco dígitos. Se o tamanho do CEP tiver menos que cinco dígitos, o registro será excluído do processo de mala direta. Este exemplo pressupõe que os códigos postais são códigos U.S. ZIP. Pode modificar este exemplo para procurar Códigos Postais que tenham um código de localizador de quatro dígitos anexado ao Código Postal e, em seguida, excluir todos os registos que não contenham o código do 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 ocorra, você precisa colocar a seguinte linha de código na seção Declaração Geral do módulo e executar a seguinte rotina de inicialização.

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.