lordofremixes
Goto Top

Name und Vorname aus AD in Access Feld importieren

Hallo, ich suche eine Möglichkeit aus dem AD den Vorname und Nachname in ein Textfeld in Access 2010 zu importieren.

Hallo zusammen,

im Internet habe ich dazu folgenden Code gefunden. Leider funktioniert das nicht.

On Error Resume Next
Dim qQuery, objSysInfo, objuser
' Active Directory Informationen für den angemeldeten User lesen
Set objSysInfo = CreateObject("ADSystemInfo")
objSysInfo.RefreshSchemaCache
qQuery = "LDAP://" & objSysInfo.UserName
Set objuser = GetObject(qQuery)
Bezeichnungsfeld186.Caption = objuser.FullName


Meine Frage:

1 Ist der Code überhaupt richtig, um Vor- und Nachname zu bekommen?
2 Wo in Access muss dieser Code dann rein? Unter Ereignis welcher Eigenschaft soll ich diesen Code dann zuweisen?
3 Wie schreibe ich die LDAP Adresse richtig, wenn unser AD Server S10 heißt?

Wäre wirklich verdammt froh, wenn mir jemand helfen könnte?

Gruß
lordofremixes

Content-ID: 177155

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

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Medusaman
Medusaman 02.12.2011 um 10:05:00 Uhr
Goto Top
Hallo lordofremixes,

ich lese per VB-Script die Daten aus dem LDAP und schiebe sie in die Benutzerinformationen im Word.
Vielleicht hilft dir das weiter:

Set objSysInfo = CreateObject("ADSystemInfo")   
strUser = objSysInfo.UserName 
Set objUser = GetObject("LDAP://" & strUser)   
Set objWord = CreateObject("Word.Application")   
objWord.UserName = objUser.givenName & " " & objUser.SN  
objWord.UserInitials = Left(objUser.givenName, 1) & ". " & Left(objUser.SN, 1) & "."  
objWord.Quit

Grüße Medusaman
lordofremixes
lordofremixes 02.12.2011 um 10:08:32 Uhr
Goto Top
Hallo Medusaman,

ich glaube das bringt mit so nichts. Warum soll ich die bekommenen Informationen in Word schieben, das geht doch bestimmt auch direkt dass ich in Access in ein Ereignis einen Code reinschreibe, oder nicht?

Gruß
lordofremixes
Medusaman
Medusaman 02.12.2011 um 10:20:58 Uhr
Goto Top
Möglich, damit hab ich mich noch nicht beschäftigt, aber du kannst ja schon mal sehen, das ich den kompletten Username so auslese:

objUser.givenName & " " & objUser.SN   

du macht das mit:

objSysInfo.UserName

So wie ich das sehe ließt du damit aber den direkten Nutzername in der Domain aus, Sprich du ließt z.B. nicht "Max Mustermann" sondern "mmustermann" aus.
Eben den Anmeldename.
lordofremixes
lordofremixes 02.12.2011 um 10:41:13 Uhr
Goto Top
ah ok, guer tipp
benötige die Daten nämlich dann in dieser Form:
Nachname, Vorname also zum Beispiel Mustermann, Max

shit , hat denn hier keiner eine fertige Lösung?
Medusaman
Medusaman 02.12.2011 um 11:05:57 Uhr
Goto Top
Ich versuch mich gerade selbst an deinem Problem.
Wenn ich eine Lösung habe sag ich bescheid face-smile
lordofremixes
lordofremixes 02.12.2011 um 11:09:30 Uhr
Goto Top
ok, bin gerade auch am googlen..
Vielen Dank für deine Hilfe !!!

gruß
lordofremixes
Medusaman
Medusaman 02.12.2011 um 11:19:52 Uhr
Goto Top
So, ein kleiner Teilerfolg.
Wenn du in der Entwurfsansicht deines Formulars bist, klickst du auf Ansicht --> Code
Da wählst du in dem ersten Auswahlfeld dein Objekt aus, z.B. "Bezeichnungsfeld0" und im Zweiten die Aktion mit der der Code ausgeführt werden soll, z.B. "Click".
Dadurch wird dir folgender Code eingefügt:

Private Sub Bezeichnungsfeld0_Click()

End Sub
Dazwischen hab ich einfach mein Script eingefügt und angepasst:

