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

    [Resolvido]Converter campo nulo em R$ 0,00

    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 5/4/2021, 16:46

    Grandes Mestres,

    Estou aqui novamente pedindo suas ajudas.

    Tenho essa linha em um relatório com o DSoma:

    DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Industria' and [NotaFiscal]='Não' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"))

    Funciona tudo perfeitamente. Porém, é possível que esses critérios não sejam todos verdadeiros e a soma não é feita. Isso é totalmente correto. O campo fica nulo.

    Queria que no lugar do nulo  ficasse R$ 0,00.

    Já tentei com Nz, Nz com zero, SeImed, Null, Isnull, etc. Sempre fica vazio. Abaixo dois modos (dentre vários) dos que tentei:

    =Nz(DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Industria' and [NotaFiscal]='Não' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"))


    =SeImed((DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Sim' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"))="";0;(DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Sim' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]")))

    Desde já, muito grato a todos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Alexandre Neves 5/4/2021, 17:32

    Boa tarde
    Experimente
    IIf(DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Industria' and [NotaFiscal]='Não' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"))> 0, DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Industria' and [NotaFiscal]='Não' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]")), 0)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 5/4/2021, 20:48

    Caro Amigo,

    Não funcionou.
    Com IIF(.....),0) Sintaxe inválida
    Com IIF(.....);0) #Error
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 5/4/2021, 21:05

    Na mesma linha de pensamento do Alexandre Neves, só que no Seimed() e uma pequena modificação.

    Se a linha do relatório está no VBA utilize o código que o nosso colega colocou, e se não der certo substitua para a parte que está em vermelho.


    =SeImed((DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Sim' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"))<> "";
           (DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Sim' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"));0)

    Caso nada disso adiantou, diga que tipo de campo é esse, se moeda ou qual outro.

    Balem





    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 5/4/2021, 21:48

    Grande Noob,

    Fiz a alteração que você sugeriu e funfou. Agora vou verificar outros campos bem idênticos com o mesmo problema, cheios de critérios. Quando terminar os testes volto para confirmar. Por isso vou deixar o tópico aberto.
    Uma curiosidade: Qual o motivo que funcionou com <>"" e não com ="" ou =nulo. Sei que nulo é diferente de vazio, diferente de zero. Então quando digo <>"" e é verdadeiro, qual o conteúdo?
    Desde já, muito grato ao grandes mestres: Alexandre e Noob.

    Abraços
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 5/4/2021, 22:07

    Quando escrevemos  x=""

    dizemos que x é um cadeia vazia, ou vazio.

    Se colocarmos na janela imediata:

    ? x=""
    veja que não retorna nada, ou seja vazio.

    por isso que da erro no código

    Agora se colocar <> ""

    livramos a cara do Access: "Ah! O valor que tenho aqui é diferente disso aí que nem sei o que é."Razz

    Espero que tenha me feito entender! Wink

    { }'s

    Balem


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 5/4/2021, 22:14

    Caros Amigos,

    Conforme falei anteriormente, no primeiro teste que fiz foi em um campo que sei está vazio (possivelmente nulo) deu certo. No entanto nos que tem valores passou a ficar o (zero). Inverteu os papeis. E agora?
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 5/4/2021, 22:20

    Caro Noob,

    Já havia lido várias coisas sobre o assunto e agora melhorou mais ainda com essa aula.

    Muito grato

    Voltando ao não funcionamento correto, exatamente isso que falamos agora. <>""; deveria fazer o DSoma do verdadeiro.
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 5/4/2021, 22:40

    Vou te passar mais uma dica:

    coloque a primeira expressão que é comparada com  <> ""

    dentro dessa função:

    Len("aqui dentro" & "") = 0

    Coloque a primeira parte da "linguiça" ali dentro  Wink

    Funciona assim:

    ? Len("121313" & "")<> 0
    True

    ? Len("" & "")<> 0
    falso

    Creio que dai funfa legal.


    Sim ele deve ser na parte verdadeira



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 5/4/2021, 22:51


    Sabe usar a janela imediata?

    Você pode testar isso nela.



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 6/4/2021, 03:40

    Caro Amigo,

    Antecipadamente muito grato por suas aulas e pelo interesse no meu problema. Vou fazer o que você sugeriu com relação a janela imediata, vou fazer mais uso da mesma.
    Agora, desculpe minha ignorância no meu próprio problema e por te alugar tanto, mas no momento não estou conseguindo acertar a sintaxe. Fiz de diversas formas e nada. Erro de sintaxe. A última linha que fiz ficou (com erro) assim:

    =SeImed((Len(DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Sim' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]")&""))=0";(DSoma("[ValorRecebido]";"[tbl_Receitas]";"[TipoTrampo]='Comércio' and [NotaFiscal]='Não' and [Ano]=[Formulários]![FormCombo]![CombAno] and [NomeMes]=[Formulários]![FormCombo]![CombMes]"));0)

    Pode ser a carga de hoje, muito intensa e não consigo mais ver nada.

    Salientando que esta bronca é proveniente de um amigo nosso aqui do fórum que eu estava tentando ajudar. Fizemos bastante coisas até chegar nessa bronca que em vez de ajudar tive que pedir ajuda para poder ajudar.

    Muito grato, abraços
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 6/4/2021, 10:40

    Ao que me parece, a sintaxe está correta, porém,  na parte verdadeira, deveria estar assim, como disse na mensagem anterior  

    Len("Aqui a soma" & "")<> 0

    Lembre-se que temos que comparar o valor sendo diferente de vazio.
    Len() retorna o numero de caracteres + vazio, se tiver valor irá retornar o número
    de caracteres, o contrário, conteúdo vazio.

    Creio que isso deveria funfar legal.

    Se não acontecer, o que posso sugerir, e me parece que você tem o BD do colega, é testar a frase separadamente.

    - Verifique se somente a soma está correta, da primeira parte e da   segunda.

    - Se a primeira está correta, coloque-a dentro da função Len() e teste se está retornando o resultado esperado

     não duas situações; quando  a soma tiver valor e quando o valor for <> 0

    Quando as duas tiverem corretas é só unir com o SeImed()

    A propósito, se  fizer uso da janela imediata, da opção compilar do menu depurar e  usar a tecla F8

    para depurar o código linha a linha, facilitará para descobrir os erros dos códigos.

    Balem


    Última edição por Noobezinho em 6/4/2021, 10:51, editado 1 vez(es)


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 6/4/2021, 10:49

    Valeu Amigo, vou tentar aqui e retorno. Muito grato.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 673
    Registrado : 23/03/2010

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Finformática 6/4/2021, 13:37

    Grande Mestre Noob,

    Tentei de diversas formas com as várias sugestões e nada. Inclusive com o Len também acontecia o mesmo caso, quando verdadeiro (SeImed) não fazia, quando falso somava, errado. Enfim, praticamente refiz todos os Dsoma, chegando até a simplificar (diminuindo os critérios), voltei a usar o Nz e tudo deu certo. Muito obrigado, muito obrigado mesmo. ótimas explanações, aulas, etc.
    Meus agradecimentos ao grande mestre Alexandre.

    Grande abraço para todos

    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3929
    Registrado : 29/06/2012

    [Resolvido]Converter campo nulo em R$ 0,00 Empty Re: [Resolvido]Converter campo nulo em R$ 0,00

    Mensagem  Noobezinho 6/4/2021, 13:54

    Que bom que resolveu.

    Quando não temos o BD em mãos, o que fazemos é usar o que sabemos para poder ajudar.

    Mas uma pequena modificação num código, muda completamente o resultado.

    Boa sorte

    Balem



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...

      Data/hora atual: 11/4/2021, 14:55