Office: (Office 2016) Domwert im Steuerelementinhalt

Helfe beim Thema Domwert im Steuerelementinhalt in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich habe in meinem Formular ( Access 2016 ) ein Textfeld erstellt wo im Steuerelementinhalt „Anwender_Name“ der aktuelle angemeldete User eingetragen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von transputer, 29. März 2020.

  1. Domwert im Steuerelementinhalt


    Ich habe in meinem Formular ( Access 2016 ) ein Textfeld erstellt wo im Steuerelementinhalt „Anwender_Name“ der aktuelle angemeldete User eingetragen wird.
    Bei Standartwert ist =fktGetUsername() eingetragen.
    Die passende Funktion Ist auch angelegt.

    Code:
    Soweit klappt das auch sehr gut.
    Leider müssen sich alle User bei uns in Windows mit einem Kürzel anmelden. So wird zum Beispiel beim starten der Datenbank in das Textfeld „Anwender_Name“ KPrtv und nicht der richtige Name eingetragen.
    Mit dem Namen kann eigentlich später beim ausdrucken von dem Bericht keiner so richtig was anfangen.

    Ich habe jetzt eine Tabelle T_Benutzernamen mit den Feldern User_ID und User_Name angelegt.
    Wie bekomme ich jetzt hin, wenn der User KPrtv( User_ID) sich anmeldet, dass nicht das Kürzel von ihm im Steuerelementinhalt „Anwender_Name“ eingetragen wird, sondern Meier (User_Name)
    aus der Tabelle T_Benutzernamen.


    Ich habe schon alle möglichen Varianten ausprobiert, bekomme es ( Anfänger ) aber einfach nicht hin. Entweder erscheint in dem Feld #Name? oder das Feld blinkt unaufhörlich.
    Die aktuelle Variante die ich z.Zt. ausprobiere ist

    Code:
    Wobei ich mit "NA01" gar nichts anfangen kann.
    Kann mir bitte jemand helfen, den Code so abzuändern, das er funktioniert.

    Vielen
    Dank

    :)
     
    transputer, 29. März 2020
    #1
  2. Moin,
    du musst ja nach wie vor den aktuellen User auslesen, probiers mal so:
    Code:
    maike
     
    maikek, 31. März 2020
    #2
  3. knobbi38, 31. März 2020
    #3
  4. Domwert im Steuerelementinhalt

    Hallo,

    vielen Dank für die Antwort. Leider wird auch bei diesem Code im Textfeld #Name? ausgegeben.

    Wenn ich im Textfeld bei Steuerelementinhalt ganz normal das Feld aus der Tabelle angebe, wird der angemeldete Windows User z.B. kplrt angezeigt.

    Danke
    Transputer
     
    transputer, 31. März 2020
    #4
  5. Hallo,

    ja sorry, das stimmt. Vielleicht sollte ich doch ein wenig geduldiger sein.

    Entschuldigung nochmal.

    Transputer
     
    transputer, 31. März 2020
    #5
  6. Moin,

    #Name? bedeutet, dass der Feldname, der in Steuerelementinhalt angegeben ist, in der Datenquelle nicht gefunden wird.
     
    drambeldier, 31. März 2020
    #6
  7. Wenn der Fehler #Name erscheint, ist oft irgendwas falsch geschrieben.
    Heißt deine Tabelle wie im ersten Post im Text angegeben: T_Benutzernamen oder wie im Code T_Benutzername?
    maike
     
    maikek, 31. März 2020
    #7
  8. Domwert im Steuerelementinhalt

    Hallo,

    ich habe die Schreibweise überprüft, alles in dem Code ist richtig geschrieben.

    Code:
    Meine Tabelle heißt T_Benutzername und die Feldnamen lauten User_Name, User_ID und der Autowert ID.
    Wenn ich bei Steuerelementinhalt DomWert anwende, muss ich dann bei dem Textfeld bei Standartwert den Eintrag Code:
    und die Funktion


    Code:
    entfernen?


    Ich habe den Eintrag =fktGetUsername() mal Testweise rausgenommen, aber auch ohne Erfolg, bleibt weiterhin #Name?

    Danke
    Edgar
     
    transputer, 31. März 2020
    #8
  9. Möglicherweise müssen noch Hochkomma um den Vergleichsstring:
    Code:
    maike
     
    maikek, 31. März 2020
    #9
  10. Sorry, leider funktioniert auch dieser Code einfach nicht. Immer wieder #Name?

    Code:
     
    transputer, 31. März 2020
    #10
  11. Hallo Edgar,

    tatsächlich kennt der Ausdrucksgenerator die Funktion Environ() (oder in dt. Umgebung) nicht und kann diesen Ausdruck deshalb nicht auflösen. Darum auch die Fehlermeldung "#Name?"

    Die Lösung ist aber einfach:
    in einem Modul legst du eine Funktion an, um den Anmeldename zu erhalten
    Code:
    Speichern des Moduls nicht vergessen!

    Und dann wird bei der Textbox->Steuerelementinhalt folgender Ausdruck eingetragen: Code:
    Später kannst du dann die Funktion GetUserName() durch eine andere Funktion ersetzen, die anstatt eine Umgebungsvariable auszulesen, den Anmeldenamen mit einem entsprechenden API-Aufruf ermittelt und zurück gibt.

    Gruß Ulrich
     
    knobbi38, 31. März 2020
    #11
  12. Hallo Ulrich,

    super, vielen Dank. Jetzt bin ich schon einen großen Schritt weiter. Jetzt wird das Userkürzel im Textfeld durch den Namen aus meiner Tabelle im Formular ersetzt.
    Jetzt die schlechte Nachricht. Wenn der neue Datensatz abgespeichert werden soll, kommt die Fehlermeldung, sie können nicht zum nächsten Datensatz springen.
    Wenn ich in der Tabelle wo alle Datensätzte enthalten sind, bei dem Textfeld für den Usernamen bei "Eingabe erforderlich" nein eingebe, kann ich zwar zum nächten Datensatz springen, aber das Feld bleibt dann leer.
    Das Textfeld selber ist auch nicht gespeert.
    Ich muss auch gestehen, mit dem letzten Satz von Dir, weiß ich nichts anzufangen.
    "Später kannst du dann die Funktion GetUserName() durch eine andere Funktion ersetzen, die anstatt eine Umgebungsvariable auszulesen, den Anmeldenamen mit einem entsprechenden API-Aufruf ermittelt und zurück gibt" *sos

    Gruß
    Edgar
     
    transputer, 31. März 2020
    #12
  13. Domwert im Steuerelementinhalt

    Hallo Edgar,

    der letzte Satz ist für das eigentliche Problem nicht relevant.

    Wenn du einen Ausdruck als Steuerelementinhalt in einer Textbox verwendest, ist diese nicht an ein Datenfeld gebunden und der Inhalt wird nur angezeigt. So eine Textbox kann nicht mehr für eine Eingabe verwendet werden.

    Wenn du den User in deinem DS mit abspeichern möchtest, müßtest du das anders gestalten. Normalerweise werden keine Usernamen direkt gespeichert, sondern nur ein Fremdschlüssel auf den Primarykey deiner Tabelle mit den Benutzernamen. Beide Tabellen stehen dann in Beziehung zueinandern und die beteiligten Felder bilden eine Relation.

    Da dann nur die IDs gespeichert werden, muß zum einen der Anmeldename in eine ID umgewandelt werden und für die Anzeige das Pendant, die Umwandlung der ID in den Anzeigenamen, erfolgen.

    In VBA wäre das jetzt kein Problem, aber ohne VBA, nur mit Ausdrücken, wird das etwas schwieriger.

    Am besten du lädst eine Beispiel-DB hier hoch.

    Gruß Ulrich
     
    knobbi38, 1. April 2020
    #13
  14. Hallo Ulrich,

    finde ich echt super, das Du mir mit der Datenbank so weiterhelfen willst. Die Datenbank ist bestimmt nicht so, wie sie ein Profi erstellen würde. Wenn das aber mit dem Usernamen klappt, würde mir das vollkommen reichen und wäre echt spitze.

    Im rechten oberen Feld sollte bei einer neuen Weisung aus z.B fsepa aus der Tabelle T_Benutzername Mr.xyz werden.

    Gruß
    Edgar
     
    transputer, 1. April 2020
    #14
  15. Hallo Edgar,

    hier mal eine Version mit den Benutzernamen. Da sich jetzt die Struktur geändert hat, mußt du die anderen Dinge natürlich anpassen, aber das überlasse ich dann dir. Als Beispiel habe ich dir noch ein paar Beziehungen für die Tabelle mit den Anmeldenamen angelegt.

    Noch ein paar Anmerkungen:
    - Anstatt je ein Feld für Datum und Zeit zu verwenden, ist es besser, nur ein gemeinsames Feld dafür zu nehmen (siehe T_Login/Timestamp).
    - die alten DoMenuItem Anweisungen solltest du durch die neuen Varianten ersetzen.
    - die Bennungen der Steuerelemente solltest du nochmal überdenken. "Text54" ist nicht gerade aussagekräftig und Steuerelemente sollten nicht den gleichen Namen haben, wie die gebundenen Felder, sonst macht das Probleme!!!

    Gruß Ulrich
     
    knobbi38, 1. April 2020
    #15
