[Resolved] Feld mit Makro ändern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

gorischek
*
Beiträge: 11
Registriert: Mo, 01.05.2017 15:43

[Resolved] Feld mit Makro ändern

Beitrag 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
Zuletzt geändert von gorischek am Fr, 05.05.2017 16:42, insgesamt 1-mal geändert.
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Feld mit Makro ändern

Beitrag 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
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Feld mit Makro ändern

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
gorischek
*
Beiträge: 11
Registriert: Mo, 01.05.2017 15:43

Re: Feld mit Makro ändern

Beitrag 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
Antworten