Clever-Excel-Forum

Normale Version: VBA - LDAP-Abfrage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Code:
Allerdings kommt es nicht selten vor, dass es mehrere Personen mit identischem Vor- und Nachnamen gibt
Ein Database enthält keien doppelte Einträge.
Irgendwie muss es ein Unterschied geben.
Gerade dass sollte du benützen
Oh ja da sprichst du was Richtiges an, was ich aber so nicht bewerten kann.

Ich versuche es mal genauer zu schildern:
Ich habe Vorname und Nachname - beides ist gegeben. Der SamAccountName ist individuell und einmalig, allerdings kenne ich diesen zu den Personen zunächst nicht. Wonach ich innerhalb der Abfrage in der UserForm bewerte, ob es "die richtige Person" ist, wäre das LDAP-Feld "Departement", allerdings kommen da diverse in Betracht, die ich so adhoc nicht auflisten kann. Wenn ich das Departement allerdings sehe, weiß ich, dass es richtig ist. Da wären dann sowas wie "Abteilung X Berlin" oder "Abteilung Y Berlin" oder "Hotel Z Neu-Kölln" etc pp.

Puh, schwierig zu beschreiben aber ich hoffe, dass es verständlich war.

P.S.: Ich habe gerade alle LDAP-Felder durchforstet und ggf. habe ich eine Gemeinsamkeit festgestellt. Allerdings befindet sich die Gemeinsamkeit innerhalb einer Zeichenfolge und nicht die gesamte Zeichenfolge. Es handelt sich um das Feld "MemberOf". Kann man mit Excel-Funktion =Links , =Teil etc. da etwas konstruieren? Oder aber die Zeichenkette mit Sternchen als Platzhalter suchen?
Ich würde meine Anfrage noch mal hochziehen wollen. Ich versuche seit geraumer Zeit, die Platzhaltersuche in den Filter einzubauen - bekomme es aber nicht hin. Hat Wer eine idee?
Hallöchen,

Du kannst z.B. mit like was in einer Zeichenfolge suchen, z.B. diese Zeichenfolge --> "*" & zeichenfolge & "*"
Danke schauan für deine Hilfe - ich glaube so funktioniert es, aber nur in der Theorie. Beim Ausführen stürzt Excel ab. Ich befürchte, dass das so nix wird
Hallöchen,

die Zeichenfolge hast Du aber als Zeichenfolge?

Code:
Sub test()
Dim a$, b$
a = "Wermuth"
b = "mut"
If a Like "*" & b & "*" Then MsgBox "ok" Else MsgBox "niO"
b = "mutti"
If a Like "*" & b & "*" Then MsgBox "ok" Else MsgBox "niO"
End Sub
Ich glaube, der Code arbeitet schon richtig - allerdings meckert er bei dem Filter des LDAP-Verzeichnisses und stürzt dann ab.
Hallöchen,
Ich dachte, du willst das Ergebnis prüfen.
Bei Datenbank Abfragen nimmt man ggf. andere Wildcards, % und _
Aber ob das direkt in der LDAP Abfrage geht kann ich nicht sagen.
Ok aber vielen Dank... Die Wildcards habe ich auch schon getestet. Ich versuche weiter :/
Hallöchen,

wenn man mit einer Abfrage mehrere Datensätze erhält, dann

gehe man die in einer Schleife durch, z.B.

Im Prinzip
Do Until adoRecordset.EOF
strDN = adoRecordset.Fields("distinguishedName").Value 'hier irgendein Feld das aktuellen Datensatzes abfragen
'... irgendwas tun, andere Felder abfragen, etc
adoRecordset.MoveNext
Loop

oder übernimmt das komplette recordset. Geht z.B. mit getrows in eine Variable, im Prinzip

Dim arrRS()
'...
arrRS() = adoRecordset.GetRows()
'Übertrag in ein Blatt
Cells(2, 1).Resize(UBound(arrRS, 2) + 1, UBound(arrRS, 1) + 1).Value = WorksheetFunction.Transpose(arrRS())
'oder in einer Schleife die Items des Array prüfen ...
Seiten: 1 2 3