【问题标题】:Remove replication from an MS Access Database?从 MS Access 数据库中删除复制?
【发布时间】:2015-06-17 15:02:38
【问题描述】:

我有一个 Microsoft Access 数据库 (*.mdb),我们将其称为 Admin.mdb,它与用户在其计算机上使用的其他几个 *.mdb's 链接。

我们正在升级到最新版本的 MS-Access 365 (Microsoft Office Professional Pro 365),它不支持复制;

当我在 Access 365 中运行链接到它的数据库时,我收到一条错误消息,内容如下:

"当前版本的 Microsoft Access 不支持复制 数据库。要使用此数据库,请在以前版本的 微软访问”

Admin.mdb 数据库在某些时候支持复制,但它复制到的服务器(设计主机)此时早已不复存在。

为了从Admin.mdb 中删除复制,我从一个空白的.mdb 文件中运行了following script。该脚本尝试通过将 Admin.mdb 中的所有内容复制/重新创建到空的 db1.mdb 文件来删除复制。

它在一定程度上可以工作,但是有些文件最终会出现这样的错误消息......

3259 Invalid field data type.

...重新创建表时。

我已经使用 MS-Access 2003 和 MS-Accesss 2007 运行了脚本,但仍然遇到同样的错误。

我尝试通过将它们添加到 if 语句中来跳过这些表,以便使用 <> 跳过系统表,但它只是错过了很多表。

我的直觉是Admin.mdb 文件本身已经很旧了。也许它是在 MS-Access 2000 或类似的东西中创建的。

是否有一个 kb 指定已弃用的数据类型?

它似乎发生在具有Number(类型20)字段的字段上。

看起来问题可能是我们使用 DAO to do this 而我们需要使用的是 ADOX...

【问题讨论】:

    标签: database ms-access database-replication


    【解决方案1】:

    我认为当数据库设置为支持复制时,一个或多个用于跟踪更改的字段被添加到表中。这些可能是 Decimal (const = 20) 类型的 DAO 字段。

    我建议您删除这些字段(因为您将不再需要它们)并尝试再次将对象导入新数据库。

    【讨论】:

    • 实际上,我认为您可以使用 GUI 将复制的 *.mdb 中的表导入另一个空数据库...还是在此过程中丢失一些重要的东西?
    • 我认为是这些字段导致了问题?我建议您删除它们,因为它们是为了跟踪复制而创建的,您将不再复制数据库。除非您将它们用于其他任何事情,否则我认为它们是多余的。
    【解决方案2】:

    如果您不需要复制,则使用 .accdb 创建新数据库并使用旧版本的访问权限导入所有表。现在你应该可以在新版本中打开它了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多