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


5 participantes

    [Resolvido]Campo vazio

    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty [Resolvido]Campo vazio

    Mensagem  ronaldofacre 25/3/2016, 21:31

    Senhores, boa tarde!

    Eu tenho um formulário que possui uma caixa de texto cuja origem do registro exibe o resultado do campo de uma consulta agrupada com Total igual a soma. Quando a consulta não possui nenhum registro, qual o critério que devemos usar na instrução If?

    If me.CampoCalculado = "" then
    If me.CampoCalculado = Null then
    ...

    Tentei usar a expressão:
    Fonte de Controle =Nz(DPesquisa("NrDias";"qryCalculaTempoParaProduzirTodosPedidosNAOConcluidos_NrDias");0) para que, caso a consulta não apresente nenhum registro, a caixa de texto no formulário apresentasse o valor igual a 0 (zero), mas isso não está acontecendo.

    Preciso executar uma ação, quando o resultado gerar uma caixa de texto vazia.

    Desde já agradeço
    gilberlanio
    gilberlanio
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 814
    Registrado : 30/08/2010

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  gilberlanio 25/3/2016, 23:47

    tente:

    If IsNull(Me.CampoCalculado) Then
    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  ronaldofacre 26/3/2016, 03:59

    gilberlanio. boa noite!

    Desde já agradeço sua atenção.

    Já usei esse código If, porém não reconhece.

    preciso que ao carregar o formulário cuja fonte de controle é uma consulta sem registros, a fórmula reconheça para que eu poça executar uma ação.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  Alvaro Teixeira 26/3/2016, 12:28

    Olá Ronaldo, teste assim:

    Código:
    If Len(Me.CampoCalculado & "") = 0 Then  ...

    Abraço
    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  ronaldofacre 26/3/2016, 14:20

    ahteixeira, bom dia!

    coloquei sua dica no seguinte código do evento ao clicar, porém não funcionou:

       If Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade < Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
       Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Não"
       MsgBox "Atenção! A quantidade cortada está menor do que a quantidade pedida."
       ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade = Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
       Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
       ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade > Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
       Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
       MsgBox "Atenção! A quantidade cortada está maior do que a quantidade pedida."
       ElseIf Me.SomaDeQuantidade = "" Then
       DoCmd.Close acForm, "frmConferenciaDoCorte_SomaQtdCortadaPorProduto"
     
       ElseIf Len(Me.SomaDeQuantidade & "") = 0 Then
       MsgBox "vazio"

       End If

    Estou observando que o fato de não possuir nenhum registro no resultado da consulta, está reconhecendo como um erro e, ao colocar o comando no tratamento de erro ele aceita. Porém queria saber se, realmente, esse é o procedimento correto.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  Alvaro Teixeira 26/3/2016, 15:32

    Olá, poste a base de dados com a tabela e consulta para testar.
    Abraço
    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  ronaldofacre 26/3/2016, 18:38

    Segue base de dados.

    https://onedrive.live.com/redir?resid=A56C8272E3BCE3A8!24474&authkey=!AJPts8pHUXU5qAY&ithint=file%2caccdb
    xoxe
    xoxe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 241
    Registrado : 27/03/2016

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  xoxe 27/3/2016, 20:20

    Código:
     If Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade < Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
      Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Não"
      MsgBox "Atenção! A quantidade cortada está menor do que a quantidade pedida."
      ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade = Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
      Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
      ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade > Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
      Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
      MsgBox "Atenção! A quantidade cortada está maior do que a quantidade pedida."
      ElseIf Me.SomaDeQuantidade = "" Then
      DoCmd.Close acForm, "frmConferenciaDoCorte_SomaQtdCortadaPorProduto"

    Logo na primeira linha você tá relacionando um formulário que não tem no seu BD. frmPedidosParaConferencia
    Deixa eu ver se entendi, você quer que a caixa de texto do seu formulário apareça uma mensagem ou apenas ficar na caixa de texto o valor igual a 0 quando não tiver nada na tabela?
    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  ronaldofacre 28/3/2016, 11:18

    bom dia, xoxe!

    Exatamente isso.

    Não coloquei o formulário por que teria que colocar toda a cadeia de formulários. Mas ele somente receberia a informação de concluído ou não, de acordo com o if apresentado.

    A questão é que quando a consulta não apresenta nenhum resultado, não consigo condicionar.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  Alvaro Teixeira 28/3/2016, 14:11

    Olá Ronaldo, com o código abaixo consegue o pretendido:

    Código:
    Private Sub Form_Load()

    Dim curSomaQuantidade As Currency
    curSomaQuantidade = Nz(DLookup("SomaDeQuantidade", "qryConferenciaDoCorte_SomaQtdCortadaPorProduto"), 0)
    Me.SomaDeQuantidade = curSomaQuantidade

    On Error GoTo Form_Close_Err
        
        If Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade < Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
            Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Não"
            MsgBox "Atenção! A quantidade cortada está menor do que a quantidade pedida."
        ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade = Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
            Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
            ElseIf Forms!frmConferenciaDoCorte_SomaQtdCortadaPorProduto!SomaDeQuantidade > Forms!frmPedidosParaConferencia_Corte!QtdPedido Then
            Forms!frmPedidosParaConferencia_Corte!ConcluidoCorte = "Sim"
            MsgBox "Atenção! A quantidade cortada está maior do que a quantidade pedida."
        ElseIf Me.SomaDeQuantidade = "" Then
            DoCmd.Close acForm, "frmConferenciaDoCorte_SomaQtdCortadaPorProduto"
        ElseIf SomaDeQuantidade = 0 Then
            MsgBox "Valor da soma é zero"
        End If
        
    Form_Close_Exit:
        Exit Sub

    Form_Close_Err:
        MsgBox Err.Number & " - " & Err.Description, vbCritical, ""

    End Sub

    Notas:
    O seu exemplo estava a dar erro pois falta um subformulario, o meu teste matem a falta desse subform.
    Não sei porque razão a sua base de dados estava tão "inchada" sem registos e com tão poucos objectos, converti para MDB, assim também fica disponível para restantes membros.
    Segue o meu teste (dá erro, mas mostra total a zero)
    Abraço
    Anexos
    [Resolvido]Campo vazio AttachmentSGCC_rev.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (21 Kb) Baixado 29 vez(es)


    Última edição por ahteixeira em 28/3/2016, 17:32, editado 1 vez(es)
    avatar
    erinaldo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 55
    Registrado : 27/09/2010

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  erinaldo 28/3/2016, 14:45


    veja esses dois exemplos!! (to sem o access instalado) por isso copiei esse codigo mas veja e adapte.



    =DCount("DegReqDiscId","DegReqDisc","DegReqId = " & nz([txtDegReqId],0))


    =IIf(isNull([txtDegReqId]),0,DCount("DegReqDiscId","DegReqDisc","DegReqId = " & [txtDegReqId]))


    avatar
    ronaldofacre
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 19/09/2015

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  ronaldofacre 31/3/2016, 04:37

    boa noite!

    O código do ahteixeira funcionou perfeitamente.

    Obrigado a todos!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  Alvaro Teixeira 31/3/2016, 08:14

    Olá, obrigado pelo retorno.
    Abraço a todos.

    Conteúdo patrocinado


    [Resolvido]Campo vazio Empty Re: [Resolvido]Campo vazio

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 18:50