建议使用 Microsoft ActiveX 数据对象 (ADO) 库中的对象、方法和属性,而不是使用 Xlodbc.xla 加载宏中的 SQLOpen 和其他 ODBC 函数。
用 SQLOpen 建立与数据源的连接后,SQLExecQuery 在该数据源上执行查询。
SQLExecQuery 函数仅用于执行查询。要用 SQLRetrieve 函数或 SQLRetrieveToFile 函数获取结果。
本函数包含在 Xlodbc.xla 加载宏中。使用本函数之前,必须使用“Visual Basic 编辑器”中的“引用”命令(在“工具”菜单上)建立对该加载宏的引用。
SQLExecQuery(ConnectionNum, QueryText)
ConnectionNum (必需)。标识要查询的数据源的唯一连接 ID,该连接 ID 由 SQLOpen 返回。
QueryText (必需)。要在数据源上执行的查询。该查询必须遵循特定 ODBC 驱动程序的 SQL 语法准则。
返回值
SQLExecQuery 的返回值取决于 SQL 语句,如下表中所示。
如果 SQLExecQuery 无法在指定数据源上执行查询,将返回错误 2042。
如果 ConnectionNum 无效,SQLExecQuery 将返回错误 2015。
注解
调用 SQLExecQuery 之前,必须用 SQLOpen 建立与数据源的连接。SQLExecQuery 将使用 SQLOpen 返回的唯一连接 ID 向数据源发送查询。
如果用以前使用过的连接 ID 调用 SQLExecQuery,那么该连接中任何未完成的结果将由新结果取代。
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