Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Letzte Änderung mitschreiben (Datum/Uhrzeit)
Gehe zu Seite 1, 2  Weiter
zurück: Formular nur mit einem Teil der Daten öffnen weiter: Daten aus Tabelle berechnen und in Formular übernehmen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Dennis79
Try&Error-Azubi


Verfasst am:
22. Dez 2005, 13:21
Rufname:

Letzte Änderung mitschreiben (Datum/Uhrzeit) - Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Hallo,

eigentlich eine einfache Sache (dachte ich zumindest):

ich habe ein Formular, welches als Basis die Tabelle mitarbeiter hat.
In dieser Tabelle gibt es die Felder "letzte Änderung am" und "letzte Änderung durch".

Jetzt möchte ich gerne, dass diese beiden Felder aktualisert werden, wenn man im Formular etwas an den Daten ändert.

Für mich war eigentlich sofort klar, dass ich das (in Access 97) über das Formular-Ereignis "Nach Aktualisierung" bzw. AfterUpdate lösen kann.
Aber da habe ich mich wohl getäuscht ?

Wenn ich im Formular als AfterUpdate-Ereignis ungefähr sowas hinschreibe:
Code:
    Me!mitarbeiter_last_change_datetime = Now()
    Me!mitarbeiter_last_change_who = "Testuser"
...und dann im Formular irgendwas in einem bestehenden Datensatz ändern will, geht nichts mehr!
Ich kann dann keinen Datensatz weiter oder zurück, ich kann keinen neuen Datensatz anlegen und ich kann noch nicht mal mehr zurück in die Entwurfsansicht des Formulars.

Ich muss das Formular komplett schließen und noch die Meldung "Sie können dieses Objekt momentan nicht speichern" wegklicken.

Weiß jemand woran das liegt bzw. was ich falsch mache ?

Wenn ich den gleichen Code beim BeforeUpdate-Ereignis verwende, klappt alles ganz normal (allerdings ist mir damit nicht geholfen).

Hat zufällig jemand eine Lösung für mich parat ?

Gruß
Dennis

_________________
"Kaum macht man's richtig, schon klappt's!"
Willi Wipp
Moderator


Verfasst am:
22. Dez 2005, 13:29
Rufname:
Wohnort: Raum Wiesbaden


Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) - Re: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Hi Dennis79,

danach ist ja auch zu spaet Wink
wie waere es denn mit dem Formular-Ereignis Vor Aktualisierung (BeforeUpdate)?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Dennis79
Try&Error-Azubi


Verfasst am:
22. Dez 2005, 13:54
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Hi Willi,

wie wäre es, wenn wir eine permanente Video-Konferenz starten, dann müsste ich nicht immer so viel tippen ? Laughing Laughing
Du findest mich ja doch überall Very Happy

Ich hab so meine Probleme mit dem BeforeUpdate-Ereignis, weil ich nicht genau weiß, wie es funktioniert.

Ich habe den Eindruck, dass das BeforeUpdate-Ereignis eine Änderung lediglich "vermutet"...

Beispiel:
Ich hab für die Anrede ein Kombifeld.
Wenn Anrede = Herr ist und ich auf Kombifeld klicke und erneut Herr auswähle, ist das BeforeUpdate Ereignis ja trotzdem eingetreten...

Keine Ahnung, ob das mit AfterUpdate auch so wäre, das funktioniert ja nicht...

Gruß
Dennis

_________________
"Kaum macht man's richtig, schon klappt's!"
Willi Wipp
Moderator


Verfasst am:
22. Dez 2005, 14:23
Rufname:
Wohnort: Raum Wiesbaden

Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (II) - Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (II)

Nach oben
       

Hi Dennis79,

das waere bei Nach Aktualisierung (AfterUpdate) genauso.
Um zu verhindern, das das Datum und der Name auch geschrieben werden,
wenn Du eine Aenderung wieder zurueckaenderst,
als Unterschied zu Ruckgaengig machen mit Esc oder Strg+Z,
muss man mehr Aufwand treiben. Etwa so
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim bOK As Boolean
    Dim ctl As Control
   
    'Um Fehler bei Steuerelementen abzufangen,
    'die die nachfolgend verwendeten Eigenschaften nicht besitzen
    On Error Resume Next
    For Each ctl In Me.Controls
        If ctl = Screen.ActiveControl Then           'Aktuelles Steuerelement?
            If Str(ctl.OldValue) <> Str(ctl.Text) Then
                If Err = 0 Then
                    bOK = True
                    Exit For
                  Else
                    Err = 0
                End If
            End If
          Else
            If ctl.OldValue <> ctl.Value Then
                If Err = 0 Then
                    bOK = True
                    Exit For
                  Else
                    Err = 0
                End If
            End If
        End If
    Next ctl
    On Error GoTo 0
    If bOK Then                                               'Änderung ist OK
        MsgBox "Jetzt"
      Else                                           'Keine wirkliche Änderung
        Me.Undo
