Bonjour,
Je développe actuellement une application qui doit lire un annuaire LDAP (Novell) et récupérer certaines données utilisateurs.
Je me connecte sur le LDAP via ADODB.

Lors de mes tests j'ai un problème car j'essaye d'afficher le nom et l'email mais si l'email n'existe pas pour l'un des utilsiateurs j'ai une erreur :
erreur d'exécution 13 : type incompatible. Sur la ligne signalée en remarque
Ma question est que je ne sais pas ce qui est retourné par la requête.
Il semble s'agir d'un tableau. Est-ce quelqu'un a une idée à ce sujet ?
D'avance merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
Private Sub Command1_Click()
 
Dim conn As ADODB.Connection '****
Dim rsSource As ADODB.Recordset '****
Dim mail,sn
 
AdresseIpSource = "x.x.x.x"
DnSourceLdap = "o=toto"
filtreLdapSource = "(objectClass=user)"
 
Set conn = New ADODB.Connection 
conn.Provider = "ADSDSOObject"
 
conn.Properties("User ID") = "cn=admin,o=toto"
conn.Properties("Password") = "tototutu"
conn.Open "ADs Provider"
 
' Connexion à la base Source
mess = "<LDAP://" & AdresseIpSource & "/" & DnSourceLdap & ">;" & filtreLdapSource & ";mail,sn;subtree" 
 
Set rsSource = conn.Execute(mess) 
 
rsSource.MoveFirst
Do Until rsSource.EOF
mail= rsSource.Fields(0).Value
sn = rsSource.Fields(1).Value
 
If sn(0) <> "" Then
Debug.Print " " & sn(0) 
End If
 
If mail(0) <> "" Then ' <-- Ligne provoquant l'erreur
Debug.Print " " & mail(0)
End If
 
rsSource.MoveNext
Loop
 
End Sub