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.
|