У меня тот же метод, который выполняет запрос LDAP в двух разных системах. Метод очень прост:
Public Function AutenticaDominio(ByVal user As String, ByVal ambiente As String) As String
Dim Comm As New ADODB.Command
Dim conn As New ADODB.connection
Dim rs As New ADODB.Recordset
Dim codiceBanca As String
Dim currentAmbiente As String
Dim currentName As String
Dim trovato As Boolean
Dim UserName As String
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADsDSOObject"
conn.Properties("User ID") = "XXX"
conn.Properties("Password") = "XXX"
conn.Open "DS Query", "XXX", "XXX"
Set Comm = CreateObject("ADODB.Command")
Set Comm.ActiveConnection = conn
Comm.CommandText = "SELECT SBAcodicebanca FROM 'LDAP://abc.cde.fgh.it/ou=bank,dc=cde,dc=it' WHERE uid = '" & user & "' and SBAelencoambienti = 'sbacodicesottoambiente=GEST,sbacodiceambiente=PROT,ou=applicazioni,dc=cde,dc=it'"
rs.CursorLocation = adUseClient
Set rs = Comm.Execute
If rs.EOF = False Then
If rs.Fields.Item(0) = "099" Then
Autentica = rs.Fields.Item(0)
Exit Function
Else
Autentica = ""
End If
Else
Autentica = ""
End If
End Function
Оператор rs.execute возвращает «неопределенную ошибку», когда я запускаю метод на Windows XP. Этот метод хорошо работает в Windows 7.
Проект такой же, с теми же ссылками и компонентами.
Кто-нибудь знает, где может быть ошибка?