为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > Windows7(64位)成功连接Access2003

Windows7(64位)成功连接Access2003

2013-08-26 5页 pdf 202KB 30阅读

用户头像

is_634111

暂无简介

举报
Windows7(64位)成功连接Access2003 Windows7(64 位)成功连接 Access2003 一、在 Windows7(64 位)下,C#利用 ACE(64 位)成功使用 Access2003 下载:AccessDatabaseEngine_X64.exe(64 位数据库引擎 ADE) http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 (1)在 Windows7(64 位)下,卸掉 office2003 或 2007,不卸掉 64 位数据库引擎 ADE 不能安装; ...
Windows7(64位)成功连接Access2003
Windows7(64 位)成功连接 Access2003 一、在 Windows7(64 位)下,C#利用 ACE(64 位)成功使用 Access2003 下载:AccessDatabaseEngine_X64.exe(64 位数据库引擎 ADE) http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 (1)在 Windows7(64 位)下,卸掉 office2003 或 2007,不卸掉 64 位数据库引擎 ADE 不能安装; (2)先安装 AccessDatabaseEngine_X64.exe;其次安装 Office2003 或 Office2007; (3)开发项目中引入 System.DATA。其中有 System.Data.OleDb; (4)将程序语句中“Microsoft.Jet.OLEDB.4.0”改为“Microsoft.ACE.OLEDB.12.0”即可。 见代码如下: //WindowsXP连接Access2003 //string strCN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="文件名";Jet OLEDB:Database Password=密码"; // Windows7(64位)/ Windows XP连接Access2007或2003 Connection string for ADO.NET via OleDB string strCN = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" 文件名 ";Jet OLEDB:Database Password=密码"; try { cnDB = new OleDbConnection(strCN); cnDB.Open(); return cnDB;//返回类型为OleDbConnection类 } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } 即 ACE 与操作系统、数据库和应用程序的匹配关系,见下图: 图1. ACE 与操作系统、数据库和应用程序的匹配关系 安装 AccessDatabaseEngine_X64.exe(64 位数据库引擎 ADE)即一系列组件,帮助在现有的 Microsoft Office 文件(例如 Microsoft Office Access 2010(*.mdb 和 *.accdb)和 Microsoft Office Excel 2010(*.xls、 *.xlsx 和 *.xlsb)文件)与其他数据源(例如 Microsoft SQL Server)之间传输数据。 还支持与现有文本 文件建立连接。 此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文 件格式连接的应用程序时使用。 AccessDatabaseEngine_X64.exe(64 位数据库引擎 ADE)向下兼容。 二、在 WindowsXP 下,C#利用 ACE(32 位)成功使用 Access2003 下载:AccessDatabaseEngine.exe(32 位数据库引擎 ADE) http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 (1)在 WindowsXP 下,安装 office2003; (2)安装 AccessDatabaseEngine.exe; (3)开发项目中引入 System.DATA。其中有 System.Data.OleDb; (4)将程序语句中“Microsoft.Jet.OLEDB.4.0”改为“Microsoft.ACE.OLEDB.12.0”即可。 代码同上。 三、Microsoft JET 引擎有何变化? 在 Access 2007 之 前 , Access 使 用 Microsoft 连 接 性 引 擎 技 术 (JET) 引 擎 ( 即 Microsoft.Jet.OLEDB.4.0)。尽管 JET 通常被视为 Access 的一部分,但是 JET 引擎却被用作一个单独 的产品。自从 Microsoft Windows 2000 发布之后,JET 已成为 Windows 操作系统的一部分,然后通过 Microsoft 数据访问组件 (MDAC) 分发或更新。但在 Access 2007 版本之后,JET 引擎已被弃用并不再 通过 MDAC 进行分发。现在,Access 改为使用集成和改进的 ACE 引擎,通过拍摄原始 JET 基本代码的 代码快照来开始对该引擎进行开发。 ACE 引擎与以前版本的 JET 引擎完全向后兼容,以便从早期 Access 版本读取和写入 (.mdb) 文件。 由于 Access 团队现在拥有引擎,因此开发人员可以相信他们的 Access 解决不仅可以在未来继续使 用,而且具有更快的速度、更强的可靠性和更丰富的功能。例如,对于 Access 2010 版本,除了其他改 进,ACE 引擎还进行了升级,可以支持 64 位的版本,并从整体上增强与 SharePoint 相关技术和 Web 服 务的集成。Microsoft 努力将 Access 作为一个开发人员平台进行开发。 1. 数据访问方法 提供程序名称 数据访问方法 连接信息 支持的语言 ACE DAO Direct DAO 示例 Acedao.tlh(从 acedao.dll 生成); acedao.dll C++ VBA DAO 示例 Set db = CurrentDb() 在 VBE 环境中运行 VBA ACE OLE DB ATL OLE DB 示例 Microsoft.ACE.OLEDB.12.0 ;Aceoledb.dll C++ ADO.NET C# ADO.NET 示例 Microsoft.ACE.OLEDB.12.0 使用 System.Data.OleDb,即引入 System.dll 中有 OleDb 包 C# Visual Basic.NET ADO.NET 示例 Visual Basic.NET ADO.NET 示例 Microsoft.ACE.OLEDB.12.0 导入 System.Data.OleDb 导入 System.Console Visual Basic.NET ADO ADO 示例 Msado15.tlh(从 Msado15.dll 生成); 通过 MDAC 2.8 或 Windows DAC 6.0 安装。 C++ ACE ODBC Direct ODBC 示例 Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= mdb/accdb 文件的路径 ; Aceodbc.dll; C/C++ MFC ODBC 示例 Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= mdb/accdb 文件的路径 ; Aceodbc.dll; C++ JDBC-ODBC 示例 jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ= mdb/accdb 文件的路径 Java 四、使用 32 位和 64 位 ACE 提供程序 Access 2007 产品的 ACE 提供程序(ACE DAO、ACE OLE DB 或 ACE ODBC)仅提供 32 位版本。而 Access 2010 产品的 ACE 提供程序则同时提供 32 位和 64 位版本。 一般情况下,目前有三种可能的配置: (1)仅 64 位的解决方案(64 位的 Access、64 位的 Windows) 若要实现 64 位的解决方案,您必须执行以下操作: 在 64 位的 Windows 上部署 64 位的 Access 2010,构建自定义的 64 位数据访问应用程序。 (2)仅 32 位的解决方案(32 位的 Access、32 位的 Windows) 如果您有 32 位的应用程序,希望通过 Access 2010 继续运行它而不进行更改,则必须安装 32 位版 本的 Access 2010。 32 位 Access 2010 的工作方式与 32 位 Access 2007 完全一样,无需对 VBA 代码、COM 加载项或 ActiveX 控件进行更改即可继续运行。 (3)WOW64 解决方案(32 位的 Access、64 位的 Windows) WOW64 技术允许在 Windows 64 位的平台上执行 32 位的应用程序。可以将 32 位的 Access 2010 安 装在 64 位的 Windows 上。在这种情况下,您的数据应用程序必须是 32 位才能与 ACE 提供程序通信。 这是 64 位 Windows 操作系统上的默认安装,可提供与 32 位 Office 应用程序的兼容性。 尽管 32 位的应用程序能够以透明方式运行,但是不支持在同一进程中混合使用两种类型的代码。64 位的应用程序不能针对 32 位的系统库 (DLL) 进行链接,同样 32 位的应用程序也不能针对 64 位的系 统库进行链接。 即应用程序 32 位, Access32 位, Windows64 位和(ACE64 位)。 重要信息: 如果您尝试针对 64 位的 Access 运行旧式的 32 位代码,则会发生运行时错误。例如,如果应用程序(32 位代码)和与 64 位 Microsoft Access 一同安装的 64 位 ACE 提供程序之间的版本不匹配,则可能会造成错误“'Microsoft.ACE.OLEDB.12.0' 提供程序未在 本地计算机上注册”。若要更正此问题,可以将自定义代码升级至 64 位版本或卸载 64 位 Access 然后替换为 32 位 Access。 图 2. ACE 提供程序和应用程序之间的版本匹配 五、可从何处获得 ACE 引擎? Access 2007 下载:AccessRuntime.exe(73.994MK,32 位) http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=4438 或 http://download.microsoft.com/download/1/B/4/1B4D1BBA-5956-452E-9A86-C04270D4C442/AccessRuntime.exe 安装 AccessRuntime.exe:双击硬盘上的 AccessRuntime.exe 文件以启动安装程序。 按照屏幕上的说 明完成安装。 Access 2010(64 位)用 AccessRuntime2010_X64.exe 下载:AccessDatabaseEngine_X64.exe(64 位数据库引擎 ADE) http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 六、弃用的数据访问方法 表 2 列出了自 Access 2007 后已弃用的数据访问方法。这些方法不支持用于以 .accdb 文件格式保存的 Access 数据库,并且只能用于维护旧式应用程序。 表 2. 弃用的数据访问方法 提供程序名称 数据访 问方法 连接和其他信息 支持的 语言 JET4.0 OLE DB 提供程序 OLE DB Microsoft.JET.OLEDB.4.0 C++ MFC DAO MFC DAO ; 与 MDAC 一同安装;具有前缀 CDao. 的 MFC 类。 MFC DAO 类向用户提供一种使用旧式 Microsoft JET 数据库引擎的方 式。但自 Access 2007 之后,他们不再受支持。DAO 3.6 是此技术的 最后版本。其不能用于 64 位的 Windows。Visual C++ .NET 向导不会 生成自动创建和打开记录集的代码。 C++ Access ODBC 驱 动程序 4.0 MFC ODBC Driver={Microsoft Access Driver (*.mdb)};DBQ= mdb 文件的路径 ; Odbcjt32.dll; C++ 七、C# ADO.NET 示例 // Connection string for ADO.NET via OleDB OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Northwind.accdb;Jet OLEDB:Database Password=1L0v3Acce55;"); // Prepare SQL query string query = "SELECT Customers.[Company], Customers.[First Name] FROM Customers ORDER BY Customers.[Company] ASC;"; OleDbCommand cmd = new OleDbCommand(query, cn); try { cn.Open(); Console.WriteLine("{0}: Successfully connected to database. Data source name:\n {1}", DAM, cn.DataSource); Console.WriteLine("{0}: SQL query:\n {1}", DAM, query); // Run the query and create a record set OleDbDataReader dr = cmd.ExecuteReader(); Console.WriteLine("{0}: Retrieve schema info for the given result set:", DAM); for (int column = 0; column < dr.FieldCount; column++) { Console.Write(" | {0}", dr.GetName(column)); } Console.WriteLine("\n{0}: Fetch the actual data: ", DAM); int row = 0; while (dr.Read()) { Console.WriteLine(" | {0} | {1} ", dr.GetValue(0), dr.GetValue(1)); row++; } Console.WriteLine("{0}: Total Row Count: {1}", DAM, row); dr.Close(); } catch (OleDbException ex) { Console.WriteLine("{0}: OleDbException: Unable to connect or retrieve data from data source: {1}.", DAM, ex.ToString()); } catch (Exception ex) { Console.WriteLine("{0}: Exception: Unable to connect or retrieve data from data source: {1}.", DAM, ex.ToString()); } finally { cn.Close(); Console.WriteLine("{0}: Cleanup. Done.", DAM); } 八、其他问题 (1)并行安装 不支持 64 位和 32 位 Office 2010 版本的并行安装。这包括 Access。 (2)其他注意事项 在部署 64 位 Access 之前,先确定其是否为您特定环境的正确部署选项。有几个方面可能会影响当前 32 位 Access 解决方案的兼容性。例如,如果您使用已删除其源代码的数据库(例如 .mde, .ade 和 .accde 文 件),或者使用带有 Declare 语句的 VBA 代码、COM 加载项或 ActiveX 控件,则可能必须投入一些开 发时间才能让此功能与 64 位的 Access 配合工作。此问题的变通解决方法是将 32 位 Access 安装在 32 位 Windows 上,或将 32 位 Access (WOW64) 安装在 64 位 Windows 上。有关此主题的详细信 息,请参阅 64 位 Office 2010 版本。
/
本文档为【Windows7(64位)成功连接Access2003】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索