Thema:

Domwert im Steuerelementinhalt

Die Seite wird geladen...
  1. Domwert im Steuerelementinhalt - Similar Threads - Domwert Steuerelementinhalt

  2. Domwert

    in Microsoft Access Hilfe
    Domwert: Ich verzweifelt gerade wieder an einer bestimmt einfachen Access Aufgabe. Ich möchte das bei Eingabe in mein Formular für 01ePrüfung , das Feld „LKZname“ ausgefüllt wird, bei der Eingabe der...
  3. DomWert mit 3 Kriterien (Zahl und Text)

    in Microsoft Access Hilfe
    DomWert mit 3 Kriterien (Zahl und Text): Hallo, ich habe einen Bericht in dem ich nach 3 Kriterien aus einer Tabelle einen Wert holen muss. Die Werte Personalnummer und KW sind als Zahl im Bericht (Detailbereich) enthalten. Das dritte...
  4. Syntax DLookUp / DomWert mit Kriterium

    in Microsoft Access Hilfe
    Syntax DLookUp / DomWert mit Kriterium: Hallo Forum, ich scheitere gerade kläglich an einer DomWert-Abfrage, bei der sich das Kriterium auf ein berechnetes Textfeld im Formular bezieht:...
  5. Domwert in Formular bringt nur Fehler

    in Microsoft Access Hilfe
    Domwert in Formular bringt nur Fehler: Hallo, in einem Formular habe ich mehrere Textfelder. Diese will ich mit Inhalten aus Abfragen befüllen, abhängig von einem Wert in einem anderen Textfeld im gleichen Formular. Mein Ansatz war...
  6. DomWert in ungebundenem Textfeld

    in Microsoft Access Hilfe
    DomWert in ungebundenem Textfeld: Hallo, ich arbeite im meiner DB mit Nummernkreisen für Proben. Diese Nummernkreise habe ich einer Tabelle angelegt. Tabelle: tblNumRange Felder: NRFirst (=erster Wert; Zahl Long), NRLast...
  7. DomWert im Formular oder DomWert in Abfrage

    in Microsoft Access Hilfe
    DomWert im Formular oder DomWert in Abfrage: Hallo Alle, ich habe die Erfahrung gemacht, wenn ich Domwert im Formular in einem Textfeld einsetze, dann ist die Berechnung viel schneller als wenn ich Domwert in eine Abfrage einsetze. Mein...
  8. DomWert - Unterformular - Kriterium

    in Microsoft Access Hilfe
    DomWert - Unterformular - Kriterium: Hallo zusammen, zur Erstellung von Bestellungen habe ich folgende Formulare und Tabellen erstellt. frm_Bestellungen ==> tbl_Bestellungen subfrm_Bestelldetails ==> tbl_Bestelldetails Im...
  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