ms 访问 accdb 到 accdr 转换

Posted

技术标签:

【中文标题】ms 访问 accdb 到 accdr 转换【英文标题】:ms access accdb to accdr conversion 【发布时间】:2014-10-31 15:55:01 【问题描述】:

关于 MS Access 运行时版本的一个小问题。我有一个accdb 文件,我将其重命名为accdr 并尝试在我的运行时版本中执行它,但不幸的是我无法打开该文件,因为我收到一个安全身份验证警告,指出我尝试打开的文件包含一些未经身份验证的内容.

我已经尝试过将accdb 转换为accdr 的标准方法。我知道内容是有效的(由我创建)所以任何人都可以帮助阐明这个问题。

【问题讨论】:

【参考方案1】:

首先,重命名文件不会改变你所拥有的。我的意思是我无法将 word 文档重命名为 AutoCAD 文档,而您现在拥有一个 auto cad 应用程序。所以重命名的“行为”不会改变文件内部的内容。

因此,将 accDB 重命名为 accDR 是某种“转换”,而您尝试进行此类转换并不是计算机的工作方式。

接下来,您无需说明您是否在开发机器上运行 accDR。更糟糕的是,当您简单地将 accDB 复制到该机器并双击它时会发生什么?

所以请记住以下几点:

如果您在机器上安装运行时,那么您可以简单地复制任何 mdb、mde、accDB、accDE 甚至是 accDR,然后只需双击该文件即可启动/运行该应用程序。

因此,将文件重命名为 accDR 的要求为零,这样做与使用运行时将 accDB 复制到该计算机并只需双击该 accDB 没有什么不同。

因此无需将文件重命名为 accDR

但是,关于 un-athenciated 内容的错误消息是一个不同的问题,与 accDR 问题完全无关。如果您只是将任何访问文件复制到该计算机并双击它,您就会收到该错误。所以解决这个问题的方法是确保 accDB 文件的文件夹/位置在受信任的文件夹中。

最后但同样重要的是: 你真的(但真的真的真的)想把你的 accDB 编译成 accDE。在使用和运行它们之前,应该对任何和所有应用程序执行此操作。更重要的是,使用运行时时任何未处理的错误都会关闭您的应用程序,如果它是 accDB,但如果您使用 accDE,则不会。

因此,将文件重命名为 accDR 没有任何作用,不会产生任何结果,也不是必需的。 accDR 的唯一优点是它用于在您的开发机器上进行测试,因为使用该文件扩展名将可以访问“模拟”或“模仿”运行时环境。然而,由于目标机器是运行时的,因此不需要重新命名,从而对结果产生零影响。

因此您需要确保数据库在受信任的位置运行。

这解释了如何做到这一点:

http://office.microsoft.com/en-gb/access-help/decide-whether-to-trust-a-database-HA010341635.aspx

所以理论上你应该看到/收到安全警告并能够“启用内容”。

您还可以考虑将受信任的位置添加到注册表中,甚至可以提供导出的“注册表”文件,可以在目标计算机上单击该文件以创建该受信任的文件夹。

因此,作为一个很好的一般建议,您需要首先将您的应用程序编译为 accDE。重命名为 accDR 的下一步是可选的,不是必需的,并且不会更改应用程序,也不会在使用运行时时实现任何用途。

【讨论】:

非常感谢您这么好的回复,我明白了您想说的话,我知道我会通过重命名我现有的 accdb 文件来说明,因为我只想知道确切的过程。问题是安全认证警告我让我不确定,但即使我从受信任的位置操作它也无法正常工作,所以请你指导我解决这个错误。 我的 Access 应用程序在将我的 accDB 编译成 accDE 后无法完全工作:我的报告只是部分预定义(硬编码)。根据用户的选择,它们中的大部分都是通过 VBA 代码动态设计的。在已编译的二进制文件 (accDE) 中,用户无法修改设计,因此我的报告不起作用。

以上是关于ms 访问 accdb 到 accdr 转换的主要内容,如果未能解决你的问题,请参考以下文章

在 MS Access 中将宏从 .accdb 保留到 .mdb

如何将 accdb 转换为 postgres 数据库

如何将 .accdb 转换为 db

MSAccess.SysCmd 将旧 mdb 转换为 accdb,在 vb.net vs2019

MS Access 2010 解码数据库

Python - 插入 ms 访问表