Word VBA - LDAP-Abfrage nach otherfacsimileTelephoneNumber - Was kommt da denn zurück?
Moin Kollegen,
ich frage mittels eines VBA-UserForms in Word bestimmte Informationen im AD ab. Zusätzlich muss ich unterscheiden, wenn ein Nutzer neben der eigentlichen Faxnummer noch eine weitere haben könnte und hier kommt es zum Problem.
Ich frage dazu das LDAP-Attribut otherfacsimileTelephoneNumber ab. Der Code funktioniert normal, wenn es leer ist. Aber wenn ich eine Faxnummer dort hinterlegt habe, knallt es sofort und zwar immer mit der Meldung "Typen unverträglich".
Aus der Schema-Dokumentation weiß ich, dass es sich um ein Array handeln muss, was zurückgeliefert wird.
Und daraus brauche ich nur Index-0 als String.
Ich kriege das einfach nicht hin.
Einfangen in ein Array klappt nicht.
Einfangen in eine Variant-Variable und dann mittels CStr-Konversion klappt auch nicht.
Nichtmal ein simples MsgBox funktioniert.
Ich fürchte, ich verstehe nicht, was da zurückkommt.
Kann mir da jemand von Euch helfen?
Hier mal der Script-Code:
Vielleicht ist es nur eine Kleinigkeit und ich sehe den Wald vor lauter Bäumen nicht.
Danke im Vorraus.
Viele Grüße
bdmvg
ich frage mittels eines VBA-UserForms in Word bestimmte Informationen im AD ab. Zusätzlich muss ich unterscheiden, wenn ein Nutzer neben der eigentlichen Faxnummer noch eine weitere haben könnte und hier kommt es zum Problem.
Ich frage dazu das LDAP-Attribut otherfacsimileTelephoneNumber ab. Der Code funktioniert normal, wenn es leer ist. Aber wenn ich eine Faxnummer dort hinterlegt habe, knallt es sofort und zwar immer mit der Meldung "Typen unverträglich".
Aus der Schema-Dokumentation weiß ich, dass es sich um ein Array handeln muss, was zurückgeliefert wird.
Und daraus brauche ich nur Index-0 als String.
Ich kriege das einfach nicht hin.
Einfangen in ein Array klappt nicht.
Einfangen in eine Variant-Variable und dann mittels CStr-Konversion klappt auch nicht.
Nichtmal ein simples MsgBox funktioniert.
Ich fürchte, ich verstehe nicht, was da zurückkommt.
Kann mir da jemand von Euch helfen?
Hier mal der Script-Code:
Dim objRoot, strDomain, objConn, objComm, objRecordset
Dim sFilter, sAttribs, sDepth, sBase, sQuery
Set objRoot = GetObject("LDAP://RootDSE")
strDomain = objRoot.Get("DefaultNamingContext")
Set objConn = CreateObject("ADODB.Connection")
Set objComm = CreateObject("ADODB.Command")
sFilter = "(&(objectClass=person)(sn=" & strNachname & ")(givenName=" & strVorname & "))"
sAttribs = "telephoneNumber,facsimileTelephoneNumber,otherfacsimileTelephoneNumber,mail"
sDepth = "SubTree"
sBase = "<LDAP://" & strDomain & ">"
sQuery = sBase & ";" & sFilter & ";" & sAttribs & ";" & sDepth
objConn.Open "Data Source=Active Directory Provider;Provider=ADsDSOObject"
Set objComm.ActiveConnection = objConn
objComm.Properties("Page Size") = 10000
objComm.CommandText = sQuery
Set objRecordset = objComm.Execute
Dim VariantVal As Variant
Dim StringVal(2) As String
Do Until objRecordset.EOF
Me.Label16.Caption = strVorname & " " & strNachname
Me.Label17.Caption = Nz(objRecordset("telephoneNumber"), "nicht gefunden")
StringVal(1) = CStr(Nz(objRecordset("otherfacsimileTelephoneNumber"), ""))
MsgBox StringVal(1)
If Nz(StringVal(1), "") = "" Then
Me.Label18.Caption = Nz(objRecordset("facsimiletelephoneNumber"), "nicht gefunden")
Else
a = MsgBox("Der Benutzerdatensatz enthält die alternative Fax-Nummer " & objRecordset("otherfacsimileTelephoneNumber") & ". Soll diese verwendet werden, statt der regulären?", vbYesNo)
If a = vbNo Then
Me.Label18.Caption = Nz(objRecordset("facsimiletelephoneNumber"), "nicht gefunden")
Else
Me.Label18.Caption = Nz(objRecordset("otherfacsimiletelephoneNumber"), "nicht gefunden")
End If
End If
objRecordset.MoveNext
Loop
Function Nz(strItem, strReturn)
If IsNull(strItem) Then
Nz = strReturn
Else
Nz = strItem
End If
End Function
Vielleicht ist es nur eine Kleinigkeit und ich sehe den Wald vor lauter Bäumen nicht.
Danke im Vorraus.
Viele Grüße
bdmvg
Please also mark the comments that contributed to the solution of the article
Content-ID: 2555760032
Url: https://administrator.de/contentid/2555760032
Printed on: December 12, 2024 at 17:12 o'clock
2 Comments
Latest comment