Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Sortierung von Abfrage

Begonnen von H3llo, November 26, 2024, 15:51:29

⏪ vorheriges - nächstes ⏩

H3llo

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!

markusxy

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?

H3llo

Hallo Markus, das ist hauptsächlich Copy-Paste muss ich gestehen. Es ist auch nichts, was ich alltäglich mache.

markusxy

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"