首页 > 解决方案 > msadox28.tlb 在注册时不是有效的 .Net 程序集文件

问题描述

我正在使用 vb.net (2015) 和 MS Access 数据库开发应用程序。我可以在现有数据库中正常工作。我现在有需要以编程方式创建数据库以进行计费的情况。这是每个文件夹将包含用于公司/公司选择的数据库的情况。

在互联网 / StackOverflow 上搜索后,我了解了 ADOX。甚至得到了它的现成代码。我在我的编码中应用了它。

  1. 添加 Microsoft ADO 扩展 2.8 和 6.0 的引用
  2. 创建变量 Adx 作为新的 Adox.catalog
  3. 然后最后写了 Adx.create(olejet provider conn string with data source)

在这一步我得到一个错误

COM 类未注册

所以我尝试注册msadox.dllmsadox28.tlb使用regsvr32regasm但当时我收到另一个错误:

msadox.dll 注册成功,但 msadox28.tlb 出现错误
无法加载 -file- 因为它不是有效的 .net 程序集文件

现在我被困在这一点上。

我的系统是 Windows 10 64 位。我试图以 cpu x86 和任何 cpu 为目标,但它不起作用。我在这里有很多问题和答案,但不明白。

编辑:

我尝试了以下连接字符串并且它有效,但它创建了旧的 2000-2003 mdb 文件。我想使用新的访问文件 .accdb

字符串是:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\VBProj\Testing\test.mdb;Jet OLEDB:Engine Type=5

编辑:2021 年 9 月 20 日 - 星期一

首先非常感谢@Jimi,您对使用 ACE.16 和清洁溶液的建议奏效了。非常感谢

我使用以下步骤在 VB.NET 中使用 ADOX 创建 MS Access 数据库:

  1. 项目菜单 > 添加参考 > COM 部分 > 选择 Microsoft ADO 分机。6.0 用于 DLL 和安全性

  2. 在程序入口点(表单加载/子主)写入连接字符串 -> Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb,将其分配给变量connString

  3. 像这样全局声明 adox 目录Public gAdxCat As New ADOX.Catalog

  4. 使用它的方法gAdxCat.create(connString)

  5. 就是这样 - 完成

再次感谢@jimi

标签: databasevb.netms-accessprogrammaticallyadox

解决方案


这是我的问题的答案(由@jimi 帮助)

以下是在 VB.NET 中使用 ADOX 创建 msaccess 数据库的步骤,并且在原始问题中提到了错误。

1-项目菜单 > 添加参考 > COM 部分 > 选择 Microsoft ADO 分机。6.0 用于 DLL 和安全性(删除 2.8 的参考)

2-在程序入口点写入连接字符串(表单加载/子主)->“Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb”将其分配给变量 connString

3 全局声明 adox 目录,如 Public gAdxCat As New ADOX.Catalog

4-使用它的方法 gAdxCat.create(connString)

5-这一切都完成了

再次感谢@jimi


推荐阅读