Office: Wer hat zuletzt bearbeitet

Helfe beim Thema Wer hat zuletzt bearbeitet in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; trottlbua: > LogUserAction (Me!ProjektNr.Value;"Aktion") Da ist Dir ein ; statt eines , reingerutscht. Und wenn er mit , immer noch meckert: Laß... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Antje, 20. April 2007.

  1. miriki Erfahrener User

    Wer hat zuletzt bearbeitet


    trottlbua:
    > LogUserAction (Me!ProjektNr.Value;"Aktion")

    Da ist Dir ein ; statt eines , reingerutscht.

    Und wenn er mit , immer noch meckert: Laß die ( ) um die Parameter weg, da es sich nicht um eine Funktion handelt, die einen Rückgabewert liefert. VBA meckert dann meistens die Klammern an.

    > damit ich eventuell weitere Felder hinzufügen kann?!?

    Wie gehabt:

    a) Felder in der Log-Tabelle erweitern

    b) Parameterliste im Aufruf erweitern.
    : LogUserAction(Me!ProjektNr.Value,"Aktion")
    Hier mit , getrennt weitere Werte aus dem Formular an die Prozedur übergeben.

    c) Parameterliste im Prozedurkopf erweitern
    : Sub LogUserAction(dsID&, wsAction$)
    Hier also wie schon das dsID& mit weiteren Parametern durch , getrennt ergänzen.

    Achtung: Die Anzahl und die Reihenfolge zwischen Aufruf und Prozedurkopf muß übereinstimmen. Und auch die "Typen" müssen stimmen, also (grob) Zahlen-Typ oder Zeichen-Typ.

    c) Parameter (als übergebenen Feldwert) in den Datensatz schreiben
    : !aktiondatensatz = dsID
    Also zwischen .AddNew und .Update die weiteren Parameter in die weiteren Felder des Datensatzes schreiben.

    Gruß, Michael
     
  2. trottlbua Erfahrener User
    Super - hat gefunzt!

    Ich musste die Klammern wegnehmen - dann hat access nicht mehr gemeckert.

    Noch ein Anhängsel:

    Code:
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    LogUserAction Me!ProjektNr.Value, Me!Projektname.Value, "Aktion"
    End Sub
    
    Da bekomm ich die Fehlermeldung "laufzeitfehler 13 - typen unverträglich"

    was hab ich da falsch gemacht?

    Im Modul habe ich es so ergänzt:


    Code:
    ub LogUserAction(dsID&, dsNA&, wsAction$)
    On Error GoTo Err_LogUserAction
    
        Dim DB As Database
        Dim RS As Recordset
    
        Set DB = CurrentDb()
        Set RS = DB.OpenRecordset("tbl_aktion", dbOpenDynaset)
        With RS
            .AddNew
            !aktiondatumzeit = Now()
            !aktionuser = GetWsUsername()
            !aktioncomputer = GetWsComputername()
            !aktiondatensatz = dsID
            !aktionprojekt = dsNA
            !aktiontext = wsAction
            .Update
            .Bookmark = .LastModified
        End With
        RS.Close
        DB.Close
    
    Exit_LogUserAction:
        Exit Sub
    
    Err_LogUserAction:
        Resume Exit_LogUserAction
    
    End Sub
    Bin ich richtig in der Annahme, dass das dsID ein frei gewählter Name ist?
     
    trottlbua, 25. September 2007
    #32
  3. miriki Erfahrener User
    trottlbua:
    Code:
    LogUserAction Me!ProjektNr.Value, Me!Projektname.Value, "Aktion"
    [...]
    Sub LogUserAction(dsID&, dsNA&, wsAction$)
    Und deswegen schrieb ich extra: Daten-Typen müssen passen... ;-)

    Ich _vermute_ jetzt zumindest mal, daß "projektname" ein Zeichen-Feld (also keine Zahl, sondern Ziffern, Buchstaben usw.) ist, oder? Wenn Du das als Parameter dsNA mit & deklarierst, erwartet VBA aber eine Zahl, einen "long int" (ganze Zahl ohne Nachkommastellen, aber großer Wertebereich) genau genommen. Zeichen-Felder (sog. "Strings") werden aber mit einem $ deklariert, siehe wsAction$.

    > Bin ich richtig in der Annahme, dass das dsID ein frei gewählter Name ist?

    Yep, ist frei ausgedacht. Sollte einfach nur "ds" für "Datensatz" und "ID" eben für die Identifikation" darstellen.

    Gruß, Michael
     
  4. trottlbua Erfahrener User

    Wer hat zuletzt bearbeitet

    Danke, danke, danke, danke!!!!

    Funzt alles perfekt!

    Hab noch ein Addon - die Frage ist halt ob das möglich ist:

    Kann man Felder eines Formulares zu Gruppen zusammenfassen?

    Ich hab z.B. eine Terminübersicht - mehrere Felder, da es ja mehrere Projektphasen gibt.

    Wenn ich die jetzt zu einer Gruppe zusammenfassen könnte, müsste ich nicht die Änderung jedes einzelnen Feldes verfolgen, sondern ich dokumentiere einfach ob sich etwas bei den Terminen, den technischene Daten oder der Kostenübersicht (alles mögliche Gruppen) geändert hat.

    Jedes einzelne Feld erfassen finde ich sehr zäh.

    Hast du eine Idee bzw. ist das überhaupt möglich?
     
    trottlbua, 25. September 2007
    #34
  5. miriki Erfahrener User
    trottlbua:
    > Funzt alles perfekt!

    Na, das ist doch schön. :-)

    > Kann man Felder eines Formulares zu Gruppen zusammenfassen?

    Hmmm... Also so auf Anhieb fällt mir dazu nichts ein. Aber für das Problem an sich grundlegend:

    Du hast ja prinzipiell nur die Möglichkeit, den kompletten Datensatz oder jedes Feld einzeln auf Änderung zu überwachen. Willst Du eine Gruppe von ähnlichen Feldern bei Änderung mit der gleichen Log-Meldung versehen, geht also nur der Weg über jedes einzelne Feld. Die (ganz grobe) Struktur im VBA wäre dann:

    Code:
    sub DatumAenderung
        LogUserAction "Datum geändert"
    end sub
    
    sub Feld1OnChange
        DatumAenderung
    end sub
    
    sub Feld2OnChange
      DatumAenderung
    end sub
    
    [ ... ]
    Soweit verständlich? Ich habe dann also eine Routine, die "Datum geändert" protokolliert. Und diese Routine wird von mehreren anderen Ereignissen (jeweils das Änderungs-Ereignis der einzelnen betroffenen Felder) aufrufbar. Wenn jetzt Feld1, Feld2 usw. auf dem Formular eine "Gruppe" bilden, dann rufen diese jeweils die gleiche Routine auf.

    Die Felder Feld10, Feld11, ... könnten dann eine andere Routine aufrufen, die dann z.B. "Mitglied geändert" protokolliert oder was auch immer.

    Vielleicht hilft Dir das irgendwie weiter?

    Aber ob Du wirklich jedes Feld einzeln überwachen willst? Genau genommen müßtest Du dann nämlich "OnEnter" den Wert des Feldes speichern, um dann bei "OnExit" und "OnChange" den dann aktuellen Wert mit dem ursprünglichen zu vergleichen.

    Könnte ja sein, daß jemand ein Zeichen löscht und es dann wieder einfügt. Dann hättest Du sonst schnell einen Log-Eintrag über eine Änderung, die eigentlich gar nicht stattgefunden hat.

    Im "OnChange" hättest Du dann die Möglichkeit, bei Änderungen direkt einzugreifen (zulassssen oder verhindern z.B.) usw. usf...

    Das wären also in jedem Fall 2, wenn nicht sogar 3 oder mehr Ereignisse, die Du abgreifen müßtest. Und das wohlgemerkt für jedes Feld einzeln!

    Gruß, Michael
     
  6. trottlbua Erfahrener User
    Servus Michael!

    Danke nochmal für die Hilfe, hab es jetzt mal so gelassen, wie du mir im Code beschrieben hast!

    Mfg
    Herbert
     
    trottlbua, 29. Oktober 2007
    #36
