SQLRetrieve 函数 - Microsoft Excel Visual Basic 2002 参考

返回介绍

SQLRetrieve 函数

发布于 2019-08-07 字数 4939 浏览 948 评论 0

不要在“Xlodbc.xla”加载宏中使用 SQLRetrieve 和其他 ODBC 函数,应该使用 Microsoft ActiveX 数据对象 (ADO) 库中的对象、方法和属性。

SQLRetrieve 检索以前执行的查询的结果的全部或一部分。

调用 SQLRetrieve 函数之前,必须先用 SQLOpen 函数建立连接,再用 SQLExecQuery 函数执行查询,从而准备好结果。

本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。

SQLRetrieve(ConnectionNum, DestinationRef, MaxColumns, MaxRows, ColNamesLogical, RowNumsLogical, NamedRngLogical, FetchFirstLogical)

ConnectionNum 必需。数据源的唯一连接标识,该连接标识由 SQLOpen 函数返回,并由 SQLExecQuery 函数用于查询数据。如果 ConnectionNum 无效,则 SQLExecQuery 将返回第 2015 号错误。

DestinationRef 可选。指定结果放置位置的 Range 对象。本函数将覆盖这些单元格的值而不给出任何确认提示。

如果 DestinationRef 指定单个单元格,SQLRetrieve 将所有搁置的结果返回到该单元格及其右方和下方的单元格中。

如果省略 DestinationRef,则以前用 SQLBind 函数调用所建立的绑定将用于返回结果。如果当前连接并无绑定,SQLRetrieve 返回第 2023 号错误。

如果结果中的某特定列未绑定,又省略了 DestinationRef,该列将被忽略。

MaxColumns 可选。返回到工作表中的最大列数,从 DestinationRef 开始计算。

如果 MaxColumns 指定的列数大于结果中可用的列数,SQLRetrieve 返回可用数据列的同时,将其余列的内容清除。

如果 MaxColumns 指定的列数小于结果中可用的列数,SQLRetrieve 将忽略最右边的多余的列。

数据源返回的列的顺序决定了结果中列的位置。

如果省略 MaxColumns,则返回结果中所有的列。

MaxRows 可选。返回到工作表的最大行数,从 DestinationRef 开始计算。

如果 MaxRows 指定的行数大于结果中可用的行数,SQLRetrieve 返回可用数据行的同时,将其余行的内容清除。

如果 MaxRows 指定的行数小于结果中可用的行数,SQLRetrieve 将数据置于指定行中,但不丢弃其余的行。可再次调用 SQLRetrieve 函数,并将 FetchFirstLogical 参数设置为 False,以获取剩余的行

如果省略 MaxRows,则返回结果中所有的行。

ColNamesLogical 可选。如果为 True,则将列名作为结果的第一行返回。如果为 False 或省略本参数,则不返回列名。

RowNumsLogical 可选。仅当指定了 DestinationRef 参数时,本参数才有用。如果为 True,则使结果集合中的第一列包含行号。如果为 False 或省略本参数,则不返回行号。也可用 SQLBind 函数绑定第 0(零)列以获取行号。

NamedRngLogical 可选。如果为 True,则结果中的每一列都将声明为工作表中的命名区域。这些区域的名称就是结果中列的名称。这些命名区域仅包括 SQLRetrieve 函数所返回的行。默认值为 False

FetchFirstLogical 可选。可从结果集合的开始查询结果。

如果 FetchFirstLogicalFalseSQLRetrieve 将被反复调用以返回下几行的集合直到所有的结果行都被返回。

当结果集合中没有行的时候,SQLRequest 返回 0(零)。

当需要从结果集合的开始获取结果时,可将 FetchFirstLogical 设为 True

若要从结果集合的其他行获取结果时,可将 FetchFirstLogical 以连续调用的形式设为 False。默认值为 False

返回值

SQLRetrieve 返回结果集合中的行数。

如果 SQLRetrieve 无法检索指定的数据源中的结果,或没有搁置的结果以供检索,将返回第 2042 号错误。如果未发现数据,SQLRetrieve 返回 0(零)。

说明

调用 SQLRetrieve 之前,必须执行以下操作:


  1. 调用 SQLOpen 函数以建立与数据源的连接。

  2. SQLOpen 函数所返回的连接标识,调用 SQLExecQuery 函数向数据源发送查询。

示例

本示例在“NorthWind”数据库上执行查询。显示在工作表 Sheet1 上的查询结果是当前已订货的产品列表。

databaseName = "NorthWind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

目前还没有任何评论,快来抢沙发吧!