MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Formulário x Rotina Word com erro na variável

    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 567
    Registrado : 25/05/2011

    [Resolvido]Formulário x Rotina Word com erro na variável Empty [Resolvido]Formulário x Rotina Word com erro na variável

    Mensagem  vileman em 13/9/2018, 01:55

    Boa noite.
    Estou recebendo uma mensagem de erro quando executo uma rotina VBA criada no botão de comando do formulário para inserir dados em um documento Word.
    Estou utilizando o ACCESS 2003 e o WORD 2003.

    Anotações prévias:

    1) A tabela : T40_RPR_Cadastro tem os campos:
    CodRPR (Autonumeração)
    NumRPR (Texto)
    Data RPR (Data)
    ... Outros

    2) A consulta: C40_RPR_PF_Relacionamento
    CodRPRPessoa (Autonumeração)
    IDCodRPR (Número. Inteiro longo)
    CPFPessoa (Texto)
    NomePessoa (Texto)
    Relacionamento (Texto)

    3) A consulta acima está baseada na tabela ‘T40_RPR_PessoaFisica’ e filtra pelo campo ‘Relacionamento’ para apresentar apenas os que contém "Titular" Ou "Comunicado" para ser usado no documento Word gerado pela rotina, conforme módulo acima.

    4) A tabela ‘T40_RPR_Cadastro’ tem relacionamento um-para-vários com a tabela ‘T40_RPR_PessoaFisica’ (CodRPR x IDCodRPR)

    Rotina do botão de comando:

    Private Sub BtWord_Click()
    'AUTORIA: Criquio - Fórum Máximo Access, com adaptações minhas
    'OBRIGATÓRIO: Marcar Referência: Microsoft Word 11.0 Object Library
    '             Marcar Referencia: Microsoft Scripting Runtime
    Dim ntram
    ntram = MsgBox("Deseja GERAR um novo Documento WORD ?" & vbCr & "ALERTA: Caso já tenha sido gerado o Relatório Preliminar do RIF anterior será substituído pelo Arquivo-Matriz!", vbQuestion + vbYesNo, "Sistema ARGUS - Confirmação")
    If ntram = 6 Then 'INÍCIO 1º IF
      #Const DESENV = -1
      On Error GoTo TrataErro
      Dim oApp As Object 'Cria uma variável objeto
      Dim strSQL As String
      'Habilite a Referencia Microsoft Scripting Runtime
      'By JPaulo ®️ Maximo Access
      Dim Pasta As String
      Set fso = CreateObject("Scripting.FileSystemObject")
      If fso.FolderExists("C:\ARGUS\14.RPRIF\" & Year(DataRPR)) Then ' verifica se já existe a pasta
         'Não faz nada
      Else
        'cria a pasta em falta para o ano em causa
        MkDir "C:\ARGUS\14.RPRIF\" & Year(DataRPR) ' se não existir cria
      End If
      Pasta = "C:\ARGUS\14.RPRIF\" & Year(DataRPR)
             
     '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:\ARGUS\00.MatrizWord\MatrizRPRIF.doc")

    'Move cada campo para o indicador definido no documento
    .ActiveDocument.Bookmarks("Campo01").Select
    .Selection.Text = (CStr(Forms!F40_RPR_Cadastro!NumRPR))
    .ActiveDocument.Bookmarks("Campo02").Select
    .Selection.Text = (CStr(Forms!F40_RPR_Cadastro!IDEmitente))

    ... segue demais campos até ‘Campo15’ ...

    '1ª ROTINA - FUNCIONOU (22/11/2017)
    'Tabelas envolvidas: T40_RPR_Cadastro (PAI) + T40_RPR_Ocorrencias (FILHO)
    Dim rst As DAO.Recordset, Ocorrencia As String
    Set rst = CurrentDb.OpenRecordset("SELECT NomeOcorrencia FROM T40_RPR_Ocorrencias LEFT JOIN T40_RPR_Cadastro ON T40_RPR_Cadastro.CodRPR=T40_RPR_Ocorrencias.IDCodRPR WHERE CodRPR=" & CodRPR)
    Ocorrencia = ""
    Do While Not rst.EOF
    If Ocorrencia = "" Then Ocorrencia = rst(0) Else Ocorrencia = Ocorrencia & vbCr & vbCr & rst(0) '04/08/2017: acrescentei mais um comando '& vbCr' para acrescentar mais um espaço entre os registros inseridos
      rst.MoveNext
    Loop
    Set rst = Nothing
    .ActiveDocument.Bookmarks("Campo16").Select
    .Selection.Text = Ocorrência
    ‘ PS: a rotina do ‘Campo16’ acima funciona perfeitamente

    ... segue demais comandos até o ‘Campo20’, onde está ocorrendo o erro (em negrito):

    O erro é: “Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida”.
    PS: A Referencia Microsoft Word  11.0 Object Library está marcada.

    'Objetos envolvidos: Tabela: T40_RPR_Cadastro + Consulta: C40_RPR_PF_Relacionamento

    Dim rst2 As DAO.Recordset, Relacionamento As String
    Set rst2 = CurrentDb.OpenRecordset("SELECT CPFPessoa, NomePessoa FROM C40_RPR_PF_Relacionamento LEFT JOIN T40_RPR_Cadastro ON T40_RPR_Cadastro.CodRPR=C40_RPR_PF_Relacionamento.IDCodRPR WHERE CodRPR=" & CodRPR)
    Relacionamento = ""
    Do While Not rst2.EOF
    If Relacionamento = "" Then Relacionamento = rst2(0) & " - " & rst2(1) Else Relacionamento = Relacionamento & vbCr & rst2(0) & " - " & rst2(1)
      rst.MoveNext
    Loop
    Set rst2 = Nothing
    .ActiveDocument.Bookmarks("Campo20").Select
    .Selection.Text = Relacionamento


    ... segue demais comandos ...

    End Sub

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

    PS: Segue arquivo compactado em anexo e orientações abaixo, caso queira testar o tópico em questão:

    1) criar Pasta => C:\ARGUS  * Descompactar arquivo em anexo aqui
    2) criar Pasta => C:\ARGUS\14.RPRIF
    3) criar Pasta => C:\ARGUS\00.MatrizWord
    4) copiar arquivo ‘MatrizRPRIF.doc’ para Pasta: C:\ARGUS\00.MatrizWord
    Anexos
    [Resolvido]Formulário x Rotina Word com erro na variável AttachmentFMA Tópico.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.1 Mb) Baixado 16 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10591
    Registrado : 04/11/2009

    [Resolvido]Formulário x Rotina Word com erro na variável Empty Re: [Resolvido]Formulário x Rotina Word com erro na variável

    Mensagem  JPaulo em 13/9/2018, 11:34

    Olá;

    O problema está no que grifei a vermelho, que deverá ser rst2;

    Dim rst2 As DAO.Recordset, Relacionamento As String
    Set rst2 = CurrentDb.OpenRecordset("SELECT CPFPessoa, NomePessoa FROM C40_RPR_PF_Relacionamento LEFT JOIN T40_RPR_Cadastro ON T40_RPR_Cadastro.CodRPR=C40_RPR_PF_Relacionamento.IDCodRPR WHERE CodRPR=" & CodRPR)
    Relacionamento = ""
    Do While Not rst2.EOF
    If Relacionamento = "" Then Relacionamento = rst2(0) & " - " & rst2(1) Else Relacionamento = Relacionamento & vbCr & rst2(0) & " - " & rst2(1) '12/09/2018: acrescentei mais um campo 'NomePessoa' e respectivos comandos de inserção
      rst.MoveNext
    Loop
    Set rst2 = Nothing


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new Instruções SQL como utilizar...
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 567
    Registrado : 25/05/2011

    [Resolvido]Formulário x Rotina Word com erro na variável Empty Formulário x Rotina Word com erro na variável

    Mensagem  vileman em 13/9/2018, 17:09

    Olá,

    Um grande pequeno erro de vista meu. Foi isso mesmo, valeu pela ajuda, muito obrigado.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10591
    Registrado : 04/11/2009

    [Resolvido]Formulário x Rotina Word com erro na variável Empty Re: [Resolvido]Formulário x Rotina Word com erro na variável

    Mensagem  JPaulo em 13/9/2018, 17:26

    Fico feliz
    Obrigado pelo retorno o fórum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Formulário x Rotina Word com erro na variável Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado

    [Resolvido]Formulário x Rotina Word com erro na variável Empty Re: [Resolvido]Formulário x Rotina Word com erro na variável

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/12/2019, 17:44