none
Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida. RRS feed

  • Pergunta

  • 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 é precessada 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 Application
    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
    objWord.Documents.Open ("C:\Users\Patrick\Documents\Denúncia1.docx")
    ' move para cada indicador e substitui pelos dados
    objWord.ActiveDocument.Bookmarks("Juizo").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Juizo"))
    objWord.ActiveDocument.Bookmarks("NºDoProcesso").Select
    Selection.Text = CStr(ConsultaDenuncia("NºDoProcesso"))
    objWord.ActiveDocument.Bookmarks("NºDoInquerito").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("NºDoInquerito"))
    objWord.ActiveDocument.Bookmarks("Delegacia").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Delegacia"))
    objWord.ActiveDocument.Bookmarks("Nome").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Nome"))
    objWord.ActiveDocument.Bookmarks("DispositivoPenal").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("DispositivoPenal"))
    objWord.ActiveDocument.Bookmarks("Nacionalidade").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Nacionalidade"))
    objWord.ActiveDocument.Bookmarks("EstadoCivil").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("EstadoCivil"))
    objWord.ActiveDocument.Bookmarks("Profissão").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Profissão"))
    objWord.ActiveDocument.Bookmarks("NomeDoPai").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("NomeDoPai"))
    objWord.ActiveDocument.Bookmarks("NomeDaMãe").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("NomeDaMãe"))
    objWord.ActiveDocument.Bookmarks("DataNascimento").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("DataNascimento"))
    objWord.ActiveDocument.Bookmarks("Naturalidade").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Naturalidade"))
    objWord.ActiveDocument.Bookmarks("RG").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("RG"))
    objWord.ActiveDocument.Bookmarks("ÓrgãoEmissorDoRG").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("ÓrgãoEmissorDoRG"))
    objWord.ActiveDocument.Bookmarks("Logradouro").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Logradouro"))
    objWord.ActiveDocument.Bookmarks("nº").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("nº"))
    objWord.ActiveDocument.Bookmarks("Complemento").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Complemento"))
    objWord.ActiveDocument.Bookmarks("Bairro").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Bairro"))
    objWord.ActiveDocument.Bookmarks("Cidade").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Cidade"))
    objWord.ActiveDocument.Bookmarks("Estado").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Estado"))
    objWord.ActiveDocument.Bookmarks("DataDoFato").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("DataDoFato"))
    objWord.ActiveDocument.Bookmarks("HoraDoFato").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("HoraDoFato"))
    objWord.ActiveDocument.Bookmarks("LocalDoFato").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("LocalDoFato"))
    objWord.ActiveDocument.Bookmarks("Conduta").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Conduta"))
    objWord.ActiveDocument.Bookmarks("Textolivre").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Textolivre"))
    objWord.ActiveDocument.Bookmarks("Materialidade").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("Materialidade"))
    objWord.ActiveDocument.Bookmarks("AtitudeDoDenunciado").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("AtitudeDoDenunciado"))
    objWord.ActiveDocument.Bookmarks("LocalDataDenúncia").Select
    objWord.Selection.Text = CStr(ConsultaDenuncia("LocalDataDenúncia"))
    End With
    '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
    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

    domingo, 27 de janeiro de 2013 12:33

Respostas