我无法找到解决问题的方法。所以我问道。
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & Path.Combine(Application.StartupPath, "piglets.accdb")
我正在使用Access 2010.它工作正常,我和其他PC。然后我需要更改我的数据库,它是作为SO的工作样本提供给我的
piglets.accdb
- 我认为这也是2010年。我打开它,工作正常,将其合并到我新创建的应用程序中,使用相同的代码。它正在与我合作,但直到我将它打开到另一台PC,在Form_Load
更新(此问题是否适用于没有MS Access的PC?) 我尝试在没有Access的PC上运行应用程序,它运行正常。
在笔记本电脑上,它确实在保存时出错,但它正在使用第一个2010数据库。
我缺少什么?
更新2 我重新创建了由Gord提供给我的数据库到2007格式(这是在另一台PC上工作的数据库。)我试了一下,使用了新创建的数据库(2007年)格式与宏)它在我的电脑上工作正常,但再次,它不在另一台PC上。仍然是,无法识别的格式:/
答案 0 :(得分:2)
我怀疑这台麻烦的机器上有Access 2007。 Access数据库引擎的Access 2007版本(a.k.a。“ACE”)无法识别该文件,因为Data Macros是Access 2010中添加的功能。
最安全的解决方案是将该计算机升级到Access 2010.但是,如果这不可行,那么您可以将Access数据库引擎(但不是整个Access应用程序)升级到2010版本下载并运行可用的安装程序here。
这应该允许您的VB.NET应用程序使用Access 2010 .accdb文件及其中的数据宏。然而,
它不会启用.accdb文件在Access本身中打开,因为Access 2007 应用程序仍然无法识别Access 2010 数据库文件格式。
这可能是不受支持的配置,因此请自担风险。 (虽然我只是在一台旧的Office 2007虚拟机上试用它,它似乎似乎打破了任何东西....)