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]Selecionar formulário ao fazer login

    avatar
    mm_edilson
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 29/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Selecionar formulário ao fazer login

    Mensagem  mm_edilson 29/3/2012, 16:02

    Amigos, estou criando um sistema de login em access 2010. Tenho uma tabela "usuario" com os campos "login", "senha" e "grupo".

    Quero que, quando o usuário pertencer ao grupo "admin" abra um formulário ("FPrincipal"). Mas no caso de o usuário pertencer ao grupo "user", abra outro formulário ("FPrincipal2"). Esses formulários são diferentes.

    Meu código, a princípio, está funcionando corretamente, mas abrindo sempre o formulário "FPrincipal", porque não sei fazer esse código selecionar o formulário, de acordo com o grupo.

    Meu código tá assim


    Private Sub btnLogin_Click()
    Dim criterio As String
    criterio = "login='" & cbxLogin & "' And senha='" & txtSenha & "'"
    If DCount("login", "Usuario", criterio) = 1 Then
    DoCmd.Close
    DoCmd.OpenForm "FPrincipal"
    Else
    MsgBox "Senha incorreta. Por favor, tente novamente", vbExclamation, "Login"
    txtSenha.SetFocus
    End If
    End Sub

    Alguém pode dar uma força?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 29/3/2012, 16:57

    Olá! Seja bem vindo ao forum!

    Dica para pesquisar o grupo, supondo que você tenha um campo de nome txtGrupo:

    Código:
    If Me.txtGrupo = "admin" then
        DoCmd.OpenForm "FPrincipal"
    Else
        DoCmd.OpenForm "FPrincipal2"
    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    mm_edilson
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 29/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  mm_edilson 29/3/2012, 17:12

    Mas eu não tenho esse campo. Só tenho uma caixa de combinação para o usuário e uma caixa de texto para a senha.

    Quero selecionar o usuário na caixa de combinação, e digitar a senha. Aí o código consulta o banco de dados, vê se a senha confere, e vê qual o grupo. Se a senha estiver correta e o login for do grupo "admin", abre um formulário, se for do grupo "user", abre outro.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 29/3/2012, 17:20

    Mesma lógica. Basta usar o DLookup para pesquisar a grupo na tabela:

    Código:
    If DLookup("NomeDoCampoDoGrupoNaTabela", "NomeDaTabela", "NomeDoCampoUsuárioNaTabela='" & Me.NomeDaCombo & "'") = "admin" then
        DoCmd.OpenForm "FPrincipal"
    Else
        DoCmd.OpenForm "FPrincipal2"
    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    mm_edilson
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 29/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  mm_edilson 29/3/2012, 17:54

    Desculpe, e desde já agradecendo a ajuda, não consegui entender como inserir isso no meu código.

    Iniciantes, aff, rsrsrs
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 29/3/2012, 18:25

    Insere no lugar da linha que abre o seu formulário:

    Private Sub btnLogin_Click()

    Dim criterio As String
    criterio = "login='" & cbxLogin & "' And senha='" & txtSenha & "'"

    If DCount("login", "Usuario", criterio) = 1 Then
    DoCmd.Close

    If DLookup("NomeDoCampoDoGrupoNaTabela", "NomeDaTabela", "NomeDoCampoUsuárioNaTabela='" & Me.NomeDaCombo & "'") = "admin" then
    DoCmd.OpenForm "FPrincipal"
    Else
    DoCmd.OpenForm "FPrincipal2"
    End If

    Else
    MsgBox "Senha incorreta. Por favor, tente novamente", vbExclamation, "Login"
    txtSenha.SetFocus
    End If

    End Sub


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    mm_edilson
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 29/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  mm_edilson 29/3/2012, 18:39

    Tentei dessa forma, mas ele não abre o formulário. Apenas fecha o formulário de login.

    Então tirei o Do.CmdClose, mas aí só abre o formulário 1, independente do grupo.
    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 6/4/2012, 12:20

    Também tenho esta duvida, tenho o seguinte código que me verifica o login:

    Private Sub btnLogin_Click()

    If IsNull(cbxlogin) Then
    MsgBox "Por favor, informe um nome de usuário!", vbExclamation, "Login Inválido"
    cbxlogin.SetFocus
    ElseIf IsNull(txtsenha) Then
    MsgBox "Por favor, informe a senha!", vbExclamation, "Senha Inválida"
    txtsenha.SetFocus
    ElseIf verificaLogin(cbxlogin, txtsenha) Then
    DoCmd.Close
    DoCmd.OpenForm "Listar_Tarefas"
    Else
    MsgBox "Senha incorreta! Por favor, tente novamente.", vbExclamation, "Login"
    txtsenha.SetFocus
    End If

    End Sub



    Queria que sempre que o login fosse como admin, ele abri-se o formulário Administração e os restantes abririam o outro.

    Já experimentei a sintaxe:

    If Me!cbxlogin = "admin" then
    DoCmd.OpenForm "frmAdministracao"
    Else
    DoCmd.OpenForm "Listar_Tarefas"
    End IF



    Mas sem sucesso, se fosse possivel uma ajudinha Wink
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 6/4/2012, 12:52

    Talvez assim dê certo:


    Private Sub btnLogin_Click()

    criterio = "login='" & cbxLogin & "' And senha='" & txtSenha & "'"

    If DCount("*", "Usuario", "login='" & Me.cbxLogin & "' And senha='" & Me.txtSenha & "'") > 0 Then
    DoCmd.Close

    If DLookup("NomeDoCampoDoGrupoNaTabela", "NomeDaTabela", "NomeDoCampoUsuárioNaTabela='" & Me.NomeDaCombo.Column(?) & "'") = "admin" then
    DoCmd.OpenForm "FPrincipal"
    Else
    DoCmd.OpenForm "FPrincipal2"
    End If

    Else
    MsgBox "Senha incorreta. Por favor, tente novamente", vbExclamation, "Login"
    txtSenha.SetFocus
    End If

    End Sub


    No lugar de (?), colocar o número correto da coluna.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 6/4/2012, 13:40

    Muito obrigado pela disponibilidade. A sua sintaxe dá o erro '2467', falta de objeto.

    Deixo aqui a minha bd teste para poder verificar se não se importar o que está de mal.

    Obrigado

    Código:
    http://speedy.sh/h6Esm/Gestor-de-Tarefas.accdb
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 6/4/2012, 14:03

    Amigão, sempre que ocorre um erro, o vba costuma depurar para a linha problemática. Geralmente, ao ver a linha, já podemos ter ideias de como contornar o problema. Dê uma analisada aí.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 6/4/2012, 20:05

    Sim já tinha reparado mas o erro é sempre o mesma e não tou a ver como resolver, se podesse dar uma luz:

    Já editei a linha que disse para tentar:
    Código:
    If DLookup("grupo", "Login", "utilizador='" & Me.cbxlogin.Column(0) & "'") = "admin" Then


    Desculpe a minha falta de conhecimento Wink
    avatar
    White
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/04/2010

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  White 6/4/2012, 23:20

    Isto ocorre por que no código há um DoCmd.Close antes de capturar o valor da combobox -> Me.cbxlogin.Column(0) que está na linha do DLookup.

    Altere o código como a seguir:
    Código:
    Private Sub btnLogin_Click()
     
      If IsNull(cbxlogin) Then
        MsgBox "Por favor, informe um nome de usuário!", vbExclamation, "Login Inválido"
        cbxlogin.SetFocus
      ElseIf IsNull(txtsenha) Then
        MsgBox "Por favor, informe a senha!", vbExclamation, "Senha Inválida"
        txtsenha.SetFocus
      ElseIf verificaLogin(cbxlogin, txtsenha) Then
      User = Me.cbxlogin.Column(0)
        DoCmd.Close
       
        If DLookup("grupo", "Login", "utilizador='" & User & "'") = "admin" Then
            DoCmd.OpenForm "FCadastroUsuario"
        Else
            DoCmd.OpenForm "Listar_Tarefas"
        End If
       
      Else
        MsgBox "Senha incorreta! Por favor, tente novamente.", vbExclamation, "Login"
        txtsenha.SetFocus
      End If

    End Sub
    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 7/4/2012, 00:15

    Obrigado, faz todo o sentido, isto de novatos tem destas coisas.

    O erro ficou corrigido, mas continuam a abrir o mesmo formulário ambos logins.

    algo não deve estar bem!

    avatar
    White
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/04/2010

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  White 7/4/2012, 00:54

    Troque a linha:
    Código:
    If DLookup("grupo", "Login", "utilizador='" & User & "'") = "admin" Then

    por essa:

    Código:
    If DLookup("grupo", "Login", "utilizador='" & User & "'") = 1 Then

    Ah, e corrige o nome do formulário do Admin para frmadmin
    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 7/4/2012, 13:34

    Muito bom, funcionou perfeito. Obrigado.

    Já agora poderia me explicar para no futuro não estar a fazer este tipo de questões básicas, o porque de colocar o 1 em vez de "admin".

    Obrigado.
    avatar
    White
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/04/2010

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  White 7/4/2012, 13:59

    Por que o DLookup está retornando um valor numérico, devido a configuração do campo "grupo" na tabela "Login". Se você colocar no modo design da tabela e selecionar o campo grupo, vá em propriedades do campo -> clique em Pesquisa, verá que está configurado lista de valores e na origem da linha tá assim: 1;"Administrador";2;"Funcionarios"
    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 7/4/2012, 23:03

    Muito obrigado, mesmo Wink
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  criquio 8/4/2012, 00:34

    Só faltou clicar no botão Resolvido. Dessa vez eu clico.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    racl
    racl
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 77
    Registrado : 28/03/2012

    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  racl 8/4/2012, 02:48

    Peço desculpa mas pensei que fosse o autor a fazer isso!

    Cumps
    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Selecionar formulário ao fazer login Empty descobri um novo modo sem precisar de combo

    Mensagem  toxicsquall 14/5/2012, 19:51

    Explicando:
    Usuarios = Tabela aonde eu guardo os logins com os campos Usuario, Senha, Tipo, Status
    Usuario = Campo da tabela aonde fica o nome do usuário
    Senha = Campo da tabela aonde fica registrado a senha
    Tipo = Campo da tabela aonde fica o tipo de usuário, no caso "Administrador" e "Usuário"
    Status = Campo da tabela onde fala se o usuário ainda está ativo ou desativado.
    txtsenha = Campo de texto do formulário aonde vamos digitar a senha
    txtusuario = Campo da tabela aonde vamos digitar o nome do usuário

    Private Sub Login_Click()

    Dim banco As Database
    Dim tabela As Recordset
    Dim usuarioencontrado As Boolean
    Dim teste, status As String


    Set banco = CurrentDb
    Set tabela = banco.OpenRecordset("Usuarios")

    usuarioencontrado = False

    If tabela.RecordCount > 0 Then
    tabela.MoveFirst
    Do While tabela.EOF = False
    If tabela!Usuario = Me.txtusuario.Value And tabela!Senha = Me.txtsenha.Value Then
    usuarioencontrado = True
    teste= tabela!Tipo
    status = tabela!Status
    Exit Do
    End If
    tabela.MoveNext
    Loop
    End If
    If usuarioencontrado = False Then
    MsgBox "Usuário ou Senha incorretos.", vbCritical, "Erro de login"
    Else
    If usuarioencontrado = True And teste = "Administrador" And Status = "Ativo" Then
    DoCmd.Close
    MsgBox teste, vbInformation, "Login"
    DoCmd.OpenForm "Formulário1"
    Else
    If usuarioencontrado = True And teste = "Usuário" And Status = "Ativo" Then
    DoCmd.Close
    MsgBox teste, vbInformation, "Login"
    DoCmd.OpenForm "Formulário2"
    Else
    If usuarioencontrado = True And teste = "Administrador" And Status = "Inativo" Then
    DoCmd.Close
    MsgBox "Usuário desativado.", vbCritical, "Login"
    Else
    If usuarioencontrado = True And teste = "Usuário" And Status = "Inativo" Then
    DoCmd.Close
    MsgBox "Usuário desativado.", vbCritical, "Login"
    End If
    End If
    End If
    End If
    End If
    tabela.Close

    End Sub

    Conteúdo patrocinado


    [Resolvido]Selecionar formulário ao fazer login Empty Re: [Resolvido]Selecionar formulário ao fazer login

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 02:39