Thema:

Wer hat zuletzt bearbeitet

Die Seite wird geladen...
  1. Wer hat zuletzt bearbeitet - Similar Threads - bearbeitet

  2. Outlook 365: Weiterleiten von bearbeiteten Anlagen nicht möglich?

    in Microsoft Outlook Hilfe
    Outlook 365: Weiterleiten von bearbeiteten Anlagen nicht möglich?: E-Mail empfangen, auf "Weiterleiten" drücken, Anlage (z.B. Word-Datei) bearbeiten, schließen und mit der Mail weiterleiten. Unter Outlook 2016 kein Problem. Bei 365 geht das angeblich nur mit der...
  3. Eine Form kann nicht bearbeitet werden

    in Microsoft PowerPoint Tutorials
    Eine Form kann nicht bearbeitet werden: Eine Form kann nicht bearbeitet werden PowerPoint 2016 für Mac PowerPoint für Mac 2011 Mehr... Weniger Der Support...
  4. Zuletzt bearbeitete Aufgaben poppen immer wieder im Planner auf

    in Microsoft Teams Hilfe
    Zuletzt bearbeitete Aufgaben poppen immer wieder im Planner auf: Hallo liebe Community, Eine Vielzahl an Kollegen berichten beim Öffnen des Planners in Teams von folgendem Problem: Die zuletzt bearbeitete, ihnen zugewiesene Aufgabe **** immer wieder auf. Dies...
  5. Gelesen/Bearbeitet von Mitarbeiter: xyz

    in Microsoft Outlook Hilfe
    Gelesen/Bearbeitet von Mitarbeiter: xyz: Moin moin... entschuldigt bitte den schwammigen Titel aber ich weiß nicht wirklich wie ich das Thema benennen soll... daher weiß ich auch nicht nach was ich wie suchen muss... Das...
  6. Kalender Outlook.de und Outlook365 kann nicht bearbeitet werden

    in Microsoft Outlook Hilfe
    Kalender Outlook.de und Outlook365 kann nicht bearbeitet werden: Hallo an Alle, ich nutze Outlook2016 am Arbeitsplatz und Outlook.de mobil. Unter Kollegen haben wir unseren Kalender freigegeben was auch funktioniert um gegenseitig Termine zu erstellen. Unter...
  7. Dokumentenschutz- bearbeitet-nun Schrift rot-HILFE!!!!

    in Microsoft Word Hilfe
    Dokumentenschutz- bearbeitet-nun Schrift rot-HILFE!!!!: Hallo Ihr, bitte lacht mich nicht aus, denn ich habe echt keinen Plan! Ich muss in meinem Job mit geschützten Dokumenten in Word (keine Ahnung welches, hätte ich mal auf Arbeit schauen sollen,...
  8. suche text den ich aus dem internet geladen und dann bearbeitet habe

    in Microsoft Word Hilfe
    suche text den ich aus dem internet geladen und dann bearbeitet habe: Hallo!! Ich habe ein Word Dokument von meinem Mail-Account geöffnet und dann weiterbearbeitet. Dann habe ich nur auf "speichern" geklickt und nicht auf "speichern unter". Jetzt finde ich das...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden