Abfrage AD

31/10/2008 - 17:22 von Markus Zbinden | Report spam
Hallo

Ich frage aus dem Access 2003 das AD (Win2003) ab und plaziere die Daten
in einer Tabelle. Das funktioniert ganz gut, nur wird das Feld memberOf
nicht abgefüllt. Ist dies, weil es ein multivalued Feld ist? Wie kann ich
das Problem lösen?

vielen Dank für die Hilfe!
Markus


Hier noch die wichtigsten Ausschnitte aus dem Code. Ist sicher nicht
perfekt...:

Dim conn As ADODB.Connection
Dim objConnection, objCommand, objRecordset
Dim strOU, strSelect, strWhere, strOrder, strSQL
...

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
...

strOU = "OU=Firma,OU=xy,OU=yx,"
strSelect = "DistinguishedName, cn, mail, TelephoneNumber,
physicalDeliveryOfficeName, userAccountControl, extensionAttribute1,
extensionAttribute2, givenName, sn, initials, title, streetaddress,
memberOf"
strWhere = "objectCategory='person' AND objectclass='user'"
strOrder = "cn asc"
strSQL = "SELECT " & strSelect & " FROM 'LDAP://" & strOU & strDomain & "'
WHERE " & strWhere & " ORDER BY " & strOrder & ""

objCommand.CommandText = strSQL
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False

Set objRecordset = objCommand.Execute

TabName = "ad"
Table_new (TabName) 'diese Sub erstellt die Tabelle mit den Attributen,
u.a. "Set fld = td.CreateField("memberOf", dbText) / td.Fields.Append fld"

Set NewRecordset = CurrentDb.OpenRecordset("SELECT * FROM AD")

objRecordset.MoveFirst
While Not objRecordset.EOF
NewRecordset.AddNew
For iField = 0 To objRecordset.Fields.Count - 1
NewRecordset.Fields(objRecordset.Fields(iField).Name).Value
= objRecordset.Fields(iField).Value
Next iField
NewRecordset.Update
objRecordset.MoveNext
Wend
conn.Close
...
 

Lesen sie die antworten

#1 Nils Kaczenski [MVP]
01/11/2008 - 15:56 | Warnen spam
Moin,

Markus Zbinden schrieb:
Das funktioniert ganz gut, nur wird das Feld memberOf
nicht abgefüllt.



was soll "abgefüllt" hier heißen? Die Werte landen in der Tabelle? Oder
versuchst du, in das Feld zu schreiben? Das ginge nicht, weil es ein
Backlink ist.

Ist dies, weil es ein multivalued Feld ist? Wie kann
ich das Problem lösen?



Möglich. Wenn du ein Multivalue-Feld abfragst, erhàltst du ein Array
zurück, das du nicht mit einer normalen String-Methode bearbeiten kannst.

Du kannst prüfen, ob das gerade bearbeitete Feld ein Array ist, und wenn
ja, arbeitest du z.B. mit "Join" oder sowas. Guck es dir z.B. in Carmen ab:

[faq-o-matic.net » Carmen: Mit SQL das AD abfragen]
http://www.faq-o-matic.net/2004/10/...-abfragen/


Schöne Grüße, Nils

Nils Kaczenski - MVP Windows Server
www.faq-o-matic.net
Antworten bitte nur in die Newsgroup!
PM: Vorname at Nachname .de
https://mvp.support.microsoft.com/p....Kaczenski

Ähnliche fragen