locked
Erro de gravação de datas no Access RRS feed

  • Pergunta

  • Desenvolvo um programa em VB.Net 2008 com BD Access 2003.

    O programa vinha funcionando normalmente e, em todos os casos, as datas eram gravadas utilizando consultas SQL com strings similares à seguinte:

    UPDATE tblPF SET CodSexo = 2, CodEscolaridade = 8, CodEstadoCivil = 2, CodRegimeCasamento = 1, CodNacionalidade = 1, CodNaturalidade = 2, Naturalizado = False, DataUltimaAlteracao = #15/06/2009 19:04:14#, CodUsuario = 4 WHERE Codigo = 3

    Como disse, tudo funcionava perfeitamente até que, repentinamente, as datas que antes eram gravadas no formato ddmmaaaa passaram a ser gravadas como mmddaaaa, de forma que 02/jun/2009 passou a ser 06/fev/2009.

    Não consegui entender porque isto passou a acontecer. Não houve qualquer alteração em configurações de datas, tendo inclusive sido verificadas as configurações regionais do Windows que permaneciam no formato ddmmaaaa, Português (Brasil).

    O problema passou a acontecer simultaneamente em todas as máquinas.

    Por quê?

    segunda-feira, 15 de junho de 2009 22:40

Todas as Respostas

  • Ricardo,

    poste como está o seu código, sem alterar o parâmetros por valores.


    Abraço.
    Douglas Moura | Cuiabá-MT
    terça-feira, 16 de junho de 2009 23:06
  • O problema é que sempre que usar um SQL tem que manter o padrão inglês ao passar as variáveis contendo data ou valores de data.

    No seu exemplo fica assim: onde for por a data use format(#15/06/2009 19:04:14#,"MM/DD/YYYY hh:mm:ss") e o UPDATE ou qualquer outro SQL funcionará OK pois a instrução FORMAT forçará a data a ir no padrão inglês dentro do SQL.

    Atenção também quando usar números com  parte decimal em SQL´s pois o separador decimal padrão no inglês é o ponto e o  de milhar é a vírgula.
    sábado, 20 de junho de 2009 18:22