BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Frewer
Beiträge: 29
Registriert: Mo 1. Feb 2021, 19:23

heutiges Datum in ein Kontrollfeld schreiben

Beitrag von Frewer » Do 19. Mai 2022, 19:13

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

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von RobertG » Fr 20. Mai 2022, 08:30

Hallo Frewer,

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
Vielleicht kommst Du damit ja sicherer in dem Feld an.

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

Frewer
Beiträge: 29
Registriert: Mo 1. Feb 2021, 19:23

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von Frewer » Fr 20. Mai 2022, 11:53

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

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von F3K Total » Fr 20. Mai 2022, 14:31

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
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

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von RobertG » Fr 20. Mai 2022, 15:54

…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/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Frewer
Beiträge: 29
Registriert: Mo 1. Feb 2021, 19:23

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von Frewer » Fr 20. Mai 2022, 18:04

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

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von RobertG » Fr 20. Mai 2022, 18:50

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:

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
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
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

Frewer
Beiträge: 29
Registriert: Mo 1. Feb 2021, 19:23

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von Frewer » Fr 20. Mai 2022, 20:20

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

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: heutiges Datum in ein Kontrollfeld schreiben

Beitrag von RobertG » Fr 20. Mai 2022, 20:41

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
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

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 ❤️

Antworten