Fai la tua domanda

Revision history [indietro]

click to hide/show revision 1
versione iniziale

Base: Salvare la data da un campo a una tabella

In un Formulario c'è il Campo data datData in cui è scritta una data (il Formato non sembra essere rilevante).
Voglio salvare questa data in una tabella utilizzando una macro.
Questa è una sintesi di ciò che sono riuscito a scrivere:

Sub salvaData
    form = ThisComponent.DrawPage.Forms.GetByIndex(0)
    grezzo = form.datData.Date                                  '20171026'   Long
    oggi = CDateFromIso(grezzo)                                 '26/10/2017' Date
    stringa = ""+ Year(oggi) +"-"+ Month(oggi) +"-"+ Day(oggi)  '2017-10-26' String
    sql = form.ActiveConnection.CreateStatement
    sql.Execute("UPDATE ""Tabella"" SET ""Data"" = '" + stringa + "'")
End Sub

Questa macro funziona perfettamente in OpenOffice Base.
Invece in LibreOffice Base 5.4.2.2 la funzione CDateFromIso si blocca con errore:

Errore di runtime BASIC. Valore per la proprietà errato.

Evidentemente il Long grezzo che è nel formato AAAAMMGG non è una data in formato ISO 😉 anche se in OpenOffice stranamente funziona.

Come posso correggere la macro?
Grazie!

Base: Salvare la data da un campo a una tabella

In un Formulario c'è il Campo data datData in cui è scritta una data (il Formato non sembra essere rilevante).
Voglio salvare questa data in una tabella utilizzando una macro.
Questa è una sintesi di ciò che sono riuscito a scrivere:

Sub salvaData
    form = ThisComponent.DrawPage.Forms.GetByIndex(0)
    grezzo = form.datData.Date                                  '20171026'   Long
Long/Object
    oggi = CDateFromIso(grezzo)                                 '26/10/2017' Date
    stringa = ""+ Year(oggi) +"-"+ Month(oggi) +"-"+ Day(oggi)  '2017-10-26' String
    sql = form.ActiveConnection.CreateStatement
    sql.Execute("UPDATE ""Tabella"" SET ""Data"" = '" + stringa + "'")
End Sub

Questa macro funziona perfettamente in OpenOffice Base.
Invece in LibreOffice Base 5.4.2.2 la funzione CDateFromIso si blocca con errore:

Errore di runtime BASIC. Valore per la proprietà errato.

Evidentemente il Long Il fatto è che la funzione Date fa sì che grezzo che è in OpenOffice sia un Long nel formato AAAAMMGG non AAAAMMGG, invece in LibreOffice lo fa diventare un Object (il cui contenuto per ora mi è una data in formato ISO 😉 anche oscuro): CDateFromIso riesce a digerire il Long, mentre rigetta l'Object.
Lo stesso fanno CurrentValue e GetCurrentValue
se in OpenOffice stranamente funziona.sostituiti a Date.

Come posso correggere la macro?macro per farla funzionare anche in LibreOffice?
Grazie!