Guten Abend,
ich habe noch eine kleine Frage:
Was muss ich tun um das aktuelle Datum beim verlassen (oder halt kurz davor) in mein Textfeld (lastDate)
zu schreiben.
Diese VBA haben leider nicht funktioniert:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.lastDate = Now()
End Sub
Private Sub lastDate_BeforeUpdate(Cancel As Integer)
Me.lastDate = Now()
End Sub
Private Sub lastDate_Exit(Cancel As Integer)
Me.lastDate = Now()
End Sub
mfg
wolfgang
Hallo,
warum willst Du das Datum in ein Textfeld schreiben, wenn das Form eh verlassen wird?
Oder soll das Datum nur dann an das aktuelle angepasst werden, wenn am Datensatz etwas (anderes) verändert wurde?
Nur dann tritt das Form_BeforeUpdate-Ereignis auf, vorausgesetzt das Form ist an eine Tabelle gebunden.
Wenn nicht an dann Daten geändert ist und das Form geschlossen wird, tritt nur (u. a.) das Form_Close-Ereignis auf.
Zudem wäre
Me!lastDate = Date
bei einem Datum ohne Uhrzeit besser gewählt.
Guten Abend Franz,
ja das Textfeld ist in einem Formular, welches geschlossen wird um mit einem
anderen Formular die Datenbank zu bearbeiten.
Das Datum soll natürlich in eine Tabelle geschrieben werden die zu dem Formular
gehört wo das Textfeld sich drauf befindet.
Hallo Franz,
in meiner Tabelle steht:
Name des Anwenders
Datum öffnen des Anwenders (klappt)
Datum schließen des Anwenders (klappt nicht)
Differenz schließen zu Öffnen (um die Anwenderzeit festzuhalten)
mfg
wolfgang
Hallo,
Nimm das Ereignis "Beim Schließen". Und das Formularfeld muss natürlich auch an das entsprechende Tabellenfeld gebunden sein.
Die Differenz in die Tabelle zu schreiben ist überflüssig und falsch obendrein.
Die Differenz wird in einer Abfrage stets aktuell berechnet.
In die Tabelle gehört auch nicht der Name des Anwenders, sondern nur dessen Primärschlüssel als Fremdschlüssel.
Hallo Klaus,
es funktioniert !
Private Sub Form_Unload(Cancel As Integer)
Me.lastDate = Now
End Sub
Mein kleines Problem, wenn das Formular geschlossen wird, wird die Datum und Zeit hinterlegt.
Ich muss halt darauf achten das das Formular offen bleibt oder gibt es eine Möglichkeit
unabhängig ob Formulare oder oder Tabellen offen sind. Daher wenn also die Datenbank
geschlossen wird.
mfg
wolfgang
Hallo,
Du kannst dafür sorgen, dass nur mit einem Button in einem bestimmten Formular es möglich ist die DB zu verlassen. Mit diesem Button schreibst Du dann lastDate.
Im Anhang ein Beispiel. Ist zwar zur Prüfung von Pflichtfeldern gedacht, aber die DB kann nur mit dem Button "Beenden" auf dem 1.Formular verlassen werden, egal was Du versuchst.
Alternativ kann man beim Programmstart ein verstecktes Formular öffnen, was beim Schließen der DB natürlich automatisch geschlossen wird, wo dann der Code implementiert werden kann.
Guten Morgen,
danke an Alle, werde mal sehen wie ich es durchführen kann,
schönes Wochenende
mfg
wolfgang
Hallo Wolfgang,
ZitatMein kleines Problem, wenn das Formular geschlossen wird, wird die Datum und Zeit hinterlegt.
Ich muss halt darauf achten das das Formular offen bleibt
Was willst du denn überhaupt festhalten? Gelten die Felder für das
Formular/die DB oder für die enthaltenen DS?
Wenn du die Verweilzeit in einem Formular festhalten willst, brauchst
du eine eigene Tabelle mit Bezug zum Formular dafür. Dann kannst du
beim Öffnen per INSERT die Zeit festhalten und beim Schliessen per
UPDATE.
Wenn es für die ganze DB gelten soll ist Xoars Vorschlag mit dem
versteckten Form ein üblicher Lösungsweg.
Wenn die Felder in der DS-Herkunft des Forms enthalten sind, brauchst
du das Form nicht extra zu schliessen um die Endezeit zu speichern,
das machst du dann bereits bei "Form_BeforeUpdate".
gruss ekkehard