Seite 1 von 1

Feld e_Datum mit aktuellen Datum belegen

Verfasst: Do 31. Okt 2013, 13:33
von Pcdirk91
Hallo,
bin neu hier und hoffe meine Frage ist nicht ganz neu hier. Seit kurzem habe ich das openOffice 4.0.1

Ich möchte in meiner Datenbank Adressen beim Neuanlegen eines Datensatzes in dem Formularfeld E_Datun das aktuelle Systemdatum abspeichern . Geht das und wie kann ich das realisieren.
Im Forum habe ich beim durchsehen leider keinen Beitrag dazu gefunden
Im Viraus vielen Dank für Eure Hilfe

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Do 31. Okt 2013, 16:23
von RobertG
Hallo Pcdirk91,

die einfach Lösungsmöglichkeit für so ein Standarddatum ist es, das Feld in der Tabelle auf diesen Standard einzustellen:

Code: Alles auswählen

ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" SET DEFAULT CURRENT_DATE;
Dies wird unter Extras → SQL direkt eingegeben. Es ist nicht möglich, über die grafische Benutzeroberfläche solche Defaultwerte zu erstellen.
Dieser Wert wird allerdings erst dann geschrieben, wenn die Tabelle abgespeichert ist. Er erscheint also nicht vorher in Deinem Formular, sondern erst nach dem Abspeichern des Datensatzes.
Hier war das auch schon (mehrmals) Diskussion:
http://de.openoffice.info/viewtopic.php?f=8&t=62364

Gruß

Robert

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Do 31. Okt 2013, 19:19
von Pcdirk91
Hi ,
erstmal Danke für die schnelle Hilfe. das Beispiel was Du als Lin angegeben gast hatte uh pbersehen; Ist auch im anderen Forum das ich nicht kannte. Naja es funzt und das ist wichtig
LG von Dirk

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Mi 11. Dez 2013, 14:10
von Eixen
Moin liebe LO-Community,
vielen Dank für den schnellen und einfachen Hinweis, sehr praktisch.
Allerdings wird das Default-Datum nur bei einem neuen Datensatz eingetragen, und nicht bei geänderten Datensätzen.
Gibt es dafür auch noch einen einfachen Trick?
Beste Grüße,
Eixen

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Mi 11. Dez 2013, 15:55
von RobertG
Hallo Eixen,

Du willst nicht das Erstellungsdatum sondern z.B. das letzte Änderungsdatum speichern? So etwas wirst Du nur über Makros regeln können, da der Defaultwert eben nur bei leeren Feldern geschrieben wird, die beim Erstellen eines Datensatzes übrig bleiben.

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
Du musst für dieses Makro die Benennung von "Formular" und "Datum" an die Felder Deines Formulars anpassen. Wie die Felder heißen siehst Du im Formularnavigator. Jetzt kommt es nur darauf an, wann Du das Datum geändert haben möchtest. Ich nehme an, dass dies beim Speichern geschehen soll. Du bindest diesen Code an das Ereignis "Datensatzaktion" im Formular.

Gruß

Robert

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Fr 13. Dez 2013, 11:47
von Eixen
Hi Robert, danke für den Tipp!
Leider funktioniert das Makro nur manchmal. Etwas eigenartig.

Re: Feld e_Datum mit aktuellen Datum belegen

Verfasst: Sa 14. Dez 2013, 09:33
von RobertG
Hallo Eixen,

wenn das Makro manchmal aussetzt, dann ist die Eigenschaft, an die Du es bindest, vermutlich nicht die richtige. Da probiere ich dann auch manchmal aus, bis es wirklich klappt.
Der erste Weg ist natürlich, das über einen Button zu regeln. Wenn Du z.B. sowieso einen Button für das Abspeichern nutzen würdest, dann könntest Du das Makro direkt an die Eigenschaften des Buttons binden.

Gruß

Robert