SQL视图与MS Access查询---更新数据会影响多个基表

时间:2014-05-29 15:33:13

标签: sql-server performance ms-access sql-view

我有兴趣了解有关在MS Access中使用SQL视图与本地查询的更多信息。我喜欢这样一个事实:一个视图基本上是一个存储在服务器上的查询,而运行Access的本地机器“看到”它作为一个表。

由于性能原因,我有时会对查询进行查看,因为它通常会使表单加载速度更快。但是,如果我在不同基表中的两个不同字段中进行更改,我遇到了无法更新视图的问题。即使使用正确的连接等正确构造视图

只是想知道是否有更有效和正确的方法来构建可以更新的查询。

1 个答案:

答案 0 :(得分:0)

用户永远不能一次更新多个表。这是给定的。您需要使用单个表视图,可更新的简单视图或表来构造表单(可能使用子表单)来表示数据。

子表单基本上是父表单的左连接。像

SELECT * 
FROM ParentForm P
LEFT JOIN SubForm S
 ON P.ParentID   <~~Link Master Field
    = S.ParentID <~~Link Child Field

因此您可以使用子表单重新创建视图。

如果您的视图太复杂而无法适应此模具,则可能无法更新,这可能意味着您要更新的数据位于单个表中,但视图中的所有其他信息都是支持信息。即显示以支持用户做出决定。

在这种情况下,您应该使表单的Record Source成为您要更新的表/视图(可更新)。然后在支持数据进入可更新表/视图的组合框/列表框/控件中,使Row Source复杂视图的数据。

无论视图在哪里(在Access中或在服务器上),如果它的构造方式使得无法确定哪个表应该更改哪个记录,那么其他任何事情都不重要。你需要以不同的方式设计整个表格。