我有兴趣了解有关在MS Access中使用SQL视图与本地查询的更多信息。我喜欢这样一个事实:一个视图基本上是一个存储在服务器上的查询,而运行Access的本地机器“看到”它作为一个表。
由于性能原因,我有时会对查询进行查看,因为它通常会使表单加载速度更快。但是,如果我在不同基表中的两个不同字段中进行更改,我遇到了无法更新视图的问题。即使使用正确的连接等正确构造视图
只是想知道是否有更有效和正确的方法来构建可以更新的查询。
答案 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中或在服务器上),如果它的构造方式使得无法确定哪个表应该更改哪个记录,那么其他任何事情都不重要。你需要以不同的方式设计整个表格。