Letzte Änderung

Ich noch mal hab alles hinbekommen…

Doch nun neues Problem:
Ich habe ein Formular mit verschiedenen Optiongruppen und ich möchte gern abspeichern in der Saplte der dahinterliegenden Tabelle „Letzte Änderung“ wer wan die letzte Änderung in einer der Optionsgruppen getätigt hat.

Wenn ich aus der Feldliste ein Feld für die Letzte Änderung in mein Formular ziehe, und dann im Feld selbst =fOSUserName() & „-“ & Datum() & „,“ & Zeit() bei Änderung schreibe, speichert VBA das noch lange nicht…
wo soll ich das denn noch reinschreiben ?

Christian
… mehr auf http://w-w-w.ms/a48zn2

Hallo,

wenn du die Information speichern moechtest, wer welche Gruppe wann geandert hat, dann ist es ja mit einem Feld nicht getan. Man kann ja auch mehrere Gruppen aenden.

Entweder du speicherst die Daten jedesmal beim „NachAktualisieren“ jeder einzelnen Gruppe weg ( dort kann man feldname =fOSUserName() & „-“ & Datum() & „,“ & Zeit() codieren) oder du wartest bis „zum Schluss“ und schaust bei „VorAktualisierung“ des Formulars nach was geaendert wurde, indem du .oldValue mit .Value der Optionsgruppen vergleichst.

Sinnvollerweise wuerde ich eine eigene Tabelle anlegen und dort die Aenderungen speichern, dann hat man eine komplette Aenderungshistorie.

Tschau
Peter

Hallo Peter,
Das mit der Änderungshistorie klingt gut, ist aber jetzt noch nicht gewünscht.
Behalte ich aber auf der Agenda

Das andere hab ich noch nicht ganz erfasst. Wie muß ich das denn machen, wenn ich .old Value mit .Value des Formulars vergleichen will ?

Christian

Hallo,

Das andere hab ich noch nicht ganz erfasst. Wie muß ich das
denn machen, wenn ich .old Value mit .Value des Formulars
vergleichen will ?

OK, etwas detailierter: nicht .oldValue vom Formular sondern, das der einzelnen Felder.

Beim Ereignis „VorAktualisierung“ des Formulars/Datenverbindung wird abgezeigt, das geaenderte Daten gespeichert werden sollen.

Nun kann man die Liste der Eingabefelder im Formular durchlaufen:

z.b.

Dim oFeld as Control

For Each oFeld In meinFormular.Form.Controls
select case oFeld.ControlType
case acOptionsGroup ’ typ der Feldes ist Optionsgruppe
if oFeld.value oFeld.oldValue then ’ es hat sich was geeandert
'… wegschreiben der Aenderung in Eingabefeld oder direkt in Tabelle
’ in oFeld.Name steht der Name der Optionsgruppe

end if
end select

next oFeld

Tschau
Peter