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. 🤗
heutiges Datum in ein Kontrollfeld schreiben
heutiges Datum in ein Kontrollfeld schreiben
Hallo,
habe ein Formular "Antrag" mit einem Kontrollfeld "fDatum" als Datumsfeld. Die Steuerelemente des Feldes:
Allgemein: wie üblich,
Daten: keine Zuordnung (will nur das heutige Datum in das KFeld schreiben),
Ereignisse: Aufruf Makro "Datum_heute" bei Fokuserhalt.
Der Makro ist wie folgt:
Sub Datum_heute (oEvent as Object)
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("Antrag")
oFeld = oForm.getByName("fDatum")
REM heutiges Datum in Kontrollfeld schreiben
oFeld.Text=Format(NOW(),"dd.mm.yyyy")
oFeld.commit() 'damit wird in das Kontrollfeld geschrieben
End Sub
Was passiert: manchmal erhalte ich das heutige Datum, meistens ist das Kontrollfeld aber leer, dann blinkt nur der Cursor.
Was mache ich falsch?
mfG Frewer
habe ein Formular "Antrag" mit einem Kontrollfeld "fDatum" als Datumsfeld. Die Steuerelemente des Feldes:
Allgemein: wie üblich,
Daten: keine Zuordnung (will nur das heutige Datum in das KFeld schreiben),
Ereignisse: Aufruf Makro "Datum_heute" bei Fokuserhalt.
Der Makro ist wie folgt:
Sub Datum_heute (oEvent as Object)
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("Antrag")
oFeld = oForm.getByName("fDatum")
REM heutiges Datum in Kontrollfeld schreiben
oFeld.Text=Format(NOW(),"dd.mm.yyyy")
oFeld.commit() 'damit wird in das Kontrollfeld geschrieben
End Sub
Was passiert: manchmal erhalte ich das heutige Datum, meistens ist das Kontrollfeld aber leer, dann blinkt nur der Cursor.
Was mache ich falsch?
mfG Frewer
Re: heutiges Datum in ein Kontrollfeld schreiben
Hallo Frewer,
ich habe das jetzt nicht getestet, würde aber aus dem Focus heraus direkt das Feld auslesen:
Vielleicht kommst Du damit ja sicherer in dem Feld an.
Gruß
Robert
ich habe das jetzt nicht getestet, würde aber aus dem Focus heraus direkt das Feld auslesen:
Code: Alles auswählen
Sub Datum_heute (oEvent as Object)
oFeld = oEvent.Source.Model
REM heutiges Datum in Kontrollfeld schreiben
oFeld.Text=Format(NOW(),"dd.mm.yyyy")
oFeld.commit() 'damit wird in das Kontrollfeld geschrieben
End Sub
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: heutiges Datum in ein Kontrollfeld schreiben
Danke Robert, die Änderung habe ich sofort übernommen. Eshatte sich aber nichts geändert.
Nach mehreren Testversuchen habe ich dann einen radikalen Schnitt gemacht und jetzt klappt es. Das Problem war wohl der Typ des Kontrollfeldes (Datumsfeld). Ich habe es geändert in ein Textfeld und jetzt funktioniert das Ganze problemlos. Ich weiß zwar nicht warum aber die Erkenntnis hilft.
nochmals vielen Dank für die Hilfe
Gruß
Frewer
Nach mehreren Testversuchen habe ich dann einen radikalen Schnitt gemacht und jetzt klappt es. Das Problem war wohl der Typ des Kontrollfeldes (Datumsfeld). Ich habe es geändert in ein Textfeld und jetzt funktioniert das Ganze problemlos. Ich weiß zwar nicht warum aber die Erkenntnis hilft.
nochmals vielen Dank für die Hilfe
Gruß
Frewer
Re: heutiges Datum in ein Kontrollfeld schreiben
Moin,
ich verstehe nicht, warum es unbedingt mit einem Makro sein muss.
Die Datenbank bringt doch die Funktion "CURRENT_DATE" mit.
Beispiel anbei
Gruß R
ich verstehe nicht, warum es unbedingt mit einem Makro sein muss.
Die Datenbank bringt doch die Funktion "CURRENT_DATE" mit.
Beispiel anbei
Gruß R
- Dateianhänge
-
- Heute_ohne_Makro.zip
- nur entpacken und das Formular öffnen
- (9.12 KiB) 76-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: heutiges Datum in ein Kontrollfeld schreiben
…und für alle Möglichkeiten ausführlich beschrieben ist das hier zu lesen:
https://de.libreoffice.org/get-help/documentation/
Dort nach Base → V 7.0 → Weitere Beispieldatenbanken mit Beschreibung schauen. Da gibt es ein ganzes Kapitel mit Beispieldatenbank nur zu aktuellen Standardwerten für Datum und Zeit - direkt per SQL sowie Konstruktionen ohne und mit Makros.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
Dort nach Base → V 7.0 → Weitere Beispieldatenbanken mit Beschreibung schauen. Da gibt es ein ganzes Kapitel mit Beispieldatenbank nur zu aktuellen Standardwerten für Datum und Zeit - direkt per SQL sowie Konstruktionen ohne und mit Makros.
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: heutiges Datum in ein Kontrollfeld schreiben
Hallo Robert,
also wo soll man diese Lösung her wissen? Ich hatte, bevor ich erneut ins Forum ging, das Buch LO Base_Gesamtband_62 mehrmals durchgearbeitet aber nirgends die einfache Erfklärung mit "Heute" gefunden. Dachte bisher, dass alles in englisch abgehandelt werden muss also habe ich im Makro NOW() benutzt. Dass man keinen Makro braucht, ist mir bisher nicht aufgefallen obwohl ich auch die Beispiele im wesentlichen durchgeackert habe. SQL ist bereits eine größere Herausforderung für einen älteren Laien.
Übrigens noch einmal zu Deiner short-Version meines Makros. Bei mir läuft der Makro nicht. Warum?? Dagegen läuft meine Variante des Makro, wenn ich aus dem Datumsfeld ein Textfeld mache. Warum???
Jedenfalls vielen Dank, ich werde gleich mal umstellen und den Makro rauswerfen.
Gruß Werner
also wo soll man diese Lösung her wissen? Ich hatte, bevor ich erneut ins Forum ging, das Buch LO Base_Gesamtband_62 mehrmals durchgearbeitet aber nirgends die einfache Erfklärung mit "Heute" gefunden. Dachte bisher, dass alles in englisch abgehandelt werden muss also habe ich im Makro NOW() benutzt. Dass man keinen Makro braucht, ist mir bisher nicht aufgefallen obwohl ich auch die Beispiele im wesentlichen durchgeackert habe. SQL ist bereits eine größere Herausforderung für einen älteren Laien.
Übrigens noch einmal zu Deiner short-Version meines Makros. Bei mir läuft der Makro nicht. Warum?? Dagegen läuft meine Variante des Makro, wenn ich aus dem Datumsfeld ein Textfeld mache. Warum???
Jedenfalls vielen Dank, ich werde gleich mal umstellen und den Makro rauswerfen.
Gruß Werner
Re: heutiges Datum in ein Kontrollfeld schreiben
Hallo Werner,
ich bin davon ausgegangen, dass Du das Makro an den Focuserhalt des Datumsfeldes gebunden hast. Deswegen habe ich aus dem auslösenden Ereignis auf das Feld geschlossen.
Bei einem Datumsfeld hätte so ein Makro beispielsweise so ausgesehen:
Damit wäre das Datum direkt ins Feld geschrieben worden, vorausgesetzt es wäre eben das Datumsfeld das auslösende Feld.
Ohne Makros ist dann das Ganze über eine CURRENT_DATE zu haben. Wenn Du Dir die Beispieldatenbank für das Handbuch "Medien_ohne_Macros.odb" anschaust, dann wird das dort in der Ausleihe genutzt.
Ich habe diese gesammelten Beispiele damals nicht mit in das Handbuch übernommen. Vielleicht wäre das als Anhang dann doch nicht so schlecht, damit auch mehr Praxis dargelegt wird. Muss ich mir einmal überlegen.
Gruß
Robert
ich bin davon ausgegangen, dass Du das Makro an den Focuserhalt des Datumsfeldes gebunden hast. Deswegen habe ich aus dem auslösenden Ereignis auf das Feld geschlossen.
Bei einem Datumsfeld hätte so ein Makro beispielsweise so ausgesehen:
Code: Alles auswählen
Sub Datum_heute (oEvent as Object)
oFeld = oEvent.Source.Model
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
Ohne Makros ist dann das Ganze über eine CURRENT_DATE zu haben. Wenn Du Dir die Beispieldatenbank für das Handbuch "Medien_ohne_Macros.odb" anschaust, dann wird das dort in der Ausleihe genutzt.
Ich habe diese gesammelten Beispiele damals nicht mit in das Handbuch übernommen. Vielleicht wäre das als Anhang dann doch nicht so schlecht, damit auch mehr Praxis dargelegt wird. Muss ich mir einmal überlegen.
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: heutiges Datum in ein Kontrollfeld schreiben
Hallo Robert, ich habe jetzt Deine ohne Makro Variante übernommen. Die geht aber nur, wenn ich ein Textfeld benutze, nehme ich ein Datumsfeld, dann ist es leer. Also da bin ich noch am Studieren. Deine Beispiele insbesondere das Beispiel "Medien" habe ich, so gut es mir gelang, durchgeackert und Teile kapiert andere nicht. Die Formulare sind einfach zu voll mit unterschiedlichsten Aktivitäten. Ich bin dann wieder ganz zurück auf das Beispiel "Sport". Das habe ich gut kapiert und hole mir da meine Wissenslücken heraus, wenn ich was Geeignetes finde. M.E. brauchst Du die Bsp nicht anhängen, die sind ja zum Download vorhanden. Ich wünschte mir ein Beispiel, das klein anfängt und dann langsam sich erweitert.
Mir fehlt z.B (ich zähl einfach mal auf, um Dir bei Deinen Überlegungen zu helfen):
- wie öffne ich automatisch ein Hauptformular beim Öffnen der Datenbank? (klappt bei mir nach langem Suchen und Vergleich mit Access)
- wie schließe ich eine DB von einem Hauptformular aus?
- wie kann ich ein Kontrollfeld beschreiben ohne die DB zu benutzen? (weiß ich jetzt)
- wie komme ich in einem Tabellen Steuerelement an einen bestimmten Wert, den ich in der DB ändern will?
- wie drucke ich aus einem Formular einen Bericht auf meinem Drucker aus?
- wie kann ich in einer DB ein Feld "Ergebnis" erzeugen, das automatisch zB das Ergebnis 2er anderer Felder beinhaltet (Ergebnis=Feld2-Feld1) (mach ich noch ganz umständlich über einen Makro)
- wie kann ich mit einem Formular nach Werten suchen und bekomme alle Felder der Zeile für diesen Wert angezeigt? (mache ich zZt noch "offline" mit dem SuchenBefhl der Datentabelle) Bspl: Tabelle mit den Feldern Bez, Volt, Amp, Watt, Gehäuse,etc. Ich suche unter Bez das Bauteil "BC523" und bekomme für dieses Bauteil alle Felder angezeigt. Wenn ich nur "BC" eingebe, dann sehe ich alle Bez mit "BC" und die zugehörigen Felder.
Bitte, ich habe das nur mal so aufgeschrieben, um Dir zu zeigen, wo ich als Laie hänge und vielleicht Andere auch. Wahrscheinlich sind die Antworten alle im Beispiel "Medien" zu finden. Nur halt wo?
Immerhin macht das Tüfteln ja richtig Spass und man ist gestärkt, wenn man eine Lösung findet.
Gruß und ein schönes Glas Wein (in vino veritas!) Werner
Mir fehlt z.B (ich zähl einfach mal auf, um Dir bei Deinen Überlegungen zu helfen):
- wie öffne ich automatisch ein Hauptformular beim Öffnen der Datenbank? (klappt bei mir nach langem Suchen und Vergleich mit Access)
- wie schließe ich eine DB von einem Hauptformular aus?
- wie kann ich ein Kontrollfeld beschreiben ohne die DB zu benutzen? (weiß ich jetzt)
- wie komme ich in einem Tabellen Steuerelement an einen bestimmten Wert, den ich in der DB ändern will?
- wie drucke ich aus einem Formular einen Bericht auf meinem Drucker aus?
- wie kann ich in einer DB ein Feld "Ergebnis" erzeugen, das automatisch zB das Ergebnis 2er anderer Felder beinhaltet (Ergebnis=Feld2-Feld1) (mach ich noch ganz umständlich über einen Makro)
- wie kann ich mit einem Formular nach Werten suchen und bekomme alle Felder der Zeile für diesen Wert angezeigt? (mache ich zZt noch "offline" mit dem SuchenBefhl der Datentabelle) Bspl: Tabelle mit den Feldern Bez, Volt, Amp, Watt, Gehäuse,etc. Ich suche unter Bez das Bauteil "BC523" und bekomme für dieses Bauteil alle Felder angezeigt. Wenn ich nur "BC" eingebe, dann sehe ich alle Bez mit "BC" und die zugehörigen Felder.
Bitte, ich habe das nur mal so aufgeschrieben, um Dir zu zeigen, wo ich als Laie hänge und vielleicht Andere auch. Wahrscheinlich sind die Antworten alle im Beispiel "Medien" zu finden. Nur halt wo?
Immerhin macht das Tüfteln ja richtig Spass und man ist gestärkt, wenn man eine Lösung findet.
Gruß und ein schönes Glas Wein (in vino veritas!) Werner
Re: heutiges Datum in ein Kontrollfeld schreiben
Hallo Werner,
mach doch einfach für Einzelprobleme einen neuen Thread hier auf. Rührt sich ja sonst nicht viel in den Foren, Mailinglisten und auf https://ask.libreoffice.org/c/german/6.
Gruß
Robert
mach doch einfach für Einzelprobleme einen neuen Thread hier auf. Rührt sich ja sonst nicht viel in den Foren, Mailinglisten und auf https://ask.libreoffice.org/c/german/6.
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 ❤️