insert timestamp in a base field pressing a button in a form
Sounds simple but seems to be complicated. I have a nice base form with two tables a addesses and a filter table. On the addresses layer I have a button that triggers a macro. That works. But how can I now insert in the active field of my address tabel in a form insert a timestamp.
Thanks for any hint!
set -> timestamp into -> active -> LETZTER KONTAKT
UPDTAE 20200530: so far it is not working with 1. Answer so I will add some more information:
- System: Mac
- Libre Version: 6.3.6.2
- internal database HSQLDB embedded
- the base database is called: Kontakte.odb
- Table called: Adressen
Field called: KONTAKT_ZEIT (Date/Time[TIMESTAMP])
Form called: F_Adressen Form has on main level: the "Filter" Table Form has as sub of Filter the: "Adressen" Table The "set" Button is part of the "Adressen" Layer as is the target field "Adressen->KONTAKT_ZEIT"
Filter and filtering works as described in the manual with a assistance table to give the filter values.
The insert-timestamp-macro is under: Kontakte.odb->Standard->_ insertTimestamp -> DtTime it shows also under: My Macros & Dialogs -> Standard -> _ Module1 -> DtTime
The "set" button on the form "F_Adressen" is next to the field "KONTAKT_ZEIT" that is part of the filter results (Adressen as sub of filter, all on Form) -> the button has in the Events: "Key pressed": Standard.insertTimestamp.DtTime(document, Basic)
This is the macro now:
Option Explicit
Sub DtTime
Dim oForm As Object
Dim oDocCtl As Object
Dim oField As Object
Dim oCtlView As Object
Dim oBoundField As Object
oForm =ThisComponent.Drawpage.Forms.getByName("F_Adressen")
Dim aTD As New com.sun.star.util.DateTime
oField = oForm.getByName("KONTAKT_ZEIT")
aTD.Day = DAY(Now())
aTD.Month = MONTH(Now())
aTD.Year = YEAR(Now())
aTD.Hours = HOUR(Now())
aTD.Minutes = MINUTE(Now())
aTD.Seconds = SECOND(Now())
oBoundField = oField.BoundField
oBoundField.updateTimestamp(aTD)
End Sub
The database file with only two data-sets: