Ms access 使用其他表/查询中的数据访问表验证

Ms access 使用其他表/查询中的数据访问表验证,ms-access,Ms Access,我正试图在Access 2003中建立一个数据库,我想根据另一个相关表中的数据验证一个表中的字段 例如,我有一个分类表和它们的最低目标。我正在创建另一个表来保存每个类别的实际目标,我将每月独立设置。因此,如果我没有达到每月的最低目标,我需要一个验证规则来警告我。我可以这样做吗?如何做?这取决于您希望何时何地完成验证。在Access 2003中,无法像在SQL Server中那样在表中完成验证 一个简单的解决方案是使用DLookup函数从目标表中查找目标值,然后将该值与类别表中的最小目标值进行比较

我正试图在Access 2003中建立一个数据库,我想根据另一个相关表中的数据验证一个表中的字段


例如,我有一个分类表和它们的最低目标。我正在创建另一个表来保存每个类别的实际目标,我将每月独立设置。因此,如果我没有达到每月的最低目标,我需要一个验证规则来警告我。我可以这样做吗?如何做?这取决于您希望何时何地完成验证。在Access 2003中,无法像在SQL Server中那样在表中完成验证

一个简单的解决方案是使用DLookup函数从目标表中查找目标值,然后将该值与类别表中的最小目标值进行比较

If CategoryGoalValue == DLookup('MinGoal', 'Goal', 'Goal = ''' & CategoryName & '''') Then    
  'Minimum Goal Met    
Else    
  'Warning - Minimum Goal Not Met    
End If    

请注意,尽管DLookup函数是内存密集型函数,并且存储在大量记录上,即如果在查询中使用,完成查询所需的时间非常重要且值得注意。

您可以使用检查约束强制要求当前类别目标大于或等于参考表中的最小目标

在本例中,当前目标值存储在名为current_goals的表中,该表包括两个字段:category_id;和目标

参考表名为min_goals,包括2个字段:category_id;在你的地板上

改变表格当前的目标 添加有效的约束\u目标 检查 目标>= 选择目标楼层 来自min_的目标 其中min_goals.category_id=当前_goals.category_id ; 必须在ADO下执行DDL语句;DAO无法处理包含检查约束的DDL。因此,将语句文本加载到字符串变量中,并从CurrentProject.Connection(ADO对象)执行它:

CurrentProject.Connection.Execute strDdl
目前,这不会在MS Access中编译。如果您在任何阶段进行升级,Access 2010都有数据宏:您说的“目标”意味着渴望的东西,而不是完全控制的东西,如生产或销售。是这样吗?如果目标没有达到要求的目标,应该怎么办?你只是需要一个警告,还是应该禁止进入?