LDAP Info über VBA-Makro
Hallo Leute 
Bin neu hier im Forum und brauche dringend Hilfe =(
Ich muss ein Word-Makro schreiben, welches die Daten des angemeldeten Benutzers ausliest (also nicht nur den Anmeldenamen, sondern auch Vorname, Nachname usw.)
Diese Daten muss ich dann in eine Datei einfügen (Vorlagen für Geschäftsbriefe).. Das ist allerdings kein Problem.
Wie bekomme ich die einzelnen Attribute in Variablen? Bei fertigen Sourcecode nach Möglichkeit mit kurzer Erklärung.. Will ja auch was lernen ;)
Das habe ich bis jetzt.. Ich kann zur DB connecten, weiß aber nicht, wie ich die daten darausbekomme:
DaXXoR
Bin neu hier im Forum und brauche dringend Hilfe =(
Ich muss ein Word-Makro schreiben, welches die Daten des angemeldeten Benutzers ausliest (also nicht nur den Anmeldenamen, sondern auch Vorname, Nachname usw.)
Diese Daten muss ich dann in eine Datei einfügen (Vorlagen für Geschäftsbriefe).. Das ist allerdings kein Problem.
Wie bekomme ich die einzelnen Attribute in Variablen? Bei fertigen Sourcecode nach Möglichkeit mit kurzer Erklärung.. Will ja auch was lernen ;)
Das habe ich bis jetzt.. Ich kann zur DB connecten, weiß aber nicht, wie ich die daten darausbekomme:
Set objUser = GetObject("LDAP://CN=Configuration,DC=XXX,DC=de")
DaXXoR
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135069
Url: https://administrator.de/forum/ldap-info-ueber-vba-makro-135069.html
Ausgedruckt am: 21.04.2025 um 10:04 Uhr
5 Kommentare
Neuester Kommentar
Hatte mal irgendwo das hier gefunden:
Sub AutoOpen()
On Error Resume Next
Dim qQuery, objSysInfo, objuser
Dim firma, Name, EMail, Phone, Fax, web, position, Abteilung
If ThisDocument.Name = "Briefvorlage.doc" And _
ThisDocument.Path = "T:\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\hm_srv02\Tausch\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\HM_srv02\Tausch\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\Hm_srv02\Tausch\Briefvorlage_PCC" _
Then
' Active Directory Informationen für den angemeldeten User lesen
Set objSysInfo = CreateObject("ADSystemInfo")
objSysInfo.RefreshSchemaCache
qQuery = "LDAP://" & objSysInfo.UserName
Set objuser = GetObject(qQuery)
'Variablen mit AD-Attributen füllen (es gibt viel mehr Attributen zb. FaxNumber usv.)
firma = objuser.company
Abteilung = objuser.physicalDeliveryOfficeName
Name = objuser.firstname & " " & objuser.lastname
Phone = objuser.TelephoneNumber
Fax = objuser.facsimileTelephoneNumber
EMail = objuser.mail
web = objuser.wwwHomePage
position = objuser.Title
smsEinfügen "smsAbteilung", Abteilung
smsEinfügen "smsTel", "tel: " & Phone
smsEinfügen "smsName", Name
smsEinfügen "smsweb", web
smsEinfügen "smsUnterschrift", Name
smsEinfügen "smsUnterschriftAbteilung", Abteilung
smsEinfügen "smsEmail", EMail
End If
End Sub
Public Sub smsEinfügen(Textmarke, Variable)
' Prozedur zum Einfügen des Wertes ("Variable") an der entsprechenden Textmarke
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then
Selection.GoTo What:=wdGoToBookmark, Name:=Textmarke
Selection.TypeText Variable
End If
End Sub
Die Pfadangaben habe ich hereingepackt, damit das Makro nur in einer Datei an diesem Ort ausgeführt wird.
Die Benutzer sollen die Vorlage nämlich nur nutzen um sich einmalig personalisiertes Briefpapier zu erstellen.
Sub AutoOpen()
On Error Resume Next
Dim qQuery, objSysInfo, objuser
Dim firma, Name, EMail, Phone, Fax, web, position, Abteilung
If ThisDocument.Name = "Briefvorlage.doc" And _
ThisDocument.Path = "T:\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\hm_srv02\Tausch\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\HM_srv02\Tausch\Briefvorlage_PCC" Or _
ThisDocument.Path = "\\Hm_srv02\Tausch\Briefvorlage_PCC" _
Then
' Active Directory Informationen für den angemeldeten User lesen
Set objSysInfo = CreateObject("ADSystemInfo")
objSysInfo.RefreshSchemaCache
qQuery = "LDAP://" & objSysInfo.UserName
Set objuser = GetObject(qQuery)
'Variablen mit AD-Attributen füllen (es gibt viel mehr Attributen zb. FaxNumber usv.)
firma = objuser.company
Abteilung = objuser.physicalDeliveryOfficeName
Name = objuser.firstname & " " & objuser.lastname
Phone = objuser.TelephoneNumber
Fax = objuser.facsimileTelephoneNumber
EMail = objuser.mail
web = objuser.wwwHomePage
position = objuser.Title
smsEinfügen "smsAbteilung", Abteilung
smsEinfügen "smsTel", "tel: " & Phone
smsEinfügen "smsName", Name
smsEinfügen "smsweb", web
smsEinfügen "smsUnterschrift", Name
smsEinfügen "smsUnterschriftAbteilung", Abteilung
smsEinfügen "smsEmail", EMail
End If
End Sub
Public Sub smsEinfügen(Textmarke, Variable)
' Prozedur zum Einfügen des Wertes ("Variable") an der entsprechenden Textmarke
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then
Selection.GoTo What:=wdGoToBookmark, Name:=Textmarke
Selection.TypeText Variable
End If
End Sub
Die Pfadangaben habe ich hereingepackt, damit das Makro nur in einer Datei an diesem Ort ausgeführt wird.
Die Benutzer sollen die Vorlage nämlich nur nutzen um sich einmalig personalisiertes Briefpapier zu erstellen.
Moin DaXXoR
b) darf ich einen Fifty-Fifty-Joker anrufen?
c) ist denn immer noch montach?
d) wie wäre es, wenn du (weil doch das Script eh' noch nicht in Stein gemeißelt ist) einfach mal das "On Error Resume Next" rausnimmst?
Denn die Anweisung ist doch nur dann sinnvoll, wenn der Coder glaubt zu wissen, in welchen Programmzeilen der Schnipsel abgrätschen könnte und das danach Programmzeilen folgen, die damit umgehen können.
Wo genau (welche Codezeile) hat der gemeine Schnarchuser denn zu wenig Rechte?
Grüße
Biber
Zitat von @DaXXoR:
Wenn ich es mit Nutzer-Rechten versuche kommt ständig ein Laufzeitzfehler.. "Zugriff-Verweigert-Fehler"
Woran kann das liegen?
a) ist das jetzt 'ne Suggestivfrage?Wenn ich es mit Nutzer-Rechten versuche kommt ständig ein Laufzeitzfehler.. "Zugriff-Verweigert-Fehler"
Woran kann das liegen?
b) darf ich einen Fifty-Fifty-Joker anrufen?
c) ist denn immer noch montach?
d) wie wäre es, wenn du (weil doch das Script eh' noch nicht in Stein gemeißelt ist) einfach mal das "On Error Resume Next" rausnimmst?
Denn die Anweisung ist doch nur dann sinnvoll, wenn der Coder glaubt zu wissen, in welchen Programmzeilen der Schnipsel abgrätschen könnte und das danach Programmzeilen folgen, die damit umgehen können.
Wo genau (welche Codezeile) hat der gemeine Schnarchuser denn zu wenig Rechte?
Grüße
Biber