如何设置验证规则:MS 访问中的“任务开始日期 >= 项目开始日期”

Posted

技术标签:

【中文标题】如何设置验证规则:MS 访问中的“任务开始日期 >= 项目开始日期”【英文标题】:How to set validation rule: "Task start date >= Project start date" in MS access 【发布时间】:2021-04-20 02:46:37 【问题描述】:

我希望为 MS Access 设置验证规则,“项目开始日期”位于“项目”表中,而“任务开始日期”位于“任务”表中。我想在我的表单文本框中设置规则,以便“任务不应早于项目开始”

我想在表单中设置验证规则,但我不知道如何通过“表达式生成器”或“VBA 代码生成器”构造这个表间验证规则。

有这方面知识的人可以帮帮我吗?谢谢!

【问题讨论】:

使用DLOOKUP() 函数然后比较这两个日期。 嗨!我是否必须编写任何其他参数来指定要查找的记录?假设我正在为“项目 A”填写“任务 A”,我希望验证规则启动并使用“项目 A”中的数据进行验证 DLOOKUP() 具有 Criteria,如果需要,您可以使用它从特定记录中检索值。 【参考方案1】:

在图片中,并假设由于项目必须在任务之前出现,我们有一个一对多的关系(使用关系选项卡),例如:

然后单击项目表并单击创建表单,我们会得到一个已经构建子表单的表单:

(一些文本框和标签已删除以进行美化)

单击 TaskStartDate 文本框并在属性下选择验证规则。

这是放置 DLOOKUP 的位置

[TaskStartDate]>DLookUp("ProjectStartDate","Projects","ProjectID = " & [ProjectID])

我们可以访问TaskStartDate和ProjectID,因为子表单是基于tasks表的(这就是为什么我们需要建立关系并将ProjectID放在Tasks表中),但是我们必须使用ProjectID查找对应的ProjectStartDate

【讨论】:

您好,请问这个表达式需要什么先决条件?我尝试输入 [Task Start] > DLookUp("Project Start", "Project", "Project Name = " & [Project Name]) 我已将项目 ID 替换为项目名称,因为这是我的表的主键,我的任务名称也是我在另一个表中的主键。 表达式的工作方式与我在答案中显示的表格和表单结构相同。检查在翻译您的案例的答案时是否有错误。如果有帮助:TaskStartDate 是 Access 如何自动命名由 TaskStartDate 控制的文本框,这可能会欺骗您。也许检查一下表单和子表单的记录源是什么以及它们是如何绑定的。考虑将解决方案放入空白数据库,让解决方案发挥作用,然后与您的数据库进行比较和对比。 所以 [TaskStartDate] 是文本框,“ProjectStartDate”、“Projects”和“ProjectID”指的是 Projects 表中的列。 [ProjectID] 是子表单记录源当前选中行中 ProjectID 的值。

以上是关于如何设置验证规则:MS 访问中的“任务开始日期 >= 项目开始日期”的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 验证规则未在子表单中触发

MS ACCESS 日期验证规则(大于数据库中的任何其他数据)

MS 访问 年龄限制在 18 岁或以上

如何创建一个验证规则,使field3不等于表中的field2

如何从 FormRequest 类方法中访问当前经过身份验证的用户

vuetify 规则功能 - 如何在验证期间访问组件标签?