我有一个使用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字段,最后重新链接所有内容。它会分崩离析吗? ......似乎很可能。
有什么建议吗? 露丝
答案 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是打开它,完成对象名称更改,然后再将其关闭。