MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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 : 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 17/1/2020, 18: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 : 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 17/1/2020, 21: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: 29/3/2024, 08:38