Код, использующий свойство ADSI Parent для возврата Server Name и Port Number, динамического построения Connection String и подключения к SQL Server
Set objConnection = CreateObject(«ADODB.Connection»)
Set objCommand = CreateObject(«ADODB.Command»)
objConnection.Provider = «ADsDSOObject»
objConnection.Open «Active Directory Provider»
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
«Select ADsPath from ?LDAP://CN=Computers,DC=mydomain,DC=com? « _
& «WHERE objectClass=?mS-SQL-SQLDatabase? « _
& «AND mS-SQL-Name=?Northwind?»
& «AND Flags=1»
objCommand.Properties(«Page Size») = 1000
objCommand.Properties(«Timeout») = 30
objCommand.Properties(«Cache Results») = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
 Set objADSI = GetObject(objRecordSet(«ADsPath»).Value)
 Set objADSI = GetObject(objADSI.Parent)
 intPortNum = objADSI.Get(«mS-SQL-TCPIP»)
 Set objADSI = GetObject(objADSI.Parent)
 strSrvName = objADSI.Get(«dNSHostName»)
 strDataSource = strSrvName & «,» & intPortNum
 	objRecordSet.MoveNext
Loop
objConnection.Close
Set objCN = CreateObject(«ADODB.Connection»)
?Set the connection properties to point to the server/database,
?Connection String NT AUTHENTICATION
objCN.Open = «Provider=SQLOLEDB.1;Data Source=» & strDataSource & «;Initial 
Catalog=Northwind;Trusted_Connection=yes»
IF err.number <> 0 Then
 MsgBox «Cannot Connect!» & Err.Number & «, « & Err.Description
ELSE
 MsgBox «Connected Successfully!»
End If
objCN.Close
Set objCN = Nothing

Поделитесь материалом с коллегами и друзьями