建议使用 Microsoft ActiveX 数据对象 (ADO) 库中的对象、方法和属性,而不是使用 Xlodbc.xla 加载宏中的 SQLOpen 和其他 ODBC 函数。
SQLOpen 建立与数据源的连接。
本函数包含在 Xlodbc.xla 加载宏中。使用本函数之前,必须使用“Visual Basic 编辑器”中的“引用”命令(在“工具”菜单上)建立对该加载宏的引用。
SQLOpen(ConnectionStr, OutputRef, DriverPrompt)
ConnectionStr (必需)。提供驱动程序(用于连接数据源)所要求的信息;必须遵循驱动程序的格式。ConnectionStr 提供驱动程序建立连接所需的数据源名称和其他信息(如用户 ID 和密码)。在尝试与数据源建立连接之前,必须定义在 ConnectionStr 中使用的数据源名称 (DSN)。
OutputRef (可选)。包含完整的连接字符串的 Range 对象(必须为单个单元格)。如果希望 SQLOpen 函数将完整的连接字符串返回到工作表中,请使用 OutputRef 参数。
DriverPrompt (可选)。指定是否显示驱动程序对话框以及在显示的情况下,其中哪些选项可用。请使用下表所说明的数值之一。如果省略 DriverPrompt,SQLOpen 将以 2 为默认值。
返回值
如果成功,SQLOpen 返回唯一的连接 ID 号。可将该连接 ID 号用于其他 ODBC 函数中。
如果 SQLOpen 无法用给定的信息完成连接,将返回第 2042 号错误。附加的错误信息放置在内存中,可供 SQLError 函数使用。
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