Cómo transferir datos desde un origen de datos ADO a Excel con ADO

Seleccione idioma Seleccione idioma
Id. de artículo: 295646 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Debido a que Microsoft Excel es tal una herramienta de análisis de datos eficaces, los desarrolladores de aplicación de Visual Basic y VBA a menudo desean llevar datos a una hoja de Excel para realizar análisis. Este artículo describe el enfoque de ActiveX Data Objects (ADO) para esta tarea de programación, con sintaxis específicos de Microsoft Jet para determinados comandos SQL.

En este artículo describe las soluciones de programación y no se describe capacidades de importación de Excel condicionada por el menú datos (mediante la opción Abrir en el menú archivo ) o el uso de Microsoft Query (desde la opción Obtener datos externos en el menú datos ).

Para obtener información adicional acerca de complementarias las soluciones de programación que utilice de automatización de Excel en lugar de comandos SQL, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
246335Cómo transferir datos desde un conjunto de registros ADO a Excel con automatización

Más información

En los ejemplos que siguen, cnSrc representa una conexión ADO abierta a la base de datos de Jet mediante el proveedor OLE DB de Jet 4.0 de ejemplo Northwind.

Cómo copiar

Puede utilizar la instrucción SELECT INTO para copiar datos desde cualquier origen de datos que Jet puede leer en cualquier destino de datos, crear una tabla nueva (o en el caso de Excel, una nueva hoja de cálculo) sobre la marcha. No utilice la sintaxis de signo de dólar, por ejemplo [Sheet1 $], cuando se refiere a un nombre de hoja como su destino. El libro de destino puede existe o no existe; sin embargo, debe de la hoja de destino no existe todavía.

Hay tres formas de escribir el comando de copia copia toda la tabla Customers de la base de datos Northwind de Microsoft Access en una hoja nueva en un libro de Excel. Cada sintaxis requiere una única instrucción SQL y crean encabezados de columna en la primera fila de la hoja de cálculo de destino.
  • En el ejemplo siguiente se utiliza la sintaxis SELECT INTO:
    Dim strSQL As String
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _ 
        "\book1.xls].[Sheet1] FROM Customers"
    cnSrc.Execute strSQL
    					
  • El ejemplo siguiente utiliza la sintaxis de SELECT INTO... IN:
    strSQL = "SELECT * INTO [Sheet1] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] FROM Customers"
    						
    donde la información de base de datos de destino entre corchetes está precedida por un par de comillas simples para el argumento de tipo (la parte "Excel 8.0"), que se incluye dentro de los corchetes cuando utiliza esta sintaxis vacío.
  • En el ejemplo siguiente se utiliza la sintaxis alternativa para la cláusula IN:
    strSQL = "SELECT * INTO [Sheet1] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' FROM Customers"
    						
    donde el argumento de tipo ahora aparece por separado después la ruta de acceso del archivo de destino.

Cómo anexar

Puede utilizar la instrucción INSERT INTO... IN para anexar los datos de cualquier origen de datos Jet puede leer en cualquier destino de datos. Deben existir el libro de destino y la hoja de cálculo. Ahora que se hace referencia a una hoja de cálculo existente, debe utilizar la sintaxis estándar de dólar, por ejemplo, [Hoja1 $], cuando se refiere a un nombre de hoja como su destino. Además, los encabezados de columna ya deben estar presentes; en otras palabras, esta instrucción sólo se puede utilizar para anexar a una tabla existente.

Hay dos formas de escribir el comando de datos anexados que copia toda la tabla Customers de la base de datos Northwind en una hoja de cálculo Excel existente, que ya tiene los encabezados de columna correspondiente.
  • El ejemplo siguiente utiliza la sintaxis INSERT INTO... IN:
    strSQL = "INSERT INTO [Sheet1$] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] SELECT * FROM Customers"
    						
    donde la información de base de datos de destino entre corchetes nuevo está precedida por un par vacío de ofertas para el argumento de tipo, que ahora está incluida dentro de los corchetes.
  • En el ejemplo siguiente se utiliza la sintaxis alternativa para la cláusula IN:
    strSQL = "INSERT INTO [Sheet1$] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' SELECT * FROM Customers"
    					

Referencias

Para obtener información adicional sobre la sintaxis específicos de Jet, consulte el archivo de Ayuda de Jet SQL (JETSQL40.chm), especialmente los temas de la instrucción SELECT INTO, la instrucción INSERT INTO y la cláusula IN.

Propiedades

Id. de artículo: 295646 - Última revisión: miércoles, 23 de agosto de 2006 - Versión: 2.4
La información de este artículo se refiere a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 97 Standard Edition
Palabras clave: 
kbmt kbdatabase kbhowto kbjet kbmdacnosweep KB295646 KbMtes
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): 295646

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com