Usar um objeto Recordset
Como alternativa, você pode usar Recordset.Open para estabelecer implicitamente uma conexão e emitir um comando sobre essa conexão em uma única operação. Por exemplo, no Visual Basic:
Dim oRs As ADODB.Recordset
Dim sConn As String
Dim sSQL as String
sConn = "Provider='SQLOLEDB';Data Source='MySqlServer';" & _ "Initial Catalog='Northwind';Integrated Security='SSPI';"
sSQL = "SELECT ProductID, ProductName, CategoryID, UnitPrice " & _
"FROM Products"
' Create and Open the Recordset object.
Set oRs = New ADODB.Recordset
oRs.CursorLocation = adUseClient
oRs.Open sSQL, sConn, adOpenStatic, _
adLockBatchOptimistic, adCmdText
MsgBox oRs.RecordCount
oRs.MarshalOptions = adMarshalModifiedOnly
' Disconnect the Recordset.
Set oRs.ActiveConnection = Nothing
oRs.Close
Set oRs = Nothing
Observe que oRs.Open usa uma cadeia de conexão (sConn), no lugar de um objeto Connection (oConn), como o valor de seu parâmetro ActiveConnection. Além disso, o tipo de cursor do lado do cliente é imposto com a definição da propriedade CursorLocation no objeto Recordset. Novamente, compare isso com o exemplo HelloData.