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


4 participantes

    [Resolvido]Erro função DLookup

    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty [Resolvido]Erro função DLookup

    Mensagem  maryprego 30/7/2017, 17:25

    olá, agradeço a vossa ajuda antecipadamente.

    encontrei aqui no fórum um exemplo de rotina do mestre Marcelo David que impede dar baixa estoque negativo.
    e fiz algumas adaptações consoante as minhas necessidade e esta a dar erro ao clicar no botão salvar do Frm_Pedido  erro: "invalid use of null. estou a dias a tentar ultrapassar sem êxito.

     Private Sub txtQuantPedido_BeforeUpdate(Cancel As Integer)
       Dim i As Integer
       If IsNull(Me!txtCodigoArtigo) Then    'Para evitar conflitos, verifico se o produto foi informado
           MsgBox "Artigo não informado!", vbExclamation, "Falta dados"    'Caso não tenha sido informado, desfaça as ações
           Me.Undo
           Cancel = True
       Else    'Se o produto estiver informado corretamente
           i = DLookup("Estoque", "Cst_Estoque", "CodigoArtigo=" & Me!txtCodigoArtigo)    'Guardo a quantidade atual do estoque do produto na variável i

           If i < Me!txtQuantPedido Then    'Verifico se a quantidade do estoque é menor que a informada na compra
               'Informo que não há estoque suficiente com detalhes
               MsgBox "Não é possível proceder a saida desse artigo na quantidade especificada." _
                    & vbNewLine & "Quantidade atual em estoque: " & i & "" & vbNewLine & "Quantidade informada para " _
                    & "Levantamento: " & Me!txtQuantPedido & "" & vbNewLine & "Diferença: " & Me!txtQuantPedido - i & "", vbExclamation, "Estoque insuficiente!"
               Me.Undo    'Desfaço as alterações
               Cancel = True    'cancela a atualização do registro
           End If
       End If

    End Sub

    tambem estei com funcao Nz esta a mostrar estoque zero (mas existe estoque) assim:

    i = Nz (DLookup("Estoque", "Cst_Estoque", "CodigoArtigo=" & Me!txtCodigoArtigo))

    alguem pode dar uma olha onde esta o erro.
    Anexos
    [Resolvido]Erro função DLookup Attachmentteste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (821 Kb) Baixado 17 vez(es)
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  Phillip_Junior 30/7/2017, 22:11

    Olá

    Observe com atenção:

    Primeiro vc esta a utilizar um subform dentro do seu formulário, o que significa que é obrigatório vc informar isso ao código para executar o procedimento corretamente.

    Para o feito, renomei seu subform no seu formulário sem acentos e sem espaços. Ele está assim (Tbl_ItemPedido subformulário)

    Para exemplo euremomi-ei para Frm_ItemPedidoSub.

    Uma observação é que vc deve renomear tanto na lista dos objetos quando nas propriedades dele na aba Outra do seu subform. Pois no seus objetos ele está certo mas na aba das propriedades desse subform esta com outro nome.

    Feito isso, toda vez que vc for se referir ao subform dentro do seu form vc deve utilizar dessa forma

    NomeDoSubForm.Form!NomeDoCampoDoSubForm
    Sem utilizar value ou me. me! somente o nome do campo.

    Caso queira desfazer algo nele, vc pode fazer assim
    NomeDoSubForm.Form.Undo
    Ou para atualizar
    NomeDoSubForm.Form.requery


    Então no seu caso vc precisará informar onde exatamente encontrasse os campos que vc gostaria de verificar se são nullos

    No seu caso seria assim :

    Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtCodigoArtigo


    Feito isso, para verificar se o campo é nullo utilizando uma variável vc deve fazer assim:

    = Nz(DLookup("Estoque", "Cst_Estoque", "CodigoArtigo=" & Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtCodigoArtigo & ""), 0)

    Usar Nz( inicialmente
    Depois no fim fechar com & ""),0)


    Seu código alterado está abaixo.

    Teste e retorne para sabermos se resolveu ok

    Abraços


      Dim i As Integer
       
       
       If IsNull(Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtCodigoArtigo) Then    'Para evitar conflitos, verifico se o produto foi informado
           MsgBox "Artigo não informado!", vbExclamation, "Falta dados"    'Caso não tenha sido informado, desfaça as ações
           Forms!Frm_Pedido!Frm_ItemPedidoSub.Form.Undo
           Cancel = True
       Else    'Se o produto estiver informado corretamente
           i = Nz(DLookup("Estoque", "Cst_Estoque", "CodigoArtigo=" & Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtCodigoArtigo & ""), 0)  'Guardo a quantidade atual do estoque do produto na variável i
         
           If i < Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtQuantPedido Then    'Verifico se a quantidade do estoque é menor que a informada na compra
               'Informo que não há estoque suficiente com detalhes
               MsgBox "Não é possível proceder a saida desse artigo na quantidade especificada." _
                    & vbNewLine & "Quantidade atual em estoque: " & i & "" & vbNewLine & "Quantidade informada para " _
                    & "Levantamento: " & Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtQuantPedido & "" & vbNewLine & "Diferença: " & Forms!Frm_Pedido!Frm_ItemPedidoSub.Form!txtQuantPedido - i & "", vbExclamation, "Estoque insuficiente!"
              Forms!Frm_Pedido!Frm_ItemPedidoSub.Form.Undo    'Desfaço as alterações
               Cancel = True    'cancela a atualização do registro
           End If
       End If


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  maryprego 31/7/2017, 20:07

    olá,
    muito obrigado pelo retorno tão breve e pelas análises que fizeste, aprendi muito com essa matéria.

    implementei conforme me orientaste, não está a descontar ao inserir a quantidade porque está a mostrar estoque zero (0) mas existe artigo em estoque.
    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  maryprego 2/8/2017, 21:29

    helpe
    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  maryprego 4/8/2017, 17:27

    up
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  JPaulo 4/8/2017, 17:35

    Ola a todos;

    Mary, você inicialmente tem tudo correto, apenas falta dizer na linha abaixo qual a coluna da sua combobox está o código do artigo.

    Sendo uma combobox, as colunas começam por zero (0) e o codigo do artigo está na coluna(1)

    i = DLookup("Estoque", "Cst_Estoque", "CodigoArtigo=" & Me!txtCodigoArtigo.Column(1))

    Teste no seu projeto inicial e veja com funciona beleza.


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

    [Resolvido]Erro função DLookup Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro função DLookup Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro função DLookup Folder_announce_new Instruções SQL como utilizar...
    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  maryprego 6/8/2017, 15:30

    cheers pequenos detalhes fazem a diferença!!! está funcionar.
    grato pela ajuda.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  Alexandre Neves 6/8/2017, 21:15

    Boa noite,
    Falta o "Resolvido"


    .................................................................................
    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
    avatar
    maryprego
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 99
    Registrado : 16/07/2017

    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  maryprego 7/8/2017, 11:58

    desculpe, grato...

    Conteúdo patrocinado


    [Resolvido]Erro função DLookup Empty Re: [Resolvido]Erro função DLookup

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 13:59