Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
27 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 26 Visitantes :: 1 Motor de busca

paulo2015vfpti

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Controlar Scanner Twain

31/3/2017, 17:31 por Kleber R Bento

Estou usando o EZTW32.DLL para criar uma ferramenta que escaneia e gera PDF. Porém com esses …

Comentários: 0

Estatísticas
Temos 7079 usuários registrados
O último usuário registrado atende pelo nome de albsilva

Os nossos membros postaram um total de 48 mensagens em 25 assuntos

VBA - Gerando etiquetas no Word

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tutorial VBA - Gerando etiquetas no Word

Mensagem por Marcos Guedes em 6/6/2009, 17:07

Precisando gerar etiquetas para seus clientes , que tal usar a integração VB-Word usando VBA para automatizar esta tarefa ? Este será o assunto do nosso artigo. Já tratamos da mesclagem de dados para gerar documentos no artigo - Criando Relatórios com o Word . A novidade deste artigo é que iremos gerar etiquetas com os dados de uma tabela em um banco de dados Access.

Na verdade estaremos usando um banco de dados por uma questão de conveniência , mas , poderiamos ter usado um arquivo texto. Sim , voce pode criar um arquivo texto e usá-lo como fonte de dados para gerar as etiquetas. Ao gerar o arquivo você somente deve tomar o cuidado de de separar as colunas com um caracter TAB e os registros com um caracter - ENTER . Veja abaixo um exemplo de um arquivo texto que poderiamos usar:

[Você precisa estar registrado e conectado para ver esta imagem.]

A tabela Clientes , que será a nossa fonte de dados , possui os seguintes dados :

[Você precisa estar registrado e conectado para ver esta imagem.]

- Inicie um novo projeto no VB e no formulário padrão insira os controles conforme o layout abaixo :

[Você precisa estar registrado e conectado para ver esta imagem.]
- Um controle Label - label1
- Um controle TextBox - Text1.text
- Um botão de comando - command1

- Não esqueça de fazer a referência a biblioteca - Microsoft Word Object Library :
  1. Microsoft Word 8.0 Object Library - Se você tiver o Word 97
  2. Microsoft Word 9.0 Object Library - Se você tiver o Word 2000
  3. Microsoft Word 10.0 Object Library - Se você tiver o Word 2002


- Agora no evento Click do botão de comando - command1 - insira o código abaixo:

Código:
Private Sub Command1_Click()

Dim oApp As Word.Application
Dim oDoc As Word.Document

'Inicia um novo documento Word
Set oApp = CreateObject("Word.Application")
Set oDoc = oApp.Documents.Add

Command1.Caption = "&Gerando Etiquetas..."
With oDoc.MailMerge

'Inclui os campos de mesclagens temporarios
'Usamos os campos da tabela Clientes do banco de dados Clientes2.mdb
 With .Fields
  .Add oApp.Selection.Range, "Nome"
  oApp.Selection.TypeParagraph
  .Add oApp.Selection.Range, "Endereco"
  oApp.Selection.TypeParagraph
  .Add oApp.Selection.Range, "Cidade"
  oApp.Selection.TypeText " "
  .Add oApp.Selection.Range, "Cep"
  oApp.Selection.TypeText " - "
  .Add oApp.Selection.Range, "Estado"
 End With
 Dim oAutoText As Word.AutoTextEntry
 Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add("MinhasEtiquetas", oDoc.Content)

 'os campos de mesclagens serão excluidos pois a entrada - AutoText foi gerada
 oDoc.Content.Delete
 
 'Define a mesclagens para etiquetas e usa um banco de dados
 'como fonte de dados , voce pode usar um arquivo texto|
 .MainDocumentType = wdMailingLabels
 'Informe aqui o caminho da fonte de dados
 '.OpenDataSource Name:="C:\teste\etiqueta.txt" --> Voce pode usar um arquivo texto
 sDBPath = Text1.Text
 .OpenDataSource Name:=sDBPath, SQLStatement:="SELECT * FROM Clientes"

 'Cria um novo documento para as etiquetas usando a entrada AutoText
 '5160 é o numero da etiqueta a usada
 oApp.MailingLabel.CreateNewDocument Name:="5160", Address:="", _
 AutoText:="MinhasEtiquetas", LaserTray:=wdPrinterManualFeed
 
 'Executa a mesclagem para gerar as etiquetas
 .Destination = wdSendToNewDocument
 .Execute
 
 'Excluir a entrada AutoText inserida
 oAutoText.Delete

End With

Command1.Caption = "&Etiquetas Geradas..."
'fecha o documento original e torna o word visivel e exibe as etiquetas
oDoc.Close False
oApp.Visible = True
Command1.Caption = "&Gerar Etiquetas"
' Salva o modelo quando o usuario sair do word
oApp.NormalTemplate.Saved = True

End Sub

Como o código já esta comentado eu não vou me ater em explicar novamente o que ele faz. Agora é só executar e aguardar uns instantes , e , voilá, eis as etiquetas geradas no Word...

[Você precisa estar registrado e conectado para ver esta imagem.]

Obs: Se a sua fonte de dados for muito grande a geração pode demorar um pouquinho...

Para se informar mais sobre este assunto veja o links na Knowledge Base :


Q289830 PRB:Prompt to Select Table with Word 2002 Mail Merge Code for Excel or Access Data Source
Q279462 PRB:Prompted To Select a Data Source While Automating Word 2002 Mail Merge
Q285333 INFO:Word 2002 MailMerge Event Code Demonstration
Q285176 HOWTO:Automate Word to Perform a Client-Side Mail Merge Using XML from SQL Server
Q220607 HOWTO:Automate Word to Perform Mail Merge from Visual Basic

Acesse a página do autor:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum