"Where" 在验证规则中 - 访问 VBA

"Where" in the validation rule - Access VBA

这是我的问题:我有两个表。第一个是 Stock_out,它包含一个名为 Quantity_out 的字段。第二个是股票,它包含一个名为 Available_Quantity 的字段。这两个表共享一个名为 "RRN".

的字段

Quantity_out的验证规则中,我想做类似

的东西
[Quantity_out]>=[Stock].[Available_Quantity] where [RRN]=[Stock].[RRN]

问题是哪里不认识"where"。 我的访问版本是2016。 我该怎么做?

此致,

新加坡

这是另一个网站的解决方案。有效。

嗨,

无法在验证规则中引用不同的 table。

如果要在 table 级别应用这样的规则,有两种方法:

  1. 在更改前数据宏中使用宏代码(在 Access 版本 >=2010 中), 本文中的示例 4 显示了如何引用不同的 table
  2. 在所有 >=Access 2000 的版本中,您可以使用 CHECK 约束,但是它有缺点: 它只能通过 VBA+ADO 完成并且在 UI 中不可见,并且您(几乎)无法配置错误消息。满足您要求的代码: CurrentProject.Connection.Execute_ "ALTER TABLE Stock_out"&_ “添加约束 Quantity_Must_Be_Higher_Or_Equal” & _ " 检查 (Stock_out.Quantity_out >= (SELECT Stock.Available_Quantity 来自库存" & _ " 哪里 Stock.RRN = Stock_out.RRN))"

该示例使用约束名称来提示用户出了什么问题,因为这是将某事写入系统错误消息的唯一方法。

铜 卡尔 Access FAQ (de/it): donkarl.com Access Lobby: AccessDevelopers.org