Select the product you need help with
Cómo transferir datos desde un conjunto de registros ADO a Excel con automatizaciónId. de artículo: 246335 - Ver los productos a los que se aplica este artículo En esta páginaResumenPuede transferir el contenido de un conjunto de registros ADO a una hoja de cálculo de Microsoft Excel al automatizar Excel. El enfoque que puede utilizar depende de la versión de Excel está automatizando. Excel 97, Excel 2000 y Excel 2002 tienen un método CopyFromRecordset que puede utilizar para transferir un conjunto de registros a un rango. CopyFromRecordset en Excel 2000 y 2002 puede utilizarse para copiar un DAO o de un conjunto de registros ADO. Sin embargo, CopyFromRecordset en Excel 97 admite sólo conjuntos de registros DAO. Para transferir un conjunto de registros ADO a Excel 97, puede crear una matriz desde el conjunto de registros y, a continuación, rellenar un rango con el contenido de esa matriz. Este artículo describen ambos enfoques. El código de ejemplo presentado ilustra cómo puede transferir un conjunto de registros ADO a Excel 97, Excel 2000, Excel 2002, Excel 2003 o Excel 2007. Más informaciónEl ejemplo de código proporcionado a continuación muestra cómo copiar un ADO conjunto de registros a una hoja de cálculo de Microsoft Excel utilizando automatización desde Visual Basic. El código comprueba primero la versión de Excel. Si se detecta Excel 2000 o 2002, se utiliza el método CopyFromRecordset porque es eficaz y requiere menos código. Sin embargo, si se detecta Excel 97 o anterior, primero se copia el conjunto de registros en una matriz mediante el método GetRows del objeto de conjunto de registros ADO. A continuación, se cambia la matriz para que los registros están en la primera dimensión (en filas) y campos están en la segunda dimensión (en columnas). A continuación, se copia la matriz en una hoja de cálculo de Excel a través de asignar la matriz a un rango de celdas. (La matriz es copiado en un paso en lugar de bucle en cada celda de la hoja de cálculo). El ejemplo de código utiliza la base de datos Neptuno que se incluye con Microsoft Office. Si ha seleccionado la carpeta predeterminada cuando instaló Microsoft Office, la base de datos se encuentra en: \Program Files\Microsoft Office\Office\Samples\Northwind.mdb Si Northwind base de datos se encuentra en una carpeta diferente en el equipo, deberá modificar la ruta de acceso de la base de datos en el código proporcionado por debajo. Si no tiene la base de datos de Northwind instalada en su sistema, puede utilizar la opción Agregar o quitar para la instalación de Microsoft Office para instalar las bases de datos de ejemplo. Nota La base de datos Northwind no está instalado cuando instala Microsoft Office 2007. Para obtener Neptuno 2007, visite el siguiente sitio Web de Microsoft: http://office.microsoft.com/en-us/templates/TC012289971033.aspx
(http://office.microsoft.com/en-us/templates/TC012289971033.aspx)
Pasos para crear ejemplo
Para la eficiencia y rendimiento, CopyFromRecordset es el método preferido. Puesto que Excel 97 admite sólo la conjuntos de registros DAO con CopyFromRecordset, si se intenta pasar un conjunto de registros ADO a CopyFromRecordset con Excel 97, recibe el error siguiente: Error en tiempo de ejecución 430: Clase no admite automatización o no admite interfaz esperada. Nota Cuando se utiliza CopyFromRecordset, debe tener en cuenta que no contiene el conjunto de registros DAO o ADO que utiliza los campos de objeto OLE o datos de matriz como conjuntos de registros jerárquicos. Si incluye campos de cualquier tipo de un conjunto de registros, el método CopyFromRecordset se produce el siguiente error: Se ha producido el error -2147467259 en tiempo de ejecución: Método Error del CopyFromRecordset del objeto Range. Si se detecta Excel 97, utilice el método GetRows del conjunto de registros ADO para copiar el conjunto de registros en una matriz. Si asigna la matriz devuelta por GetRows a un rango de celdas de la hoja de cálculo, los datos va en las columnas en lugar de en las filas. Por ejemplo, si el conjunto de registros tiene dos campos y diez filas, la matriz aparece como dos filas y 10 columnas. Por lo tanto, deberá transponer la matriz utilizando la función TransposeDim() antes de asignar la matriz en el rango de celdas. Cuando se asignar una matriz a un rango de celdas, hay algunas limitaciones que hay que tener en cuenta: Las siguientes limitaciones al asignar una matriz a un objeto Range de Excel:
Error de tiempo de ejecución 13: Tipo no coincidente Tiempo de ejecución error 5: Llamada a procedimiento no válido o el argumento Objeto definido por error o definido por aplicación en la 1004 de error de tiempo de ejecución: ReferenciasPara obtener información adicional acerca de las limitaciones en pasar matrices a distintas versiones de Excel, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base: 177991 Para obtener información adicional, haga clic en los números de artículo correspondientes para verlos en Microsoft Knowledge Base:
(http://support.microsoft.com/kb/177991/
)
XL: Limitaciones de pasar matrices a Excel con automatización 146406
(http://support.microsoft.com/kb/146406/EN-US/
)
XL: Cómo recuperar una tabla de Access en Excel con DAO 215965
(http://support.microsoft.com/kb/215965/
)
XL2000: 12: 00: 00 A.M. aparece para fechas anteriores A 1900 243394
(http://support.microsoft.com/kb/243394/
)
Cómo usar MFC para copiar un conjunto de registros a Excel con automatización 247412
(http://support.microsoft.com/kb/247412/
)
INFORMACIÓN: Métodos para transferir datos a Excel desde Visual Basic PropiedadesId. de artículo: 246335 - Última revisión: miércoles, 28 de marzo de 2007 - Versión: 5.1 La información de este artículo se refiere a:
Traducción automática IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente. Haga clic aquí para ver el artículo original (en inglés): 246335
(http://support.microsoft.com/kb/246335/en-us/
)
| Seleccione idioma
|




Volver al principio








