Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst]Makro Zeitstempel Firebird Text, CLOB, Timestamp
[gelöst]Makro Zeitstempel Firebird Text, CLOB, Timestamp
Guten Tag,
für Writer und Calc fand ich im Internet ein Makro, mit welchem man über einen Tastaturbefehl an der jeweiligen Position einen Zeitstempel einfügen kann, Beispiel: 2022-01-16 19:11. Für Base bzw. Firebird konnte ich keines entdecken.
Ein solches über einen Tastaturbefehl ausführbares Makro für die Firebird Feldtypen würde das manuelle Eingeben eines Zeitstempels erübrigen.
Grüße
Malt
Version: 7.2.4.1 (x64) / LibreOffice Community
Build ID: 27d75539669ac387bb498e35313b970b7fe9c4f9
CPU threads: 6; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
für Writer und Calc fand ich im Internet ein Makro, mit welchem man über einen Tastaturbefehl an der jeweiligen Position einen Zeitstempel einfügen kann, Beispiel: 2022-01-16 19:11. Für Base bzw. Firebird konnte ich keines entdecken.
Ein solches über einen Tastaturbefehl ausführbares Makro für die Firebird Feldtypen würde das manuelle Eingeben eines Zeitstempels erübrigen.
Grüße
Malt
Version: 7.2.4.1 (x64) / LibreOffice Community
Build ID: 27d75539669ac387bb498e35313b970b7fe9c4f9
CPU threads: 6; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
Zuletzt geändert von malt14 am Fr 12. Apr 2024, 17:35, insgesamt 3-mal geändert.
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Hallo Malt,
der übliche Weg ist es, so etwas nicht innerhalb eines Formulars oder Makros zu erledigen sondern mit den Tabellen. Geht in Firebird z.B. mit einem Trigger, aber natürlich nur bei einem Timestamp-Field:
Den Default-Zeitstempel beim Insert eines neuen Datensatzes kannst Du genau so erstellen wie im Handbuch für die Änderung von Tabellen beschrieben.
Im Makro erzeugst Du so einen Zeitstempel über so etwas wie
… nur ist das dann nicht der Zeitstempel des Abspeicherns. Nutze ich als Zeitstempel für Dokumente, die ich automatisch speichere.
der übliche Weg ist es, so etwas nicht innerhalb eines Formulars oder Makros zu erledigen sondern mit den Tabellen. Geht in Firebird z.B. mit einem Trigger, aber natürlich nur bei einem Timestamp-Field:
Code: Alles auswählen
CREATE OR ALTER TRIGGER BEFORE_IN_UP_NAME FOR "Tabelle"
ACTIVE BEFORE UPDATE POSITION 0
AS
BEGIN
NEW."Aenderungs_Stamp" = CURRENT_TIMESTAMP;
END;
Im Makro erzeugst Du so einen Zeitstempel über so etwas wie
Code: Alles auswählen
stTimestamp = Year(Now()) & "-" & Right("0" & Month(Now()),2) & "-" & Right("0" & Day(Now()),2) & "_" & Right("0" & Hour(Now()),2) & ":" & Right("0" & Minute(Now()),2) & ":" & Right("0" & Second(Now()),2)
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Hallo Robert,
Dank für die Informationen.
In manchen Tabellen habe ich eine Kommentarspalte [Typ CLOB]. Dort trage ich zu verschiedenen Zeitpunkten Text ein. Um zu wissen, wann die unterschiedlichen Einträge erfolgten, muss ich einen Zeitstempel tippen. Es wäre bequemer und schneller das mit einem Tastaturbefehl (Makro?) zu erledigen.
Grüße
Malt
Dank für die Informationen.
In manchen Tabellen habe ich eine Kommentarspalte [Typ CLOB]. Dort trage ich zu verschiedenen Zeitpunkten Text ein. Um zu wissen, wann die unterschiedlichen Einträge erfolgten, muss ich einen Zeitstempel tippen. Es wäre bequemer und schneller das mit einem Tastaturbefehl (Makro?) zu erledigen.
Grüße
Malt
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Guten Tag,
in einer Tabelle in einem CLOB Feld habe ich das Makro per Extras/Makro/Makro ausführen gestartet, ein Zeitstempel wird in das Feld nicht geschrieben.
Grüße
Malt
Version: 7.2.4.1 (x64) / LibreOffice Community
Build ID: 27d75539669ac387bb498e35313b970b7fe9c4f9
CPU threads: 6; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
in einer Tabelle in einem CLOB Feld habe ich das Makro per Extras/Makro/Makro ausführen gestartet, ein Zeitstempel wird in das Feld nicht geschrieben.
Code: Alles auswählen
REM ***** BASIC *****
SUB Timestamp
stTimestamp = Year(Now()) & "-" & Right("0" & Month(Now()),2) & "-" & Right("0" & Day(Now()),2) & "_" & Right("0" & Hour(Now()),2) & ":" & Right("0" & Minute(Now()),2) & ":" & Right("0" & Second(Now()),2)
END SUB
Malt
Version: 7.2.4.1 (x64) / LibreOffice Community
Build ID: 27d75539669ac387bb498e35313b970b7fe9c4f9
CPU threads: 6; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Das Codestück erzeugt nur einen Zeitstempel, den Du Dir z.B. per anschauen kannst. Das sagt nichts darüber aus, wie der Zeitstempel irgendwo in einen Text eingefügt werden kann.
Soll der Zeitstempel an das Ende eines Textes angefügt werden, der in eine Memo-Feld steht, dann könnte das mit einem Button im selben Formular wie das Memo-Feld so gehen:
Gruß
Robert
Code: Alles auswählen
msgbox stTimestamp
Soll der Zeitstempel an das Ende eines Textes angefügt werden, der in eine Memo-Feld steht, dann könnte das mit einem Button im selben Formular wie das Memo-Feld so gehen:
Code: Alles auswählen
SUB Zeitstempel(oEvent AS OBJECT)
oForm = oEvent.Source.Model.Parent
oMemoFeld = oForm.getByName("Memo")
stMemo = oMemoFeld.Text
stTimestamp = Year(Now()) & "-" & Right("0" & Month(Now()),2) & "-" & Right("0" & Day(Now()),2) & "_" & Right("0" & Hour(Now()),2) & ":" & Right("0" & Minute(Now()),2) & ":" & Right("0" & Second(Now()),2)
oMemoFeld.Text = stMemo & stTimestamp
END SUB
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Guten Tag,
Danke für Deine Hilfe und Mühe, Robert.
Beim Ausführen des Makros erhalte ich eine Fehlermeldung. Das liegt wohl an meinen nicht vorhandenen Makro Kenntnissen.
Ich werde künftig versuchen, mich mit dem Zeitstempel zu beschäftigen und hier schreiben, falls ich Erfolg habe.
Grüße
Malt
Danke für Deine Hilfe und Mühe, Robert.
Beim Ausführen des Makros erhalte ich eine Fehlermeldung. Das liegt wohl an meinen nicht vorhandenen Makro Kenntnissen.
Ich werde künftig versuchen, mich mit dem Zeitstempel zu beschäftigen und hier schreiben, falls ich Erfolg habe.
Grüße
Malt
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Guten Tag,
Tabelle1 , das Makro Zeitstempel:
startete ich im CLOBfeld "btext" mit dem Button Zeitstempel.
Zeile markiert:
Ich versuchte auch das Makro WriteTimestampToClobField, geschrieben von Bing chat:
gestartet im CLOBfeld "btext" mit dem Button Zeitstempel.
Meldung:
Zeile markiert:
falls man:
durch:
ersetzt.
Meldung:
Was verursacht die Laufzeitfehler?
Grüße
Malt
Version: 7.5.2.2 (X86_64) /
OS: Windows 10.0 Build 22621
Tabelle1 , das Makro Zeitstempel:
Code: Alles auswählen
REM ***** BASIC *****
SUB Zeitstempel(oEvent AS OBJECT)
oForm = oEvent.Source.Model.Parent
oMemoFeld = oForm.getByName("btext")
stMemo = oMemoFeld.Text
stTimestamp = Year(Now()) & "-" & Right("0" & Month(Now()),2) & "-" & Right("0" & Day(Now()),2) & "_" & Right("0" & Hour(Now()),2) & ":" & Right("0" & Minute(Now()),2) & ":" & Right("0" & Second(Now()),2)
oMemoFeld.Text = stMemo & stTimestamp
END SUB
Code: Alles auswählen
Meldung:
BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
Code: Alles auswählen
SUB Zeitstempel(oEvent AS OBJECT)
Code: Alles auswählen
REM ***** BASIC *****
Sub WriteTimestampToClobField
Dim oForm As Object
Dim oField As Object
Dim oTable As Object
Dim oColumn As Object
Dim oRowSet As Object
Dim oRow As Object
Dim sTimestamp As String
' Get the form and its controls.
oForm = ThisComponent.Drawpage.Forms.getByName("btextFormT")
oField = oForm.getByName("btext")
' Get the table and its column.
oTable = ThisDatabaseDocument.CurrentController.ActiveConnection.getMetaData().getTables(Nothing, Nothing, "Tabelle1", False)
oColumn = oTable.getColumns().getByName("btext")
' Get the row set and its row.
oRowSet = ThisComponent.DatabaseDocument.DataSource.query("SELECT * FROM Tabelle1")
oRowSet.last()
oRow = oRowSet.getRow()
' Write the timestamp to the CLOB field.
sTimestamp = Format(Now(), "ddd-yyyy-mm-dd_hh-nn")
oRow.updateClob(oColumn.Name, sTimestamp)
End Sub
Meldung:
Code: Alles auswählen
BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
Code: Alles auswählen
oTable = ThisDatabaseDocument.CurrentController.ActiveConnection.getMetaData().getTables(Nothing, Nothing, "Tabelle1", False)
falls man:
Code: Alles auswählen
ThisDatabaseDocument.
Code: Alles auswählen
ThisComponent.DatabaseDocument.
Meldung:
Code: Alles auswählen
BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: DatabaseDocument.
Grüße
Malt
Version: 7.5.2.2 (X86_64) /
OS: Windows 10.0 Build 22621
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Hallo Malt,
wo liegen denn die Makros, die Du ausführst? Meist liegt es daran, dass die Makros nicht in der Datenbankdatei sondern in "Meine Makros" abgelegt werden. Und da ist ThisComponent nicht die Datenbankdatei sondern wohl das Eingangsfenster von LibreOffice, von dem aus die verschiedenen Komponenten gestartet werden.
Gruß
Robert
wo liegen denn die Makros, die Du ausführst? Meist liegt es daran, dass die Makros nicht in der Datenbankdatei sondern in "Meine Makros" abgelegt werden. Und da ist ThisComponent nicht die Datenbankdatei sondern wohl das Eingangsfenster von LibreOffice, von dem aus die verschiedenen Komponenten gestartet werden.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Hallo Robert,
die Makros liegen in der odb Datei.
Grüße
Malt
die Makros liegen in der odb Datei.
Grüße
Malt
Re: Makro Zeitstempel Firebird Text, CLOB, Timestamp
Hallo Malt,
vielleicht wäre es angebracht, die Datenbankdatei hier hoch zu laden. In der angezeigten Zeile sind allein schon die Einträge "Nothing", "Nothing" eher ein Hinweis darauf, dass da nichts stehen sollte. Denn so, wie das da in der Zeile steht, sollte "Nothing" eine Variable sein - mit der Basic nichts anfangen kann.
Ich sehe in Deinen Screenshots auch kein Formular, von dem aus Du die Makros startest. Zumindest das zum Zeitstempel sollte doch aus einem Formular heraus gestartet werden. Sonst ist doch das Formularfeld nicht auf zu finden.
Gruß
Robert
vielleicht wäre es angebracht, die Datenbankdatei hier hoch zu laden. In der angezeigten Zeile sind allein schon die Einträge "Nothing", "Nothing" eher ein Hinweis darauf, dass da nichts stehen sollte. Denn so, wie das da in der Zeile steht, sollte "Nothing" eine Variable sein - mit der Basic nichts anfangen kann.
Ich sehe in Deinen Screenshots auch kein Formular, von dem aus Du die Makros startest. Zumindest das zum Zeitstempel sollte doch aus einem Formular heraus gestartet werden. Sonst ist doch das Formularfeld nicht auf zu finden.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️