MaximoAccess

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

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Função DLOOKUP

    Compartilhe

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    [Resolvido]Função DLOOKUP

    Mensagem  maguim em Ter 21 Mar 2017, 14:23

    Galera

    Bom dia !


    Então estou entrando no ruma das funções Dlookup.

    Função mto interessante na consulta.

    Minha duvida... achei algo na internet, porem estou com um problema.


    DlookUp("[Campo]", "[Tabela]", "Busca = '" & SuaVariável & "'") se SuaVariável é texto.

    DlookUp("[Campo]", "[Tabela]", "Busca = " & SuaVariável) se SuaVariável é número.

    DlookUp("[Campo]", "[Tabela]", "Busca = #" & Format(SuaVariável,"mm/dd/yyyy") & "#") se SuaVariável é data.



    Tenho um formulário de login e tenho um botão com a função que localiza, se o cara tem o accesso = 0 para poder funcionar o botão.

    porem estou com dificuldade no criterio da função dlookup

    Quero que localize no campo admin da tabela Tbl_01_01_Usuario e o criterio 0

    ou seja, somente no campo admin, quem tiver 0 pode clicar fazer funcionar o botao.

    porem estou com um erro, que ele nao localiza o criterio 0, ele fala que nao tenho acesso.


    segue o código

    Private Sub BtnPainelMoradores_Click()
    Dim Acesso As Variant
    Dim UsuarioLogado As String

    UsuarioLogado = Me.Responsavel.Value

    Acesso = DLookup("Admin", "Tbl_01_01_Usuario", Busca = 0)

    If Acesso = True Then
    DoCmd.OpenForm "Frm_03_01_01_CatalogoDeMoradores", acNormal, "", "", , acNormal
    Else
    MsgBox "Você não está autorizado a acessar essa função!", vbExclamation, "Acesso negado"
    End If

    End Sub


    Última edição por maguim em Qua 22 Mar 2017, 13:40, editado 1 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  FabioPaes em Ter 21 Mar 2017, 15:19

    Olá, tanto o campo buscado quanto o criterio deve ficar entre aspas""

    DLookup("Admin", "Tbl_01_01_Usuario", "Busca = 0") 'Se Busca for Numero.

    DLookup("Admin", "Tbl_01_01_Usuario", "Busca = '0'") 'Se Busca for Texto



    Tenha cuidado com as Funções Dxxx Pois são consulta que retornam valores únicos. Muitas vezes e mais aconselhável abrir recordset para buscar valores de vários campos evitando ter que ir ao BD por varias vezes para obter o mesmo resultado com dlookup.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  maguim em Ter 21 Mar 2017, 16:42

    fabio obg pela informação, porem continua dando erro


    DLookup("Admin", "Tbl_01_01_Usuario", "Busca = 0")

    erro 2417 de expressao parametro ou consulta.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  FabioPaes em Ter 21 Mar 2017, 19:02

    Poste exemplo pra eu dar olhada! Pq e dessa forma aee amigo!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  maguim em Ter 21 Mar 2017, 19:16

    fabiao !

    acho que sei qual é o problema, mas não tenho ideia como arrumar

    formulário tem um box onde o dlookup retorna o usuario e o acesso esta relacionado com campo admin... acho que teria que mudar a logica algo do tipo:


    acesso = admin talvez, acho que não estou certo... scratch


    abraços.



    Anexos
    teste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (305 Kb) Baixado 9 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  FabioPaes em Ter 21 Mar 2017, 19:23

    Amigo, não tem o campo Busca na sua tabela! Esse e o motivo do erro: Acesso = DLookup("Admin", "Tbl_01_01_Usuario", "Busca = 0")

    Me diga o que pretendia com esse botão!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  maguim em Ter 21 Mar 2017, 19:45

    somente quem tiver o codigo 0 da tabela usuario poderia acessa esse botao.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  FabioPaes em Qua 22 Mar 2017, 12:22

    A sim... Então tera que mudar umas coisinha aeee. Acesso não poderá ser falso ou Verdadeiro (Pois Falso =0 e verdadeiro =-1) é como falou, quer dar acesso se for igual a 0 (Falso). Dessa forma terá que mudar para integer, e verificar se Acesso=0.

    Outra coisa que deve observar e a estrutura do Dlookup, Veja na Imagem:
    [Você precisa estar registrado e conectado para ver esta imagem.]
    Dlookup("O que buscar","Onde quer Buscar","Criterio para a busca")

    Mude o Codigo do Botão para:
    Código:
    Private Sub BtnPainelMoradores_Click()
    Dim Acesso As Integer
    Dim UsuarioLogado As String

    UsuarioLogado = Me.Responsavel.Value

    Acesso = DLookup("Admin", "Tbl_01_01_Usuario", "Usuario = '" & Me.Responsavel & "'")

    If Acesso = 0 Then
    DoCmd.OpenForm "Frm_03_01_01_CatalogoDeMoradores", acNormal, "", "", , acNormal
    Else
    MsgBox "Você não está autorizado a acessar essa função!", vbExclamation, "Acesso negado"
    End If

    End Sub


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  maguim em Qua 22 Mar 2017, 13:18

    Fabiao !

    cara sensacional sua posição, fico mto mais claro agr.

    Lê alguns topico que dlookup é como se fosse "PROCV". Mas com sua explicação ficou clarissimo.


    Referente ao codigo, entao nao verdade eu declaro o integer em baixo e nao DLOOKUP.

    Um exemplo escroto !


    Dim Acesso As Integer
    Dim aluno As String

    aluno = Me.biometria.Value

    Acesso = DLookup("aluno", "tabela_de_biometria", "Usuario = '" & Me.biometria & "'")

    If Acesso = aluno Then
    DoCmd.OpenForm "LIBERAR CATRACA", acNormal, "", "", , acNormal
    Else
    MsgBox "SUA CREDENCIAL EXPERIOU", vbExclamation, "Acesso negado"
    End If


    Certo? é bem escroto mais pra saber se eu entende mesmo kkk

    abraços
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]Função DLOOKUP

    Mensagem  FabioPaes em Qua 22 Mar 2017, 13:50

    A questão de eu ter declarado a variável "Acesso" Como Integer é que a procura (Dlookup) era em cima de uma campo que teria o valor 0 ou 1. Agora se tiver valores quebrados, como por exemplo 1,5 dará erro pois o valor da pesquisa não é Inteiro e a variável foi preparada para armazenar um valor inteiro!


    Quando eu Rodo um Dlookup assim :
    Acesso = DLookup("Admin", "Tbl_01_01_Usuario", "Usuario = '" & Me.Responsavel & "'")

    A Minha variável "Acesso" passará a ter o valor encontrado no Campo "Admin" (Observe, ela terá o VALOR desse campo) de acordo com o criterio!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: Sab 18 Nov 2017, 01:08