Un ejemplo de como abrir una tabla de varias formas (ten en cuentas que la base de datos es SQL Server). Public Sub SourceX() Dim cnn1 As ADODB.Connection Dim rstTitles As ADODB.Recordset Dim rstPublishers As ADODB.Recordset Dim rstPublishersDirect As ADODB.Recordset Dim rstTitlesPublishers As ADODB.Recordset Dim cmdSQL As ADODB.Command Dim strCnn As String Dim strSQL As String ' Abre una conexión. Set cnn1 = New ADODB.Connection strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " cnn1.Open strCnn ' Abre un objeto Recordset basado en un objeto Command. Set cmdSQL = New ADODB.Command Set cmdSQL.ActiveConnection = cnn1 cmdSQL.CommandText = "Select título, tipo, fecha_pub " & _ "FROM títulos ORDER BY título" Set rstTitles = cmdSQL.Execute() ' Abre un objeto Recordset basado en una tabla. Set rstPublishers = New ADODB.Recordset rstPublishers.Open "editores", strCnn, , , adCmdTable ' Abre un objeto Recordset basado en una tabla. Set rstPublishersDirect = New ADODB.Recordset rstPublishersDirect.Open "publishers", strCnn, , , adCmdTableDirect ' Abre un objeto Recordset basado en una cadena SQL. Set rstTitlesPublishers = New ADODB.Recordset strSQL = "SELECT title_ID AS TitleID, title AS Title, " & _ "publishers.pub_id AS PubID, pub_name AS PubName " & _ "FROM publishers INNER JOIN titles " & _ "ON publishers.pub_id = titles.pub_id " & _ "ORDER BY Title" rstTitlesPublishers.Open strSQL, strCnn, , , adCmdText ' Utiliza la propiedad Source para mostrar el origen de cada uno ' de los conjuntos de resultados. MsgBox "Origen de rstTitles: " & vbCr & _ rstTitles.Source & vbCr & vbCr & _ "Origen de rstPublishers: " & vbCr & _ rstPublishers.Source & vbCr & vbCr & _ "Origen de rstPublishersDirect: " & vbCr & _ rstPublishersDirect.Source & vbCr & vbCr & _ " Origen de rstTitlesPublishers: " & vbCr & _ RstTitlesPublishers. Source RstTitles. Close RstPublishers. Close RstTitlesPublishers. Close Cnn1. Close End Sub