2017-04-05 79 views
0

我在我的访问数据库中有一个链接表(dbo_Billing_denied(DSN = WTSTSQL05_BB; DATABASE = DEPTFINANCE)等),我想创建一个表来存储这个数据链接到本地​​表,所以我可以用它来运行其他查询。目前,我可以利用这一点,因为它告诉我,它不能使连接(ODB - 连接“WTSTSQL05_BB”失败从链接的SQL表中存储/创建本地表

我必须首先创建一个表,并指定所有领域我能做到这一点之前(创建一个表和字段与链接表中的内容相同,然后创建追加查询来执行此操作...)?

+0

您是否尝试过数据库的副本并右键单击表格? – Fionnuala

回答

0

听起来好像你可能有两个问题,我将解决第二个问题。在这之前重新建立与链接表的连接

您可以在Access中使用“make table query”来创建链接表的本地副本,您可以使用GUI进行此操作,也可以将SQL像这样的东西:

SELECT <list of various fields, or * for all fields> 
INTO <name of new local table> 
FROM <name of linked table(s) on the server> 
WHERE <any other conditions you want to put on which records are included>; 

我提到可能有多个表。你也可以用连接的表或联合等来做到这一点。“where”子句是可选的。删除它将复制整个数据集。

当您尝试在Access中执行此查询时,您将收到警告。它会告诉你,你即将写(或覆盖)一张表。如果您正试图为最终用户编写一个更干净的应用程序并使用更少的麻烦消息,请从宏中调用此查询。宏需要关闭警告,执行查询,然后再打开警告。

在您编写之前,Microsoft Access不要求您创建此表;如果表不存在,Access将根据源数据中的字段定义为您创建此表。如果同名的表存在,Access将从您的数据库中删除此表,然后创建该名称的新表。

这也意味着您正在生成的本地表将需要一个唯一的名称。如果您的查询尝试使用相同的名称覆盖链接表,则Access将执行的第一件事是删除链接的表。然后,它将查找它刚刚放下的链接表中的字段定义和输入数据。

由于新本地表将具有新名称,因此为链接表开发的查询将不适用于新的本地表。一种可能的解决方法是重命名本地Access数据库中的链接表。 Access中的表名不需要与它链接到的数据库中的名称相同。查询然后可以写入正确名称的表格,以前的查询应该可以工作。不过请记住,这些查询不再适用于实时数据。