Seite 1 von 4

Datum, automatisch

Verfasst: Mo 8. Apr 2013, 14:53
von eiswiese
Hallo,
ich habe in einem Formular ein Feld für das Datum. Da ich in aller Regel das aktuelle Datum benötige, hätte ich gerne, dass dieses automatisch angezeigt wird und, dass der Cursor beim Formularöffnen direkt dorthin springt, für den Fall, dass ich es doch mal ändern möchte.
Weiss jemand, wie ich das hinbekomme?
Gruß eiswiese

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 16:22
von gogo
geht nicht mehr seit 1-2 Jahren, Du kannst aber folgendes Makro mit dem Ereignis "Dokument Öffnen" verbinden:

Code: Alles auswählen

Sub Startup_form(oEvent)
   oEvent.Source.DrawPage.Forms.getbyname("NameDesFormulars").getbyname("NameDesDatumsKEs").date = format(date()-360,"yyyymmdd")
end sub
... setzt das Datum auf heute vor 360 Tagen ...

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 18:36
von eiswiese
Das hat schon mal super geklappt. Nachdem ich die -360 rausgenommmen habe, sogar mit dem heutigen Datum... ;)
Vielleicht weisst du ja auch noch, wie ich den Cursor beim Start ins Feld bekomme...
So oder so: Danke!
eiswiese

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 18:48
von eiswiese
Mmmh, so richtig funkioniert das leider doch nicht.
Wenn ich versuche, den Datensatz mit dem Datum zu speichern, meckert Base, dass für das Feld "Datum" eine Eingabe erforderlich ist. (Obwohl das heutige Datum in dem Feld angezeigt wird)
Die Meckerei hört erst auf, wenn ich das Datum manuell nochmal "drüberschreibe"...

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 18:51
von gogo
mit dem selben oEvent vom Makro oben

Code: Alles auswählen

...
	oCtrl = oEvent.Source.DrawPage.Forms.getbyname("NameDesFormulars").getbyname("NameDesKEs")
	oEvent.Source.CurrentController.getControl(oCtrl).setfocus
...
und das Datum ... da "fehlt" das Commit:

Code: Alles auswählen

oEvent.Source.DrawPage.Forms.getbyname("NameDesFormulars").getbyname("NameDesDatumsKEs").commit
zum "nur Reinschreiben" des Datums in ein ungeundenes Feld reicht meist das Setzen des Date-Werts, beim Speichern braucht's in der Regel ein Commit.

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 19:25
von eiswiese
Jetzt läuft es rund! :D

Eines ist allerdings etwas eigenartig:
Beim Starten des Formulars steht im Datumsfeld nur ganz kurz "13.04.12" (-360???),
dann erscheint das heutige Datum.
Damit kann ich wohl leben, aber neugierig in ich trotzdem.

Vielen Dank für deine Hilfe!

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 19:44
von F3K Total
Hallo,
ich hätte da noch eine "nicht-Makro" Version, die das aktuelle Datum beim ersten Abspeichern eines Datensatzes setzt, das Datum kann man natürlich auch nachträglich wieder ändern.
Angenommen die zugrundeliegende Tabelle heißt Tabelle und die Spalte mit dem Datum heißt Datum.
Dann gibst Du einmal unter Extras/SQL... folgenden Befehl ein und führst ihn aus:

Code: Alles auswählen

ALTER table "Tabelle" alter column "Datum" set DEFAULT CURRENT_DATE
Gruß R

Re: Datum, automatisch

Verfasst: Mo 8. Apr 2013, 20:14
von gogo
heute ist der 8.4.2013 ... minus 360d wäre der 13.04.12 - hast Du dieses Datum zufällig im Feld "Standardwert" stehen?

... und: Wenn Du bei jedem neuen Datensatz das heutige Datum brauchst ist die Lösung von FK3Total viel besser, denn per Makro wird das Datum ja nur 1x nach dem Öffnen des Formulars gesetzt.

Re: Datum, automatisch

Verfasst: Di 9. Apr 2013, 20:51
von eiswiese
So langsam wird meine Verwirrung total...
In der Tat ist das mit dem Makro nicht so toll, da ja tatsächlich immer nur beim Start des Formulars das Datum gesetzt wird. (@gogo: das Feld Standardwert war leer!)
Also: Makro entfernt und SQL-Methode. Ich bekam auch die Bestätigung, dass der Befehl ordnungsgemäß ausgeführt wurde.
Das Formular geöffnet, das aktuelle Datum erschien kurz und dann blieb nur ein leeres Feld. :(
Fällt jemandem dazu etwas ein?

Re: Datum, automatisch

Verfasst: Di 9. Apr 2013, 21:01
von F3K Total
Hallo Eiswiese,
hast Du den Datensatz mal gespeichert (Diskettensymbol)?
F3K Total hat geschrieben:... die das aktuelle Datum beim ersten Abspeichern eines Datensatzes setzt ...
Oder hast Du die Datumsspalte in der Tabelle vielleicht nicht als TYP Datum definiert?
Du kannst auch kurz eine Beispieldatei hochladen, ggf. verfremdet, dann kann man mal nachsehen wo der Hase im Pfeffer liegt.
Gruß R
EDIT: hier eine kurze Beispieldatei.
  • Klicke "Neuer Datensatz"
  • Gib einen Betrag ein
  • Wähle einen Namen
  • Speichere den Datensatz mit dem Diskettensymbol