Aggiornare data in Tabella provenienza e destinazione Type Data.

di il
3 risposte

Aggiornare data in Tabella provenienza e destinazione Type Data.

Salve,

via vba e una query di aggiornamento dovrei aggiornare una data in TbAzienda, le ho provato quasi tutte ma non riesco ad ottenere

il risultato voluto, ecco il codice ultimo che ho usato:

Dim MiaDataDoc As Date
MiaDataDoc = Format(DataDocumento, "mm-dd-yyyy")
Debug.Print MiaDataDoc
DBEngine(0)(0).Execute "UPDATE TbAzienda SET TbAzienda.DataDoc =" & MiaDataDoc

La cosa che non capisco è perchè il debug sia utilizzando il solo campo “DataDocumento” quanto l'eccezione anglosassone la data mi viene restituita corretta, e poi in Tabella trovo questo risultato :  00:07:29

Osservando  una data nella query in visualizzazione SQL la vedo in eccezione anglosassone per questo ho usato il format, resta il fatto come dicevo sopra con o senza format in debug la vedo corretta.

Qualcuno può aiutarmi?

3 Risposte

  • Re: Aggiornare data in Tabella provenienza e destinazione Type Data.

    Per la serie io me la canto ed io me la suono, scritta così funziona

    DoCmd.RunSQL "UPDATE TbAzienda SET TbAzienda.DataDoc = DataDocumento;", -1

    , resta il fatto che resto in attesa di un vostro giudizio.

  • Re: Aggiornare data in Tabella provenienza e destinazione Type Data.

    Innanzitutto stai commettendo un'errore nella sintassi della Data, come sai le date se usate come tali richiedono [#mm/gg/yyyy#]  e tu non li hai messi.

    Io ti suggerirei questo metodo a mio avviso migliore:

    1. Se non hai bisogno della definizione di hh:nn:ss:

    Dim MiaDataDoc As String
    MiaDataDoc = cstr(clng(TuaData))
    Debug.Print MiaDataDoc
    DBEngine(0)(0).Execute "UPDATE TbAzienda SET TbAzienda.DataDoc =" & MiaDataDoc

    2. Se hai bisogno anche di hh:nn:ss, allora così:

    Dim MiaDataDoc As String
    MiaDataDoc = str(cdbl(TuaData))
    Debug.Print MiaDataDoc
    DBEngine(0)(0).Execute "UPDATE TbAzienda SET TbAzienda.DataDoc =" & MiaDataDoc

    Fai attenzione bene alle differenze, tra CStr e Str sono 2 funzioni MOLTO differenti, la seconda [Str] usata per tener conto nella conversione del separatore Decimale definito nei Regional Settings… in quanto il Numero Double derivante dalla Data completa ha i decimali…

    Saluti

  • Re: Aggiornare data in Tabella provenienza e destinazione Type Data.

    11/01/2023 - @Alex ha scritto:


    Innanzitutto stai commettendo un'errore nella sintassi della Data, come sai le date se usate come tali richiedono [#mm/gg/yyyy#]  e tu non li hai messi.

    Io ti suggerirei questo metodo a mio avviso migliore:

    1. Se non hai bisogno della definizione di hh:nn:ss:

    Dim MiaDataDoc As String
    MiaDataDoc = cstr(clng(TuaData))
    Debug.Print MiaDataDoc
    DBEngine(0)(0).Execute "UPDATE TbAzienda SET TbAzienda.DataDoc =" & MiaDataDoc

    2. Se hai bisogno anche di hh:nn:ss, allora così:

    Dim MiaDataDoc As String
    MiaDataDoc = str(cdbl(TuaData))
    Debug.Print MiaDataDoc
    DBEngine(0)(0).Execute "UPDATE TbAzienda SET TbAzienda.DataDoc =" & MiaDataDoc

    Fai attenzione bene alle differenze, tra CStr e Str sono 2 funzioni MOLTO differenti, la seconda [Str] usata per tener conto nella conversione del separatore Decimale definito nei Regional Settings… in quanto il Numero Double derivante dalla Data completa ha i decimali…

    Saluti

    Grazie Alex, diciamo che attendevo con ansia un tuo intervento, senza nulla togliere agli altri, non foss'altro perche ricordo che l'argomento lo hai dettagliatamente trattato su MD.

    Discussione che ho tassativamente conservato e come spesso mi succede all'occorrenza non la trovi più, scomparsa!

    Grazie ancora

    Saluti

Devi accedere o registrarti per scrivere nel forum
3 risposte