Excel VBA教程:SQLRetrieveToFile函数

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

SQLRetrieveToFile 检索以前执行的查询所得的所有结果,并将这些结果保存于文件中。

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

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

SQLRetrieveToFile(ConnectionNum, Destination, ColNamesLogical, ColumnDelimiter)

ConnectionNum   必需。数据源的唯一连接标识,该连接标识由 SQLOpen函数返回,并由 SQLExecQuery函数用于查询数据。

如果 ConnectionNum 无效,则 SQLExecQuery 返回第 2015 号错误。

Destination   必需。指定用于放置结果的文件的路径和名称的字符串。如果该文件存在,其内容将为查询结果所取代。如果该文件不存在,SQLRetrieveToFile 创建和打开该文件,并将结果保存于其中。

文件中的数据格式与 Microsoft Excel.csv(逗号分隔值)文件格式兼容。

各列之间用 ColumnDelimiter 所指定的字符分隔,各行之间用回车符分隔。

如果无法打开由 Destination 指定的文件,SQLRetrieveToFile 返回第 2042 号错误。

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

ColumnDelimiter   可选。字符串,指定用于分隔每行中各元素的字符。例如,用“,”指定逗号分隔符,或用“;”指定分号分隔符。如果省略 ColumnDelimiter,则使用列表分隔符。

返回值

如果成功,SQLRetrieveToFile 返回查询结果,将其写入文件,然后返回写入文件中的行数。

如果 SQLRetrieveToFile 无法检索结果,则返回第 2042 号错误且不写入文件。

如果指定的连接中没有搁置的结果,则 SQLRetrieveToFile 返回第 2042 号错误。

说明

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

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

Excel VBA教程:SQLRetrieveToFile函数·示例

本示例在“NorthWind”数据库上执行查询。查询结果是当前已订货的产品列表,该结果以分隔文本的格式写入当前文件夹的“Output.txt”文件中。


databaseName = "Northwind"
queryString = _
    "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
SQLRetrieveToFile chan, "OUTPUT.TXT", True
SQLClose chan

上页:Excel VBA教程:SQLRetrieve函数 下页:Excel VBA教程:隐藏的语言元素

Excel VBA教程:SQLRetrieveToFile函数

Excel VBA教程:隐藏的语言元素 Excel VBA教程:向文档中添加控件
Excel VBA教程:向用户窗体中添加控件 Excel VBA教程:应用程序对象事件
Excel VBA教程:图表对象事件 Excel VBA教程:控件和对话框事件
Excel VBA教程:在某一 Microsoft Office 应用程序中控制其他 Microsoft Office 应用程序 Excel VBA教程:创建自定义对话框
Excel VBA教程:新建工作簿 Excel VBA教程:创建“用户窗体”
Excel VBA教程:显示自定义对话框 Excel VBA教程:获取有关 Macintosh 关键字的帮助
Excel VBA教程:在单元格区域中循环 Excel VBA教程:如何引用单元格和区域
Excel VBA教程:初始化控件属性 Excel VBA教程:打开工作簿
Excel VBA教程:QueryTable对象事件 Excel VBA教程:引用工作表上的所有单元格
Excel VBA教程:用 A1 样式记号引用单元格和单元格区域 Excel VBA教程:用编号引用单元格
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号