Estou usando esse código para exportar dados do Access para um arquivo do Word.
Do modo que está, todos os registros da tabela são armazenados em um string que então é inserida em uma tabela do Word.
O problema que toda essa string fica em apenas uma linha da tabela e eu queria que cada registro da tabela ocupasse uma linha na tabela do Access.
Estava tentando utilizar o comando .Selection.InsertRowsBelow (1) mas não consegui encontrar um lugar certo para inserir no código.
Private Sub Comando40_Click()
Dim rsCli As Recordset
Set rsCli = CurrentDb.OpenRecordset("SELECT * FROM tblPendencias WHERE Indice=" & Me.Vistoria)
Dim DocWord As Object
Dim vArea As String, vSetor As String, vDisciplina As String, vDocumento As String
Dim vPendencia As String, vPrioridade As String, vCadastro As String, vExecucao As String
Dim vAtualizacao As String, vFechamento As String, vRealizado As String
Set DocWord = CreateObject("Word.Application")
With DocWord
.Visible = False
.Documents.Add Template:=CurrentProject.Path & "\baseTermobm.docx", NewTemplate:=False, DocumentType:=0
'============================================================================================================
'.ActiveDocument.Bookmarks("DataHora").Select
' .Selection.Text = Format(Now, "General Date")
'.ActiveDocument.Bookmarks("area1").Select
'.Selection.Text = rsCli!ÁreaSítio
'.ActiveDocument.Bookmarks("setor1").Select
'.Selection.Text = rsCli!Setor
'.ActiveDocument.Bookmarks("area2").Select
'.Selection.Text = rsCli!ÁreaSítio
'.ActiveDocument.Bookmarks("setor2").Select
' .Selection.Text = rsCli!Setor
'============================================================================================================
Do While Not rsCli.EOF
'vArea = vArea & vbCrLf & rsCli!ÁreaSítio
'vSetor = vSetor & vbCrLf & rsCli!Setor
If vPendencia = "" Then
vPendencia = rsCli!Pendência
vDisciplina = rsCli!Disciplina
vDocumento = rsCli!DocumentoReferência
vPrioridade = rsCli!Prioridade
vCadastro = rsCli!DataCadastro
vExecucao = rsCli!PrazoExecução
vAtualizacao = rsCli!DataAtualização
vFechamento = rsCli!DataFechamento
vRealizado = rsCli!Realizado
Else
vDisciplina = vDisciplina & vbCrLf & rsCli!Disciplina
vDocumento = vDocumento & vbCrLf & rsCli!DocumentoReferência
vPendencia = vPendencia & vbCrLf & rsCli!Pendência
vPrioridade = vPrioridade & vbCrLf & rsCli!Prioridade
vCadastro = vCadastro & vbCrLf & rsCli!DataCadastro
vExecucao = vExecucao & vbCrLf & rsCli!PrazoExecução
vAtualizacao = vAtualizacao & vbCrLf & rsCli!DataAtualização
vFechamento = vFechamento & vbCrLf & rsCli!DataFechamento
vRealizado = vRealizado & vbCrLf & rsCli!Realizado
End If
rsCli.MoveNext
Loop
.ActiveDocument.Bookmarks("pendencia").Select
.Selection.Text = vPendencia
.ActiveDocument.Bookmarks("disciplina").Select
.Selection.Text = vDisciplina
.ActiveDocument.Bookmarks("documento").Select
.Selection.Text = vDocumento
.ActiveDocument.Bookmarks("prioridade").Select
.Selection.Text = vPrioridade
.ActiveDocument.Bookmarks("cadastro").Select
.Selection.Text = vCadastro
.ActiveDocument.Bookmarks("prazo").Select
.Selection.Text = vExecucao
.ActiveDocument.Bookmarks("atualizacao").Select
.Selection.Text = vAtualizacao
.ActiveDocument.Bookmarks("fechamento").Select
.Selection.Text = vFechamento
.ActiveDocument.Bookmarks("realizado").Select
.Selection.Text = vRealizado
'============================================================================================================
.ActiveDocument.SaveAs CurrentProject.Path & "\" & "testetetes" & ".docx"
rsCli.Close
Set rsCli = Nothing
.ActiveDocument.Close
End With
DocWord.Quit
Set DocWord = Nothing
DoCmd.RunMacro "termoOK"
End Sub
Já aproveito para tirar outra dúvida: é muito complicado programar para que o Access gere um relatório, exporte para PDF e então dentro do Word eu insiro esse PDF. Seria melhor do que o jeito que estou fazendo agora?
Desde já, muito obrigado!
Do modo que está, todos os registros da tabela são armazenados em um string que então é inserida em uma tabela do Word.
O problema que toda essa string fica em apenas uma linha da tabela e eu queria que cada registro da tabela ocupasse uma linha na tabela do Access.
Estava tentando utilizar o comando .Selection.InsertRowsBelow (1) mas não consegui encontrar um lugar certo para inserir no código.
Private Sub Comando40_Click()
Dim rsCli As Recordset
Set rsCli = CurrentDb.OpenRecordset("SELECT * FROM tblPendencias WHERE Indice=" & Me.Vistoria)
Dim DocWord As Object
Dim vArea As String, vSetor As String, vDisciplina As String, vDocumento As String
Dim vPendencia As String, vPrioridade As String, vCadastro As String, vExecucao As String
Dim vAtualizacao As String, vFechamento As String, vRealizado As String
Set DocWord = CreateObject("Word.Application")
With DocWord
.Visible = False
.Documents.Add Template:=CurrentProject.Path & "\baseTermobm.docx", NewTemplate:=False, DocumentType:=0
'============================================================================================================
'.ActiveDocument.Bookmarks("DataHora").Select
' .Selection.Text = Format(Now, "General Date")
'.ActiveDocument.Bookmarks("area1").Select
'.Selection.Text = rsCli!ÁreaSítio
'.ActiveDocument.Bookmarks("setor1").Select
'.Selection.Text = rsCli!Setor
'.ActiveDocument.Bookmarks("area2").Select
'.Selection.Text = rsCli!ÁreaSítio
'.ActiveDocument.Bookmarks("setor2").Select
' .Selection.Text = rsCli!Setor
'============================================================================================================
Do While Not rsCli.EOF
'vArea = vArea & vbCrLf & rsCli!ÁreaSítio
'vSetor = vSetor & vbCrLf & rsCli!Setor
If vPendencia = "" Then
vPendencia = rsCli!Pendência
vDisciplina = rsCli!Disciplina
vDocumento = rsCli!DocumentoReferência
vPrioridade = rsCli!Prioridade
vCadastro = rsCli!DataCadastro
vExecucao = rsCli!PrazoExecução
vAtualizacao = rsCli!DataAtualização
vFechamento = rsCli!DataFechamento
vRealizado = rsCli!Realizado
Else
vDisciplina = vDisciplina & vbCrLf & rsCli!Disciplina
vDocumento = vDocumento & vbCrLf & rsCli!DocumentoReferência
vPendencia = vPendencia & vbCrLf & rsCli!Pendência
vPrioridade = vPrioridade & vbCrLf & rsCli!Prioridade
vCadastro = vCadastro & vbCrLf & rsCli!DataCadastro
vExecucao = vExecucao & vbCrLf & rsCli!PrazoExecução
vAtualizacao = vAtualizacao & vbCrLf & rsCli!DataAtualização
vFechamento = vFechamento & vbCrLf & rsCli!DataFechamento
vRealizado = vRealizado & vbCrLf & rsCli!Realizado
End If
rsCli.MoveNext
Loop
.ActiveDocument.Bookmarks("pendencia").Select
.Selection.Text = vPendencia
.ActiveDocument.Bookmarks("disciplina").Select
.Selection.Text = vDisciplina
.ActiveDocument.Bookmarks("documento").Select
.Selection.Text = vDocumento
.ActiveDocument.Bookmarks("prioridade").Select
.Selection.Text = vPrioridade
.ActiveDocument.Bookmarks("cadastro").Select
.Selection.Text = vCadastro
.ActiveDocument.Bookmarks("prazo").Select
.Selection.Text = vExecucao
.ActiveDocument.Bookmarks("atualizacao").Select
.Selection.Text = vAtualizacao
.ActiveDocument.Bookmarks("fechamento").Select
.Selection.Text = vFechamento
.ActiveDocument.Bookmarks("realizado").Select
.Selection.Text = vRealizado
'============================================================================================================
.ActiveDocument.SaveAs CurrentProject.Path & "\" & "testetetes" & ".docx"
rsCli.Close
Set rsCli = Nothing
.ActiveDocument.Close
End With
DocWord.Quit
Set DocWord = Nothing
DoCmd.RunMacro "termoOK"
End Sub
Já aproveito para tirar outra dúvida: é muito complicado programar para que o Access gere um relatório, exporte para PDF e então dentro do Word eu insiro esse PDF. Seria melhor do que o jeito que estou fazendo agora?
Desde já, muito obrigado!