MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    avatar
    jotaSilva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 28/02/2014

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  jotaSilva 8/4/2014, 14:29

    Bom dia Srs,
    sou novo por aqui e ante mao muito obrigaado pelo espaço, este e meu 1° post...

    Estou fazendo um loop onde eu pego as informações de uma consulta pra mostar uma tabela em html para ser enviado por email, porem tem 3 situações possiver para montar a tabela, mas nem todas as informações de cada status vou precisar e é ai que esta aparecendo o erro.
    Codigo

    Código:


    'Loop para tarzer OP's do dia de cada Cliente
        Do Until rst.EOF
            
            strQuery = "SELECT * FROM TBLORDEMPAGAMENTO WHERE SOLICITACAO_OP = " & rst("ID_SOLICITACAO")
            Set dataset = CurrentDb.OpenRecordset(strQuery)
            
            'Loop para montar o conteudo da Tabela no email.
            Do Until dataset.EOF
                                        
                If dataset("status_op") = "DEVOLVIDO" Then
            
                    strTableBody = strTableBody & _
                                "<tr>" & _
                                    TD(dataset!documento_op) & _
                                    TD(dataset!status_op) & _
                                    TD(Format(dataset!valor_op, "currency")) & _
                                    TD(dataset!data_op) & _
                                    TD(dataset!ag_destino_op) & _ >>>>>>>>> nesses estao vindo null da tabela
                                    TD(dataset!hora_op = " - ") & _ >>>>>>>>> ""                                       ""
                                "</tr>"
                            
                End If
            ...


    Sou novo no Access, desculpem se o codigo nao esta muito legivel....


    Última edição por jotaSilva em 9/4/2014, 14:54, editado 1 vez(es)
    avatar
    MarcosLopes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 01/04/2014

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty Re: [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  MarcosLopes 8/4/2014, 15:43

    E se verificar se é nulo antes:

    Código:
    If not isnull(dataset("status_op")) Then
      If dataset("status_op") = "DEVOLVIDO" Then
         ...
      end if
      ...
    end if

    Abs
    avatar
    jotaSilva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 28/02/2014

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty Re: [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  jotaSilva 8/4/2014, 16:14

    Continua dando o mesmo erro,
    minha ideia e nesses campos que esta vindo nulo, na tabela montada no email, colocat um hifen " - ", mas não esta rolando...
    avatar
    MarcosLopes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 01/04/2014

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty Re: [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  MarcosLopes 8/4/2014, 16:34

    Ah, desculpe, não vi que o erro não era na condição, mas sim na montagem da msg.

    Para sites, uso ASP e sempre incluo a função iif para essas horas:

    Código:
    <%
    Function IIf(i,j,k)
     If i Then IIf = j Else IIf = k
    End Function
    %>

    No seu exemplo ficaria:

    Código:
                   strTableBody = strTableBody & _
                                "<tr>" & _
                                    TD(dataset!documento_op) & _
                                    TD(dataset!status_op) & _
                                    TD(Format(dataset!valor_op, "currency")) & _
                                    TD(dataset!data_op) & _
                                    iif(isnull(TD(dataset!ag_destino_op)),"",TD(dataset!ag_destino_op)) & _
                                   iif(isnull(TD(dataset!hora_op = " - ")),"",TD(dataset!hora_op = " - ")) & _ ""                                       ""
                                "</tr>"

    Caso ainda continue dando o erro para o nulo (já me ocorreu mesmo assim), crie uma variável e vá verificando e passando o valor para ela.
    Ficaria +ou- assim:

    Código:

                      Dim xVar
                     xVar = TD(dataset!documento_op) & _
                                TD(dataset!status_op) & _
                                TD(Format(dataset!valor_op, "currency")) & _
                                TD(dataset!data_op)

                     if not isnull(TD(dataset!ag_destino_op)) then
                         xVar = xVar & TD(dataset!ag_destino_op)
                      end if
                      if not isnull(TD(dataset!hora_op)) then
                         xVar = xVar & TD(dataset!hora_op)
                      end if

                      strTableBody = strTableBody & _
                                "<tr>" & xVar &"</tr>"

    Aí é adaptar para o que vc realmente precisa.

    Flw
    avatar
    jotaSilva
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 28/02/2014

    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty Re: [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  jotaSilva 9/4/2014, 14:53

    Opa Marcos, vlw mesmo pela ajuda, cara fiz o seu segundo exemplo e nao deu certo, no seu terceiro achei meio complicado, ate pq eu sou novato na arrea.... study study , ma acabei resolvendo o problema de uam forma bem simples, os campos que estavao vindo nulos, eu nao precisaria usa-los na tabela no email, dai eu tirei eles das TD's e para nao ficar vazio o campo na tabela, concatenei com uma " - " hifen, o codigo ficou assim...
    Código:


    'Loop para montar o conteudo da Tabela no email.
            Do Until dataset.EOF
               
                If dataset("status_op") = "DEVOLVIDO" Then
               
                   
               
                       
                        strTableBody = strTableBody & _
                                    "<tr>" & _
                                        TD(dataset!documento_op) & _
                                        TD(dataset!status_op) & _
                                        TD(Format(dataset!valor_op, "currency")) & _
                                        TD(dataset!data_op) & _
                                        TD("-") & _ >>>> Aqui
                                        TD("-") & _ >>>> Aqui
                                        TD("-") & _ >>>> Aqui
                                    "</tr>"
                               
                    End If


    desse jeito resolveu o meu problema, Vlw cara pela ajuda abçs.

    Conteúdo patrocinado


    [Resolvido] Erro - Uso de Null invalido - ao executar um loop Empty Re: [Resolvido] Erro - Uso de Null invalido - ao executar um loop

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 17:20