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


2 participantes

    [Resolvido]login com erro

    Oliveira89
    Oliveira89
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 159
    Registrado : 07/09/2016

    [Resolvido]login com erro Empty [Resolvido]login com erro

    Mensagem  Oliveira89 27/10/2016, 12:50

    bom dia pessoal tenho um formulário para login:

    Private Sub Comando1_Click()
    Dim segurança As Integer
    'caso algum valor falte deverão aparecer menssagens
    If IsNull(Me.user) Then
    MsgBox " Por favor introduza um login", vbInformation, "Login necessario"
    Me.user.SetFocus
    ElseIf IsNull(Me.pass) Then
    MsgBox " Por favor introduza uma Password", vbInformation, "Password necessaria"
    Me.pass.SetFocus
    Else
    'processo de desenvolvimento caso algum parametro de login esteja errado esteja errado consuante a consulta que estou a fazer
    If (IsNull(DLookup("[nome]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'"))) Or _
    (IsNull(DLookup("[password]", "registo novo funcionario", "[password] ='" & Me.pass.Value & "'"))) Then
    MsgBox "login incorreto ou password"
    'diferenciação entre permições de utilizador
    Else
    segurança = DLookup("[permissões]", "registo novo funcionario", "[nome] = '" & Me.user.Value & "'")
    DoCmd.Close
    If segurança = 1 Then
    MsgBox "Bem-vindo"
    DoCmd.OpenForm "prototipo ecrã inicial (master)"
    ElseIf segurança = 2 Then
    MsgBox "Bem-vindo"
    DoCmd.OpenForm "opções do porteiro (v)"
    Else
    If segurança = 3 Then
    MsgBox "Bem-vindo"
    DoCmd.OpenReport "teste", acViewReport
    End If
    End If
    End If
    End If
    End Sub

    Porem tenho um erro que é: Qualquer user que coloque a password de outro tem acesso ao sistema.
    por exemplo: (user/password)
    Antonio/1q2w3e- bemvindo
    samuel/1q2w3e-bemvindo

    Utilizadores colocando a password de outros têm acesso.
    O que poderei fazer?


    .................................................................................
    Muito Obrigado
    Com os melhores Cumprimentos
    此致
    Oliveira
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]login com erro Empty login com erro

    Mensagem  CassioFabre 27/10/2016, 16:59

    Boa tarde,

    Tente alterar o trecho:

    If (IsNull(DLookup("[nome]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'"))) Or _
    (IsNull(DLookup("[password]", "registo novo funcionario", "[password] ='" & Me.pass.Value & "'"))) Then
    MsgBox "login incorreto ou password"
    'diferenciação entre permições de utilizador

    por:

    Código:
    If dcount("[nome]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'") = 0 Or DLookup("[password]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'") <> Me.pass.Value then
         'mensagem de erro de login
    else
         'Continua procedimentos
    end if

    Abraço.
    Oliveira89
    Oliveira89
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 159
    Registrado : 07/09/2016

    [Resolvido]login com erro Empty Re: [Resolvido]login com erro

    Mensagem  Oliveira89 28/10/2016, 11:16

    Bom dia Sr. Cassio

    Funciona na perfeição cheers
    Muito obrigado.


    .................................................................................
    Muito Obrigado
    Com os melhores Cumprimentos
    此致
    Oliveira
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]login com erro Empty login com erro

    Mensagem  CassioFabre 28/10/2016, 11:21

    Bom dia,

    Agradecemos o retorno.

    Abraço.
    Oliveira89
    Oliveira89
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 159
    Registrado : 07/09/2016

    [Resolvido]login com erro Empty Re: [Resolvido]login com erro

    Mensagem  Oliveira89 28/10/2016, 11:37

    Estou estudando access aos poucos e estou a tentar compreender a função DCount, agora sei que serve para fazer uma contagem de registos, mas não percebi bem o fundamento, estou muito muito contente por ter resolvido o meu problema mas, contudo gosto de entender todos os processos.
    Caso não lhe esteja a ocupar tempo diga-me por favor:

    If (IsNull(DLookup("[nome]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'"))) Or _
    (IsNull(DLookup("[password]", "registo novo funcionario", "[password] ='" & Me.pass.Value & "'"))) Then

    antes através deste código eu referia que se o valor nome da tabela funcionário fosse nulo entrava num loop ou caso o mesmo acontecesse com a password o mesmo aconteceria, aparecendo depois uma mensagem com um texto "login incorreto ou password".

    Ao fazer a troca por: If dcount("[nome]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'") = 0 Or DLookup("[password]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'") <> Me.pass.Value then

    O que mudou ao fim ao cabo?


    .................................................................................
    Muito Obrigado
    Com os melhores Cumprimentos
    此致
    Oliveira
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]login com erro Empty login com erro

    Mensagem  CassioFabre 28/10/2016, 11:45

    Bom dia,

    O problema do seu código não estava na parte que verificava o login. Tanto o DCount() quando o isNull(DLookup()) neste caso dariam certo. O seu problema estava no trecho (IsNull(DLookup("[password]", "registo novo funcionario", "[password] ='" & Me.pass.Value & "'"))).

    Da forma como você escreveu, o sistema procurava na tabela se algum valor do campo password coincidia com o campo senha do seu formulário, ou seja, ele não comparava com o usuário digitado no campo login, na verdade nem levava em consideração, apenas verificava se a palavra digitada constava no campo senha da tabela. Daí o problema de um usuário conseguir logar com a senha de outro.

    Por esse motivo que eu comparei o valor da senha na tabela correspondente ao usuário com o valor digitado no campo do formulário: DLookup("[password]", "registo novo funcionario", "[nome] ='" & Me.user.Value & "'") <> Me.pass.Value

    Abraço.
    Oliveira89
    Oliveira89
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 159
    Registrado : 07/09/2016

    [Resolvido]login com erro Empty Re: [Resolvido]login com erro

    Mensagem  Oliveira89 28/10/2016, 12:16

    bounce Entendi! wauw tem razão. Agora que estou a ver mais de perto só ia mesmo buscar uma senha qualquer no campo password da tabela registo novo funcionário, daí agora com a sua ajuda foi deita uma "concatenação" procurando os registos de um campo que associando um ao outro. Obrigado pela ajuda e explicação.
    Nota deste topico : (0/100) -> 99%
    cheers bounce cheers


    .................................................................................
    Muito Obrigado
    Com os melhores Cumprimentos
    此致
    Oliveira

    Conteúdo patrocinado


    [Resolvido]login com erro Empty Re: [Resolvido]login com erro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/5/2024, 07:07