none
连接 access 2010 的 问题 RRS feed

  • 问题

  • 有一个项目,

    @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\xxxx\xxx.accdb;Jet OLEDB:Database Password=1234;"

    可以连接 access2010 可以正常访问。

    后来在项目的属性中 ,生成 - 目的平台 ,改为 Any CPU。导致 无法连接 access2010,后来又改回来 x86 .可是仍然无法连接access2010. 郁闷中 ……

    • 已编辑 fss199 2010年10月25日 22:02
    2010年10月25日 14:03

答案

  • 你好

    可能是Microsoft.ACE.OLEDB DRIVER 對 64BITS 系統不相容的問題...

    我之前寫了一個 連接 EXCEL 的程式在 WIN2003 64BITS 也有問題...


    Chi
    • 已标记为答案 fss199 2010年10月27日 22:20
    2010年10月26日 5:39
    版主
  • Office 2010 是平台相关 (Platform Specific) 的,也就是说,x86 的 Office 2010 SKU 只注册 x86 的 ADO/OLE 组件和 CLSID,类似的,x64 的 Office 2010 SKU 只注册 x64 的 ADO/OLEDB/CLSID。由于目标机器是 x64,因此这些 x86 的组件会被写到一个虚拟注册表 (HKEY_LOCAL_MACHINE\Software\WOW6432Mode) 下,如果把编译平台设置为 Any CPU,它在 x64 上时不会去读取这个注册表项中的信息,从而导致出现找不到注册信息的异常。
    Mark Zhou
    • 已标记为答案 fss199 2010年10月27日 22:20
    2010年10月26日 9:06

全部回复

  • 环境:2008R2 64bit,vs2010 ,access2010

    提示信息:“未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序”,

    access2010 只能跑32bit,但选择了 AnyCPU,不知道为什么会出错,难道 AnyCPU 不包括 x86 和 x64 吗?

    最奇怪的,改回 x86 ,还是一样出错。

    2010年10月25日 22:01
  • 谢谢您!

    重新做了系统,重新安装 access2010 ,就可以了。

    在项目的属性中 ,生成 - 目的平台 ,改为 Any CPU。

    提示信息:“未在本地计算机上注册Microsoft.ACE.OLEDB.12.0提供程序”,

    不得不改回 x86 ,这次居然可以正常运行。

    为什么原来的系统改回 x86 还无法运行?

    更加郁闷了。

    2010年10月26日 2:57
  • 你好

    可能是Microsoft.ACE.OLEDB DRIVER 對 64BITS 系統不相容的問題...

    我之前寫了一個 連接 EXCEL 的程式在 WIN2003 64BITS 也有問題...


    Chi
    • 已标记为答案 fss199 2010年10月27日 22:20
    2010年10月26日 5:39
    版主
  • Office 2010 是平台相关 (Platform Specific) 的,也就是说,x86 的 Office 2010 SKU 只注册 x86 的 ADO/OLE 组件和 CLSID,类似的,x64 的 Office 2010 SKU 只注册 x64 的 ADO/OLEDB/CLSID。由于目标机器是 x64,因此这些 x86 的组件会被写到一个虚拟注册表 (HKEY_LOCAL_MACHINE\Software\WOW6432Mode) 下,如果把编译平台设置为 Any CPU,它在 x64 上时不会去读取这个注册表项中的信息,从而导致出现找不到注册信息的异常。
    Mark Zhou
    • 已标记为答案 fss199 2010年10月27日 22:20
    2010年10月26日 9:06
  • 不错,我也碰到了类似情况!

    2011年5月12日 6:00