6

我开发了一个小型水晶报表赢表单应用程序,它连接到本地网络中的 Access DB 并显示一组基本报表。

我为此使用了 VS 2010。

我使用“DAO”连接方法访问 VS 2010 数据库专家选项中的数据库(是的,这一切都在 GUI 中完成)。它在我的 32 位开发机器和我测试过的 Win XP VM 机器上工作得很好。

但是,我在 Win 7 64 位 PC 上设置报告并收到此错误。 错误截图

这些是我在 64 位 Win 7 PC 上进行的安装:

  • 适用于 .NET Fx 4(64 位)的 SAP Crystal Reports 运行时引擎
  • .NET Framework 4 客户端配置文件(x86 和 x64)

到目前为止,我所读到的是 64 位 CR 运行时引擎未附带 32 位版本的 dll (crdb_dao.dll)。

任何建议...任何解决方法?

感谢你的帮助 :-)!

4

2 回答 2

5

一切都与比特有关

使用 Access 数据库,您必须注意应用程序的位数:

  • 文件没有标准的 64 位驱动程序.mdb(Windows 中默认有一个 32 位驱动程序)。

  • 为了能够从 64 位应用程序访问.mdb.accdb数据库,您必须具有 MSOffice 64 位或 Access 64 位或 64 位的Access 数据库引擎驱动程序。
    如果您在该计算机上安装了 MSOffice 或 Access 2007/2010/2013 32 位,您将无法安装 64 位驱动程序,也无法混合搭配 32 位和 64 位 Office 组件。

解决您的问题

  • 如果您使用.mdbAccess 文件,只需显式编译 32 位(不是 AnyCPU,因为它会尝试在 64 位操作系统中以 64 位启动您的应用程序)。

  • 如果您使用的是.accdbAccess 文件,请匹配用户计算机上安装的 Office/Access 的位数,或者,如果没有 Office,请安装Access 数据库引擎驱动程序。

  • 在任何情况下,如果您的应用程序要部署在 32 / 64 位混合环境中,您将需要为每个环境显式编译并根据安装在用户计算机上的Access 数据库引擎或 MSOffice 的位数安装正确的版本。

注意:澄清一下,如果用户机器上已经安装了 MSOffice 2007/2010/2013,则无需安装 Access Database Engine。

于 2012-11-13T08:59:00.997 回答
3

我还必须为 32 位安装 CR 运行时引擎。现在它的工作顺利:-)!

非常感谢 :)!

于 2012-11-13T12:53:50.210 回答