SQL.REQUEST (función SQL.REQUEST)

En este artículo se describen la sintaxis de la fórmula y el uso de la función SQL.REQUEST en Microsoft Excel.

Importante: 

  • A partir de Excel 2010, la experiencia de Obtener y Transformar (Power Query) proporciona una función mejorada para importar datos desde orígenes de datos externos, y reemplaza de manera eficaz la función SQL.REQUEST.

  • La función SQL.REQUEST no se admite después de Microsoft Excel 2007.

  • Es posible que parte del contenido de este tema no pueda aplicarse a algunos idiomas.

Descripción

La función SQL.REQUEST se conecta con un origen de datos externo y ejecuta una consulta desde una hoja de cálculo. Después, devuelve el resultado como una matriz, sin necesidad de programar una macro. Si esta función no está disponible, debe instalar el programa de complemento ODBC de Microsoft Excel (XLODBC.XLA).

Sintaxis

SQL.REQUEST(cadena_conexión,[ref_salida],[argumento_controlador],[texto_consulta],[lógicoa_nombres_columna])

La sintaxis de la función SQL.REQUEST tiene los siguientes argumentos:

  • Conexión     Obligatorio. Proporciona información, tal como el nombre del origen de datos, identificación del usuario y contraseñas, requerida por el controlador que está usando para conectarse a un origen de datos; debe seguir el formato del controlador. La tabla siguiente muestra tres ejemplos de cadenas de conexión para tres controladores.

Controlador

Cadena_conexión

dBASE

DSN=Neptuno;PWD=prueba

SQL Server

DSN=MiServidor;UID=dbayer;PWE=123;Database=Pubs

ORACLE

DNS=Mi origen de datos Oracle;DBQ=MISERVIDOR;UID=JulioS;PWD=Sésamo

  • Debe definir el nombre del origen de datos (DSN, Data Source Name) que usa el argumento conexión antes de tratar de conectarse.

  • Puede insertar el argumento conexión como una matriz o como una cadena. Si conexión sobrepasa los 250 caracteres, debe insertarlo como una matriz.

  • Si SQL.REQUEST no logra tener acceso al origen de datos usando el argumento conexión, devuelve el valor de error #N/A.

  • Salida     Opcional. Es una referencia de celda donde desea colocar la cadena de conexión completa. Si escribe SQL.REQUEST en una hoja de cálculo, omite el argumento salida.

    • Use el argumento salida cuando desee que SQL.REQUEST devuelva la cadena de conexión completa.

    • Si omite el argumento salida, SQL.REQUEST no devuelve una cadena de conexión completa.

  • Controlador     Opcional. Especifica cuándo se presenta el cuadro de diálogo del controlador y qué opciones se encuentran disponibles. Use uno de los números descritos en la tabla siguiente. Si omite el argumento controlador, SQL.REQUEST usa el 2 como opción predeterminada.

Argumento_controlador

Descripción

1

El cuadro de diálogo del controlador se presenta siempre.

2

El cuadro de diálogo del controlador se presenta solo si la información proporcionada por la cadena de conexión y la especificación de los datos de origen no es suficiente para completar la conexión. Todas las opciones del cuadro de diálogo están disponibles.

3

El cuadro de diálogo del controlador se presenta solo si la información proporcionada por la cadena de conexión y la especificación de los datos de origen no es suficiente para completar la conexión. Las opciones del cuadro de diálogo se encuentran atenuadas y no están disponibles si no se requieren.

4

No se presenta el cuadro de diálogo. Si la conexión no es satisfactoria, se devuelve un error.

  • Consulta     Opcional. Es la instrucción SQL que desea ejecutar en el origen de datos.

    • Si SQL.REQUEST no logra ejecutar el argumento consulta con los datos de origen especificados, devuelve el valor de error #N/A.

    • Puede actualizar una consulta con la unión de referencias en el argumento consulta. En el siguiente ejemplo, cada vez que $A$3 cambia, SQL.REQUEST usa el nuevo valor para actualizar la consulta.

"SELECCIONAR nombres DE clientes DONDE equilibrio >" & $A$ 3 & "".

Microsoft Excel limita la longitud de las cadenas a 255 caracteres. Si consulta sobrepasa esa longitud, especifique la consulta en un rango de celdas vertical y use el rango completo como argumento consulta. Los valores de las celdas se concatenan para formar la instrucción SQL completa.

  • Nombres_columna     Opcional. Indica si los nombres de columna se devuelven como la primera fila de resultados. Establezca este argumento como VERDADERO si desea que los nombres de columna se devuelvan como la primera fila de resultados. Use FALSO si no desea que se devuelvan los nombres de columna. Si omite el argumento nombres_columna, SQL.REQUEST no devuelve nombres de columna.

Valor devuelto

  • Si esta función completa todas sus acciones, devuelve una matriz con los resultados de la consulta o con el número de filas afectadas por la consulta.

  • Si SQL.REQUEST no logra tener acceso al origen de datos con el argumento conexión, devuelve el valor de error #N/A.

Observaciones

  • Puede insertar SQL.REQUEST como una matriz. Si especifica SQL.REQUEST como una matriz, devuelve una matriz que se ajusta a ese rango.

  • Si el rango de celdas es mayor que el resultado obtenido, SQL.REQUEST agrega celdas vacías a la matriz devuelta para aumentarla hasta el tamaño necesario.

  • Si el resultado obtenido es mayor que el rango especificado como matriz, SQL.REQUEST devuelve la matriz entera.

  • Los argumentos para SQL.REQUEST están en un orden distinto al de los argumentos para la función SQLRequest de Visual Basic para Aplicaciones.

Ejemplo

Supongamos que desea hacer una consulta a una base de datos dBASE denominada DBASE4. Cuando especifica la siguiente fórmula en una celda, se devuelve una matriz con los resultados de la consulta, que contiene los nombres de columna en la primera fila.

SQL. SOLICITAR ("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Seleccionar Custmr_ID, fecha de vencimiento de pedidos DONDE pedido_Amt > 100", VERDADERO)

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×