Seite 1 von 1

[Resolved] Feld mit Makro ändern

Verfasst: Mi, 03.05.2017 22:59
von gorischek
Hallo,

ich würde gerne ein Feld per Makro befüllen. Das Befüllen funktioniert, aber der Wert wird nicht in die Datenbank übernommen. Der Code ist folgender:

Code: Alles auswählen

sub InsertToday (event)
	oButton = event.source.model
	oform = oButton.parent
	otxtDate = oform.getbyname("datAenderungsdatum")
	otxtDate.Text = Format(Now(), "dd.mm.yyyy")
	otxtDate.commit()
	IF oform.isnew THEN oform.insertRow() ELSE oform.updateRow() 
End Sub
Habt ihr eine Idee, was da falsch ist?

lg Michael

Re: Feld mit Makro ändern

Verfasst: Do, 04.05.2017 11:59
von RobertG
Hallo Michael,

mit otxtDate.Text schreibst Du höchstens etwas auf den Bildschirm, nicht aber in die Datenbank.
Aus dem Handbuch:

Code: Alles auswählen

DIM unoDate AS NEW com.sun.star.util.Date
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)
unoDate.Day = Day(Date)
oDateField.BoundField.updateDate( unoDate )
oForm.updateRow() ' Weitergabe der Änderung an die Datenbank
Das ist nur beim Datum so umständlich, weil das eben nach Jahr, Monat und Tag aufgeteilt wird - wenn Du LO in einer Version ab 4.2 nutzt.
Falls Du eine andere Version nutzt, dann geht das auch direkt über updateDate, ohne vorher ein unoDate zu definieren.

Gruß

Robert

Re: Feld mit Makro ändern

Verfasst: Do, 04.05.2017 12:35
von Toxitom
hey,
Das ist nur beim Datum so umständlich, weil das eben nach Jahr, Monat und Tag aufgeteilt wird ...
Nö, ist es nicht ;) Dafür gibt es doch die eingebauten Methoden:

Code: Alles auswählen

oDateField.BoundField.updateDate( CDateToUnoDate(now()))
reicht völlig;)

Viele Grüße
Tom

Re: Feld mit Makro ändern

Verfasst: Fr, 05.05.2017 16:42
von gorischek
Hi,

danke euch!
Und falls es mal wer braucht (habe jetzt nicht nur das Datum, sondern den kompleten Zeitstempel verarbeite):

Code: Alles auswählen

sub InsertToday (event)
	oButton = event.source.model
	oform = oButton.parent
	otxtDate = oform.getbyname("datAenderungsdatum")
	otxtDate.BoundField.updateTimeStamp( CDateToUnoDateTime(now()))
End Sub
lg Michael