Tenho um formulário onde seleciono os dados necessários para impressão de documentos em Word, através do código que tirei aqui do forum, ativado por um botão de comando e no evento ao fazer click.
Necessitava bloquear esse botão, após o click e até final de emissão do documento, e que após a emissão o botão ficasse novamente activo.
Isto porque se clickar uma vez o documento abre perfeitamente, no entanto se der dois cliks o modelo do documento do word bloqueia e já não o volta a abrir através do access, tem que se abrir o documento original no Word e fechar novamente e não guardar as alterações para ele voltar a funcionar.
Assim se bloquer o botão, enquanto o documento abre, se der outro click penso que já não deve bloquear.
Obrigado e se puderem ajudar agradecia.
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 ("F:\ofi\Oficios\Relatorio.doc")
'Move cada campo para o indicador definido no documento
.ActiveDocument.Bookmarks("a").Select 'letra A corresponde ao campo NomeEmitente1 no doc word
.Selection.Text = (CStr(Forms!Clientes!NomeEmitente1))
.ActiveDocument.Bookmarks("c").Select 'letra C corresponde ao campo CargoEmitente1 no doc word
.Selection.Text = (CStr(Forms!Clientes!CargoEmitente1))
.ActiveDocument.Bookmarks("b").Select 'letra B corresponde ao campo NomeEmitente2 no doc word
.Selection.Text = (CStr(Forms!Clientes!NomeEmitente2))
'Salva o arquivo gerado
.ActiveDocument.SaveAs "F:\ofi\Oficios\" & Me.CodOficio & ".doc"
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim x As String
x = "F:\ofi\Oficios\" & Me.CodOficio & ".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
Necessitava bloquear esse botão, após o click e até final de emissão do documento, e que após a emissão o botão ficasse novamente activo.
Isto porque se clickar uma vez o documento abre perfeitamente, no entanto se der dois cliks o modelo do documento do word bloqueia e já não o volta a abrir através do access, tem que se abrir o documento original no Word e fechar novamente e não guardar as alterações para ele voltar a funcionar.
Assim se bloquer o botão, enquanto o documento abre, se der outro click penso que já não deve bloquear.
Obrigado e se puderem ajudar agradecia.
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 ("F:\ofi\Oficios\Relatorio.doc")
'Move cada campo para o indicador definido no documento
.ActiveDocument.Bookmarks("a").Select 'letra A corresponde ao campo NomeEmitente1 no doc word
.Selection.Text = (CStr(Forms!Clientes!NomeEmitente1))
.ActiveDocument.Bookmarks("c").Select 'letra C corresponde ao campo CargoEmitente1 no doc word
.Selection.Text = (CStr(Forms!Clientes!CargoEmitente1))
.ActiveDocument.Bookmarks("b").Select 'letra B corresponde ao campo NomeEmitente2 no doc word
.Selection.Text = (CStr(Forms!Clientes!NomeEmitente2))
'Salva o arquivo gerado
.ActiveDocument.SaveAs "F:\ofi\Oficios\" & Me.CodOficio & ".doc"
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim x As String
x = "F:\ofi\Oficios\" & Me.CodOficio & ".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