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/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!

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'
    mystringa = ""+ grezzo.Year +"-"+ grezzo.Month +"-"+ grezzo.Day 
	dateString = Format(mystringa, "YYYY-MM-DD")
    sql = form.ActiveConnection.CreateStatement
'    sql.Execute("UPDATE ""Tabella"" SET ""Data"" = '" + stringa + "'")'
    sql.executeUpdate("UPDATE ""Tabella"" SET ""Data"" = '" + dateString + "'")
End Sub

Ottimo! Questa macro funziona perfettamente in LibreOffice. Grazie!