Como preencher modelos do Word (dotx) com o Microsoft Access
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Para preencher um documento do Word com dados do Access, utilizamos os INDICADORES (Bookmarks). Posicione o cursor no local aonde deseja inserir o INDICADOR, vá na guia Inserir da ribbon e clique em INDICADOR.
Dê um nome para o INDICADOR e clique no botão Adicionar. Geralmente, eu numero o INDICADOR.
Para visualizar os INDICADORES no documento, vá na guia Arquivo > Opções > Avançado > Marque Mostrar indicadores.
Baixe o arquivo e faça o teste:
Clique aqui e baixe o arquivo exemplo.
Abra o arquivo modelo oferecido (BookmarksModelo.dotx) e observe a posição dos INDICADORES que irão receber os dados:
No aplicativo exemplo DocBookmarks.accdb, abra o formulário frmTeste e clique no botão Gerar Documento Word.
Observe, no arquivo gerado, os valores preenchidos nas posições dos INDICADORES.
O código utilizado para gerar o documento foi este abaixo. Atente para os comentários:
Private Sub brGerarDoc_Click() Dim wdApl As Object Dim strLocal As String Set wdApl = CreateObject("Word.Application") '-------------------------- 'Abre o arquivo do Word '-------------------------- wdApl.Documents.Open FileName:=CurrentProject.Path & "\BookmarksModelo.dotx"
With wdApl
'-------------------------------------------------------------------- 'Posiciona o cursor no INDICADOR I1 e preenche com a data do processo
'-------------------------------------------------------------------- .ActiveDocument.Bookmarks("I1").Select
.Selection.Text = Nz(Format(Me!DataProcesso, "dd \de mmmm \de yyyy"))
'----------------------------------------------------------- 'Posiciona o cursor no INDICADOR I2 e preenche com o assunto
'------------------------------------------------------------ .ActiveDocument.Bookmarks("I2").Select: .Selection.Text = Nz(Me!Assunto)
.ActiveDocument.Bookmarks("I3").Select: .Selection.Text = Nz(Me!Instituidor) .ActiveDocument.Bookmarks("I4").Select: .Selection.Text = Nz(Me!Recorrente) .ActiveDocument.Bookmarks("I5").Select: .Selection.Text = Nz(Me!Processo) .ActiveDocument.Bookmarks("I6").Select: .Selection.Text = Nz(Me!Notificação) .ActiveDocument.Bookmarks("I7").Select
.Selection.Text = Nz(Me!RecursoAdministrativo) .ActiveDocument.Bookmarks("I8").Select: .Selection.Text = Nz(Me!Manifestação) .ActiveDocument.Bookmarks("I9").Select: .Selection.Text = Nz(Me!Origem) .ActiveDocument.Bookmarks("I10").Select: .Selection.Text = Nz(Me!Estudo) .ActiveDocument.Bookmarks("I11").Select
.Selection.Text = Nz(Me!RecursoAdministrativo) .ActiveDocument.Bookmarks("I12").Select: .Selection.Text = Nz(Me!Estudo) '--------------------------------------------------------- 'Salva o documento preenchido no mesmo local do aplicativo '---------------------------------------------------------- strLocal = CurrentProject.Path & "\Doc-" & Nz(Replace(Me!Assunto, " ", ""))
strLocal = strLocal & "-" & Format(Now, "hhmmss") & ".doc" .ActiveDocument.SaveAs strLocal ', Password:="123" '------------------ 'Fecha o documento '------------------ .ActiveDocument.Close '------------- 'Fecha o Word '------------- .Quit End With 'Limpa a memória Set wdApl = Nothing '--------------------------------------------------------- 'Abre o documento preenchido para visualização e impressão '--------------------------------------------------------- Application.FollowHyperlink strLocal End Sub
Caso deseje acrescentar senha ao documento gerado, basta acrescentar o argumento Password na seguinte linha:
.ActiveDocument.SaveAs strLocal, Password:="SuaSenha"
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
6 comentário(s) Mauro George 14/07/2023 04:06:29 Bom dia Avelino, desde já agradeço por disponibilizar este código que é de grande valia. Avelino, estou com a seguinte situação: tenho um campo no formulário que a origem é uma tabela de cadastro distinta, de modo que, quando eu gero o arquivo no word, está aparecendo apenas o código do campo e não as informações. Trata-se de um caixa de combinação. Poderia me ajudar com esta questão? Obrigado. Almir de Oliveira 26/09/2022 06:25:52 Excelente o tópico adorei, funcionou muito bem. Avelino Sampaio 20/09/2022 03:13:00 Ramon, se inscreva no nosso site e abra um tópico sobre o assunto. Informe a versão do seu Office. http://www.redeaccess.com.br Aguardamos Ramon Lima Silva 19/09/2022 18:19:22 O documento abre e preenche o campo, mas quando vai salvar, ao inves de salvar automaticamente, aparece a janela de Salvar como do Word eu clico em salvar e depois disso dar erro em tempo de execução 4198. Glauco 01/11/2021 14:14:52 Quando aperto gerar documento do word não está salvando direto, ele abre uma caixa para nomear o arquivo do word e isso está travando o access. Não teria como salvar direto com um nome qualquer, sem necessidade de abrir a caixa do word para nomear o arquivo???? Avelino Sampaio 14/07/2021 04:10:13 Mauro, vc provavelmente está capturando a primeira coluna da caixa. Verifique se a informação desejada está na segunda coluna. Capture a segunda coluna assim: me!NomeDaSuaCombo.column(1) 'aqui vc está capturando a segunda coluna da caixa Sucesso! |