Hallo zusammen,
ich möchte alle Namen aus der AD in alphabetisch sortierter Reihenfolge abrufen. Folgenden Code habe ich:
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set rootDSE = GetObject("LDAP://rootDSE")
domainDN = rootDSE.Get("defaultNamingContext")
strFilter = "(&(objectClass=user))"
strAttributes = "Name"
strQuery = "<LDAP://" & domainDN & ">;" & strFilter & ";" & strAttributes & ";subtree"
Set objCommand = CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.Properties("Page Size") = 100
.CommandText = strQuery
End With
Set objRecordSet = objCommand.Execute
objRecordSet.sOrt = "Name"
Leider funktioniert die Sortierung nicht (letzte Codezeile). Ich erhalte dort den Fehler "Der aktuelle Provider unterstützt nicht die erforderliche Schnittstelle für die Sortier- bzw. Filterfunktion". Was kann ich tun, um den Fehler zu beheben und die Ergebnisse zu sortieren?
Vielen Dank im Voraus!
Sort erfordert einen Client Cursor.
Würdest du auch erfahren, wenn du einen Blick in die Hilfe werfen würdest.
Verstehst du denn ungefähr was du tust, oder ist das alles Copy & Paste?
Hallo Markus, das ist hauptsächlich Copy-Paste muss ich gestehen. Es ist auch nichts, was ich alltäglich mache.
Der Thread ist bei mir leider untergegangen.
Falls du es noch nicht gelöst hast:
Grundsätzlich würde ich kein Command Execute verwenden um Daten zurückzugeben, sondern immer Recordset open, da hast du dann die volle Kontrolle.
Ich würde es so versuchen - Achtung Luftcode:
dim rs as adodb.Recordset
set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open objCommand, , adOpenStatic, adLockBatchOptimistic
rs.Sort = "Name desc"