Private Sub Bezeichnungsfeld0_Click()
On Error Resume Next
Dim strUser, objSysInfo, objuser
Set objSysInfo = CreateObject("ADSystemInfo")  
strUser = objSysInfo.Username
Set objuser = GetObject("LDAP://" & strUser)  
Bezeichnungsfeld0.Caption = objuser.Username
End Sub

Allerdings schreibt er bei mir nichts rein.
Wenn ich das "objuser.Username gegen "Hallo" austausche, funktioniert es aber.
Medusaman
Medusaman 02.12.2011 um 11:27:31 Uhr
Goto Top
Ok ich hab's noch mal getestet.
Mit

Bezeichnungsfeld0.Caption = objuser.givenName & " " & objuser.SN  

funktioniert es.
Kannst es ja mal bei dir testen.

Gruß
Medusaman
Medusaman 02.12.2011 um 11:44:31 Uhr
Goto Top
lol

Noch eine Verbesserung:

Private Sub Form_Load()
On Error Resume Next
Dim strUser, objSysInfo, objuser
Set objSysInfo = CreateObject("ADSystemInfo")  
strUser = objSysInfo.Username
Set objuser = GetObject("LDAP://" & strUser)  
Bezeichnungsfeld0.Caption = objuser.givenName & " " & objuser.SN  
End Sub

Dadurch wird das Bezeichnungsfeld0 beim Laden des Formulars mit dem Vor- und Nachname befüllt.
60730
60730 02.12.2011 um 12:04:29 Uhr
Goto Top
Moin,

(OT)
Zitat von @lordofremixes:
shit , hat denn hier keiner eine fertige Lösung?

doch und zwar sowohl als auch - "sowohl" hab ich dir doch im anderen Fred genannt und wegen "auch" da ist mir irgendwie die Lust vergangen..

Vorhin hast du noch zu meinem Kommentar Lustig geschrieben...
Und was machst du draus? läßt du draus machen?

(/OT)

Wenn du das nicht alleine hinbekommst und jetzt erst "da" bist, dann kann es doch mit der fertigen Lösung, die eh nicht funktionieren wird, wie geplant nix werden können.

Steck - oder lass da andere doch nicht noch mehr Zeit reinstecken.

Gruß
lordofremixes
lordofremixes 06.12.2011 um 10:06:56 Uhr
Goto Top
Hallo Medusaman,

ich habe es genau so eingefügt . In der Entwurfsansicht unter Ereignis beim Klicken.
Das Feld bleibt aber leer. Habe das LDAP so beschrieben:

Set objuser = GetObject("LDAP://s10" & strUser)

s10 ist die bezeichnung unseren Servers, wo das Active Directory beinhaltet.
Liegt eventuell hier der Fehler?

Gruß
lordofremixes
Medusaman
Medusaman 07.12.2011 um 10:12:47 Uhr
Goto Top
Hallo lord,

hast du es auch ohne das "s10" probiert?
Das "GetObject("LDAP:" & strUser)" sagt ja das er das Objekt im LDAP mit dem Namen des Wertes "strUser" holen soll.
Da muss du eigentlich keinen Servernamen angeben.

Gruß Medusaman

Edit: Sprich es wird wie folgt ausgeführt:

GetObject(LDAP:
mmustermann)


Dumme Frage, aber hast du auch das Feld, in dem der Name geschrieben werden soll, breiter gezogen nachdem du es eingefügt hast?
lordofremixes
lordofremixes 07.12.2011 um 13:02:21 Uhr
Goto Top
Hallo Medusaman,

so ich habe jetzt sogar ein ganz neues Formular erstellt. Mit nur einem Bezeichnungsfeld, welches ich Bezeichnungsfeld0 genannt habe.

Dann bei Ereignis beim Klicken ausgewählt und den Code so eingefügt.

Private Sub Bezeichnungsfeld0_Click()
On Error Resume Next
Dim strUser, objSysInfo, objuser
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objuser = GetObject("LDAP://" & strUser)
Bezeichnungsfeld0.Caption = objuser.givenName & " " & objuser.SN
End Sub

dieses private sub form_load und end sub habe ich dann entfernt.
Ich bekomme jetzt zwar keine Fehlermeldung mehr, aber im Feld steht dann nur #Name?


So eine Kacke. Weißt du vielleicht noch was?

gruß
lordofremixes