'        Cancel = True      'Verhindert AfterUpdate aber auch kein DS-Wechsel!
    End If
End Sub
Das On Error Resume Next ist noetig, da nicht alle Steuerelemente die Eigenschaften OldValue, Value und Text besitzen.
Man kann das naturlich auch sauberer und aufwaendige ueber ctl.Typ abfangen
und die entsprechende Pruefung nur bei geeigneten Steuerelementen machen.
OldValue enthaelt den alten Wert des Steuerelements.
Value enthaelt den aktuellen Wert des Steuerelementes, wenn es nicht mehr den Fokus hat!
Value ist die Standardeigenschaft von ctl => man kann es auch weglassen.
Text enthaelt den aktuellen Wert des Steuerelementes, wenn es noch den Fokus hat!
Die Umwandlung mit Str ist notwendig, da Zahlen bei OldValue ein fuehrendes Leerzeichen liefern.
Bei Text jedoch nicht!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
otscho
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Jun 2006, 12:33
Rufname:


AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Hallo,
der Thread ist zwar schon ne Weile her, aber ich bin grad per Suchfunktion auf diesen Code-Schnipsel von Willi gestoßen und hab eine Frage dazu:

Wie kann ich denn in der erscheinenden MsgBox eine weitere Schaltfläche "Abbrechen" einfügen, bei deren Betätigung die Änderung nicht übernommen wird. D.h. die Änderung wird nur übernommen, wenn "OK" gedrückt wird.
Kann mir jemand helfen?
Gast



Verfasst am:
16. Jun 2006, 14:22
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Holla!

Gucke Dir einfach mal in der Hilfe alles zur "MsgBox" an.

Du kannst z.B. sowas machen:
Code:
    Select Case MsgBox("Soll ich das wirklich durchführen ?", _
                       vbQuestion + vbYesNoCancel)
      Case vbNo:  'blabla
      Case vbYes: 'bla
    End Select

Gruß,
Dennis
~Schwede~
VBA, Access, Einsteiger


Verfasst am:
04. Jan 2007, 16:31
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       Version: Office 2k (2000)

Hallo,

ist es auch möglich den Namen des aktuell angemeldeten Windows-Users in die Änderungshistorie zu schreiben?
Code:
    Me!mitarbeiter_last_change_who = "Testuser"
Also anstatt "Testuser" --> "den Namen des aktuell angemeldeten Windows Users"

vorab vielen Dank für eure Hilfe Exclamation
Willi Wipp
Moderator


Verfasst am:
04. Jan 2007, 18:41
Rufname:
Wohnort: Raum Wiesbaden

Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (III) - Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (III)

Nach oben
       Version: Office 2k (2000)

Hi ~Schwede~,

wie waere es mit
Code:
    Me!mitarbeiter_last_change_who = Environ("Username")

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
~Schwede~
VBA, Access, Einsteiger


Verfasst am:
05. Jan 2007, 13:16
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       Version: Office 2k (2000)

Funktioniert einwandfrei! Coole Sache... und so einfach! Vielen Dank
Code:
=Environ("Username")
Kommitob
Gast


Verfasst am:
11. Jan 2007, 08:09
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Stimmt, "Environ" ist eine feine Sache. Könnte nur passieren dass du nach einem Access-Upgrate > A2002 Probleme bekommst.
Willi Wipp
Moderator


Verfasst am:
11. Jan 2007, 10:44
Rufname:
Wohnort: Raum Wiesbaden

Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (IV) - Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (IV)

Nach oben
       Version: Office 2k (2000)

Hi Kommitob,

Danke fuer den Hinweis.
Siehe dazu die Anmerkung von Nouba im Thema Auslesen des aktuellen Benutzernamen einer Datenbank

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gast



Verfasst am:
11. Jan 2007, 13:10
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

bei mir funktioniert es auch mit A03 weiterhin ohne Änderungen.
Gast



Verfasst am:
17. Jan 2007, 17:14
Rufname:

AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       

