Pasar de access a excel
Tengo un problema al volcar los datos de Access a Excel
hago dos consultas a una base de datos, en una obtengo 6 campos de la base de datos y los vuelco a una hoja de excel mediante CopyFromRecordSet para que me copie todos los registros juntos, de un golpe.
.Worksheets("Datos").SELECT
Set rsInformeDatos = CurrentDb.OpenRecordset(sqlSubqueryDatos)
.Sheets("Datos").Cells(2, 1). CopyFromRecordset rsInformeDatos
RsInformeDatos. Close
La segunda consulta tiene 3 campos, un dato de la tabla, una cuenta del número de campos implicados y una suma del valor de otro campo. Al intentar volcar los datos de esta consulta al excel NO me da error, pero no me escribe nada en las celdas correspondientes, la consulta esta bien hecha, lo he comprobado volcando los datos de uno en uno, el problema es que tarda demasiado.
Dim i As Integer
i = 2
While Not (rsInformeDatos.EOF)
.ActiveWorkbook.Sheets("Datos").Cells(i, 1) = rsInformeCartera. Fields(0). Value
.ActiveWorkbook.Sheets("Datos").Cells(i, 2) = rsInformeCartera. Fields(1). Value
.ActiveWorkbook.Sheets("Datos").Cells(i, 3) = rsInformeCartera. Fields(2). Value
i = i + 1
RsInformeCartera. MoveNext
Wend
RsInformeDatos. Close
¿Se le ocurre alguna solución? ¿Dónde podría estar el problema?
También he probado con la función
RsInformeDatos. GetRows
Y volcandolo en una variable miTabla. Cuando estoy traceando y voy a ver que tiene solo me muestra el valor de una fila. Para poder obtener los datos lo que he hecho es meterlo dentro del bucle, pero tarda lo mismo que obteniéndolo directamente del recorset.
La variable mi tabla no me deja definirla como una matriz ya que me dice que el contenido de rsInformeDatos. GetRows NO LO PUEDE VOLCAR EN UNA MATRIZ.
hago dos consultas a una base de datos, en una obtengo 6 campos de la base de datos y los vuelco a una hoja de excel mediante CopyFromRecordSet para que me copie todos los registros juntos, de un golpe.
.Worksheets("Datos").SELECT
Set rsInformeDatos = CurrentDb.OpenRecordset(sqlSubqueryDatos)
.Sheets("Datos").Cells(2, 1). CopyFromRecordset rsInformeDatos
RsInformeDatos. Close
La segunda consulta tiene 3 campos, un dato de la tabla, una cuenta del número de campos implicados y una suma del valor de otro campo. Al intentar volcar los datos de esta consulta al excel NO me da error, pero no me escribe nada en las celdas correspondientes, la consulta esta bien hecha, lo he comprobado volcando los datos de uno en uno, el problema es que tarda demasiado.
Dim i As Integer
i = 2
While Not (rsInformeDatos.EOF)
.ActiveWorkbook.Sheets("Datos").Cells(i, 1) = rsInformeCartera. Fields(0). Value
.ActiveWorkbook.Sheets("Datos").Cells(i, 2) = rsInformeCartera. Fields(1). Value
.ActiveWorkbook.Sheets("Datos").Cells(i, 3) = rsInformeCartera. Fields(2). Value
i = i + 1
RsInformeCartera. MoveNext
Wend
RsInformeDatos. Close
¿Se le ocurre alguna solución? ¿Dónde podría estar el problema?
También he probado con la función
RsInformeDatos. GetRows
Y volcandolo en una variable miTabla. Cuando estoy traceando y voy a ver que tiene solo me muestra el valor de una fila. Para poder obtener los datos lo que he hecho es meterlo dentro del bucle, pero tarda lo mismo que obteniéndolo directamente del recorset.
La variable mi tabla no me deja definirla como una matriz ya que me dice que el contenido de rsInformeDatos. GetRows NO LO PUEDE VOLCAR EN UNA MATRIZ.
2 Respuestas
Respuesta de yescuder
1
Respuesta de mcnificus
1