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

3 participantes

    Erro Dlookup

    fernando rodrigo zanchini
    fernando rodrigo zanchini
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 189
    Registrado : 18/04/2018

    Erro Dlookup  Empty Erro Dlookup

    Mensagem  fernando rodrigo zanchini Qui 4 maio - 19:18

    Boa Noite
    Estou Tendo Um Problema Com Esse Código:

        If (Not Isnull(Dlookup("[Idcompra]", "Tb_Compra", " [Codprodutor] & [Codprojeto]  & [Periodo] Like'" & Me!Txtprodutor & Me!Txtprojeto & Me!Txtperiodo & "'"))) Then
        Msgbox "Já Existe Uma Compra Para Esse Produtor Neste Projeto Com Esse Período! ", Vbinformation, "Atenção"
        Me.Txtbusca = (Dlookup("[Idcompra]", "Tb_Compra", "[Codprodutor] & [Codprojeto] & [Periodo] Like'" & Me!Txtprodutor & Me!Txtprojeto & Me!Txtperiodo & "'"))
       
       Call CancelarCompra
       Call CarregarReg
       Exit Sub
       End If
     
    Na Tabela Compra:
    Nome do campo /  Tipo de dados
    Codprodutor      /   Numerico
    Codprojeto       /    Numerico
    Periodo           /    Texto Curto

    Essa linha serve para quando a pessoa for lançar uma nova Compra ele verifique se já existe uma Compra com esses critérios: Nome do Produtor, Projeto e Período, se existir uma compra com esses critérios ele retorna a compra através do Id, se não existir segue com a compra.
     
    Faz uns 3 anos que ele está funcionando normalmente só que agora de vez em quando começou a retornar valores errado, isso começou esse ano e aconteceu 4 vezes o que torna o sistema não confiável.
    Isso tornou a acontecer hoje com esses dados:
    Exemplo em uma compra nova coloquei esses valores
     CodProdutor = 1
     codProjeto= 1
     periodo= 354
    ele acusou que já havia uma compra e retornou isso:
     CodProdutor = 11
     codProjeto= 3
     periodo= 54
    oque pude perceber e que quando ocorre esse erro sempre está retornando os 2 últimos dígitos do período de 354 ele retorna 54 e o resto CodProdutor e codProjeto está bem aleatório não há correlação com nada, nesse caso  só desta vez o CodProdutor era 1 e ele retornou 11.
    avatar
    adriano.ig
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 01/03/2016

    Erro Dlookup  Empty Re: Erro Dlookup

    Mensagem  adriano.ig Seg 8 maio - 12:27

    Boa tarde Fernando!

    Tente usar assim o código:

    Código:


    If Not IsNull(DLookup("[Idcompra]", "Tb_Compra", "[Codprodutor] + [Codprojeto] + [Periodo] = " & Me!Txtprodutor & Me!Txtprojeto & Me!Txtperiodo)) Then
        MsgBox "Já existe uma compra para esse produtor neste projeto com esse período!", vbInformation, "Atenção"
        Me.Txtbusca = DLookup("[Idcompra]", "Tb_Compra", "[Codprodutor] + [Codprojeto] + [Periodo] = " & Me!Txtprodutor & Me!Txtprojeto & Me!Txtperiodo)
        Call CancelarCompra
        Call CarregarReg
        Exit Sub
    End If



    Mande um retorno se funciona assim ou não.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2904
    Registrado : 13/12/2016

    Erro Dlookup  Empty Re: Erro Dlookup

    Mensagem  Alexandre Fim Seg 8 maio - 16:13

    Olá Fernando,

    Sempre que possível, utilize instruções SQL, conforme abaixo:

    Código:


        Dim sSQL As String
        Dim rs As DAO.Recordset
       
        sSQL = " SELECT Idcompra FROM Tb_Compra"
        sSQL = sSQL & " WHERE Codprodutor = " & Me!Txtprodutor & ""
        sSQL = sSQL & " AND  Codprojeto  = " & Me!Txtprojeto & ""
        sSQL = sSQL & " AND  Periodo    = '" & Me!Txtperiodo & "'"
       
        Set rs = CurrentDb.OpenRecordset(sSQL)
       
        If Not rs.EOF Then
            MsgBox "Já existe uma compra para esse produtor neste projeto com esse período!", vbInformation, "Atenção"
            Call CancelarCompra
            Call CarregarReg
            Exit Sub
        End If
       
        rs.Close
        Set rs = Nothing



    OBS: No caso das aspas simples na instrução, estou partindo do pressuposto que Codprodutor e Codprojeto são valores numéricos e Periodo é texto,

    Tente desta forma.

    Espero ter ajudado

    Att,

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Erro Dlookup  Setinf11
    Sistemas e Tecnologia Ltda

    Pablo Neruda gosta desta mensagem


      Data/hora atual: Qui 8 Jun - 18:32