Ver Mensaje Individual
  #1  
Antiguo 29-11-2004
mikexxi2 mikexxi2 is offline
Miembro
 
Registrado: nov 2004
Posts: 10
Reputación: 0
mikexxi2 Va por buen camino
Exportar directo a excel

Buen dia. Necesito enviar informacion de una tabla de acces a excel, mediante delphi, he buscado en los hilos y la unica forma que encuentro es haciendolo registro por registro, esto es muy tardado.
En Visual Basic lo resolvi de la siguiente manera.

Dim wkbObj As Workbook ' Declara una variable de objeto.

Set wkbObj = GetObject("Paso.XLS")
With wkbObj.Worksheets("Hoja1").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=c:\paso.mdb;DefaultDir=c:\;DriverId=25;FIL=MS Access;MaxBuffe" _
), Array("rSize=2048;PageTimeout=5;")), Destination:=wkbObj.Worksheets("Hoja1").Range("A1"))
.CommandText = Array( _
"SELECT *" & Chr(13) & "" & Chr(10) & "FROM `c:\
, "\prueba`.tablaprueba tablaprueba")
.Name = "Consulta desde MS Access Database_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

Como pueden ver esta sentencia pasa de una Base en acces prueba.mdb de una tabla TablaPrueba al archivo Paso.xls, lo hace de forma directa mediante una sentencia SQL con todos sus beneficios, como combinar tablas, condiciones Where, agrupar etc. Ademas es muy rapido, he pasado tablas de mas de 10 000 registros en cosa de segundos.
He intentado adaptar esta sentencia a delphi sin frutos.
Les agradeceria si me ayudan a adaptarla o usar un metodo distinto que haga algo parecido.
Gracias de antemano.
Responder Con Cita