ROTINA EXPIRA?ÃO SENHA
Tenho uma coluna [ô]expira_senha[ô] no padrão [ô]dd/mm/yyyy[ô] dentro da tabela usuários.
Ao fazer validação no login do usuário existe a seguinte rotina:
If Format(Now, [Ô]dd/mm/yyyy[Ô]) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se data atual é maior que a do campo [ô]expira_senha[ô]
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
No banco está gravada para este usuário na coluna [ô]expiracao_senha[ô] = [ô]21/05/2017[ô]
Porém mesmo a data atual sendo menor que a gravada em [ô]expira_senha[ô] no banco de dados ele está caindo aqui...
Notem que eu deixando conforme abaixo neste padrão funciona:
If Format(Now, [Ô]yyyy-mm-dd[Ô]) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se senha do usuário expirou
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
No banco está gravada para este usuário na coluna [ô]expiracao_senha[ô] = [ô]2017-05-21[ô]
Por que não está funcionando da primeira forma?
Ao fazer validação no login do usuário existe a seguinte rotina:
If Format(Now, [Ô]dd/mm/yyyy[Ô]) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se data atual é maior que a do campo [ô]expira_senha[ô]
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
No banco está gravada para este usuário na coluna [ô]expiracao_senha[ô] = [ô]21/05/2017[ô]
Porém mesmo a data atual sendo menor que a gravada em [ô]expira_senha[ô] no banco de dados ele está caindo aqui...
Notem que eu deixando conforme abaixo neste padrão funciona:
If Format(Now, [Ô]yyyy-mm-dd[Ô]) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se senha do usuário expirou
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
No banco está gravada para este usuário na coluna [ô]expiracao_senha[ô] = [ô]2017-05-21[ô]
Por que não está funcionando da primeira forma?
Faz assim
If cdate(Format(Now, [Ô]yyyy-mm-dd[Ô])) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se senha do usuário expirou
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
If cdate(Format(Now, [Ô]yyyy-mm-dd[Ô])) > lTBUsuarios([Ô]expira_senha[Ô]) Then [ô]Rotina que verifica se senha do usuário expirou
MensagemErro [Ô]Sua senha expirou, efetue a alteração.[Ô]
Porque não usa da forma que funciona, é o padrão americano, e quase todos (senão todos) utilizam esse formato.
Na sugestão dada pelo nosso amigo PLUGSOFTSM, você executa 2 funções, eu preferiria usar no padrão americano mesmo e executar apenas uma função para formatar a data.
Na sugestão dada pelo nosso amigo PLUGSOFTSM, você executa 2 funções, eu preferiria usar no padrão americano mesmo e executar apenas uma função para formatar a data.
Milton depende qual seu banco e de onde está pegando os dados, até o idioma que está rodando o aplicativo (cultura do windows).
O padrão em bancos é ano/mes/dia ou me/dia/ano (ambos formatos americanos). Já o Access normalmente se configura o campo para o português (dia/mes/ano), agora a exibição pode ser feita no idioma do Windows. O correto é usar uma função de Conversão de Data para sempre usar o formato correto. Além disso há outros detalhes muito importantes que não podem ser esquecidos.
1) dependendo do banco a data é gravada junto com a hora, isso pode gerar problemas.
2) de onde está pegando a data para comparar, do Windows (estação) ou do servidor / banco de dados (o mais correto). Geralmente estações de trabalho tem data alterada pelo usuário, o que pode violar as regras de seu sistema.
O padrão em bancos é ano/mes/dia ou me/dia/ano (ambos formatos americanos). Já o Access normalmente se configura o campo para o português (dia/mes/ano), agora a exibição pode ser feita no idioma do Windows. O correto é usar uma função de Conversão de Data para sempre usar o formato correto. Além disso há outros detalhes muito importantes que não podem ser esquecidos.
1) dependendo do banco a data é gravada junto com a hora, isso pode gerar problemas.
2) de onde está pegando a data para comparar, do Windows (estação) ou do servidor / banco de dados (o mais correto). Geralmente estações de trabalho tem data alterada pelo usuário, o que pode violar as regras de seu sistema.
Valew PLUGSOFTSM
Valew LUIS HERRERA.
Valew LEANDRO_LUIZ.
Tópico encerrado , respostas não são mais permitidas