微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access 中的多表查询不可更新

如何解决MS Access 中的多表查询不可更新

这是我的第一篇文章,如果我无法提供足够的信息,请多多包涵。

我正在尝试将一个查询放在一起,该查询将用作项目费用数据输入表单上的子表单。作为查询的一部分,我希望 Access 提取正确的税率,以便在查询的计算字段中正确计算 PST 和 GST。我有一个由 5 个表组成的查询

  1. tblProjectExpenseLineItems(PK:ExpenseLineItemID,FK:ProjectExpenseID)
  2. tblProjectExpenses(PK:ProjectExpenseID,FK:ProjectNoID)
  3. tblProjects(PK:ProjectNoID,FK:ClientID)
  4. tblClientList(PK:客户端 ID)
  5. tblTaxRate

查询设计如下:qryProjectExpensesLineItemsExtended Query Design

图片没有显示,但 PSTTaxRate 字段设置为 [tblTaxRate]![TaxRate],PST​​ 字段只是费用行项目的 PST 计算。

我手动将 [tblClientList].[Province] 加入到 [tblTaxRate].[TaxJurisdiction]。这些在数据库关系中不相关,因为这两个字段都不是主键,而且我得到了“不确定”关系类型。我已检查并确认这些字段中的值实际上相同,因此在我运行查询时会显示结果。

查询字段主要来自 tblProjectsExpensesLineItems 表,因为这是我想通过子表单更新的表(我已经尝试添加不同的 PK 以查看是否会改变任何东西,但没有这样的运气)。我有其他四个表的唯一原因是获取 [tblClientList].[Province] 字段,以便我可以获取客户的位置并知道要收取哪种税。我住的地方最近更改了几次 PST,因此我使用 [ExpenseDate] 字段进一步过滤查询,以找到适合 [tblTaxRate].[StartDate] 和 [tblTaxRate].[EndDate] 之间的税率字段。

我已检查/阅读的内容

  • 我已检查表关系是否已设置,是否与主键相关,并已选中“强制参照完整性”。
  • 我尝试从查询删除 tblTaxRate,因为它没有实际关系。查询仍然不可更新,当我运行查询时,Access 会提示我输入 TaxRate、StartDate 和 EndDate 字段
  • 我在 Why is my query not updateable? 上找到了一篇非常详细的帖子,其中介绍了查询不可更新的原因。我对 Access 很陌生,所以我能够排除其中的大部分,但其中一些我不太明白(也许与一对多和多对一关系有关?)
  • 删除除我要更新的表之外的所有表。这当然使查询可更新,但 Access 会提示我输入与尝试查找税率相关的所有字段。

我认为也许一个简单的方法是手动输入税率,但数据库正在用于开票,所以我试图消除用户输入错误的可能性。

我还认为,如果我使用表单控件来完成繁重的工作会更容易,但税收计算会以多种形式显示,所以我希望将计算保持在查询级别,这样我就不必保留为每个表单编写计算,而只是引用相同的查询

我完全不知所措。我有查询正确响应,但我不能做任何数据输入,这是查询的唯一目的!非常感谢任何帮助!

斯科特

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。