重命名链表MDB文件对中的字段?

时间:2011-10-04 17:51:54

标签: ms-access field jet renaming linked-tables

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

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

我正在寻找建议,但我能看到的选择是:

  • 将Data mdb重新集成到UI中,执行更新,然后重新导出数据。对我来说似乎风险很大(系统是实时的,不想使用数据而非严格必要)。

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

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

有什么建议吗? 露丝

3 个答案:

答案 0 :(得分:1)

每次我接管一个现有的Access应用程序时,我都会经历这个过程 - 在我做任何有意义的事情之前,我必须按照我自己的命名约定标准。最近我建造了a quick-and-dirty utility to rename fields。它是为我而制作的,并且几乎没有错误恢复,并且是一个丑陋的用户界面,但它可能比自己做的更快。

答案 1 :(得分:0)

如果您需要在项目中传播名称更改,您可能会发现Rick Fisher的Find and Replace工具很有用。我已经依赖它多年了(虽然我最近没有做很多Access开发):http://www.rickworld.com/products.html

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

答案 2 :(得分:0)

查看自动更正提供的曲目名称。 How Name AutoCorrect Works in 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是打开它,完成对象名称更改,然后再将其关闭。