Database MS Access 2007表单到表单数据验证(数据类型:日期)
我认为我有前进的道路,但需要关于我想做什么的最佳方法的指导: MS Access 2007数据库 我有两个表,我为它们创建了两个用户输入表单 表格一。 现场位置:本表关注的领域为: 找到站点的日期(使用日期数据类型) 表格二。 现场详细信息:表格中的关注领域为: 工作日期开始(使用日期数据类型) 此问题是我正在尝试创建一个表单到表单验证规则,该规则定义以下内容: 工作开始日期必须大于找到站点的日期 我尝试过各种验证规则,但都不起作用,例如: [工作日期开始]>=[找到站点的日期] =[工作地点]![找到网站的日期] 我工作的一条规则要求两个表单都是开放的,但我不想这样 然而,这就是解决方案:Database MS Access 2007表单到表单数据验证(数据类型:日期),database,ms-access-2007,Database,Ms Access 2007,我认为我有前进的道路,但需要关于我想做什么的最佳方法的指导: MS Access 2007数据库 我有两个表,我为它们创建了两个用户输入表单 表格一。 现场位置:本表关注的领域为: 找到站点的日期(使用日期数据类型) 表格二。 现场详细信息:表格中的关注领域为: 工作日期开始(使用日期数据类型) 此问题是我正在尝试创建一个表单到表单验证规则,该规则定义以下内容: 工作开始日期必须大于找到站点的日期 我尝试过各种验证规则,但都不起作用,例如: [工作日期开始]>=[找到站点的日期] =[工作地点]
willir(MIS)post re:Two form validation using最简单的方法是查看表中的值,而不是其他形式的值。让您查看另一个表中的值 在您的例子中,如果您的表名为“Site location”,那么DLookup()本身可能看起来像这样 您可以通过指定表、列和键来访问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事件中。)
感谢Dlookup的工作,在更新事件之前为私有子系统添加了代码。修改并定制了上述示例代码,以符合我的要求。这种方法比有一个很长的验证规则,要求两个表单都是打开的要好得多。现在我可以根据自己的喜好格式化日期和日期输入。干杯
'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"])
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