Importar Datos de Microsoft SQL Server en Microsoft Excel

1

Click here to load reader

Transcript of Importar Datos de Microsoft SQL Server en Microsoft Excel

Page 1: Importar Datos de Microsoft SQL Server en Microsoft Excel

Id. de artículo: 306125 - Última revisión: jueves, 11 de abril de 2002 - Versión: 1.0

CÓMO: Importar datos de Microsoft SQL Server en Microsoft ExcelEste artículo se publicó anteriormente con el número E306125

En esta guía paso a paso se describe cómo importar datos en Microsoft Excel desde Pubs, unabase de datos de ejemplo que se incluye con Microsoft SQL Server.

ActiveX Data Objects (ADO) proporciona acceso a cualquier tipo de origen de datos. Se trata de un modelo de objetos sinestructura con pocos objetos. Los objetos principales del modelo de objetos de ADO son:

Aunque hay muchas formas de devolver un conjunto de registros con ADO, este artículo se centra en los objetos Conexión yConjunto de registros.

Requisitos

Debe disponer de un servidor local que ejecute Microsoft SQL Server y que contenga la base de datos Pubs.

Microsoft recomienda que se tengan conocimientos acerca de:

Creación de procedimientos de Visual Basic para Aplicaciones en los programas de Office.Trabajo con variables de objeto.Trabajo con objetos de Excel.Conceptos de sistemas de administración de bases de datos relacionales (RDBMS).Instrucciones SELECT del Lenguaje de consulta estructurado (SQL).

Hacer referencia a la Biblioteca de objetos ADO

Inicie Excel. Abra un libro nuevo y guárdelo como SQLExtract.xls.1.Inicie el Editor de Visual Basic y seleccione su proyecto de VBA.2.En el menú Herramientas, haga clic en Referencias.3.Active la casilla de verificación de la versión más reciente de Biblioteca de objetos de datos de Microsoft ActiveX.4.

Crear la conexión

Inserte un módulo nuevo en el proyecto.1.Cree un subprocedimiento llamado DataExtract.2.Escriba o pegue el siguiente código:3.

Extraer los datos

Escriba o pegue el siguiente código para extraer los registros:

Comprobar que funciona

Ejecute el código.1.Cambie a Excel y examine la hoja 1 del libro para ver los datos.2.

Solucionar problemas

Si el código parece que se bloquea y aparece un error de tiempo de ejecución, puede que el servidor de base de datos estéinactivo. Puede utilizar la propiedad ConnectionTimeout para controlar el tiempo que se tarda en devolver un error de tiempo deejecución. Establezca esta propiedad a un valor mayor que cero. Si establece el valor a cero, nunca se agotará el tiempo deespera de la conexión. El valor predeterminado es 15 segundos.

Objeto Descripción --------------------------------------------------------------------------- Conexión Hace referencia

a la conexión con el origen de datos. Conjunto de registros Hace referencia a los datos extraídos. Comando Hacereferencia a un procedimiento almacenado o a instrucciones SQL que se van a ejecutar.

' Create a connection object. Dim cnPubs As ADODB.Connection Set cnPubs = New ADODB.Connection ' Provide the

connection string. Dim strConn As String 'Use the SQL Server OLE DB Provider. strConn = "PROVIDER=SQLOLEDB;"

'Connect to the Pubs database on the local server. strConn = strConn & "DATA SOURCE=(local);INITIAL

CATALOG=pubs;" 'Use an integrated login. strConn = strConn & " INTEGRATED SECURITY=sspi;" 'Now open theconnection. cnPubs.Open strConn

' Create a recordset object. Dim rsPubs As ADODB.Recordset Set rsPubs = New ADODB.Recordset With rsPubs ' Assign theConnection object. .ActiveConnection = cnPubs ' Extract the required records. .Open "SELECT * FROM Authors" ' Copy the

records into cell A1 on Sheet1. Sheet1.Range("A1").CopyFromRecordset rsPubs ' Tidy up .Close End With cnPubs.Close SetrsPubs = Nothing Set cnPubs = Nothing

1