Boa Tarde, Caríssimos,
adaptei no meu projeto, com este código do fórum e que , está a funcionar perfeitamente, mas queria:
1º colocar o Template Word (dotx), em diretório diferente de onde está a base de dados, e o caminho seria G:\GestaoProcessosVistosConsulares\Aplicacao\BD\DocWordTemplate
2º gravar o documento gerado em diretório diferente de onde está a base de dados
G:\GestaoProcessosVistosConsulares\DocWordGerado
já tentei várias formas mas tem dado erro e tive de regressar à forma inicial, se puderem ajudar, agradeço
Private Sub gerarDoc_Click()
'ahteixeira (2016) para MaximoAccess
'Adaptado a partir do exemplo do colega Avelino Sampaio
'veja a dica 75 - http://usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-8.asp?id=1&idlista=234#inicio
If IsNull(Me.cartaSel) Then MsgBox "Escolha o modelo da carta para gerar.", vbInformation, "": Exit Sub
Dim wdApl As Object
Dim strModelo As String
Set wdApl = CreateObject("Word.Application")
'--------------------------
'Abre o arquivo do Word
'--------------------------
wdApl.Documents.Open FileName:=CurrentProject.path & "\" & Me.cartaSel.Column(2)
With wdApl
'Posiciona o cursor no INDICADOR I1_IDVisto ... e preenche
.ActiveDocument.Bookmarks("I1_IDVisto").Select: .Selection.Text = Nz(Me.IDVisto)
.ActiveDocument.Bookmarks("I2_NºORDEM").Select: .Selection.Text = Nz(Me.NºORDEM)
.ActiveDocument.Bookmarks("I3_PassaporteNº").Select: .Selection.Text = Nz(Me.PassaporteNº)
'.ActiveDocument.Bookmarks("I4_NOME").Select: .Selection.Text = Me.NOME
.ActiveDocument.Bookmarks("I5_NOMECompleto").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I6_DataNascimento").Select: .Selection.Text = Me.DataNascimento
.ActiveDocument.Bookmarks("I7_Morada").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I7_C_POSTAL").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I8_FREGUESIA").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I9_CONCELHO").Select: .Selection.Text = Me.CONCELHO
.ActiveDocument.Bookmarks("I10_EstCivil").Select: .Selection.Text = Me.EstCivil
.ActiveDocument.Bookmarks("I11_FuncVisto").Select: .Selection.Text = Me.FuncVisto
.ActiveDocument.Bookmarks("I12_PassaporteDataEmissao").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I13_EntEmissao").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I14_ValiCTProm").Select: .Selection.Text = Me.ValiCTProm
.ActiveDocument.Bookmarks("I15_ValorCTProm").Select: .Selection.Text = Me.ValorCTProm
'---------------------------------------------------------
'Salva o documento preenchido no mesmo local do aplicativo
'----------------------------------------------------------
strLocal = CurrentProject.path & "\" & Me.cartaSel.Column(1) & "-" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & 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 preechido para visualização e impressão
'---------------------------------------------------------
Application.FollowHyperlink strLocal
End Sub
Atentamente
JM
adaptei no meu projeto, com este código do fórum e que , está a funcionar perfeitamente, mas queria:
1º colocar o Template Word (dotx), em diretório diferente de onde está a base de dados, e o caminho seria G:\GestaoProcessosVistosConsulares\Aplicacao\BD\DocWordTemplate
2º gravar o documento gerado em diretório diferente de onde está a base de dados
G:\GestaoProcessosVistosConsulares\DocWordGerado
já tentei várias formas mas tem dado erro e tive de regressar à forma inicial, se puderem ajudar, agradeço
Private Sub gerarDoc_Click()
'ahteixeira (2016) para MaximoAccess
'Adaptado a partir do exemplo do colega Avelino Sampaio
'veja a dica 75 - http://usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-8.asp?id=1&idlista=234#inicio
If IsNull(Me.cartaSel) Then MsgBox "Escolha o modelo da carta para gerar.", vbInformation, "": Exit Sub
Dim wdApl As Object
Dim strModelo As String
Set wdApl = CreateObject("Word.Application")
'--------------------------
'Abre o arquivo do Word
'--------------------------
wdApl.Documents.Open FileName:=CurrentProject.path & "\" & Me.cartaSel.Column(2)
With wdApl
'Posiciona o cursor no INDICADOR I1_IDVisto ... e preenche
.ActiveDocument.Bookmarks("I1_IDVisto").Select: .Selection.Text = Nz(Me.IDVisto)
.ActiveDocument.Bookmarks("I2_NºORDEM").Select: .Selection.Text = Nz(Me.NºORDEM)
.ActiveDocument.Bookmarks("I3_PassaporteNº").Select: .Selection.Text = Nz(Me.PassaporteNº)
'.ActiveDocument.Bookmarks("I4_NOME").Select: .Selection.Text = Me.NOME
.ActiveDocument.Bookmarks("I5_NOMECompleto").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I6_DataNascimento").Select: .Selection.Text = Me.DataNascimento
.ActiveDocument.Bookmarks("I7_Morada").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I7_C_POSTAL").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I8_FREGUESIA").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I9_CONCELHO").Select: .Selection.Text = Me.CONCELHO
.ActiveDocument.Bookmarks("I10_EstCivil").Select: .Selection.Text = Me.EstCivil
.ActiveDocument.Bookmarks("I11_FuncVisto").Select: .Selection.Text = Me.FuncVisto
.ActiveDocument.Bookmarks("I12_PassaporteDataEmissao").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I13_EntEmissao").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I14_ValiCTProm").Select: .Selection.Text = Me.ValiCTProm
.ActiveDocument.Bookmarks("I15_ValorCTProm").Select: .Selection.Text = Me.ValorCTProm
'---------------------------------------------------------
'Salva o documento preenchido no mesmo local do aplicativo
'----------------------------------------------------------
strLocal = CurrentProject.path & "\" & Me.cartaSel.Column(1) & "-" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & 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 preechido para visualização e impressão
'---------------------------------------------------------
Application.FollowHyperlink strLocal
End Sub
Atentamente
JM