[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 » Mi, 03.05.2017 22:59

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: 1638
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Feld mit Makro ändern

Beitrag von RobertG » Do, 04.05.2017 11:59

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: 3439
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Feld mit Makro ändern

Beitrag von Toxitom » Do, 04.05.2017 12:35

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 5- 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 » Fr, 05.05.2017 16:42

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste