2016-05-25 8 views
0

ich eine LDAP-Abfrage in VBA ausführen und ein Objekt mit dem Spiel mit GetObject erhalten:Index von Objekt aus LDAP-Abfrage

Set colOU = GetObject("LDAP://OU=LazyPeople,DC=somecompany,DC=com") 
colOU.Filter = Array("user") 

Ich habe durch die colOU worden Looping ein mit For Each-Anweisung:

For Each objADObject In colOU 

Allerdings muss ich eine ListBox mit dem Namen jedes Benutzers aus der colOU präsentieren und den Benutzer einen Eintrag auswählen lassen. Dann möchte ich zu dieser Instanz zurückkehren, (objADObject) von colOU, die der Benutzerauswahl entspricht und die Eigenschaften manipuliert.

Was ich tun möchte, ist ein Index für jede objADObject in jedem Eintrag der ListBox speichern, und verwenden Sie diesen Index, um diese Instanz von colOU, nachdem der Benutzer eine Auswahl trifft. Ich kann jedoch keine Möglichkeit finden, auf colOU Elemente per Index zuzugreifen (.Items, .Item, .Members, .Count und UBound generieren Fehler). Ich war auch nicht erfolgreich beim Versuch, colOU in eine Sammlung zu konvertieren.

Irgendwelche Vorschläge?

Wie kann ich ein Objekt in VBA untersuchen, um herauszufinden, ob es aufgezählt werden kann (was ich in .NET als IEnumerable bezeichnen würde).

Danke.

+0

Können Sie den Code posten? Erste Gedanken, vielleicht nur eine lokale Sammlung/Array zu machen, um all diese Dinge zu verfolgen? –

Antwort

0

Okay, ich habe das herausgefunden.

Offenbar können Sie das Objekt colou nehmen und tun ein:

Set objADObject = colOU.GetObject("user", <RelativeDistinguishedName>) 

und es wird die objADObject auf den korrekten Benutzerobjekt gesetzt. Also habe ich objADObject.name (das ist der RelativeDistinguishedName) einer versteckten Spalte 2 der ListBox zugewiesen. Wenn ich den Wert aus der versteckten Spalte abrufe, kann ich ihn einfach als Variable an colOU.GetObject übergeben und ich werde einen Verweis auf das richtige Benutzerobjekt haben.

Huzzah!

Allerdings würde ich immer noch gerne wissen, ob colOU aufgezählt werden kann, wenn jemand die Antwort kennt.

Verwandte Themen