dockmaster-de
Goto Top

Funktionsinhalt in Datenbank schreiben

Hallo,

ich habe eine Funktion die den aktuellen Benutzernamen ausliest. Diesen Inhalt möchte ich jetzt bei jeder Datensatzänderung in die Datenbank (Feld Benutzer) schreiben.

Kann mir jemand helfen?

have a nice day...

DockM@ster

Content-ID: 261032

Url: https://administrator.de/contentid/261032

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

emeriks
emeriks 24.01.2015 um 21:56:35 Uhr
Goto Top
Hi,
denk mal nach! Wie soll man Dir hier qualifiziert anzworten, wenn man weder weiß, was Du da für einen Code hast, noch was für eine Datenbank, noch was eine "Datensatzänderung" hier konkret ist.

Dein Anliegen an sich hört sich sehr simpel an. Mit ein paar "Randinformationen" versorgt, können Dir hier sicher einige gut weiterhelfen.

E.
DockMaster-de
DockMaster-de 24.01.2015 um 23:32:09 Uhr
Goto Top
Hallo,

hier der Code zum auslesen des aktuellen Benutzers:

[Code]
Function fOSUserName() As String
Dim lngLen As Long, lngX As Long
Dim strUserName As String

strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If
End Function
[/Code]

In der Datenbank gibt es ein Feld "Benutzer" in dem der Inhalt der Funktion geschrieben werden soll.
Dies soll beim Anlegen und Ändern des Datensatzes geschehen. Beim Ansehen soll nicht passieren.
Ich möchte nur Wissen wer den Datensatz zuletzt geändet hat.

Version: MSAccess2010

have a nice day...

DockM@ster
emeriks
emeriks 25.01.2015 um 12:59:25 Uhr
Goto Top
Ok.
Code Tags werden hier mit < > geschrieben, nicht mit [ ]. Probiers mal aus.

So, jetzt wissen wir, dass es sich um eine Access DB handelt. Und, dass Du eine eigene VBA-Funktion namens "fOSUserName" hast, die Dir den aktuellen Windows Benutzer liefert.

Schön. Nun benutze ich Google, suche nach "ms access vba use custom function to update field value".
Das liefert z.B. dies. Und da steht eigentlich alles beschrieben.

In addition to using Microsoft Access functions, queries also support user defined functions. Functions defined in VBA modules must return an appropriate value and can be used to manipulate each record. You can reference field values by passing the field name in brackets.
Here is an example where a function (StripLead) is used to remove the leading word of a phrase if it starts with "The", "An", or "A". This is useful for sorting phrases such as book titles on "real" words. .....

Ich hoffe, dass ich Dir auch auf diese Weise helfen konnte.
Ebenfalls einen schönen Tag noch! face-wink

E.
114757
114757 26.01.2015 um 12:40:48 Uhr
Goto Top
Kannst du z.B in folgendem Formular-Event ablaufen lassen:
Private Sub Form_Dirty(Cancel As Integer)
    Me.Benutzer = Application.CurrentUser
End Sub
Das Event tritt immer dann auf wenn es umgespeicherte Änderungen in einem Formular gibt.

Gruß jodel32