🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Zeit und Datum im Forumlar in Base anzeigen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
thomas.weiss
! Supporter - Spende !
Beiträge: 45
Registriert: Mi 29. Aug 2012, 18:18

Zeit und Datum im Forumlar in Base anzeigen

Beitrag von thomas.weiss » Di 26. Aug 2014, 16:12

Hallo Leute,

ich möchte die aktuelle Zeit und das Datum auf meinen Formular in Base anzeigen lassen. Ich hatte vor längere Zeit schon mal die gleiche Frage gestellt. Aber der Code funktioniert nicht mehr
Sub Startup_form(oEvent)
oEvent.Source.DrawPage.Forms.getbyindex(0).getbyname("Datum").date = format(date(),"yyyymmdd")
end sub

Ich habe ein Datumsfeld auf dem Formular angelegt, aber kommt beim Starten des Formular immer folgende Fehlermeldung;
BASIC-Laufzeitfehler.
Objektvariable nicht belegt
Ich kann den Fehler nicht finden, funktioniert der Code unter Base 4.2.5.2 nicht mehr oder wo könnte der Fehler liegen?

Wer hat einen Tipp bei der Fehlersuche für mich?

Vielen Dank
Thomas

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von RobertG » Mi 27. Aug 2014, 22:03

Hallo Thomas,

mit der Version 4.1.2 von LO hat es eine Änderung bei Datumswerten in der API gegeben. Vielleicht ist da das dabei, was auf Dein Problem passt. Schau einmal in dem aktuellen Handbuch (Version 4.3) auf S. 357 und auch sonst in dem Makrokapitel einfach einmal nach dem Suchbegriff "Datum".

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

thomas.weiss
! Supporter - Spende !
Beiträge: 45
Registriert: Mi 29. Aug 2012, 18:18

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von thomas.weiss » Fr 29. Aug 2014, 19:08

Hallo Robert,

vielen Dank für die Hilfe, ich habe folgenden Code gefunden:

SUB Datum_aktuell
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oFeldAender AS OBJECT
DIM unoDate
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oFeld = oForm.getByName("datDatum")
oFeldAender = oForm.getByName("datDatumAender")
unoDate = createUnoStruct("com.sun.star.util.Date")
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)
unoDate.Day = Day(Date)
IF isEmpty(oFeld.Date) THEN
oFeld.BoundField.updateDate(unoDate)
END IF
oFeldAender.BoundField.updateDate(unoDate)
END SUB
Denn Code habe geändert in den folgende Zeilen entfernt habe, jetzt wird das aktuelle Datum im Formular angezeigt.
oFeldAender = oForm.getByName("datDatumAender")
IF isEmpty(oFeld.Date) THEN
END IF
oFeldAender.BoundField.updateDate(unoDate)
Einen kleinen Schönheitsfehler hat Sache noch, es kommt immer die Frage ob, die Änderungen gespeichert werden sollen. Wie kann man die Sicherheitsabfrage unterdrücken?

Vielen Dank für die Hilfestellung!
Gruß
Thomas

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von RobertG » Fr 29. Aug 2014, 20:54

Hallo Thomas,

der Befehl schreibt das Datum in eine Datenbankzeile, macht aber keine Speicherung.
Wenn oForm das Formular ist, in dem das Datenfeld liegt:
IF oForm.rowUpdated THEN
oForm.updateRow()
ELSE
oForm.insertRow()
END IF
... ich hoffe einmal, dass das so passt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

thomas.weiss
! Supporter - Spende !
Beiträge: 45
Registriert: Mi 29. Aug 2012, 18:18

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von thomas.weiss » So 31. Aug 2014, 11:37

Hallo Robert,
erst mal vielen Dank für die Hilfe, leider funktioniert die Sache noch nicht so ganz. Denn Code habe ich geändert, aber jetzt kommt eine Fehlermeldung:
oForm.insertRow()
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Fehler in der Funktionsfolge.

SUB Datum_aktuell
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM unoDate
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("Standard")
oFeld = oForm.getByName("Date")
unoDate = createUnoStruct("com.sun.star.util.Date")
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)
unoDate.Day = Day(Date)
REM oFeld.BoundField.updateDate(unoDate)
IF oForm.rowUpdated THEN
oForm.updateRow()
ELSE
oForm.insertRow()
END IF
END SUB
Was mach ich falsch oder wo liegt der Fehler? Vielen Dank noch mal!

Gruß
Thomas

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von F3K Total » So 31. Aug 2014, 13:16

Hallo,
warum eigentlich der Umweg über ein Makro?
Du kannst in jeder Abfrage oder Ansicht, das aktuelle Datum mit

Code: Alles auswählen

CURRENT_DATE
oder

Code: Alles auswählen

CURDATE()
ermitteln
z.B

Code: Alles auswählen

SELECT DISTINCT CURRENT_DATE AS "HEUTE" FROM "INFORMATION_SCHEMA"."SYSTEM_SCHEMAS"
Wenn du diese Abfrage zur Datengrundlage eines strukturellen Formulares machst, kannst Du dem Datumsfeld die Spalte HEUTE zuordnen, anbei ein einfaches Beispiel, öffne das Formular Adressverwaltung.
Current_Date.png
Current_Date.png (4.62 KiB) 4651 mal betrachtet
EDIT: mit

Code: Alles auswählen

CURRENT_TIMESTAMP
kommst du an das aktuelle Datum inklusive der aktuellen Zeit, die "Uhr" würde aber nicht laufen, sondern nur beim Aktualisieren des Formulares die richtige Zeit anzeigen.
Gruß R
Dateianhänge
aktuelles_Datum.zip
nur entpacken
(68.04 KiB) 304-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von RobertG » So 31. Aug 2014, 16:14

Hallo Thomas,
thomas.weiss hat geschrieben: Fehlermeldung:
oForm.insertRow()
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Fehler in der Funktionsfolge.

REM oFeld.BoundField.updateDate(unoDate)
IF oForm.rowUpdated THEN
oForm.updateRow()
ELSE
oForm.insertRow()
END IF
END SUB
Wenn das tatsächlich Dein Code ist: Du musst doch erst etwas in das Feld schreiben, damit ein Insert oder Update funktionieren kann. Den entsprechenden Befehl hast Du als Kommentar mit REM versehen.

Wenn bei insertRow ein Fehler in der Funktionsfolge entsteht, dann handelt es sich nicht um einen neuen Datensatz, der noch nicht in der Tabelle steht. Es muss ein bestehender Datensatz geändert werden, also updateRow. Das greift hier aber nicht, weil eben nichts geändert wurde und damit oForm.rowUpdated ein FALSE wiedergibt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

thomas.weiss
! Supporter - Spende !
Beiträge: 45
Registriert: Mi 29. Aug 2012, 18:18

Re: Zeit und Datum im Forumlar in Base anzeigen

Beitrag von thomas.weiss » So 31. Aug 2014, 19:04

Hallo,
vielen Dank für den Tipp, das funktioniert super und ist einfacher als die Sache mit dem Makro.

Vielen Dank nochmal.

Gruß
Thomas


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten