Hallo WSO,
wie sieht das Datum aus, dass Du einfügen willst?
Code: Alles auswählen
"INSERT INTO ""tTest"" (""datu"") VALUES('"+iDatu+"')"
iDatu müsste folgendermaßen aussehen: '2014-04-24'.
So etwas kannst Du aus der Jahresangabe, der Monatsangabe und der Tagesangabe zusammenbauen.
Hast Du eine Datumsvariable, dann geht die Umwandlung so:
Code: Alles auswählen
FUNCTION Date_2_SQLDate(d AS DATE) AS STRING
DIM stMonth AS STRING
DIM stDay AS STRING
IF Month(d) < 10 THEN
stMonth = "0" + Trim(Str(Month(d)))
ELSE
stMonth = Trim(Str(Month(d)))
END IF
IF Day(d) < 10 THEN
stDay = "0" + Trim(Str(Day(d)))
ELSE
stDay = Trim(Str(Day(d)))
END IF
Date_2_SQLDate = Trim(Str(Year(d))) +"-"+ stMonth +"-"+ stDay
END FUNCTION
Mit SQL_Datum = Date_2_SQLDate(iDatu) dürftest Du dann das Datum haben, was Du per SQL einfügen kannst.
Du kannst auch direkt mit einem entsprechendem Wert das Formularfeld füllen - siehe den folgenden Code.
Code: Alles auswählen
SUB Datum_aktuell
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM unoDate
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("Formular")
oFeld=oForm.getByName("Datum")
unoDate = createUnoStruct("com.sun.star.util.Date")
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)
unoDate.Day = Day(Date)
oFeld.BoundField.updateDate(unoDate)
END SUB
Gerade bei Datumsvariablen ist es irgendwann wichtig, mit welcher Office-Version Du arbeitest. Das trifft nicht auf den obigen Code zu, aber wenn da einmal cDateToIso auftaucht, dann gibt es Unterschiede zwischen LO 4.1 und später und allen anderen Officeversionen incl AOO, OOo.
Gruß
Robert