最简单的方法是查看表中的值,而不是另一种形式的值。DLookup()可让您查看另一个表中的值。
在您的情况下,如果您的表名为“站点位置”,则 DLookup() 本身可能看起来像这样。
DLookup("[Date Site Found]", "[Site Location]", "Your WHERE clause goes here")
您可以通过指定表、列和键来访问 SQL 数据库中的数据。您的 WHERE 子句提供密钥。从你的描述中无法判断它应该是什么样子,但我会猜测一下。
'Using a literal number. Only useful for testing.
DLookup("[Date Site Found]", "[Site Location]", "[Site ID] = 32")
'Referring to another control on the same form.
DLookup("[Date Site Found]", "[Site Location]", "[Site ID] = Form![Site ID"])
链接的文章显示了 WHERE 子句的几种变体,每个变体都返回相同的结果。这种WHERE 子句不包含 where一词。这绊倒了很多人。
使用 DLookup
您的事件代码应如下所示。(我认为这应该在 [work start date] 控件的 BeforeUpdate 事件中。)
Dim date_found as Date
date_found = DLookup("[Date Site Found]", "[Site Location]", "[Site ID] = Form![Site ID"])
If ([work date start] >= date_found) Then
'Good. Do nothing.
Else
'Bad [work start date]. Throw the user a dialog box, and cancel this event.
'Left as an exercise for the OP.
End If