【问题标题】:MS Access data validation between form and subform表单和子表单之间的 MS Access 数据验证
【发布时间】:2012-10-18 17:10:21
【问题描述】:

我有一个跟踪发票的 MS Access 数据库。在我用来输入数据的表格中,我可以控制发票金额(例如 100 美元)的 [金额]。在该表格中,还有一个子表格可以跟踪发票的部分内容(例如 50 美元的食品供应和 50 美元的清洁用品)。主窗体还有一个控件[Breakdown Total],用于汇总子窗体中的细目金额。

我正在努力做到这一点,除非 [Amount] = [Breakdown Total],否则您无法更改表单中的记录。由于是两表结构,数据验证规则似乎无法按照我想要的方式工作,因为它实际上仅在您填写 [Amount] 控件时才有效,而不是在您随后更改细分时才有效。

我想构建一个事件来处理这个问题,但我不知道要使用什么事件——BeforeUpdate 不允许我离开不匹配的控件,这没有帮助——如果那样的话正确的?--而且 AfterUpdate 似乎不允许我要求将可疑记录保留在屏幕上。有人可以推荐我应该使用的活动吗?

【问题讨论】:

  • 稍微扩展一下您的表单/子表单的绑定方式?是基于表/查询还是 VBA 控制?
  • 现在它是基于表/查询的。有一个应付账款表和一个单独的应付账款明细表,它将每条记录(发票的一部分)链接到应付账款表中的发票编号。
  • 在这一点上,我想我只是不知道如何将VB放在一起以使其恰到好处,也不知道将代码放入的事件。
  • 我过去所做的是构建父表单来保存基本信息,如果我需要一个子表单,我会根据父表单的选择开发该子表单。考虑选择和情况是非常需要开发的。

标签: ms-access validation


【解决方案1】:

这是我最近在客户处实施的解决方案。不确定它是否正是您所需要的,但实现了两个 ListBox,一个用于选择 Top-Category,另一个是 Column'ed 以显示 Top-Category 子项的 Cross-Tab 显示。

左侧列表框在 VBA 中以编程方式从访问视图加载信息,然后主体列表框由交叉表创建算法绑定。现在你的不一定要像我要求的那样复杂或详细。但是您可以在没有子表单的情况下完成此操作。

【讨论】:

  • 谢谢——这很有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多