Код, использующий свойство 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