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]BookMark error 13 Empty

    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]BookMark error 13 Empty Empty [Resolvido]BookMark error 13 Empty

    Mensagem  maguim em 22/5/2019, 14:33

    ola meu amigos tudo bem?


    entao, fiz um gerador de contratos pelo bookmark com looping de inserções de procedimentos sobre um cliente.


    entao esta até funcionando porem esta dando tipo incopativel com em uma Range.text. Não sei porque, ja tentei de tudo.

    troquei .text por longtext, value, value2 etc etc


    não sei o que pode ser.

    esta dando problema nesta parte do codigo:
    Código:
    objTable.Cell(I, 1).Range.text = rst!SOB_CATEGORIA


    segue o codigo completo:
    Código:
    Private Sub LISTPROGRAMASCONTRATO_DblClick(Cancel As Integer)

    Dim MyMonth, MYDAY, MYYEAR
    Dim NomeArquivo As String
    Dim db As DAO.Database
    Dim rst As DAO.Recordset


    MyMonth = Format(Date, "mmmm")
    MYDAY = Day(Date)
    MYYEAR = Year(Date)


    If Me.LISTPROGRAMASCONTRATO = "NUCALA" Then
    MsgBox "LIST DE NUCALA", vbCritical, "TESTE"

    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
     Set myDoc = oApp.Documents.Open(CurrentProject.path & "\teste.doc")
     
        .ActiveDocument.Bookmarks("COD_HOLIST").SELECT
        .Selection.text = Me.codHolisticus
        
        'DIA MES E ANO EMITIDO DO DIA ATUAL
        .ActiveDocument.Bookmarks("DIA").SELECT
        .Selection.text = MYDAY
        .ActiveDocument.Bookmarks("MES").SELECT
        .Selection.text = MyMonth
        .ActiveDocument.Bookmarks("ANO").SELECT
        .Selection.text = MYYEAR
     
      ' INSERI TABELA DE PROCEDIMENTOS
      Set db = CurrentDb
      Set rst = db.OpenRecordset("select VALORES, SOB_CATEGORIA from SUB_CATEGORIA where id_geral=1 AND ID_PROGRAMA = 15")
      
      myDoc.Tables.Add Range:=oApp.ActiveDocument.Range.Bookmarks("tabela").Range, NumRows:=rst.Fields.Count, NumColumns:=2
            

      Set objTable = myDoc.Tables(1)
      
      objTable.Borders.Enable = True

      For I = 1 To rst.Fields.Count
        
            objTable.Cell(I, 1).Range.text = rst!SOB_CATEGORIA
            'objTable.Cell(I, 2).Range.text = rst!VALORES
            
            rst.MoveNext
      Next I

    oApp.ActiveDocument.SaveAs Environ$("USERPROFILE") & "\Desktop\Recibo\RecibosVencidos" & "\" & "ANEXO NUCALA TESTE.doc"
    'Fecha o documento
    .WindowState = wdWindowStateMaximize
    '.ActiveDocument.ExportAsFixedFormat _
     '    OutputFileName:=CurrentFolder & NomeArquivo & ".pdf", _
      '   ExportFormat:=wdExportFormatPDF
    .ActiveDocument.Close
    'Fecha o Word
    oApp.Quit

    End With

    End If

    End Sub

    se alguém puder dar uma luz.

    abraços


    Última edição por maguim em 22/5/2019, 15:53, editado 2 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  maguim em 22/5/2019, 15:22

    bom meu amigos, parece que erro esta relacionado com objTable.Cell null ou melhor empty.


    acho que terei que trar algo com isso no codigo.

    fiz alguns testes pra ver porque esta dando bug, se eu pedir um recordset em uma tabela pequena com alguma 10 dados de um unico cliente ele gerar o bookmark sem problemas, agora se eu tiver uma table com mais de 3 mil dados de diversos clientes da bug...

    ele não gera as informações e da erro de incompativilidade error 13

    entao provavel que terei que tratar isso no codigo certo?

    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 893
    Registrado : 22/11/2016

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  IvanJr. em 23/5/2019, 03:22

    Tente
    objTable.Cell(I, 1).Range.text = Nz(rst!SOB_CATEGORIA)


    .................................................................................
    Sempre tente entender o código, não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  maguim em 27/5/2019, 14:19

    ivan,

    tentei por do jeito que pediu, realmente funcionou pra tratar os empty,
    na vdd eu descobri porque estava vindo empty

    o bookmark estava editado errado, arrumei e tratei os nulos dentro da tabela, mandei pra "vala" Laughing



    porem estou com outro problema.... o count esta vindo menor que deveria

    por exemplo tenho um recordset de 64 count, pra população dentro do bookmark, porem ele só esta contando 12 Rolling Eyes
    fiz uns teste aqui pra ver se era o recordset com a query errada ao do tipo, porem se edito somente os campos da tabela ele retorna 2 valores Rolling Eyes

    Código:
    Set rst = db.OpenRecordset("select SOB_CATEGORIA, VALORES, COD_TUSS from SUB_CATEGORIA where id_geral= 632 AND ID_PROGRAMA = 17")


    segue código do looping de inserção na bookmark:

    Código:
      If Me.LISTPROGRAMASCONTRATO = "VIVA RARAS" Then
      MsgBox " " & Me.LISTPROGRAMASCONTRATO & " "
     
      Set db = CurrentDb
      Set rst = db.OpenRecordset("select * from SUB_CATEGORIA where id_geral= 632 AND ID_PROGRAMA = 17")
     
     myDoc.Tables.Add Range:=oApp.ActiveDocument.Range.Bookmarks("tabela").Range, NumRows:=rst.Fields.Count, NumColumns:=3
           

      Set objTable = myDoc.Tables(1)
     
      objTable.Borders.Enable = True

      For I = 1 To rst.Fields.Count
       
            objTable.Cell(I, 1).Range.text = rst!SOB_CATEGORIA
            objTable.Cell(I, 2).Range.text = rst!VALORES
            objTable.Cell(I, 3).Range.text = Nz(rst!COD_TUSS)
            rst.MoveNext
      Next I
    End If

    exemplo



    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    Registrado : 15/05/2013

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  maguim em 27/5/2019, 15:10

    bom meu amigos, achei o problema na vdd, fields.count é pra contagem de colunas enao pra contagem total do recordset


    entao o certo seria NumRows=rst.RecordCount


    Código:
     If Me.LISTPROGRAMASCONTRATO = "VIVA RARAS" Then
      MsgBox " " & Me.LISTPROGRAMASCONTRATO & " "
     
      Set db = CurrentDb
      Set rst = db.OpenRecordset("select * from SUB_CATEGORIA where id_geral= 632 AND ID_PROGRAMA = 17")
     
     myDoc.Tables.Add Range:=oApp.ActiveDocument.Range.Bookmarks("tabela").Range, NumRows:=rst.RecordCount NumColumns:=3
           

      Set objTable = myDoc.Tables(1)
     
      objTable.Borders.Enable = True

      For I = 1 To rst.RecordCount
       
            objTable.Cell(I, 1).Range.text = rst!SOB_CATEGORIA
            objTable.Cell(I, 2).Range.text = rst!VALORES
            objTable.Cell(I, 3).Range.text = Nz(rst!COD_TUSS)
            rst.MoveNext
      Next I
    End If


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 893
    Registrado : 22/11/2016

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  IvanJr. em 28/5/2019, 02:53

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Sempre tente entender o código, não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado

    [Resolvido]BookMark error 13 Empty Empty Re: [Resolvido]BookMark error 13 Empty

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/9/2019, 01:55