daxxor
Goto Top

LDAP Info über VBA-Makro

Hallo Leute face-smile
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

Content-ID: 135069

Url: https://administrator.de/forum/ldap-info-ueber-vba-makro-135069.html

Ausgedruckt am: 21.04.2025 um 10:04 Uhr

napperman
napperman 03.02.2010 um 14:21:24 Uhr
Goto Top
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.
DaXXoR
DaXXoR 08.02.2010 um 11:03:20 Uhr
Goto Top
Hey,
danke erstmal für den Tipp!
hat super funktioniert.
Allerdings nur mit Administrator-Rechten. Wenn ich es mit Nutzer-Rechten versuche kommt ständig ein Laufzeitzfehler.. "Zugriff-Verweigert-Fehler"
Woran kann das liegen?
Biber
Biber 08.02.2010 um 19:14:17 Uhr
Goto Top
Moin DaXXoR

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?
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
DaXXoR
DaXXoR 09.02.2010 um 08:35:32 Uhr
Goto Top
a) Keineswegs
b) wenn es dir hilft, mir zu helfen ;)
c) Jetzt nichmehr =)
d) Auf die Idee binn ich auch gekommen. Sonst wär ja keine Fehlermeldung zu sehen gewesen

Fehler kommt bei folgener Programmzeile

objSysInfo.RefreshSchemaCache
DaXXoR
DaXXoR 22.02.2010 um 09:48:29 Uhr
Goto Top
Kann mir denn keiner helfen!? =(