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

    Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Compartilhe

    patrick.oliveira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 28/01/2013

    Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Mensagem  patrick.oliveira em Seg 28 Jan 2013, 16:32

    Olá estou recebendo uma mensagem de erro quando executo uma rotina VB criada no ACCES para inserir dados de uma consulta (ConsultaDenuncia) - realizada em um banco de dados do ACCES - em um documento do word já existente.

    A idéia é, ao apertar um botão de um relatório do banco de dados, pegar os dados contidos na cunsulta (ConsultaDenuncia), feita no Banco de Dados ProOrg.accdb, e inseri-los dentro do texto de um arquivo do Word (Denuncia1.docx), texto este já existente.

    Encontrei uma rotina na internet que se propunha a realizar o que estou pretendendo e a adaptei ao meu projeto. Não sou programador, mas um entusiasta.

    O módulo é o descrito a seguir e o erro é: 91 - A variável do objeto ou a variável do bloco 'With' não foi definida. Além deste erro, ao executar a rotina pela segunda vez, há uma mensagem dizendo que o arquivo já se encontra aberto, e aparece a opção de abrir somente leitura ou fazer uma cópia. Ao selecionar a opção o arquivo é aberto mas não é processada nenhuma alteração nos campos pretendidos (que já estão definidos como indicadores).

    Estou utilizando o ACCES2010 e o WORD2010.

    Alguém pode me apontar onde está o erro, ou se há uma forma melhor de construir tal rotina.

    Private Sub Comando57_Click()
    On Error GoTo MergeButton_Err
    Dim ConsultaDenuncia As CurrentProject
    Dim objWord As Word.Application
    Dim Juizo As String
    Dim NºDoProcesso As String
    Dim NºDoInquerito As String
    Dim Delegacia As String
    Dim Nome As String
    Dim DispositivoPenal As String
    Dim Nacionalidade As String
    Dim EstadoCivil As String
    Dim Profissão As String
    Dim NomeDoPai As String
    Dim NomeDaMãe As String
    Dim DataNascimento As String
    Dim Naturalidade As String
    Dim RG As String
    Dim ÓrgãoEmissorDoRG
    Dim Logradouro As String
    Dim nº As String
    Dim Complemento As String
    Dim Bairro As String
    Dim Cidade As String
    Dim Estado As String
    Dim DataDoFato As String
    Dim HoraDoFato As String
    Dim LocalDoFato As String
    Dim Conduta As String
    Dim Textolivre As String
    Dim Materialidade As String
    Dim AtitudeDoDenunciado As String
    Dim LocalDataDenúncia As String
    ' inicia o word 97
    Set objWord = CreateObject("Word.Application")
    With objWord
    'torna a aplicaçao visivel
    .Visible = True
    'abre o documento
    .Documents.Open ("C:\Users\Patrick\Documents\Denúncia1.docx")
    ' move para cada indicador e substitui pelos dados
    .ActiveDocument.Bookmarks("Juizo").Select
    .Selection.Text = CStr(ConsultaDenuncia("Juizo"))
    .ActiveDocument.Bookmarks("NºDoProcesso").Select
    .Selection.Text = CStr(ConsultaDenuncia("NºDoProcesso"))
    .ActiveDocument.Bookmarks("NºDoInquerito").Select
    .Selection.Text = CStr(ConsultaDenuncia("NºDoInquerito"))
    .ActiveDocument.Bookmarks("Delegacia").Select
    .Selection.Text = CStr(ConsultaDenuncia("Delegacia"))
    .ActiveDocument.Bookmarks("Nome").Select
    .Selection.Text = CStr(ConsultaDenuncia("Nome"))
    .ActiveDocument.Bookmarks("DispositivoPenal").Select
    .Selection.Text = CStr(ConsultaDenuncia("DispositivoPenal"))
    .ActiveDocument.Bookmarks("Nacionalidade").Select
    .Selection.Text = CStr(ConsultaDenuncia("Nacionalidade"))
    .ActiveDocument.Bookmarks("EstadoCivil").Select
    .Selection.Text = CStr(ConsultaDenuncia("EstadoCivil"))
    .ActiveDocument.Bookmarks("Profissão").Select
    .Selection.Text = CStr(ConsultaDenuncia("Profissão"))
    .ActiveDocument.Bookmarks("NomeDoPai").Select
    .Selection.Text = CStr(ConsultaDenuncia("NomeDoPai"))
    .ActiveDocument.Bookmarks("NomeDaMãe").Select
    .Selection.Text = CStr(ConsultaDenuncia("NomeDaMãe"))
    .ActiveDocument.Bookmarks("DataNascimento").Select
    .Selection.Text = CStr(ConsultaDenuncia("DataNascimento"))
    .ActiveDocument.Bookmarks("Naturalidade").Select
    .Selection.Text = CStr(ConsultaDenuncia("Naturalidade"))
    .ActiveDocument.Bookmarks("RG").Select
    .Selection.Text = CStr(ConsultaDenuncia("RG"))
    .ActiveDocument.Bookmarks("ÓrgãoEmissorDoRG").Select
    .Selection.Text = CStr(ConsultaDenuncia("ÓrgãoEmissorDoRG"))
    .ActiveDocument.Bookmarks("Logradouro").Select
    .Selection.Text = CStr(ConsultaDenuncia("Logradouro"))
    .ActiveDocument.Bookmarks("nº").Select
    .Selection.Text = CStr(ConsultaDenuncia("nº"))
    .ActiveDocument.Bookmarks("Complemento").Select
    .Selection.Text = CStr(ConsultaDenuncia("Complemento"))
    .ActiveDocument.Bookmarks("Bairro").Select
    .Selection.Text = CStr(ConsultaDenuncia("Bairro"))
    .ActiveDocument.Bookmarks("Cidade").Select
    .Selection.Text = CStr(ConsultaDenuncia("Cidade"))
    .ActiveDocument.Bookmarks("Estado").Select
    .Selection.Text = CStr(ConsultaDenuncia("Estado"))
    .ActiveDocument.Bookmarks("DataDoFato").Select
    .Selection.Text = CStr(ConsultaDenuncia("DataDoFato"))
    .ActiveDocument.Bookmarks("HoraDoFato").Select
    .Selection.Text = CStr(ConsultaDenuncia("HoraDoFato"))
    .ActiveDocument.Bookmarks("LocalDoFato").Select
    .Selection.Text = CStr(ConsultaDenuncia("LocalDoFato"))
    .ActiveDocument.Bookmarks("Conduta").Select
    .Selection.Text = CStr(ConsultaDenuncia("Conduta"))
    .ActiveDocument.Bookmarks("Textolivre").Select
    .Selection.Text = CStr(ConsultaDenuncia("Textolivre"))
    .ActiveDocument.Bookmarks("Materialidade").Select
    .Selection.Text = CStr(ConsultaDenuncia("Materialidade"))
    .ActiveDocument.Bookmarks("AtitudeDoDenunciado").Select
    .Selection.Text = CStr(ConsultaDenuncia("AtitudeDoDenunciado"))
    .ActiveDocument.Bookmarks("LocalDataDenúncia").Select
    .Selection.Text = CStr(ConsultaDenuncia("LocalDataDenúncia"))
    'imprime o documento
    objWord.ActiveDocument.PrintOut Background:=False
    'salve o documento sem alterações
    objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
    ' sair do word e libera as váriaveis
    objWord.Quit
    Set objWord = Nothing
    End With
    Exit Sub
    MergeButton_Err:
    ' campo em branco
    If Err.Number = 94 Then
    objWord.Selection.Text = ""
    Resume Next
    Else
    MsgBox Err.Number & vbCr & Err.Description
    End If
    Exit Sub
    End Sub

    Grato pela atenção.

    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Re: Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Mensagem  criquio em Seg 28 Jan 2013, 16:38

    Você marcou a referência do Microsoft Word?


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    patrick.oliveira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 28/01/2013

    Re: Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Mensagem  patrick.oliveira em Seg 28 Jan 2013, 16:51

    Sim. Está marcada a referência no ACCESS.

    patrick.oliveira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 28/01/2013

    Re: Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Mensagem  patrick.oliveira em Seg 28 Jan 2013, 16:55

    Digo, está marcada a referencia do Word no Microsoft Visual Basic.

    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    Re: Exportar registros de uma consulta para um arquivo do Word utilizando indicadores: Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida

    Mensagem  criquio em Qua 30 Jan 2013, 12:11

    Algumas observações:

    Não é necessário incluir todas essas variáveis. Uma vez que você está referenciando indicadores de um documento já referenciado e aberto, pode incluir os nomes dos mesmos diretamente.

    Procure utilizar nomes o mais simples possíveis para variáveis. Evite acentos e símbolos especiais. Ao invés de NºDoProcesso por exemplo, coloque NumProcesso. Ao invés de , utilize N.

    Faça essas alterações e teste novamente.


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    renatoteotonio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 28/03/2013

    Tenho o mesmo problema.

    Mensagem  renatoteotonio em Sex 15 Abr 2016, 16:13

    Ola,
    criei um pequeno exemplo no vba access que abre um documento word e troca campos por strings. (OFFICE 2010)

    Exemplo do texto word: "O meu nome é <<>>."

    Criei o o campo como "campo de mala direta" no arquivo word.

    Acontece que recebo uma mensagem dizendo que o campo nao foi encontrado.

    A essência da ideia e abrir 1 (um) documento word, encontrar um campo previamente definido (ex: profissao) e troca-lo por um texto qualquer (ex: "ANALISTA DE SISTEMAS").

    Qualquer alternativa de campo é benvinda.

    Desde ja obrigado.

    Renato Teotonio

      Data/hora atual: Qui 08 Dez 2016, 23:56