MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Data atual (Função DATE) sendo gravada como '30/12/1899' e lida (Função DLookup) como '00:12:07'

    avatar
    teremiro
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 30/12/2019

    [Resolvido]Data atual (Função DATE) sendo gravada como '30/12/1899' e lida (Função DLookup) como '00:12:07' Empty [Resolvido]Data atual (Função DATE) sendo gravada como '30/12/1899' e lida (Função DLookup) como '00:12:07'

    Mensagem  teremiro em 17/1/2020, 15:12

    Prezados,

    1. Num trecho de Código VBA Access, obtenho a data atual do sistema (DATE) e gravo no campo DatDevEfet (Data de Devolução Efetiva) da Tabela 'DetalheEmpréstimo', conforme abaixo:

    DataEfetiva = Date
    strSQL = "UPDATE DetalheEmpréstimo SET DataDevEfet = " & DataEfetiva & " WHERE CodEmp = " & Me.CodEmp & " AND CodObra= " & CodObra
    CurrentDb.Execute strSQL, dbFailOnError

    A inspeção da variável DataEfetiva em tempo de execução mostra a data correta (conforme abaixo):

    Watch : : DataEfetiva : 17/01/2020 : Variant/Date : Form_Devolução.DevolverLivro_Click

    No entanto, após gravada, a data aparece na Tabela 'DetalheEmpréstimo' como: '30/12/1899'.


    2. Num outro trecho do Código VBA, esta mesma data gravada '30/12/1899' é lida através da função DLookup, conforme abaixo:

    DataEfetiva = DLookup("DataDevEfet", "DetalheEmpréstimo", Qstring)
    If IsNull(DataEfetiva) = False Then
    MsgBox ("Este Livro já foi devolvido em " & DataEfetiva)

    Porém, essa data lida da Tabela aparece no MsgBox como '00:12:07' conforme mostra a inspeção da variável DataEfetiva em tempo de execução (ver abaixo):

    Watch : : DataEfetiva : 00:12:07 : Variant/Date : Form_Devolução.DevolverLivro_Click

    Gostaria de um auxílio para saber como o sistema está lidando com essas datas. No design da Tabela 'DetalheEmpréstimo' o campo DatDevEfet está definido como Data/Hora, formato Data Abrevida.

    Obrigado.
    avatar
    teremiro
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 30/12/2019

    [Resolvido]Data atual (Função DATE) sendo gravada como '30/12/1899' e lida (Função DLookup) como '00:12:07' Empty Re: Data atual (Função DATE) sendo gravada como '30/12/1899' e lida (Função DLookup) como '00:12:07'

    Mensagem  teremiro em 17/1/2020, 18:34

    Prezados,

    Consegui resolver o problema. Basta envolver o campo tipo Data no comando UPDATE entre caracteres '#', como abaixo, que o VBA entende que se trata de uma Data e grava corretamente:

    DataEfetiva = Date
    strSQL = "UPDATE DetalheEmpréstimo SET DataDevEfet = #" & DataEfetiva & "#, RespReceb = " & Me.RespReceb & _
    " WHERE CodEmp = " & Me.CodEmp & " AND CodObra= " & CodObra
    CurrentDb.Execute strSQL, dbFailOnError

    Essa gravação correta da Data na Tabela 'DetalheEmpréstimo' elimina o segundo erro relatado, quando da leitura da Data gravada previamente.

    Tópico Resolvido.

      Data/hora atual: 27/2/2020, 18:21