News

FAQ Access – Daten aus dem Active Directory auslesen

Category:

Access, FAQ

0

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 Sub

 

Tags: ,

Leave a Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.