Vista 和 Windows 7 中的 OLEDB JET 错误,而不是 XP

Posted

技术标签:

【中文标题】Vista 和 Windows 7 中的 OLEDB JET 错误,而不是 XP【英文标题】:OLEDB JET error in Vista & Windows 7, not in XP 【发布时间】:2010-07-18 14:27:36 【问题描述】:

我在 Windows XP 上使用 VS2008 编写了一个应用程序,并生成了一个 .EXE 文件。

此应用程序只能在 Windows XP 操作系统上运行。它在 Vista 和 Windows 7 上失败。

它给出了一个错误,指出发生了 Microsoft OLEDB JET 4.0。

我在这个应用程序中使用 Microsoft Access 作为数据库。

我该怎么办?

【问题讨论】:

错误信息肯定不止于此。你能给出确切的错误信息吗? 【参考方案1】:

如果您的应用程序是为“任何 CPU”构建的,并且您在 Windows 7 和 Vista 的 x64 变体下运行,那么请尝试将您的构建配置设置为 x86(即 32 位变体)。据我所知,Access 没有 x64 驱动程序。

祝你好运

【讨论】:

2010版Access有64个驱动:microsoft.com/downloads/… 对不起,我不明白。你的意思是当我想在vista或7中运行应用程序时,我必须安装与每个操作系统相关的Jet 4.0? 并非如此。首先:您是否在 Windows 7/Vista 的 x64 变体下运行。如果是这样,那么您有两个选择:1)构建 32 位 CLR(可能是最简单的路线)或 2)安装 x64 驱动程序以供访问(来自 Remou 提供的链接)。如果您在 32 位操作系统上运行,那么我的答案(或 cmets)都不适用。 看起来 Moleski 是对的。看到另一个问题***.com/questions/1735392/…【参考方案2】:

access 数据库在哪里:在Program Files 中吗?在这种情况下,您可能是 suffering from virtualization - 在 Windows Vista 和 7 上,操作系统不允许您写入 Program Files,因此它会静默地将您重定向到另一个目录。

【讨论】:

我按照你说的做了,但是没用,出现同样的错误:Microsoft Jet 4.0 OLEDB is not registered in local machine. 自 Windows 2000 发布以来,即 10 多年前,Programs 文件夹一直不是用户可写数据的合适位置。用户可写数据属于用户个人资料,不属于其他任何地方。

以上是关于Vista 和 Windows 7 中的 OLEDB JET 错误,而不是 XP的主要内容,如果未能解决你的问题,请参考以下文章

作为开发人员,我应该如何使用 Windows Vista(和 Windows 7)中的特殊文件夹?

在 win xp Vista 和 Windows 7 上保存程序数据的位置

获取 XP、Vista 和 7 的 windows 序列号

Windows XP 与 Vista/7 上的 MS Crypto API 行为

旧的 asp 应用程序可以在 Vista 上运行,但不能在 Windows 7 上运行

如何使我的程序在 Windows Vista 和 Windows 7 中运行?