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/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.
Il fatto è che la funzione Date
fa sì che grezzo
in OpenOffice sia un Long nel formato AAAAMMGG, invece in LibreOffice lo fa diventare un Object (il cui contenuto per ora mi è oscuro): CDateFromIso
riesce a digerire il Long, mentre rigetta l’Object.
Lo stesso fanno CurrentValue
e GetCurrentValue
se sostituiti a Date
.
Come posso correggere la macro per farla funzionare anche in LibreOffice?
Grazie!