Você está na página 1de 1

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 Excel
Este 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, una
base 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 sin
estructura con pocos objetos. Los objetos principales del modelo de objetos de ADO son:

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 Hace
referencia a un procedimiento almacenado o a instrucciones SQL que se van a ejecutar.

Aunque hay muchas formas de devolver un conjunto de registros con ADO, este artículo se centra en los objetos Conexión y
Conjunto 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

1. Inicie Excel. Abra un libro nuevo y guárdelo como SQLExtract.xls.


2. Inicie el Editor de Visual Basic y seleccione su proyecto de VBA.
3. En el menú Herramientas, haga clic en Referencias.
4. Active la casilla de verificación de la versión más reciente de Biblioteca de objetos de datos de Microsoft ActiveX.

Crear la conexión

1. Inserte un módulo nuevo en el proyecto.


2. Cree un subprocedimiento llamado DataExtract.
3. Escriba o pegue el siguiente código:

' 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 the
connection. cnPubs.Open strConn

Extraer los datos


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

' Create a recordset object. Dim rsPubs As ADODB.Recordset Set rsPubs = New ADODB.Recordset With rsPubs ' Assign the
Connection 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 Set
rsPubs = Nothing Set cnPubs = Nothing

Comprobar que funciona

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

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 de
ejecución. Establezca esta propiedad a un valor mayor que cero. Si establece el valor a cero, nunca se agotará el tiempo de
espera de la conexión. El valor predeterminado es 15 segundos.

Você também pode gostar