MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Criar e salvar documento do word através do formulário do access

    Compartilhe

    NANDOJPA
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 28/05/2012

    Criar e salvar documento do word através do formulário do access

    Mensagem  NANDOJPA em Qui 04 Fev 2016, 23:19

    Boa Noite,

    Como sempre venho pedir ajuda dos amigos, na certeza que aqui encontrarei a solução.

    Tenho um formulário do access com um botão para com base nos dados do formulário, gerar um arquivo do word e salvá-lo.

    Achei neste fórum a rotina para tal, entretanto esta dando "erro de compilação" e que "é impossível localizar o projeto ou a biblioteca", e vai direito para a linha Word As New Word.Application.

    Além deste erro, o arquivo do word que serve de base, fica aberto na memória impedindo qualquer alteração, mesmo com o office fechado.

    Abaixo segue a rotina encontrada aqui no fórum.

    Como resolver??? Para que eu possa do formulário do access criar e salvar um documento do word com base nos campos do formulário?



    Private Sub GerarAtoARI_Click() 'geraratoari é o botão no formulário de nome geral
    #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 a APOSENTADORIA-INICAL.dot, que se encontra no caminho descrito
           .Documents.Open ("C:\Users\FERNANDO\Documents\01-FERNANDO\02-Trabalho\2016\01-ATOS\APOSENTADORIA-INICAL.dot")
           
           'Move cada campo para o indicador definido no documento
           .ActiveDocument.Bookmarks("JURISDICIONADO").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!JurisdicionadoCRPFOR)) ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("CATEGORIA").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!CategoriaDoRegistroCRPFOR))' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("SUBCATEGORIA").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!SubCategoriaDoRegistroCRPFOR))' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("BENEFICIO").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!BeneficioDoAposentadoBENAPOSENTADO)) ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("NUMEROPROCESSO").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!RegistroProcessualCRPFOR))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("ORIGEM").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!JurisdicionadoCRPFOR))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("BENEFICIO2").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!BeneficioDoAposentadoBENAPOSENTADO))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("INTERESSADO").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!NomeDoAposentadoBENAPOSENTADO))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("IDADE").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!IdadeDataAtoDoAposentadoBENAPOSENTADO)) ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("FLIDADE").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!FlsAtoDoAposentadoBENAPOSENTADO))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("NUMEROPROCESSOPADRAO").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!RegistroProcessualPadrao1ACRPFOR))  ' campo no formulário de nome GERAL
           .ActiveDocument.Bookmarks("SIGLA").Select ' campo inserido no indicador do arquivo APOSENTADORIA-INICAL.dot
           .Selection.Text = (CStr(Forms!Geral!SiglaJurisdicionadoCRPFOR))  ' campo no formulário de nome GERAL
         
         
          'Salva o arquivo gerado
           .ActiveDocument.SaveAs "C:\Users\FERNANDO\Documents\01-FERNANDO\02-Trabalho\2016\01-ATOS\""(" & Me.RegistroProcessualPadrao1ACRPFOR & " - " & Me.SiglaJurisdicionadoCRPFOR & " - " & Me.SubCategoriaDoRegistroCRPFOR & " - " & Me.NomeDoAposentadoBENAPOSENTADO & ")" & ".doc"

    'Fecha o documento
           .ActiveDocument.Close
       End With
    'Fecha o Word
       oApp.Quit
       
         
       
       Dim x As String
       x = "C:\Users\FERNANDO\Documents\01-FERNANDO\02-Trabalho\2016\01-ATOS\""(" & Me.RegistroProcessualPadrao1ACRPFOR & " - " & Me.SiglaJurisdicionadoCRPFOR & " - " & Me.SubCategoriaDoRegistroCRPFOR & " - " & Me.NomeDoAposentadoBENAPOSENTADO & ")" & ".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

    Klein
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 22/09/2014

    Re: Criar e salvar documento do word através do formulário do access

    Mensagem  Klein em Qui 21 Abr 2016, 23:47

    Olá não entendo muito de códigos sou bem iniciante e estou aprendendo ainda, entretanto eu também usei este código e tive este problema e resolvi refazendo a matriz do word, detectei que se um dos indicadores estiver incorreto dá esse erro, abri um documento novo do word salvei como documentos do word 97 e fui fazendo por etapas, criava um indicador e dai testava e assim sucessivamente e deu certo. Espero ter ajudado.

    Private Sub Comando63_Click()
    On Error GoTo TrataErro

    Dim oApp As Object

    ' Inicia o MS Word
    Set oApp = CreateObject("Word.Application")
    With oApp
    ' Torna o MS Word visível
    Visible = True
    ' Abre o documento
    .Documents.Open CurrentDbDir & "\termo_ciencia.doc"
    'Move cada campo para o indicador definido no documento
    .ActiveDocument.Bookmarks("Data_infração").Select
    .Selection.Text = Trim(CStr(Me.Data_infração))
    .ActiveDocument.Bookmarks("Hora_Infração").Select
    .Selection.Text = Trim(CStr(Me.Hora_Infração))
    .ActiveDocument.Bookmarks("Auto_infração").Select
    .Selection.Text = Trim(CStr(Auto_infracao))
    .ActiveDocument.Bookmarks("Placa").Select
    .Selection.Text = Trim(CStr(PLACA))
    .ActiveDocument.Bookmarks("Veiculo").Select
    .Selection.Text = Trim(CStr(Veiculo))
    .ActiveDocument.Bookmarks("valor_infração").Select
    .Selection.Text = Trim(CStr(Valor))
    .ActiveDocument.SaveAs CurrentDbDir & "Termo de ciencia -" & Me.Secretaria & " - Placa-" & Me.PLACA & ".doc"
    .ActiveDocument.Close
    MsgBox "Termo de ciencia salvo com sucesso...", vbInformation
    End With
    oApp.Quit
    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 "Form_FMR_Multas - Comando42_Click" & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
    #If DESENV Then
    Stop
    Resume
    #End If
    Resume Saida
    End Sub

    FabioPaes
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2321
    Registrado : 14/08/2013

    Re: Criar e salvar documento do word através do formulário do access

    Mensagem  FabioPaes em Sex 22 Abr 2016, 03:06

    Topico Relacionado...http://www.maximoaccess.com/t26126-resolvidoaccess-abrir-um-arquivo-word-docx-e-gerar-o-mesmo-em-pdf

      Data/hora atual: Qui 08 Dez 2016, 00:07