VARI?VEL SENHA ARMAZENADA
Boa tarde,
Tenho um form [ô]Alteração de Senha[ô], neste formulário o mesmo faz validação do campo [ô]Senha Antiga[ô] do usuário logado no sistema. Na primeira alteração do usuário o mesmo valida corretamente, exemplo senha antiga: 123456, senha nova 1234567, e dá certo.
Porém se o mesmo formulário for aberto na mesma sessão para alterar a senha novamente, o mesmo não busca a senha atual no usuário que é a 1234567, ele fica validando a senha colocada no primeiro instante.
Ao fazer [ô]login[ô] ele guarda a senha na variável [ô]gsSenhaUsuario[ô]:
Dim lSQLConect As String
Dim lTBUsuarios As Recordset
gsLogin = txtLogin.Text
lSQLConect = [Ô]SELECT USUARIOS.*, PERFIS.* FROM USUARIOS [Ô]
lSQLConect = lSQLConect & [Ô]INNER JOIN PERFIS ON PERFIS.Id_perfil = USUARIOS.Id_perfil [Ô]
lSQLConect = lSQLConect & [Ô]WHERE login = [ô][Ô] & gsLogin & [Ô][ô] [Ô]
Set lTBUsuarios = gBDSistemaIntegrado.OpenRecordset(lSQLConect, dbOpenSnapshot)
If lTBUsuarios.BOF = True And lTBUsuarios.EOF = True Then
MensagemErro [Ô]Usuário ou Senha inválidos![Ô]
txtLogin.Text = [Ô][Ô]
txtSenha.Text = [Ô][Ô]
txtLogin.SetFocus
Exit Sub
Else
gsSenhaUsuario = lTBUsuarios.Fields([Ô]senha[Ô]).Value [ô]Rotina que salva [ô]senha[ô] do usuário logado no sistema nesta função.
Dim lsql As String [ô]Rotina que grava no banco de dados as informações do último acesso do usuário ao sistema.
lsql = [Ô]UPDATE USUARIOS [Ô]
lsql = lsql & [Ô] SET [Ô]
lsql = lsql & [Ô] ultimo_acesso = [ô][Ô] & Format(Date, [Ô]yyyy-mm-dd [Ô]) & Format(Time, [Ô]Long Time[Ô]) & [Ô][ô],[Ô]
lsql = lsql & [Ô] nome_estacao = [ô][Ô] & gsNomeEstacao & [Ô][ô][Ô]
lsql = lsql & [Ô] WHERE id_usuario = [Ô] & gsLoginUsuario
gBDSistemaIntegrado.Execute lsql [ô]Fim da rotina
End If
End Sub
Variável gsSenhaUsuario fica armazenada a senha do usuário logado.
Como consigo fazer esta rotina funcionar corretamente?
Tenho um form [ô]Alteração de Senha[ô], neste formulário o mesmo faz validação do campo [ô]Senha Antiga[ô] do usuário logado no sistema. Na primeira alteração do usuário o mesmo valida corretamente, exemplo senha antiga: 123456, senha nova 1234567, e dá certo.
Porém se o mesmo formulário for aberto na mesma sessão para alterar a senha novamente, o mesmo não busca a senha atual no usuário que é a 1234567, ele fica validando a senha colocada no primeiro instante.
Ao fazer [ô]login[ô] ele guarda a senha na variável [ô]gsSenhaUsuario[ô]:
Dim lSQLConect As String
Dim lTBUsuarios As Recordset
gsLogin = txtLogin.Text
lSQLConect = [Ô]SELECT USUARIOS.*, PERFIS.* FROM USUARIOS [Ô]
lSQLConect = lSQLConect & [Ô]INNER JOIN PERFIS ON PERFIS.Id_perfil = USUARIOS.Id_perfil [Ô]
lSQLConect = lSQLConect & [Ô]WHERE login = [ô][Ô] & gsLogin & [Ô][ô] [Ô]
Set lTBUsuarios = gBDSistemaIntegrado.OpenRecordset(lSQLConect, dbOpenSnapshot)
If lTBUsuarios.BOF = True And lTBUsuarios.EOF = True Then
MensagemErro [Ô]Usuário ou Senha inválidos![Ô]
txtLogin.Text = [Ô][Ô]
txtSenha.Text = [Ô][Ô]
txtLogin.SetFocus
Exit Sub
Else
gsSenhaUsuario = lTBUsuarios.Fields([Ô]senha[Ô]).Value [ô]Rotina que salva [ô]senha[ô] do usuário logado no sistema nesta função.
Dim lsql As String [ô]Rotina que grava no banco de dados as informações do último acesso do usuário ao sistema.
lsql = [Ô]UPDATE USUARIOS [Ô]
lsql = lsql & [Ô] SET [Ô]
lsql = lsql & [Ô] ultimo_acesso = [ô][Ô] & Format(Date, [Ô]yyyy-mm-dd [Ô]) & Format(Time, [Ô]Long Time[Ô]) & [Ô][ô],[Ô]
lsql = lsql & [Ô] nome_estacao = [ô][Ô] & gsNomeEstacao & [Ô][ô][Ô]
lsql = lsql & [Ô] WHERE id_usuario = [Ô] & gsLoginUsuario
gBDSistemaIntegrado.Execute lsql [ô]Fim da rotina
End If
End Sub
Variável gsSenhaUsuario fica armazenada a senha do usuário logado.
Como consigo fazer esta rotina funcionar corretamente?
Qual o banco de dados?
ja verificou se no banco esta fazendo o update?
sua variavel esta armazenando corretamente?
ja verificou se no banco esta fazendo o update?
sua variavel esta armazenando corretamente?
Citação::
Qual o banco de dados?
ja verificou se no banco esta fazendo o update?
sua variavel esta armazenando corretamente?
é banco ACCESS.
Sim está fazendo o UPDATE na senha corretamente...
Variável recebendo os dados corretamente, pois coloquei um label para me trazer o valor para eu enxergar, porém na segunda tentativa de alteração de senha ele me retorna o mesmo valor da primeira vez.
Não sei se entendi direito mais acho que após ter trocado a senha você
Deve carregar as informações do usuário novamente.
Sim depois que grava, deveria armazenar a senha nova na variável.
esta variavel esta declarada onde? no form de alteraçao ou em um modulo?
de que forma esta chamando o form?
de que forma esta chamando o form?
Citação::
esta variavel esta declarada onde? no form de alteraçao ou em um modulo?
de que forma esta chamando o form?
Esta variável está no formulário de login e fica declarada no módulo.
Daà no formulário de alteração de senha, apenas coloquei uma validação que se baseia na variável [ô]gsSenhaUsuario[ô] que veio do login:
If txtSenhaAntiga = gsSenhaUsuario Then
[ô]MsgBox [Ô]Esta realmente é a senha antiga do usuário[Ô]
Else
MensagemErro [Ô]A senha antiga está inválida![Ô]
txtSenhaAntiga.Text = [Ô][Ô]
txtNovaSenha.Text = [Ô][Ô]
txtRepitaNovaSenha.Text = [Ô][Ô]
txtSenhaAntiga.SetFocus
Exit Sub
End If
Preciso adicionar alguma coisa dentro do form [ô]alteração de senha[ô]?
pelo oque eu entendi sua variável esta declarada dentro do formulário de login e você esta chamando ela no formulário de alteração.
declare ela em um modulo
declare ela em um modulo
Citação::
pelo oque eu entendi sua variável esta declarada dentro do formulário de login e você esta chamando ela no formulário de alteração.
declare ela em um modulo
No módulo ela está declarada...
MILTONSILVA94.
Faça o seguinte.Coloque esta parte do seu projeto para o pessoal baixar e verifica o que está acontecendo.
Vai ser rápido.
Faça o seguinte.Coloque esta parte do seu projeto para o pessoal baixar e verifica o que está acontecendo.
Vai ser rápido.
Tópico encerrado , respostas não são mais permitidas