Neuigkeiten:

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

Mobiles Hauptmenü

Windows-Benutzernamen auslesen

Begonnen von gromax, März 07, 2015, 19:26:05

⏪ vorheriges - nächstes ⏩

gromax

Liebe Access-Profis,
ich habe in meiner DB eine Mitarbeiter-Verwaltung eingepflegt, in der der Anmelde-Namen im WINDOWS-Netzwerk in einer Tabellenspalte [VER_EDVKonto] eingegeben wird. Zudem finden sich in dieser Tabelle (tbl_VERWALTUNGEN) ein Feld für den Vornamen [VER_Vorname], den Nachnamen [VER_Nachname] und die  Telefon-Kurzwahl [VER_TelKurz]
Nun möchte ich in Abhängigkeit des Anmelde-Konto-Namens auf die Namen und die Kurzwahl für die Verwendung in einem WORD-Dokument zurückgreifen und aus dieser Tabelle die entsprechenden Inhalte den VBA-Variablen zuweisen, die eben in diesem WORD-Dokument ausgegeben werden.
Bisher habe ich dieses sehr umständlich in einer If-Then-Konstruktion hinterlegt; ein Produkt meiner Hilflosigkeit, so dass ich jeden neuen Nutzer mit diesen Textzeilen erfassen müsste.

Public Function fncUserNameWord()
    fncUserNameWord = Environ("username")
    If fncUserNameWord = "abele.alfred" Then
    fncUserNameWord = "Alfred Abele"
End Function


und in Fortsetzung

If fncUserNameWord = "Alfred Abele" Then
  varVER = "Abele, Alfred"
  varTelKu = "401"
  varUnter = "Alfred Abele"


Wie gehe ich dabei vor?
Ich habe schon mit der DLookup-Funktion getestet; hier bin ich aber nicht weiter gekommen.
Wer kann mir einen Weg weisen?

Vielen Dank vorab
gromax

gromax

Hallo Access-Profis,
Ihr glaubt es kaum, ich habe die Lösung selbst geschafft!
Vorab habe ich den Code


Public Function fncUserNameWord()
    fncUserNameWord = Environ("username")
End Function


formuliert.

Nachfolgend


Dim rcsVER As DAO.Recordset
Set rcsVER = CurrentDb.OpenRecordset("tbl_VERWALTUNGEN", , dbOpenDynaset)
If fncUserNameWord = rcsVER.Fields("VER_EDVKonto").Value Then
varUnter = rcsVER.Fields("VER_NameDSC").Value
varTelKu = rcsVER.Fields("VER_Telefon_Kurz").Value
varVER = rcsVER.Fields("VER_Name").Value
End If
Set rcsVER = Nothing


und es funktioniert. Oder was meint Ihr?

Mit stolzgeschwellter Brust
gromax

gromax

Hallo Access-Profis,

zu früh gefreut?!
Wenn ich meinen lokalen Benutzernamen in anderen Datensätzen der tbl_VERWALTUNGEN einpflege, dann bringt er mir nicht den passenden Namen und die passende Kurzwahl!
Wo ist denn der Fehler?
Mir scheint, er vergleicht nur den ersten Datensatz und dann ist Schluss. Kann das sein?

Für Hilfe wie eh und jeh bin ich sehr dankbar
gromax

bahasu

Hi,

den Inhalt von Feldern einer Tabelle unter Angabe einer Bedingung kannst Du mit dem dlookup-Befehl ermitteln:
        varUnter = DLookup("VER_NameDSC", "tbl_VERWALTUNGEN", "VER_EDVKonto = '" & fncUserNameWord & "'")

Gilt unter der Annahme, dass der Suchbegriff ein Text-Feld ist.

Harald
Servus

gromax

Hallo Harald,

vielen Dank!
So funktioniert dies prima! Klasse!

Viele Grüße
gromax