MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    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: Dom 04 Dez 2016, 06:05