ROTINA EXPIRA?ÃO SENHA

MILTONSILVA94 21/01/2017 22:11:59
#470927
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?
PLUGSOFTSM 22/01/2017 17:43:47
#470933
Resposta escolhida
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.[Ô]
LEANDRO.LUIZ 23/01/2017 08:20:55
#470940
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.
LUIS.HERRERA 23/01/2017 09:31:51
#470943
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.
MILTONSILVA94 23/01/2017 13:29:24
#470949
Valew PLUGSOFTSM
MILTONSILVA94 23/01/2017 13:37:24
#470950
Valew LUIS HERRERA.
MILTONSILVA94 23/01/2017 13:39:05
#470951
Valew LEANDRO_LUIZ.
Tópico encerrado , respostas não são mais permitidas