与外部数据源连接,从工作表运行查询,然后SQL. REQUEST将查询结果以数组的形式返回,而无需进行宏编程。如果没有此函数,则必须安装Microsoft Excel ODBC加载项程序“XLODBC.XLA”。
SQL.REQUEST函数的语法为:=SQL.REQUEST (connection_string,output_ref,driver_prompt,query_text,col_names_logical),各参数的含义介绍如下。
Connection_string参数
该参数用来提供信息,如数据源名称、用户ID和密码等。这些信息对于连接数据源的驱动程序是必需的,同时必须满足驱动程序的格式要求。输入该参数时需要注意以下情况。
※ 试图连接到数据源之前,必须定义在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不能返回完整的连接字符串。
Driver_prompt参数
该参数用于指定驱动程序对话框何时显示以及何种选项可用。该参数有以下几个数值。
※ 参数值为1时,表示一直显示驱动程序对话框。
※ 参数值为2时,表示只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。
※ 参数值为3时,表示只有在连接字符串和数据源说明所提供的信息不足以完成连接时,才显示驱动程序对话框。如果未指明对话框选项是必需的,这些选项变灰,不能使用。
※ 参数值为4时,表示不显示对话框。如果连接不成功,则返回错误值。
query_text参数
该参数需要在数据源中执行的SQL语句,使用此参数时需要注意以下问题。
※ 如果SQL.REQUEST函数不能在指定数据源中执行query_text,则返回错误值#N/A。
※ 可将引用连接到query_text上来更新查询。
※ Microsoft Excel将字符串长度限制在255个字符内。如果query_text超过此长度,请在垂直单元格区域中输入查询并将整个区域作为query_text。所有单元格的值连接在一起形成完整的SQL语句。
col_names_logical参数
该参数指示是否将列名作为结果的第一行返回。
如果要将列名作为结果的第一行返回,可将该参数设置为TRUE;若不需要将列名返回,则设置为FALSE;若省略column_names_logical,则SQL.REQUEST函数不返回列名。该参数的返回值有以下两种情况。
※ 如果此函数完成了它的所有操作,则返回查询结果数组或受查询影响的行数。
※ 如果SQL.REQUEST函数不能使用connection_string访问数据源,则返回错误值#N/A。
假设需要对名为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)。