MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Botão para gerar documentos Word

    teboman
    teboman
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 03/08/2016

    [Resolvido]Botão para gerar documentos Word Empty [Resolvido]Botão para gerar documentos Word

    Mensagem  teboman 15/5/2017, 14:21

    Boa tarde professores Very Happy vocês me ajudam muito todo dia, e desculpem minha falta de conhecimento em VBA, mas estou necessitando fazer alguma coisas e estou aprendendo a cada dia.
    Hoje estou tentando fazer um botão que manda dados de um formulario com dados de uma tabela para preencher uma procuração com nome clientes e dados peguei um código aqui mesmo no forum para fazer isso, porem cada hora da um erro e não consigo concluir a operação do botão. Segue o Codigo adaptado que peguei em algum lugar aqui do forum.

    Private Sub BtProc_Click()
    #Const DESENV = -1

    On Error GoTo TrataErro
    Dim oApp As Object 'Cria uma variável objeto
    Dim strSQL As String

    ' 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:\Users\Junior\Google Drive\Aprendizado\Procuração Pessoa Física.doc")
    'Move cada campo para o indicador definido no documento
    .ActiveDocument.Bookmarks("txtCliente").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cliente))
    .ActiveDocument.Bookmarks("txtNascimento").Select
    .Selection.Text = (CStr(Forms!FormClientes!Nascimento))
    .ActiveDocument.Bookmarks("txtEstadoCivil").Select
    .Selection.Text = (CStr(Forms!FormClientes!EstadoCivil))
    .ActiveDocument.Bookmarks("Profissao").Select
    .Selection.Text = (CStr(Forms!FormClientes!Profissao))
    .ActiveDocument.Bookmarks("txtNomeMae").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDaMae))
    .ActiveDocument.Bookmarks("txtNomePai").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDoPai))
    .ActiveDocument.Bookmarks("txtRg").Select
    .Selection.Text = (CStr(Forms!FormClientes!RG))
    .ActiveDocument.Bookmarks("txtCpf").Select
    .Selection.Text = (CStr(Forms!FormClientes!CIC))
    .ActiveDocument.Bookmarks("txtCtps").Select
    .Selection.Text = (CStr(Forms!FormClientes!CTPS))
    .ActiveDocument.Bookmarks("txtSerie").Select
    .Selection.Text = (CStr(Forms!FormClientes!Série))
    .ActiveDocument.Bookmarks("txtPis").Select
    .Selection.Text = (CStr(Forms!FormClientes!PIS))
    .ActiveDocument.Bookmarks("txtEndereço").Select
    .Selection.Text = (CStr(Forms!FormClientes!Endereço))
    .ActiveDocument.Bookmarks("txtBairro").Select
    .Selection.Text = (CStr(Forms!FormClientes!Bairro))
    .ActiveDocument.Bookmarks("txtCidade").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cidade))
    .ActiveDocument.Bookmarks("txtUf").Select
    .Selection.Text = (CStr(Forms!FormClientes!UF))
    .ActiveDocument.Bookmarks("txtCep").Select
    .Selection.Text = (CStr(Forms!FormClientes!CEP))
    .ActiveDocument.Bookmarks("txtTelefone").Select
    .Selection.Text = (CStr(Forms!FormClientes!Telefone))

    'Salva o arquivo gerado
    .ActiveDocument.SaveAs "C:\Users\Junior\Google Drive\Aprendizado\Procuração Pessoa Física teste.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:\Users\Junior\Google Drive\Aprendizado\Procuração Pessoa Física.doc" & "Clientes " & Replace(Me.Cliente, "/", "-") & " " & CurrentUser() & ".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

    TrataErro:
    'Se um campo do formulário estiver vazio, remove o texto do Indicador e continua
    If Err.Number = 94 Then
    oApp.Selection.Text = ""
    Resume Next
    End If
    MsgBox "FormClientes - BtProc_Click" & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
    #If DESENV Then
    oApp.Quit
    Set oApp = Nothing
    Stop
    Resume
    #End If
    Resume Saida
    End Sub


    O diretório está no google drive pois trabalho em varios lugares. Porem ao clicar no botão ele da erro FormCliente - BtProc_Click... O membro solicitado da coleção não existe. E ele para em Stop (Destacado em amarelo no codigo)
    Oque estou fazendo de errado e como faço pra corrigir e novamente, me desculpem pela minha falta de conhecimento e agradeço desde já.
    teboman
    teboman
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 03/08/2016

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  teboman 31/5/2017, 20:13

    Alguém para me dar uma força? me perdoem pela ignorância.
    teboman
    teboman
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 03/08/2016

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  teboman 6/6/2017, 15:59

    Resolvi o problema mas não sei como, peguei um código no site da microsoft e fui alterando até dar certo, segue o link que me ajudou muito

    support.microsoft.com/pt-br/help/210271/how-to-send-the-current-record-to-word-2000-with-automation

    que também peguei em algum lugar no fórum e o código ficou da seguinte forma mas creio que vá ser necessário algumas alterações que ainda não descobri como fazer tipo ao fazer a mesclagem trazer o word pra tela ao invés de precisar clicar na barra de tarefas para o usuário verificar todas as informações mas já já eu acho o que for necessário, caso alguém saiba por favor me ajudar :

    Private Sub BtProc_Click()

    On Error GoTo MergeButton_Err

    Dim objWord As Word.Application
    Set objWord = CreateObject("Word.Application")
    With objWord
    'Make the application visible.
    .Visible = True
    'Open the document.
    .Documents.Open ("C:\Advocacia\Procuração Pessoa Fisica.doc")
    .ActiveDocument.Bookmarks("txtCliente").Select
    .Selection.Text = (CStr(Me.Cliente))
    .ActiveDocument.Bookmarks("txtNascimento").Select
    .Selection.Text = (CStr(Forms!FormClientes!Nascimento))
    .ActiveDocument.Bookmarks("txtNacionalidade").Select
    .Selection.Text = (CStr(Forms!FormClientes!Nacionalidade))
    .ActiveDocument.Bookmarks("txtEstadoCivil").Select
    .Selection.Text = (CStr(Forms!FormClientes!EstadoCivil))
    .ActiveDocument.Bookmarks("txtProfissao").Select
    .Selection.Text = (CStr(Forms!FormClientes!Profissao))
    .ActiveDocument.Bookmarks("txtNomeMae").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDaMae))
    .ActiveDocument.Bookmarks("txtNomePai").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDoPai))
    .ActiveDocument.Bookmarks("txtRg").Select
    .Selection.Text = (CStr(Forms!FormClientes!RG))
    .ActiveDocument.Bookmarks("txtCpf").Select
    .Selection.Text = (CStr(Forms!FormClientes!CIC))
    .ActiveDocument.Bookmarks("txtCtps").Select
    .Selection.Text = (CStr(Forms!FormClientes!CTPS))
    .ActiveDocument.Bookmarks("txtSerie").Select
    .Selection.Text = (CStr(Forms!FormClientes!Série))
    .ActiveDocument.Bookmarks("txtPis").Select
    .Selection.Text = (CStr(Forms!FormClientes!PIS))
    .ActiveDocument.Bookmarks("txtEndereco").Select
    .Selection.Text = (CStr(Forms!FormClientes!Endereço))
    .ActiveDocument.Bookmarks("txtBairro").Select
    .Selection.Text = (CStr(Forms!FormClientes!Bairro))
    .ActiveDocument.Bookmarks("txtCidade").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cidade))
    .ActiveDocument.Bookmarks("txtUf").Select
    .Selection.Text = (CStr(Forms!FormClientes!UF))
    .ActiveDocument.Bookmarks("txtCep").Select
    .Selection.Text = (CStr(Forms!FormClientes!CEP))
    .ActiveDocument.Bookmarks("txtTelefone").Select
    .Selection.Text = (CStr(Forms!FormClientes!Telefone))
    .ActiveDocument.Bookmarks("txtCliente2").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cliente))

    objWord.Documents("Procuração Pessoa Fisica.doc").Activate

    'Print the document in the foreground so Microsoft Word will not close
    'until the document finishes printing.
    'objWord.ActiveDocument.PrintOut Background:=False

    'Close the document without saving changes.
    'objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges

    'Quit Microsoft Word and release the object variable.
    'objWord.Quit
    'Set objWord = Nothing
    Exit Sub

    End With

    MergeButton_Err:
    'If a field on the form is empty, remove the bookmark text, and
    'continue.
    If Err.Number = 94 Then
    objWord.Selection.Text = ""
    Resume Next
    End If
    End Sub


    Obrigado pelo espaço.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  Alvaro Teixeira 6/6/2017, 16:08

    Olá Gilberto Junior,
    Que bom que resolveu!

    Obrigado pelo retorno.
    Os utilizadores do forum agradecem.

    Abraço
    teboman
    teboman
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 03/08/2016

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  teboman 7/6/2017, 17:46

    Eu que agradeço, cada dia uso mais esse forum. A propósito consegui resolver o caso do word vir para primeiro plano, simplesmente coloquei AppActive = "Word" logo apos de .Visible = True
    No exemplo que postei acima só deixei comentado a questão de imprimir o documento automaticamente pois as vezes é necessário que o usuário altere coisas no documento.
    Tudo se resolvendo.
    avatar
    jntrindade
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 277
    Registrado : 07/12/2009

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  jntrindade 7/6/2017, 19:08

    boa tarde, se nao fosse pedir muito teria como deixar disponivel um pequeno exemplo ai. Very Happy Very Happy

    Desde ja agradeço.
    teboman
    teboman
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 03/08/2016

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  teboman 7/6/2017, 19:20

    Com muito prazer, o codigo final ficou da seguinte forma.

    Private Sub BtProc_Click()

    On Error GoTo MergeButton_Err

    Dim objWord As Word.Application
    Set objWord = CreateObject("Word.Application")
    With objWord
    'Deixa o aplicativo visivel.
    .Visible = True
    AppActivate "Word" 'Traz o Word para o primeiro plano

    'Abre o documento modelo com os indicadores para os campos desejados e deixa o documento como somente leitura.
    .Documents.Open FileName:="C:\Advocacia\Procuração Pessoa Fisica.doc", ReadOnly:=True

    .ActiveWindow.WindowState = wdWindowStateMaximize 'Maximiza o documento.

    'Indica qual campo e qual indicador substituir.
    .ActiveDocument.Bookmarks("txtCliente").Select
    .Selection.Text = (CStr(Me.Cliente))
    .ActiveDocument.Bookmarks("txtNascimento").Select
    .Selection.Text = (CStr(Forms!FormClientes!Nascimento))
    .ActiveDocument.Bookmarks("txtNacionalidade").Select
    .Selection.Text = (CStr(Forms!FormClientes!Nacionalidade))
    .ActiveDocument.Bookmarks("txtEstadoCivil").Select
    .Selection.Text = (CStr(Forms!FormClientes!EstadoCivil))
    .ActiveDocument.Bookmarks("txtProfissao").Select
    .Selection.Text = (CStr(Forms!FormClientes!Profissao))
    .ActiveDocument.Bookmarks("txtNomeMae").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDaMae))
    .ActiveDocument.Bookmarks("txtNomePai").Select
    .Selection.Text = (CStr(Forms!FormClientes!NomeDoPai))
    .ActiveDocument.Bookmarks("txtRg").Select
    .Selection.Text = (CStr(Forms!FormClientes!RG))
    .ActiveDocument.Bookmarks("txtCpf").Select
    .Selection.Text = (CStr(Forms!FormClientes!CIC))
    .ActiveDocument.Bookmarks("txtCtps").Select
    .Selection.Text = (CStr(Forms!FormClientes!CTPS))
    .ActiveDocument.Bookmarks("txtSerie").Select
    .Selection.Text = (CStr(Forms!FormClientes!Série))
    .ActiveDocument.Bookmarks("txtPis").Select
    .Selection.Text = (CStr(Forms!FormClientes!PIS))
    .ActiveDocument.Bookmarks("txtEndereco").Select
    .Selection.Text = (CStr(Forms!FormClientes!Endereço))
    .ActiveDocument.Bookmarks("txtBairro").Select
    .Selection.Text = (CStr(Forms!FormClientes!Bairro))
    .ActiveDocument.Bookmarks("txtCidade").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cidade))
    .ActiveDocument.Bookmarks("txtUf").Select
    .Selection.Text = (CStr(Forms!FormClientes!UF))
    .ActiveDocument.Bookmarks("txtCep").Select
    .Selection.Text = (CStr(Forms!FormClientes!CEP))
    .ActiveDocument.Bookmarks("txtTelefone").Select
    .Selection.Text = (CStr(Forms!FormClientes!Telefone))
    .ActiveDocument.Bookmarks("txtCliente2").Select
    .Selection.Text = (CStr(Forms!FormClientes!Cliente))
    objWord.Documents("Procuração Pessoa Fisica.doc").Activate

    'Imprime o documento antes de fechar o word, esta comentando pois não quero imprimir antes de verificar as informação.
    'objWord.ActiveDocument.PrintOut Background:=False

    'Fecha sem salvar alterações.
    'objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges

    'Fecha o word.
    'objWord.Quit
    'Set objWord = Nothing
    Exit Sub

    End With

    MergeButton_Err:
    'Se o campo estiver vazio, remove o texto indicador e continua
    If Err.Number = 94 Then
    objWord.Selection.Text = ""
    Resume Next
    Else
    MsgBox Err.Number & vbCr & Err.Description
    End If
    End Sub

    Os campos que estão comentando não são necessários para o meu ambiente.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  Alvaro Teixeira 8/6/2017, 10:54

    Olá Jorge Trindade,
    Se pretende exemplo em base de dados, veja por exemplo o tópico abaixo:
    https://www.maximoaccess.com/t30445-escolher-template-a-ser-preenchido-para-gerar-documento-word

    Abraço a todos


    Última edição por ahteixeira em 11/6/2017, 15:31, editado 1 vez(es)
    avatar
    jntrindade
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 277
    Registrado : 07/12/2009

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  jntrindade 8/6/2017, 21:03

    boa tarde, era isso mesmo amigão parabens pelo belo exemplo. Gostei

    obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  Alvaro Teixeira 9/6/2017, 15:31

    cheers

    Conteúdo patrocinado


    [Resolvido]Botão para gerar documentos Word Empty Re: [Resolvido]Botão para gerar documentos Word

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:29