automatisch Tagesdatum setzen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: automatisch Tagesdatum setzen

Beitrag von F3K Total »

Hi,
anbei eine kleine Beispiel Datenbank zum Erforschen.
Das Makro

Code: Alles auswählen

Sub insert_Date
oform = thiscomponent.drawpage.forms.MainForm
if oform.isnew = true then
dim odate as new com.sun.star.util.Date
odate.day = day(now())
odate.Month = month(now())
odate.Year = year(now())
ogrid=oform.getbyname("MainForm_Grid")
ocolumn = ogrid.getbyname("Datum")
ocolumn.boundfield.updatedate(odate)
oform.insertrow()
endif
End Sub
wird Nach dem Datensatzwechsel ausgeführt.
Klicke in eine neue Zeile, und du siehst wie das heutige Datum eingetragen wird.

Gruß R
Dateianhänge
Autodatum.odb
(13.37 KiB) 519-mal heruntergeladen
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: automatisch Tagesdatum setzen

Beitrag von gogo »

Die Kontrollelemente eines Formulars haben eine Eigenschaft die sich "Standartwert" nennt. Bei Datums-Kontrollelementen muss man dort eine Null ("0") eingeben - dann steht da bei einem neuen Datensatz immer das aktuelle Datum - leider funktioniert ein -1 oder +2 nicht...
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: automatisch Tagesdatum setzen

Beitrag von F3K Total »

Hallo gogo,
gogo hat geschrieben:leider funktioniert ein -1 oder +2 nicht...
, was für den o.a. Fall auch nicht benötigt wird. Eindeutig die einfachere Lösung. Woher hast Du das? In F1 steht es nicht. Da habe ich wieder was gelernt. Super, Vielen Dank.
Gruß Rik
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: automatisch Tagesdatum setzen

Beitrag von gogo »

Schlag' mich, aber ich weiss und find's nicht mehr - es war irgendein Nebensatz in einem vollkommen anderem Kontext eines Wikis oder einer Dokumentation...

Was in F1 in Bezug auf die Datums-Standardwerte steht bezieht sich auf etwas ältere OOo-Versionen - ist jedenfalls nicht besonders aktuell :?
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: automatisch Tagesdatum setzen

Beitrag von F3K Total »

Hallo,
durch diesen Thread Aktuelles Datum als Vorgabewert für neuen Datensatz habe ich gelernt, dass das Setzen des aktuellen Tagesdatums, der aktuellen Uhrzeit oder des Timestamps auch ohne Makro und ohne Eingabe der 0 als Defaultwert im Kontrollfeld möglich ist. Vielen Dank an DPunch.

Hier ein Beispiel für die angehängte Datei [embeddet HSQLDB]:
Unter Extras/SQL ... einmalig folgenden Befehl eingeben:

Code: Alles auswählen

alter table "Tabelle1" alter column "Datum" set default current_date
was soviel bedeutet wie:
Ändere in der Tabelle "Tabelle1", ändere die Spalte "Datum", setzte als Standardinhalt das aktuelle Datum

Ausserdem habe ich default current_time und default current_timestamp erfolgreich ausprobiert.

In angehängter DB kann dies ausprobiert werden, noch ist das Autodatum nicht gesetzt.
Ein Makro zum Zurücksetzen habe ich nicht rausgelöscht, das Autodatum wird direkt von der embeddet HSQLDB gesetzt.

Gruß R
Dateianhänge
Autodatum2.odb
(20.96 KiB) 339-mal heruntergeladen
Antworten