FAQ Access – Daten aus dem Active Directory auslesen
Access VBA – Daten aus dem Active Directory auslesen
Problem :
Das Access wird in vielen Fällen genutzt, um die Daten der Benutzer und Geräte in einem Netzwerk zu verwalten.Im Rahmen dieser Verwaltung ist es sehr hilfreich, wenn die Daten des angemeldeten Benutzer ausgelesen und verarbeitet weren können.
Problemlösung:
Wir Erzeugen uns eine neue VBA Funktion, zum Beispiel mit dem bezaubernden Namen ADInfo().
Im Rahmen dieser Funktion definieren wir eine Variable, mit der wir das Active Directory (AD) abfragen wollen.
Dim oADInfo As Object Set oADInfo = CreateObject("ADSystemInfo")
Der angemeldete Benuter landet ebenfalls in einer Variable, dabei nehmen wir den User einmal als Textvariable, um seinen Namen zu speichern und einmal als Object, um den Benutzer samt seiner Eigenschaften dort zu speichern
Dim oUser As Object, vUser As String
Nun füllen wir die Variable vUser mit den Daten des angeldeten Users.
vUser = oADInfo.UserName
Interressant ist dabei, das hier nicht nur der Benutzername ermittelt wird, sondern seine Komplettinfo.
Nach dem Füllen steht hier beispielhaft folgendes:
CN=Q431302,OU=Benutzer,OU=OE 43,OU=FB,OU=Verwaltung,DC=VH,DC=LH,DC=Hannover-Stadt,DC=de
Diese Informationnutzen wir nun im nächsten Schritt, um uns die einzelnen Felder des AD zu schnappen und auszulesen.
Zu diesem Zwecke definieren wir eine reihe von Variablen.
Dim vMailAdresse As String, vName As String, vVorname As String, vStrasse As String
Diese Variablen füllen wir nun, in dem wir die Eigenschaften des Benutzers auslesen und in die Variablen packen.
vMailAdresse = oUser.mail vName = oUser.cn vVorname = oUser.givenName vStrasse = oUser.streetAddress
Im Anschluß daran kann mit diesen Informationen natürlich allerlei machen, in Tabellen schreiben, anzeigen etc.
Hier nochmal alles auf einmal für das Copy and Paste Erlebnis…..
Public Function ADInfos()
Dim oADInfo As Object Dim oUser As Object, vUser As String Dim vMailAdresse As String, vName As String, vVorname As String, vStrasse As String
Set oADInfo = CreateObject("ADSystemInfo") vUser = oADInfo.UserName Set oUser = GetObject("LDAP://" & vUser)
vMailAdresse = oUser.mail vName = oUser.cn vVorname = oUser.givenName vStrasse = oUser.streetAddress
Set oUser = Nothing Set oADInfo = Nothing
End function