Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

immer aktuellen Username speichern

Begonnen von Bollerkohl, November 08, 2012, 19:06:01

⏪ vorheriges - nächstes ⏩

Bollerkohl

Hi zusammen,

in einem Unterformular möchte ich in der Spalte User Name den aktuellen User speichern.
Das auslesen des username funktioniert, jedoch wird dieser nicht in der Spalte User Name gespeichert?
Jedesmal wenn ein anderer User (Mitarbeiter) hier einen Eintrag macht werden alle Datensätze mit seinem Username
überschrieben?

Ich habe als Steuerelementinhalt: =fktGetUsername() im ungebundenem Textfeld User Name eingetragen.
Weiterhin das Modul_Username mit folgendem Quelltext erstellt:

Option Compare Database

Public Function fktGetUsername() As String
fktGetUsername = Environ("Username")
End Function


Kann mir bitte jemand weiterhelfen?

Danke Martin

MzKlMu

Hallo,
das kannst Du so nicht machen. Es werden auch nicht alle Datensätze überschrieben, sondern keiner. Im Feld User wird nichts gespeichert.
Das Feld muss an das Tabellenfeld "User" gebunden werden. Es ergibt sich jetzt die Frage, nach welcher Aktion soll der User gespeichert werden?
Nur bei einem neuen Datensatz oder bei einem bestehenden DS, wenn bei einem bestehenden DS bei welcher Änderung in welchem Feld?
Gruß Klaus

Bollerkohl

Hi,

wie kann ich dies machen? Bin nicht so versiert und möchte es auch beim ändern eines DS speichern.

Vielen Dank  :D

MzKlMu

Hallo,
im einfachsten Fall als Ereiegnisprozedur "Nach Aktulisierung eines Feldes das immer geändert wird, z.B. ein Datumsfeld.
Dann so:
Private Sub Feldname_AfterUpdate()
    Me.User = fktGetUsername
End Sub
Gruß Klaus

Bollerkohl

Danke, habe es probiert, irgendwie klappt es nicht  :'(

Kannst du mir ggf. ein kleines Beispiel erstellen? Wäre echt super, kriege bald noch eine Krise mit dieser Urlaubsverwaltung.
Und ein Ende ist auch noch nicht in Sicht.

Danke VG

MzKlMu

Hallo,
Zitatirgendwie klappt es nicht
irgendwie hast Du dann einen Fehler drin.  ::)

Zeige den vollständigen Code und beschreibe genau was nicht funktioniert.
Gruß Klaus

Bollerkohl

Hallo, jetz mein Versuch von gestern:

hier der Code aus dem UF: im Fedl Datum vom

Option Compare Database

Private Sub Datum_von_AfterUpdate()
Me.[User Name] = fktGetUsername
End Sub


In dem Feld wo der Username gespeichert werden soll (Feldname ist: User Name) habe ich nichts geändert.

Nun komme ich hier leider nicht weiter :-(

Danke für eine Unterstützung

MzKlMu

#7
Hallo,
ändere mal wie folgt:

Option Compare Database
Option Explicit '<<< In ausnahmlos jedem Modul einfügen, zwingt zur Variablendeklaration


Private Sub Datum_von_AfterUpdate()
  Me.[User Name] = fktGetUsername
  MsgBox Me.[User Name]
End Sub

Was gibt die MsgBox aus?

Und verwende die Codetags, keine rote Schrift.
Gruß Klaus

Bollerkohl

Hallo und Danke,

es wird egal auf welchem Rechner ich die Einträge mache immer mein Username angezeigt????

Obwohl die Rechner andere Username haben???

Danke VG

DF6GL

Hallo,


ZitatObwohl die Rechner andere Username haben???



Ein Rechner kann keinen Usernamen haben, höchsten seinen RECHNER-Namen....   Vermutlich meldest Du Dich auf den verschiedenen Rechnern mit Deinem Usernamen an (was diesen Effekt erklären würde).


Ansonsten ist die Beschreibung von  MzKLMu bezgl. gebundenem Textfeld zu beachten, wenn der Username in einer Tabelle gespeichert werden soll (und was bei einem Endlosform unbedingte Voraussetzung für die individuelle Darstellung des Usernamens pro Datensatz ist).


Hochladen der DB hier im Forum brächte evtl. schneller Klarheit ins "Dunkel"   ;)

Bollerkohl

Hallo zusammen,

Habe mich vielleicht falsch ausgedrückt, meine Kollegen melden sich mit ihrem Username an, wenn sie aber einträge machen
wird mein Username angezeigt.

Das ist dann schon eigenartig?

Danke VG

DF6GL

Hallo,


lt. dem Code wird der Username erst und nur nach einer Änderung im Feld "Datum_von" eingetragen/geändert.

Wenn der Username nach jeder Änderung an beliebiger Stelle geändert/eingetragen werden soll, dann sollte das Form_BeforeUpdate-Ereignis verwendet werden:

Sub Form_BeforeUpdate(Cancel as Integer)
Me.[User Name] = fktGetUsername
End Sub


Das Formular-Textfeld "User Name"  muss an das entspr. Tabellenfeld gebunden sein (--> Eigenschaft Steuerelementinhalt)


btw: DRINGEND auf Leer- und Sonderzeichen in Namen sowie reservierte Wörter bei der Benamsung verzichten ...