Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: fsimnetz am Februar 14, 2024, 07:09:15

Titel: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: fsimnetz am Februar 14, 2024, 07:09:15
Guten Morgen,

gibt es eine Möglichkeit den mit der Funktion/Modul "fGetFullNameOfLoggedUser" ausgelesenen User-Namen verkürzt anzeigen zu lassen? Aktuell: Mustermann, Max (XYZ). Ich benötige nur den Namen ohne die Klammer und den Inhalt.

=Right(fGetFullNameOfLoggedUser, 5)

bringt mir chin. Schriftzeichen im Ergebnis  :o

Gruß
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: PhilS am Februar 14, 2024, 08:36:19
Diese Frage solltest du am besten jemandem stellen, der die/das "fGetFullNameOfLoggedUser" kennt.Alternativ könntest hier einen Link zu diesem Ding posten, oder falls es eine überschaubare Funktion ist, auch einfach deren Quellcode.

Zitat von: fsimnetz am Februar 14, 2024, 07:09:15Aktuell: Mustermann, Max (XYZ). Ich benötige nur den Namen ohne die Klammer und den Inhalt.


=Right(fGetFullNameOfLoggedUser, 5)
Right(...,5) liefert dir die ersten 5 Zeichen von rechts. Das ist genau das Gegenteil, von dem was du willst.
Eine Kombination aus Left und InStr erscheint hier vielversprechender.

Ich vermute, dass es aber einen sinnvolleren Ansatz gibt, wenn man sich das obskure fGetFullNameOfLoggedUser anschauen würde. Der Sachverhalt mit den "chinesischen Zeichen" deutet auf eine fehlerhafte Implementierung einer API-Funktion hin.
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: fsimnetz am Februar 14, 2024, 13:26:02
...würde doch noch mal darauf zurückkommen.

den betr. Link findest Du unter
FAQ2.24 donkarl (vollständiger Name des Windows-Benutzers)

mit RIGHT möchte ich erreichen, dass lediglich die Klammer entfernt wird. Der Vor - und Nachname der unterschiedlichen User (jetzt noch mit Klammer/Inhalt) wird in einem Textfeld gespeichert. Aus "optischen" Gründen benötige ich nur den Namen.

Gruß



Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: PhilS am Februar 14, 2024, 14:14:15
Zitat von: fsimnetz am Februar 14, 2024, 13:26:02den betr. Link findest Du unter

FAQ2.24 donkarl (vollständiger Name des Windows-Benutzers)
Das Byte-Array in der Funktion fStrFromPtrW ist falsch dimensioniert.
Ändere mal die Zeile:
ReDim abytBuf(lngLen)Zu:
ReDim abytBuf(lngLen - 1)
Damit ist das Problem mit den "chinesischen Zeichen" gelöst.

Zitat von: fsimnetz am Februar 14, 2024, 13:26:02mit RIGHT möchte ich erreichen, dass lediglich die Klammer entfernt wird.
Wie bereits gesagt: Mit Right erreichst du das Gegenteil.
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: MzKlMu am Februar 14, 2024, 14:15:25
Hallo,
ZitatAus "optischen" Gründen benötige ich nur den Namen.
Ich nehme an, nicht den Namen, sondern den Nachnamen. Und der steht ja nach Deiner Beschreibung an 2. Stelle nach dem Vornamen.

Du solltest Dich mal präzise ausdrücken, was Du willst, mit verkürzt anzeigen dürftest D da nicht weit kommen.
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: fsimnetz am Februar 14, 2024, 14:55:40
 ;D vielen Dank, nach der Korrektur stimmen auch die Zeichen wieder.

Trotzdem komme ich mit meiner Absicht nicht weiter...

Der Benutzername wird hiermit wie folgt ausgegeben: Mustermann, Max (XYZ). Ich benötige für das betreffende Feld im Datensatz lediglich Mustermann, Max (also Nachname, Vorname).

Mit der Funktion(am Bsp. Mustermann..): =left(fGetFullNameOfLoggedUser, 15) erreiche ich den Wegfall der Klammer.

Doch wie ist das nun bei einem anderen User, dessen Benutzername bspw. Müller, Jakob (XYZ) ist und dieser einen Datensatz unter Angabe seines Benutzernamens (durch Druck Button mit obiger Funktion) im Feld Sachbearbeiter ergänzt. Die Zeichenkette seines Nach-/Vornamen hat ja eine andere Länge...

Habe ich einen Denkfehler?

Gruß

 
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: ebs17 am Februar 14, 2024, 15:13:24
Einen String zu kürzen ist doch eine einfache Aufgabe.
Beginne mit der Logik.
-> Ermittle Position der Zeichenfolge " ("  => Instr
-> Verringere Positionszahl um 1 und wende Left an

Eine andere Möglichkeit wäre, per Mustersuche den Ausdruck " (...)" zu ermittel und durch Replace mit Nullstring zu eliminieren.
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: fsimnetz am Februar 14, 2024, 15:49:10
 :(  bekomme ich nicht hin...newbie halt..
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: ebs17 am Februar 14, 2024, 15:58:05
Zitatbekomme ich nicht hin
Die Logik oder die technische Umsetzung?

X = Left("Mustermann, Max (XYZ)", Instr(1, "Mustermann, Max (XYZ)", " (") - 1)
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: MzKlMu am Februar 14, 2024, 16:02:12
Hallo,

=Left(fGetFullNameOfLoggedUser,InStr(fGetFullNameOfLoggedUser," (")-1)
Titel: Re: WinUser nach dem Auslesen verkürzt anzeigen
Beitrag von: fsimnetz am Februar 14, 2024, 16:15:22
DANKE!!

die technische Umsetzung wars.  :-[