Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 是否重命名链接表MDB文件对中的字段?_Ms Access_Field_Jet_Renaming_Linked Tables - Fatal编程技术网

Ms access 是否重命名链接表MDB文件对中的字段?

Ms access 是否重命名链接表MDB文件对中的字段?,ms-access,field,jet,renaming,linked-tables,Ms Access,Field,Jet,Renaming,Linked Tables,我有一个使用MS-JET链接表的Access 2003数据库(即,有两个*.mdb文件)。总体任务是转移到SQL server。但是,现有数据库中有多个带有空格和其他字符的字段,这两个访问迁移向导都不满意。因此,中间任务是使用更新的字段名创建现有mdb的版本 “简单地”更改UI mdb文件中的字段名不起作用,因为该mdb中的链接表是只读的。首先更新数据mdb文件字段名不起作用,因为UI mdb随后在启动时抛出一个抖动,Access放弃 我正在寻找建议,但我可以看到以下选项: 将数据mdb重新集

我有一个使用MS-JET链接表的Access 2003数据库(即,有两个*.mdb文件)。总体任务是转移到SQL server。但是,现有数据库中有多个带有空格和其他字符的字段,这两个访问迁移向导都不满意。因此,中间任务是使用更新的字段名创建现有mdb的版本

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

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

  • 将数据mdb重新集成到UI one中,进行更新,然后重新导出数据。对我来说,这似乎非常危险(系统是实时的,不想处理任何超出严格要求的数据)

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

  • 取消所有链接表的链接,然后在UI mdb中编辑其余的表单、报告、查询(但这是否可行)?并编辑数据mdb字段,最后重新链接所有内容。它会崩溃吗。。。似乎有可能

有什么建议吗?
Ruth

如果您需要在项目中传播名称更改,您可能会发现Rick Fisher的
查找和替换
工具很有用。我已经依赖它很多年了(尽管我最近没有做太多的Access开发):


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

查看“曲目名称自动更正”提供的功能

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

一旦您修复了所有内容,就可以使用MDB版本将表“升迁”到SQL Server。然而,一个巨大的复杂性是,当您对新版本进行更改时,如果原始数据库处于“活动”状态。如果在此期间绝对不能使数据库停止服务,则可以放弃新表中的数据,然后使用“append”查询(将旧字段名别名为新字段名)来提取最新数据

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

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

每次我接管现有的Access应用程序时都会经历这个过程——在我对它做任何重要的操作之前,我必须使它达到我自己的命名约定标准。最近我建了一个。它是为我设计的,几乎没有错误恢复功能,而且UI很难看,但可能比自己做的快。

为什么你不能删除链接,编辑表,然后重建链接?我认为不需要购买任何东西。当然,这不是必须的。我刚刚发现这个工具非常有用。在我看来,37美元是物有所值的。谢谢,但我已经知道查找和替换,但是对于链接表,它不能/不能更改名称。不过我同意这是值得的。谢谢你的这些想法。我确实想知道如何断开和整合数据,但正如我上面所说的,就潜在影响而言,这是可怕的。你有没有别的办法(可能更安全)?[更详细一点的背景:这是需要“修复”的3个DBs之一,尽管我们可以把它全部取下来,但它绝对必须在几个小时内回来……没有借口!]我猜至少需要几个小时才能完成对象名称的更改。因此,除了在离线db版本中进行更改之外,我看不到任何现实的选择。并创建和测试“附加”查询,您将需要提取最新数据。完成所有这些之后,我认为您应该能够导入数据,然后在分配的几个小时内将其“升级”到SQL Server。HansUp:是的,这需要几个小时,这也是我希望在开始部署之前将UI mdb置于最终状态的原因之一。谢天谢地,UI中没有永久数据,只有代码/查询/表单等。所以我想我会听从你的建议。