Una manera más de llevar registros hacia Excel, esta vez usando OLEDB. Cortesía de Çetin Basöz, MVP de VFP.
Local oRS as AdoDB.Recordset,oRS2 as AdoDB.Recordset,oCon as AdoDB.Connection oCon = CreateObject('ADODB.connection') oCon.ConnectionString = "Provider=VFPOLEDB;Data Source="+_samples+"data\testdata.dbc" oCon.Open oRS = oCon.Execute('select * from employee') oRs.Save('disconnectme.rst') oRS2 = CreateObject('ADODB.Recordset') oRs2.Open('disconnectme.rst') oExcel = Createobject('Excel.Application') With oExcel .Workbooks.Add .Visible = .T. .ActiveWorkbook.ActiveSheet.QueryTables.Add( oRS2, .Range("A1")).Refresh Endwith Erase 'disconnectme.rst'
Nota del editor: Lo anterior no se limita a extracción de datos de Visual FoxPro, puede ser para cualquier otro manejador de base de datos del cual se tenga un OLEDB Provider instalado (MS-SQLServer, MySQL, PostgreSQL, Oracle, etc).
Çetin Basöz
MS Foxpro MVP, MCP
Quizas me puedas ayudar ya que me quebre un rato al cabeza y no lo logre, al usar esta linea:
ResponderBorraroRS = oCon.Execute('select * from employee')
Si uso el SELECT condicionado me dice que la columna no existe
Ej: oRS = oCon.Execute('select * from employee where Campo = Variable') entiendase campo por el campo de tu table y variable la variable que estas comparando. Pues ahi es exactamente donde me da el error.
Pregunta, que estoy haciendo mal, alguna sugerencia?
Muchas gracias por cualquier respuesta.
Hola...
BorrarTen en cuenta que el método Execute no reconoserá variabale al ejecutar el select. Lo que puedes hacer es ensamblar el select pasando el contenido de la variable, also así:
oRS = oCon.Execute("select * from employee where Campo = '" + alltrim(Variable) + "'")
Hola...
ResponderBorrarTen en cuenta que el método Execute no reconoce variables, por lo cual deben ensamblar el select pasando el contenido de la variable, algo así:
oRS = oCon.Execute("select * from employee where Campo = '" + alltrim(Variable) + "'")