如何设置验证规则: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 日期验证规则(大于数据库中的任何其他数据)
如何创建一个验证规则,使field3不等于表中的field2