【发布时间】:2014-08-07 16:15:38
【问题描述】:
我正在尝试在 Access 中为用户构建一个可更新的视图。基本上,基础表如下所示:
Accounts
--------
accountId
accountName
accountHolder
TransactionStatements
------------
statementId
accountId
received
month
year
用户想要一个如下所示的查询(视图):
StatementView
-------------
accountName
accountHolder
year
janReceived
febReceived
marReceived
etc...
使用转置的 SQL 实现这一点很简单,但结果视图不可更新。
我也尝试过明确地执行多个连接来完成此操作:
PARAMETERS [Enter Year:] Long;
SELECT accountName, accountHolder, year,
FROM ((Accounts a
INNER JOIN TransactionStatements ts1 ON a.accountID = ts.accountID) 'AND month = 1 (This isn't allowed for some reason?)
INNER JOIN TransactionStatements ts2 ON a.accountID = ts.accountID) 'AND month = 2 (This isn't allowed for some reason?)
WHERE ts1.month = 1 AND ts2.month = 2 AND ts1.year = ([Enter Year:]) AND ts2.year = ([Enter Year:])
但是,一旦我添加第二个 INNER JOIN,结果就会再次变得不可更新。我看过这个MS help page,但它并没有帮助我找出正确的方法来做到这一点。
它建议使用表单作为替代方案,但在 Access 中构建自定义表单似乎比编写视图更加神秘和复杂。
有什么建议吗?
【问题讨论】:
-
整个东西是放在 Access 中,还是后端放在 SQL Server 之类的东西中?
-
遗憾的是,这一切都在 Access 中。
-
检查我的回答中提到的任何实例。特别注意关系表,确保没有多对一对多连接
-
谢谢,但我在我的问题中链接到的文章中看到了这一点。我希望有人知道一些技巧可以使查询可更新。