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

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

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

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

【问题讨论】:

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

标签: vba database validation ms-access rules


【解决方案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 的值。
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2011-12-05
  • 2015-06-29
  • 1970-01-01
  • 2015-09-29
  • 2018-01-31
  • 2012-08-31
相关资源
最近更新 更多