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-Key: 135069

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

Printed on: April 20, 2024 at 04:04 o'clock

Member: napperman
napperman Feb 03, 2010 at 13:21:24 (UTC)
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.
Member: DaXXoR
DaXXoR Feb 08, 2010 at 10:03:20 (UTC)
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?
Member: Biber
Biber Feb 08, 2010 at 18:14:17 (UTC)
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
Member: DaXXoR
DaXXoR Feb 09, 2010 at 07:35:32 (UTC)
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
Member: DaXXoR
DaXXoR Feb 22, 2010 at 08:48:29 (UTC)
Goto Top
Kann mir denn keiner helfen!? =(