0

我有一个使用 MS-JET 链接表的 Access 2003 数据库(即,有两个 *.mdb 文件)。总体任务是迁移到 SQL Server。但是,现有数据库有多个字段,其中包含空格和其他字符,这会扰乱两个 Access 迁移向导。因此,中间任务是制作具有更新字段名称的现有 mdb 版本。

“简单地”更改 UI mdb 文件中的字段名称不起作用,因为链接表在该 mdb 中是只读的。首先更新 Data mdb 文件字段名称不起作用,因为 UI mdb 然后在启动时抛出一个不稳定并且 Access 放弃了。

我正在寻找建议,但我可以看到的选项是:

  • 将 Data mdb 重新集成回 UI 中,进行更新,然后重新导出数据。对我来说似乎很有风险(系统是实时的,除了严格必要之外,不想玩数据)。

  • 我在这里查看了几个与使用 VBA 代码更改 ODBC 详细信息有关的答案,这很有趣,并且我可以看到我如何能够以编程方式编辑链接表的名称。这行得通吗?有没有更好的办法?

  • 取消链接所有链接的表,然后在 UI mdb 中编辑剩余的表单、报告、查询(但这可行吗??)并编辑 Data mdb 字段,最后重新链接所有内容。会分崩离析吗??……似乎很有可能。

有什么建议么?露丝

4

3 回答 3

1

每次我接管一个现有的 Access 应用程序时,我都会经历这个过程——在我对它做任何重要的事情之前,我必须将它提升到我自己的命名约定标准。最近我构建了一个快速而肮脏的实用程序来重命名字段。它是为我制作的,几乎没有错误恢复,UI 很丑,但它可能比自己做更快。

于 2011-10-06T01:16:00.550 回答
0

Find and Replace如果您需要通过项目传播名称更改,您可能会发现 Rick Fisher 的工具很有帮助。我多年来一直依赖它(虽然我最近没有做太多的 Access 开发):http ://www.rickworld.com/products.html

我认为这个工具会为您更改表和字段的名称,但我不确定。我主要使用它来查找对其他查询、表单和报表属性以及 VBA 代码中的表和查询的引用。

于 2011-10-04T19:50:47.160 回答
0

查看自动更正提供的曲目名称。 名称自动更正在 Microsoft Access 中的工作原理

制作 UI MDB 的副本,删除链接的表,然后从 Data MDB 中导入它们(作为表而不是链接)。启用自动更正后,Access 将尝试将您的字段名称更改传播到任何使用它们的位置(例如在表单中)。它不太可能捕获 100% 的必要更改,但它应该解决其中的很大一部分。然后,您需要手动追踪并修复其余部分。

一旦你把所有的东西都修好了,你就可以使用那个 MDB 版本来将你的表“升级”到 SQL Server。然而,一个巨大的复杂性是当您对新版本进行更改时,如果原始数据库是“活动的”。如果您在此期间绝对不能让数据库停止服务,您可以丢弃新表中的数据,然后使用“追加”查询,将旧字段名称别名为新字段名称以提取最新数据。

INSERT INTO NewTable (emp_id, another_field)
SELECT
    [emp ID],
    [another field]
FROM OldTable IN 'C:\somefolder\Data.mdb';

最后,关于自动更正的警告:不要在数据库的生产版本中启用它,因为可能会发生奇怪的事情。IMO 最安全的方法是将其打开,完成对象名称更改,然后再次将其关闭。

于 2011-10-04T21:10:29.233 回答