Excel-VBA 通过 ODBC 驱动程序到 SQLite3:主数据库 + 附加数据库

Posted

技术标签:

【中文标题】Excel-VBA 通过 ODBC 驱动程序到 SQLite3:主数据库 + 附加数据库【英文标题】:Excel-VBA to SQLite3 through ODBC Driver: primary database + attached database 【发布时间】:2018-07-16 12:44:33 【问题描述】:

我正在尝试通过 ODBC(Windows 10 x64)从 Excel-VBA 连接到 SQLite3 数据库。

我使用 Christian Werner 的 SQLite ODBC 驱动程序 v 0.9999 (http://www.ch-werner.de/sqliteodbc) - 如手册所述,我已经安装了 32 位和 64 位版本的驱动程序。

连接一个数据库就可以了:

ConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=c:\first.db;"

连接2个数据库(SQLite提供连接主数据库+附加数据库的能力)也可以:

ConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=c:\first.db;Attach=c:\second.db;"

但看起来 VBA 看不到附加数据库中的表 - 以下查询失败:

SELECT * FROM [second].[table_name_in_second_db];

该 SQLite ODBC 驱动程序是否支持在连接字符串中附加数据库? 还是我使用了不正确的语法?

【问题讨论】:

【参考方案1】:

您不通过连接处理附件。主数据库在连接属性中处理。一旦你有一个有效的连接,你实际上是在使用 sqlite 引擎。 (驱动程序是 sqlite.dll 的包装器)因此您可以将数据库附加为 sql 语句。

cn.execute "attach database 'C:\filename.db' as db"

【讨论】:

以上是关于Excel-VBA 通过 ODBC 驱动程序到 SQLite3:主数据库 + 附加数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用分发密钥保护 excel-vba 应用程序

通过 ODBC 将 codeigniter 3 连接到任何地方的 SQL

通过ODBC将Excel连接到PostgreSQL

通过链接到 Access 数据库的 ODBC 数据源进行缓慢的数据访问

记录 ODBC、SQL Server

通过 JDBC-ODBC 驱动程序从 Access 中选择时不显示丹麦语字符 [重复]