SQL.REQUEST 函数

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗?请在此处查看本文的英文版本以便参考。

注意: 本文已完成其工作,随后将不再使用。为防止出现“找不到页面”问题,我们将删除已知无效的链接。如果创建了指向此页面的链接,请删除这些链接,以便与我们一起为用户提供通畅的 Web 连接。

本文介绍 Excel 中 SQL.REQUEST 函数的公式语法和用法。

重要: 

  • 从 Excel 2010 开始,“获取和转换”(Power Query) 体验针对从外部数据源导入数据提供增强功能,有效地替换了 SQL.REQUEST 函数。

  • 只有 Microsoft Excel 2007 才支持 SQL.REQUEST 函数。

  • 本主题中的某些内容可能不适用于某些语言。

说明

SQL.REQUEST 与外部数据源连接,并从工作表中运行查询。然后以数组的形式返回结果,而无需进行宏编程。如果此函数不可用,则必须安装 Microsoft Excel ODBC 加载项 (XLODBC.XLA)。

语法

SQL.REQUEST(connection_string,[output_ref],[driver_prompt],[query_text],[col_names_logical])

SQL.REQUEST 函数语法具有下列参数:

  • Connection_string    必需。提供驱动程序用于连接到数据源的信息(如数据源名称、用户 ID 和密码),并必须按照驱动程序的格式。下表给出用于 3 个驱动程序的3个示例连接字符串。

Driver

Connection_string

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs

ORACLE

DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame

  • 在试图连接到数据源之前,必须定义在 connection_string 中使用的数据源名称 (DSN)。

  • 您可以数组或字符串的形式输入 connection_string。如果 connection_string 超过 250 个字符,必须以数组的形式输入。

  • 如果函数 SQL.REQUEST 不能用 connection_string 访问数据源,则返回错误值 #N/A。

  • Output_ref    可选。用于放置完整的连接字符串的单元格引用。如果您在工作表中输入 SQL.REQUEST,则将忽略 output_ref。

    • 当需要函数 SQL.REQUEST 返回完整的连接字符串时,可以使用 output_ref(此种情况下,必须在宏表中输入 SQL.REQUEST 函数)。

    • 如果省略 output_ref,函数 SQL.REQUEST 不能返回完整的连接字符串。

  • Driver_prompt    可选。指定驱动程序对话框何时显示以及哪些选项可用。使用下表所述的数字之一。如果省略 driver_prompt,则 SQL.REQUEST 使用 2 作为默认值。

Driver_prompt

说明

1

一直显示驱动程序对话框。

2

只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。所有对话框选项都可用。

3

只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。如果不需要对话框选项,则这些选项将显示为灰色,且不可用。

4

不显示驱动程序对话框。如果连接不成功,则返回一个错误。

  • Query_text    可选。需要在数据源中执行的 SQL 语句。

    • 如果 SQL.REQUEST 函数不能在指定数据源中执行 query_text,则返回错误值 #N/A。

    • 您可以将引用连接到 query_text 中以更新查询。在下例中,每当 $A$3 更改,SQL.REQUEST 都会使用新值来更新查询。

"SELECT Name FROM Customers WHERE Balance > "&$A$3&""。

Microsoft Excel 字符串的长度限制为 255 个字符。如果 query_text 超过此长度,在垂直单元格区域中输入查询,并使用 Query_text 的整个区域。连接这些单元格的值以形成完整的 SQL 语句。

  • Column_names_logical    可选。指示列名称是否作为结果的第一行返回。如果要将列名称作为结果的第一行返回,将此参数设置为 TRUE。如果不想返回列名称,则将此参数设置为 FALSE。如果省略 column_names_logical,则 SQL.REQUEST 不返回列名称。

返回值

  • 如果此函数完成了它的所有操作,则返回查询结果数组或受查询影响的行数。

  • 如果 SQL.REQUEST 函数不能使用 connection_string 访问数据源,则返回错误值 #N/A。

备注

  • SQL.REQUEST 可以数组的形式输入。当您以数组的形式输入 SQL.Request 函数时,函数返回恰好填充选定区域的数组。

  • 如果单元格区域大于结果集,则 SQL.REQUEST 函数将向返回的数组添加空白单元格,直至增加到所需要的大小。

  • 如果结果集大于以数组形式输入的区域,则 SQL.REQUEST 函数返回整个数组。

  • SQL.REQUEST 函数的参数与 Visual Basic for Application 中 SQLRequest 函数的参数顺序不同。

示例

假设您要对名为 DBASE4 的 dBASE 数据库进行查询。当您在单元格中输入以下公式时,将返回查询结果数组,其中第一行为列名称:

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×