MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Função Nz

    avatar
    J Aleixo
    Novato
    Novato

    Respeito às Regras 100%

    Localização : Anónimo
    Mensagens : 18
    Registrado : 23/11/2009

    Função Nz Empty Função Nz

    Mensagem  J Aleixo em 16/12/2009, 14:28

    Boa Tarde, Pessoal.

    Quero parabenizar ao Amigo JPaulo por essa iniciativa deste forum e pela presteza e velocidade que tenho (imagino que outro também) em receber respostas.

    Amigos estava em um outro tópico, conversando com um Fera do Access, JPaulo, e disse que iria pedir ajuda sobre a função Nz. Achei por bem colocar um outro tópico, pois pode ajudar a outros.

    Tenho um formulário que busca um Sub, e esse sub é alimentado por uma consulta(VBA) onde o valor é uma SomadeValor. Quando esse resultado é Nulo por não ter linhas a somar, aparece uma mensagem dizendo que houve um erro.

    Tentei colocar na Fonte de Registro do Controle(Soma) do SubForm, =Soma(Nz([SomaDeValor])), mas mesmo assim continua dando erros.

    Se alguém puder me ajudar, agradeço.

    Abraços.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Função Nz Empty Re: Função Nz

    Mensagem  JPaulo em 16/12/2009, 15:20

    Oi amigo Aleixo, eu aqui;

    A caixa de texto terá de ficar no rodapé do SubForm, dê o nome a esse controle de txtResultado

    Na Fonte de Registro do Controle(txtResultado) do SubForm coloque:

    =Soma(Nz([SomaDeValor];0))

    ps:
    Não esqueça que Soma é uma palavra reservada do Access, tenha sempre em mente colocar por exemplo txt antes do nome do controle (txtSoma).


    .................................................................................
    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

    Função Nz Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função Nz Folder_announce_new 102 Códigos VBA Gratuitos...
    Função Nz Folder_announce_new Instruções SQL como utilizar...
    avatar
    J Aleixo
    Novato
    Novato

    Respeito às Regras 100%

    Localização : Anónimo
    Mensagens : 18
    Registrado : 23/11/2009

    Função Nz Empty Re: Função Nz

    Mensagem  J Aleixo em 17/12/2009, 17:11

    Boa Tarde, JPaulo.

    Obrigado por sua constante interação. Fiz esse modelo sugerido, mas me aconteceu o mesmo erro. retornou um conjunto vazio. Achei estranho pois como nomeiei um variável Variant para este retorno, não teria problema.
    Fiz o seguinte:
    varSoma = [SubFormB].Form!Soma (Nomeando através do Form Pai, é claro)
    If IsNull([SubFormB].Form!Soma) Or [SubFormB].Form!Soma = "" Then
    varSoma = 0
    End If

    Mas dá erro na primeira linha, onde declaro a varSoma.

    Mudei a estratégia e fiz o seguinte:
    If [SubFormB].Form.RecordsetClone.RecordCount = 0 Then
    varSoma = 0
    End If

    Daí beleza, funcionou. Criei uma consulta (em VB, através do SQL), onde declaro que o valor é Nz(.....), funciona para o valor.
    Então entendi que era por não ter linhas para somar, e que possivelmente seria resolvido daquela forma. Perfeito.
    Obrigado, mais uma vez.
    Precisando, estou a disposição.

    Abraços.
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Função Nz Empty Re: Função Nz

    Mensagem  JPaulo em 17/12/2009, 18:02

    Boa sugestão amigo Aleixo;

    Mas se quiser testar esta, fica aqui:

    Dim varSoma As Variant
    With Forms!FormularioPai!FormularioFilho.Form
    varSoma = .Fields("Soma").Value
    If IsNull(varSoma) Then
    varSoma = 0
    Else
    varSoma = varSoma
    End With

    Volto a referenciar que Soma é uma palavra reservada do Access.


    .................................................................................
    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

    Função Nz Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Função Nz Folder_announce_new 102 Códigos VBA Gratuitos...
    Função Nz Folder_announce_new Instruções SQL como utilizar...

      Data/hora atual: 21/1/2021, 10:34