【发布时间】:2024-01-18 14:52:02
【问题描述】:
我必须替换一个允许使用 DAO 将 SQL Server 表导出到 xls 文件中的 VB6 函数。
为了使用 Excel 2007-2010... 文件 (xlsx),我尝试使用此功能来执行此操作,但它不起作用。
这是 DAO 功能:
//Opening the SQLServer database with DAO
Set oBase= DBEngine.OpenDatabase(DSNName, dbDriverNoPrompt, False, "ODBC,PROVIDER=Microsoft.JET.OLEDB.3.51;DSN=DSNName;UID=user;PWD=pwd;DATABASE=SQLServerBDDName;Server=SQLServerName;")
//Query to export data
oBase.Execute("SELECT * INTO [SheetName] IN 'xlsFileName' 'Microsoft Excel 8.0;' FROM [SQLServerTableName]")
此功能完美适用于 xls 中的 97-2003 Excel 文件,但不适用于 xlsx 文件。
是否有可能用 ADO 做同样的事情,但没有 OPENROWSET 语句或存储过程?
感谢您的帮助
【问题讨论】:
-
如果我通过 Excel 12.0 和提供程序 (Microsoft.ACE.OLEDB.12.0) 更改 Excel 8.0,我会遇到错误(未找到 ISAM 驱动程序)。我已经为另一个软件安装了 Access 驱动程序 12
-
support.microsoft.com/en-us/kb/247412 提供了很多不同的方法来做你想做的事。但是,DAO 不是其中之一。 DAO 在 1995 年就已经老了,那时 ADO 出来了。您可能需要更改为 ADO 以支持 Excel 12.0。如果是这样,这并不太难,并且链接中有一个示例。对于 ADO 连接字符串,请访问 www.connectionstrings.com。
-
感谢您,但使用我们的旧方法,我们可以在没有安装 Office 的情况下将数据从 sql server 导出到 xls 文件,只有使用 Jet 驱动程序。本网页中介绍的所有方法都需要 Excel 才能工作。
标签: sql-server excel vb6