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

    FORM LOGIN - REGISTAR USUARIO

    Compartilhe

    slayter
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1
    Registrado : 29/10/2015

    FORM LOGIN - REGISTAR USUARIO

    Mensagem  slayter em Sex 30 Out 2015, 17:17

    Boa tarde,

    noob em vba...

    Tenho um script mt basico de form que serve de Login para abrir outro FORM,
    O outro FORM é para criar registos de vendas, o que eu quero é que a informação do usuario fique resgistrado no form de resgistro de vendas

    Podem por favor dizer como fazer isto? qual o codigo/comando que tenho que escrever no botao de acesso do FORM Login e se tenho que fazer alguma coisa no form de vendas?



    Private Sub btnLogin_Click()

    Dim criterio As String

    criterio = "login='" & cbxLogin & "' And senha='" & txtSenha & "'"
    If DCount("login", "Usuario", criterio) = 1 Then
    Form.Visible = False
    DoCmd.OpenForm "Back_Office_Portugal"



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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: FORM LOGIN - REGISTAR USUARIO

    Mensagem  Noobezinho em Sex 30 Out 2015, 19:35

    Luis

    Vamos tentar, ok?

    Antes de tudo, preciso saber se está tudo certo, com os dados:

    A tabela Usuario  tem os campos  com código do usuário e o nome e senha ?
    Mais precisamente o código do usuário.

    Aqui:

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

    Esse "login" é o código do usuário?

    essa frase:
    Form.Visible = False

    Não tem o nome de qual form deseja deixar invisível.

    como é form que está aberto no momento (o de login)

    faça assim:

    Private Sub btnLogin_Click()
    Dim criterio As String
    criterio = "login='" & cbxLogin & "' And senha='" & txtSenha & "'"
    If DCount("login", "Usuario", criterio) = 1 Then
      'primeiro precisa abrir o outro form, para poder
      'deixar o atual invisível, não se pode deixar invisivel
      'o objeto que tem o foco

      DoCmd.OpenForm "Back_Office_Portugal"
      Forms!frmLogin.visible= false ' coloque o nome do teu form de login, no lugar de frmLogin.
    Else
      MsgBox "Senha incorreta! Por favor, tente novamente.", vbExclamation, "Login"
      txtSenha.SetFocus
    End If


    Copie e cole o código e substitua onde precisa com os nomes dos teus controles.

    Agora um passo a passo, faça com atenção, para aprender.Wink
    Com o código já no local, clique e deixe o cursor sobre
    a linha "If DCount("login", "Usuario", criterio) = 1 Then"
    e então, aperte F9, isso vai pintar essa linha de marrom.
    Acabamos de colocar um ponto de interrupção no código vba,
    ou seja, ele ficará parado ali.
    rode o aplicativo. Ele tem que parar nessa linha que ficará amarela.
    Agora podemos fazer uns testes.
    copie essa parte do código:
    DCount("login", "Usuario", criterio)

    Agora, la embaixo tem a janela imediata.

    Cole essa linha que copiou e acrescente na frente dela o ponto de (?)

    Assim:

    ? DCount("login", "Usuario", criterio)

    O ponto de interrogação quer dizer print ou exiba.
    Apertando a tecla Enter com o cursor nessa linha, irá
    executar o Dcount e retornará na linha de baixo, o resultado.
    Deve retornar 1, pois deve ter um registro que atende os critérios.
    Pronto, testou e funfou?
    Aperte F9 com o cursor na linha para tirar a faixa marrom dela.(limpar o ponto de interrupção).

    teste.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Ixion
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 24/10/2015

    Re: FORM LOGIN - REGISTAR USUARIO

    Mensagem  Ixion em Sab 31 Out 2015, 15:58

    Eu também estava com um problema parecido.

    Se eu entendi bem você quer que ao abrir o formulário de vendas que o nome do usuário logado apareça no formulário e seja salvo quando a venda for registrada.

    Se for isso você pode criar uma variável que irá assumir o valor selecionado na caixa de combinação "cbxlogin". Pra isso crie um módulo e ponha esses códigos:

    Private strUsuarioAtual As String

    Function getUsuarioAtual() As String

    getUsuarioAtual = strUsuarioAtual

    End Function

    Sub setUsuarioAtual(argLogin As String)

    strUsuarioAtual = argLogin

    End Sub

    Agora no formulário, no evento "ao abrir", ponha:

    Me.seucampo=getusuarioatual()

    E na origem de dados do campo coloque o campo da sua tabela de vendas onde ficará registrado o nome do usuário / vendedor.

    ItaloAprendiz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 12/03/2016

    Gravar o Usuário logado toda vez que fizer um registro

    Mensagem  ItaloAprendiz em Sab 12 Mar 2016, 02:50

    Galera é o seguinte: estou fazendo sisteminha de movimentação de processos. Cada processo tem várias movimentações. Daí criei duas tabelas, uma chamada tab_movimentação e outra Cad_Processos relacionei-as tudo bonitinho. No entanto quis dá uma sofisticada e resolvi criar um sistema de login. Consegui criar um login bem simples, baseado apenas nas macros do access 2013. Todavia, eu queria que quando o usuário clicasse no botão movimentar processo, o nome desse usuário logado fosse gravado num campo da tabela: tab_movimentação. Ou seja toda vez que ele adicionasse um registro, automaticamente o nome dele fosse gravado também.

    Sou leigo em VBA. Estou fazendo tudo com macro.

    Aguardando uma luz!

      Data/hora atual: Sex 23 Jun 2017, 21:33