Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database MS Access 2007表单到表单数据验证(数据类型:日期)_Database_Ms Access 2007 - Fatal编程技术网

Database MS Access 2007表单到表单数据验证(数据类型:日期)

Database MS Access 2007表单到表单数据验证(数据类型:日期),database,ms-access-2007,Database,Ms Access 2007,我认为我有前进的道路,但需要关于我想做什么的最佳方法的指导: 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