Access无法读取包含事件驱动的数据宏的文件

时间:2014-02-27 04:03:53

标签: .net database vb.net ms-access macros

我的问题来自此处:Unrecognized database format to other PC

在上面的链接中,我一直在努力解决为什么我的数据库应用程序无法与其他PC一起工作,因为我制作的第一个应用程序工作正常。
现在,我已将其缩小到问题是数据库本身的程度 我正在使用Access 2010编译为Access 2007格式的32位Win7操作系统进行开发 所以,我在这里使用了Gord Thompson的代码Automatically renumber records in an Access table after data changes have been made宏,当我添加它时,这就是问题开始的地方

当然它在我的电脑上工作..但是它在其他电脑上出现了一个关于线程的错误。我安装了访问数据库引擎时发生了变化。现在错误是Microsoft 12.0 Provider blah blah..
所以我错过了一个司机?我试过..

  • AccessDatabaseEngine2007
  • AccessDatabaseEngine2010 32
  • AccessDatabaseEngine2010 64

注意 Build Config x64

  • 64bit~第一个,(这台电脑没有安装,但工作)安装后,它已经在64位电脑上工作..

  • 64bit~下一个,我 强制安装第三台引擎到64位PC,因为它的MS办公室 使用thison cmd $> AccessDatabaseEngine_X64.exe /passive是32位。 现在它正在开发第二台64位PC。

  • 64bit~在第三个,无论我做什么。它不起作用。仍然 无法识别,然后12.0驱动程序丢失,即使我安装了4 数据库引擎的类型两次。虽然力量安装没有 在那个特定的PC上工作,我想知道为什么。

更新

  • 32bit~第四个,将使用此应用程序,AnyCpu编译 说“无法识别的数据库格式”与x86相同,而x64则没有 跑。安装AccessDatabaseEngine.exe - 2007后,仍然相同 结果

我应该怎样做才能让我的申请被任何电脑接受?   - 制作32位和64位版本
  - 使用AnyCpu / x64 / x86构建 是的我已经做到了,但两个都没有在最后一台电脑上工作。

有什么建议吗?我可以重新制作我的应用程序,我的数据库,只要它适用于其他电脑就可以了,但我只是字面意思,没什么新东西。

2 个答案:

答案 0 :(得分:1)

就个人而言,当访问数据库引擎的第二个" N-bit" 版本时,我不会花费大量时间来解决不一致的行为问题。 #34; ACE")通过/passive开关强制安装。我们必须假设ACE开发团队有理由以这样的方式编写安装程序:正常行为是阻止同一台计算机上存在的32位和64位版本的ACE

至于部署你的应用程序,以便它可以在"任何"机器,你必须首先接受

的要求
  1. 目标计算机必须至少安装了 Access 2010 版本的ACE,并且
  2. 您的应用程序必须在与安装的ACE版本相同的 N-bit 环境中运行。
  3. 解决第2点的一种可能方法是构建两个版本的应用程序,一个针对 32位,另一个针对 64位。 32位版本将是用户实际启动的版本(即,在Windows"程序"列表中为其创建快捷方式的版本)。然后它可以做这样的事情:

    • 尝试连接数据库。如果成功,则继续运行(如32位)。
    • 如果连接失败,请尝试启动64位版本的应用程序副本。

答案 1 :(得分:0)

在Build,Configuration Manager,Active Solution Platform下将编译选项设置为AnyCPU。

如果您使用的是Express版本,请参阅此post