La Web del Programador: Comunidad de Programadores
 
    Pregunta:  19270 - COMO CREAR UN RECORSET DE VISUAL BASIC HACIA EXCEL
Autor:  Jesus Mata
Hola:

Gracias por ver mi pregunta.
Estoy haciendo un programa de importación de datos de una hoja de Excel hacia una Base de Datos SQL server 7.0 para ello estoy utilizando Visual Basic 6.0, esta operación ya la habia hecho pero con Access y jalaba perfectamente nada mas que era con la version VB 5.0, ahora que lo tengo que hacer con VB 6.0 me truena el programa en un recordset y me manda el error type mismatch, para que te des una mejor idea de lo que hablo checa este pedaso de codigo.Grasias ojala me puedas ayudar.
Public Sub ImportarXLS()
Dim strImportar As String
Dim dbstemp As Database
Dim ws As Workspace
Dim tbl As DAO.TableDef
Dim otra As Database
Dim Importa As Recordset
Dim nomtbl As String
Dim tblTem As String
Dim nvaBD As ADODB.Connection

nomtbl = frmImportador.txtRuta.Text
Set ws = DBEngine.CreateWorkspace("ODBCWorkspace", "admin", "")
Set dbstemp = OpenDatabase(nomtbl, False, 0, "Excel 5.0;")
Set otra = dbstemp
For Each tbl In otra.TableDefs
tblTem = tbl.Name
Next

Set Importa = dbstemp.OpenRecordset(tblTem, dbOpenDynaset) ' abre la hoja de Excel
' aqui truena**********

para mas aclaraciones por favor escribeme.

  Respuesta:  Javier Perez
Lo que ocurre es que estás mezclando ADODB con DAO. Al abrir la base de datos mediante "OpenDatabase" estás obteniendo una referencia de tipo DAO, pero te encuentras con el problema de que la variable "Importa", que está declarada de tipo "Recordset", corresponde a un recordset de tipo ADODB, ya que tienes referencias ADODB en tu programa. Como "dbstemp.OpenRecordset" genera un recordset de ADO, obtienes el error de tipos incompatibles. Tienes dos posibilidades: o cambias toda la gestión de datos para hacer uso únicamente de ADODB o especificas en cada caso si la variable es de tipo DAO o ADODB al declararla.