Olá a todos, mais uma vez preciso da ajuda de vocês:
** Access 2003 - Windows 7 64 bits
1) Pesquisando neste site copiei esta rotina para repassar dados do Acces para Word, antes criando o arquivo base de nome: MatrizOficio.doc colocando todas as variáveis correspondentes ao formulário, no Word em inserir\indicador, no entanto, ao clicar no botão abaixo o BD fica travado e aparece a seguinte mensagem: "Erro 4198. O comando falhou, apontando para a linha: .Documents.Open ("c:\argus\MatrizOficio.doc")" ou aparece a mensagem: "Erro: -2147023170 - Erro de automação. Falha na chamada de procedimento remoto", apontando para a mesma linha já mencioada; isso após eu ter que usar o Ctrl+Alt+Del na aba "aplicativos" ou "processos", respectivamente, para encerrar/destravar o BD.
Private Sub BtWord_Click()
#Const DESENV = -1
Dim oApp As Object 'Cria uma variável objeto
' Inicia o MS Word
Set oApp = CreateObject("Word.Application") 'Cria e abre o objeto Word
With oApp
' Torna o MS Word visível
Visible = True
' Abre o documento base
.Documents.Open ("c:\argus\MatrizOficio.doc")
'Move cada campo para o indicador definido no documento
.ActiveDocument.Bookmarks("NumOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NumOficio))
.ActiveDocument.Bookmarks("DataOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!DataOficio))
.ActiveDocument.Bookmarks("CodOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!CODOficio))
.ActiveDocument.Bookmarks("NomeDestinatario").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NomeDestinatario))
.ActiveDocument.Bookmarks("OrgaoDestinatario").Select
.Selection.Text = (CStr(Forms!F13_Oficios!OrgaoDestinatario))
.ActiveDocument.Bookmarks("NomeEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NomeEmitente))
.ActiveDocument.Bookmarks("CargoEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!CargoEmitente))
.ActiveDocument.Bookmarks("FuncaoEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!FuncaoEmitente))
'Salva o arquivo gerado
.ActiveDocument.SaveAs "c:\argus\01.Oficios\" & Me.NumOficio & " " & Format(Date, "dd-mm-yyyy") & ".doc"
MsgBox "Documento salvo com sucesso...", vbInformation
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim x As String
x = "c:\argus\01.Oficios\" & Me.NumOficio & " " & Format(Date, "dd-mm-yyyy") & ".doc"
Dim Word As New Word.Application
With Word
.Documents.Open x
.Visible = True
.WindowState = wdWindowStateMaximize
End With
'Libera a memória
Set oApp = Nothing
Saida:
Exit Sub
End Sub
2) Também gostaria de saber se tem como caso haja algum campo em branco no Formulário, fazer com que no Word ele passe para a próxima variável sem dar erro, ou seja, vai para a próxima e se for a última variável encerra normalmente.
3) Tem como ao gerar o arquivo Word ele abrir automaticamente para edição no momento em que é gerado esse arquivo?
Antecipadamente agradeço a atenção.
** Access 2003 - Windows 7 64 bits
1) Pesquisando neste site copiei esta rotina para repassar dados do Acces para Word, antes criando o arquivo base de nome: MatrizOficio.doc colocando todas as variáveis correspondentes ao formulário, no Word em inserir\indicador, no entanto, ao clicar no botão abaixo o BD fica travado e aparece a seguinte mensagem: "Erro 4198. O comando falhou, apontando para a linha: .Documents.Open ("c:\argus\MatrizOficio.doc")" ou aparece a mensagem: "Erro: -2147023170 - Erro de automação. Falha na chamada de procedimento remoto", apontando para a mesma linha já mencioada; isso após eu ter que usar o Ctrl+Alt+Del na aba "aplicativos" ou "processos", respectivamente, para encerrar/destravar o BD.
Private Sub BtWord_Click()
#Const DESENV = -1
Dim oApp As Object 'Cria uma variável objeto
' Inicia o MS Word
Set oApp = CreateObject("Word.Application") 'Cria e abre o objeto Word
With oApp
' Torna o MS Word visível
Visible = True
' Abre o documento base
.Documents.Open ("c:\argus\MatrizOficio.doc")
'Move cada campo para o indicador definido no documento
.ActiveDocument.Bookmarks("NumOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NumOficio))
.ActiveDocument.Bookmarks("DataOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!DataOficio))
.ActiveDocument.Bookmarks("CodOficio").Select
.Selection.Text = (CStr(Forms!F13_Oficios!CODOficio))
.ActiveDocument.Bookmarks("NomeDestinatario").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NomeDestinatario))
.ActiveDocument.Bookmarks("OrgaoDestinatario").Select
.Selection.Text = (CStr(Forms!F13_Oficios!OrgaoDestinatario))
.ActiveDocument.Bookmarks("NomeEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!NomeEmitente))
.ActiveDocument.Bookmarks("CargoEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!CargoEmitente))
.ActiveDocument.Bookmarks("FuncaoEmitente").Select
.Selection.Text = (CStr(Forms!F13_Oficios!FuncaoEmitente))
'Salva o arquivo gerado
.ActiveDocument.SaveAs "c:\argus\01.Oficios\" & Me.NumOficio & " " & Format(Date, "dd-mm-yyyy") & ".doc"
MsgBox "Documento salvo com sucesso...", vbInformation
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim x As String
x = "c:\argus\01.Oficios\" & Me.NumOficio & " " & Format(Date, "dd-mm-yyyy") & ".doc"
Dim Word As New Word.Application
With Word
.Documents.Open x
.Visible = True
.WindowState = wdWindowStateMaximize
End With
'Libera a memória
Set oApp = Nothing
Saida:
Exit Sub
End Sub
2) Também gostaria de saber se tem como caso haja algum campo em branco no Formulário, fazer com que no Word ele passe para a próxima variável sem dar erro, ou seja, vai para a próxima e se for a última variável encerra normalmente.
3) Tem como ao gerar o arquivo Word ele abrir automaticamente para edição no momento em que é gerado esse arquivo?
Antecipadamente agradeço a atenção.