Hallo,
folgendes funktioniert in meinem Hauptformular einwandfrei.
Code:
Private Sub GlobPriPack_BeforeUpdate(Cancel As Integer)
    'Speichert das Datum und die Uhrzeit der letzten Änderung
    Me!GlobPriPack_Datum = Now()
    'Speichert Windows Username bei Änderung des Feldes
    Me!GlobPriPack_User = Environ("Username")
End Sub
Wenn ich die gleiche Funktionalität jedoch im Unterfomular verwenden möchte...
Code:
Private Sub RegelkreisStatus_BeforeUpdate(Cancel As Integer)
    'Speichert das Datum und die Uhrzeit der letzten Änderung
    Me!RegelkreisStatus_Datum = Now()
    'Speichert Windows Username bei Änderung des Feldes
    Me!RegelkreisStatus_User = Environ("Username")
End Sub
...bekomme ich die Fehlermeldung "kann nicht Feld 'Regelkreis_Datum' finden"

Ist eigentlich auch logisch (glaube ich) weil:
- Mein Hauptformular basiert direkt auf eine Tabelle
- das Unterfomular basiert auf eine Abfrage.

Frage --> Wie sieht der richtige Code aus um das Änderungsdatum in das Feld RegelkreisStatus_Datum in der Tabelle tblRegelkreis zu schreiben?
In abfragen verweisst man ja immer mit [Tabellenname].[Spaltenname] aber das funktioniert hier nicht.

vielen Dank für die Erklärung der "Basics"
Willi Wipp
Moderator


Verfasst am:
17. Jan 2007, 17:46
Rufname:
Wohnort: Raum Wiesbaden

Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (V) - Re: Letzte Änderung mitschreiben (Datum/Uhrzeit) (V)

Nach oben
       

Hi Gast,

die Felder RegelkreisStatus_Datum und RegelkreisStatus_User der Tabelle tblRegelkreis
muessen in der Datenherkunft (RecordSource), bei Dir die Abfrage, des Unterformulars enthalten sein.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 19. Jul 2009, 03:17, insgesamt einmal bearbeitet
~Schwede~
VBA, Access, Einsteiger


Verfasst am:
18. Jan 2007, 12:14
Rufname:


AW: Letzte Änderung mitschreiben (Datum/Uhrzeit) - AW: Letzte Änderung mitschreiben (Datum/Uhrzeit)

Nach oben
       Version: Office 2003

Hallo,

danke für die Hilfe... da habe ich wohl einen typischen Anfängerfehler gemacht Idea Laughing
viele Grüße
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datum im Formularkopf 6 didide 821 06. Jan 2005, 17:19
lothi Datum im Formularkopf
Keine neuen Beiträge Access Tabellen & Abfragen: in einer Wenn dann Funktion aufs Datum gruppieren 10 Gast 691 06. Jan 2005, 10:22
Skogafoss in einer Wenn dann Funktion aufs Datum gruppieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum und Uhrzeit automatisch speichern 3 peinberger 1119 30. Dez 2004, 10:33
mapet Datum und Uhrzeit automatisch speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Alter auf Basis akt. Datum ausrechnen 2 jomei 1634 22. Dez 2004, 09:15
jomei Alter auf Basis akt. Datum ausrechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Access Abfrage mit größer als Parameter Datum 2 Terrific 14868 06. Dez 2004, 19:46
Gast Access Abfrage mit  größer als Parameter Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum konvertieren 2 pad8626 1236 03. Dez 2004, 16:25
pad8626 Datum konvertieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum 5 Jogler 1001 29. Nov 2004, 13:27
borstel Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Accessdaten Datum in Englischer Form in Serienbrief von Word 1 Hajo 1127 24. Nov 2004, 11:49
Gast Accessdaten Datum in Englischer Form in Serienbrief von Word
Keine neuen Beiträge Access Tabellen & Abfragen: 3. ältestes Datum 3 shaaree 793 27. Sep 2004, 11:03
Skogafoss 3. ältestes Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Zahl umwandeln 2 Lorenz 1017 01. Sep 2004, 18:45
Lorenz Datum in Zahl umwandeln
Keine neuen Beiträge Access Tabellen & Abfragen: Datum berechnen 1 kdl 1146 09. Aug 2004, 06:10
TommyK Datum berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: datum in Tabelle nur nach Jahr & Monat filtern.....aber. 4 mirko 1236 20. Jul 2004, 12:03
mirko datum in Tabelle nur nach Jahr & Monat filtern.....aber.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks