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