【问题标题】:SQLite for Excel Support 64-bit ExcelSQLite for Excel 支持 64 位 Excel
【发布时间】:2012-07-24 03:53:56
【问题描述】:

我需要将 SQLite 数据读入 Excel。我在 (#1, #2) 找到了一些解决方案。我选择@Govert 的SQLite for Excel。我的 excel 是 64 位版本,所以我下载了 sqlite3.dll(32bit) 并将其替换为 sqlite3.dll(64bit) 然后更新 VBA 声明:

...Declare Function...改成...Declare PtrSafe Function...

但我仍然无法在 SQLiteForExcel.xls 中运行演示 Module1.MyTestSQlite。以及VBE Immediate Window中的错误输出:

SQLite3Initialize 加载错误 C:\Users\davuz\Downloads\SQLiteForExcel-0.7\Distribution\SQLite3_StdCall.dll: 193 初始化 SQLite 时出错。错误:193

如何修复 sqliteforexcel 以在 Excel 64 位上运行? 感谢帮助?

【问题讨论】:

  • @Govert 你能帮帮我吗?
  • 你能上传一个 Excel 吗?我过去曾将 SQLite 与 Excel 一起使用,并且效果很好。不幸的是,我在上一份工作中留下了所有源代码,但如果你愿意,我可以看看你有什么......
  • 没关系,我好像在这个地方运行一个 32 位的 Office,所以我将无法正确测试。对不起!
  • @KimGysen 谢谢!我也在完美的 32 位 Office 上运行测试。我只想让我的插件兼容 64 位和 32 位平台。也许我不得不放弃这个意图
  • 这是个好主意。但是,我个人认为没有多少人在运行 64 位 Office 版本。甚至 MS 都建议在 64 位操作系统上运行 32 位 Office,以避免出现兼容性问题。 office.microsoft.com/en-us/excel-help/…

标签: excel sqlite vba 64-bit


【解决方案1】:

我(SQLite for Excel 家伙)实际上还没有尝试弄清楚 64 位 VBA 声明 - 我只是注意到现在有一​​个预编译的 64 位 SQLite 库,这对我们有很大帮助.

首先要注意的是,对于 64 位情况,您根本不需要 SQLite3_StdCall.dll 中间体。仅在调用约定需要重新映射的 32 位情况下才需要。因此对于 64 位,VBA 文件中的所有 .dll 引用必须直接引用 SQLite3.dll。

接下来,我认为您在 PtrSafe 更改方面走在了正确的轨道上。但我不确定 VBA 64 位指针声明是如何工作的。人们还必须弄清楚哪些“长”参数实际上是指针。

所以还有一些事情要做......

编辑:

完成。 SQLite for Excel 的更新版本 0.8 现在包括 64 位 Excel 的 VBA 声明、更新的测试和 64 位 SQLite3.dll 的副本。

【讨论】:

  • 谢谢!我想我会尝试直接导入 sqlite3.dll。
  • 但我并不清楚在 VBA 中使用 dll;通过以下步骤完成: 1) 通过LoadLibrary(libDir + "SQLite3.dll") 初始化 sqlite3 2) 在此处声明函数sqlite.org/c3ref/funclist.html 使用?我是否遵循正确的步骤?
  • 是的,但是需要修复 VBA 文件中的所有这些声明,将 LongPtr 放在正确的位置,并且所有句柄都需要更改为 LongPtr 而不是 Long。
  • 好的 - 您现在可以在 sqliteforexcel.codeplex.com 上试用 0.8 版。我已经添加了 64 位支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多