Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
Ms access 如何在条件语句中不是记录源的查询中使用记录?_Ms Access_Vba - Fatal编程技术网

Ms access 如何在条件语句中不是记录源的查询中使用记录?

Ms access 如何在条件语句中不是记录源的查询中使用记录?,ms-access,vba,Ms Access,Vba,首先,我对Access和VBA比较陌生,虽然我对一些事情有很好的理解,但我仍然不太熟悉Access和VBA使用的基本概念 我有两个问题,调优和硬件(数据库用于CNC加工线)。调整是窗体的记录源。我在条件语句中使用调优查询中的数据,根据其值对表单上的框进行颜色编码。我的代码中有一个示例: If MachineID = 3 And (Integral_Gain_X < 181 Or Integral_Gain_Y < 181 Or Integral_Gain_Z < 195) T

首先,我对
Access
VBA
比较陌生,虽然我对一些事情有很好的理解,但我仍然不太熟悉Access和
VBA
使用的基本概念

我有两个问题,调优和硬件(数据库用于CNC加工线)。调整是窗体的记录源。我在条件语句中使用调优查询中的数据,根据其值对表单上的框进行颜色编码。我的代码中有一个示例:

If MachineID = 3 And (Integral_Gain_X < 181 Or Integral_Gain_Y < 181 Or 
Integral_Gain_Z < 195) Then
m110a.BackColor = RGB(247, 255, 0)
End If
如果MachineID=3且(积分增益X<181或积分增益Y<181或
积分增益Z<195)然后
m110a.BackColor=RGB(247255,0)
如果结束
Integral\u Gain\u X
是调谐中的一个字段)

我希望有一个类似类型的语句,它使用硬件查询中某个字段的数据条目来生成类似类型的条件语句,但一直无法做到这一点。可能吗?如果可能的话,你能解释一下最好的设置方法吗

请让我知道,如果这是足够的信息,这是我在这里的第一个职位


提前多谢

DLOOKUP将从另一个表或查询中获取一个值,其中的条件取自显示的当前记录

然而,如果您需要从另一个表中获取大量字段,那么这可能是一种缓慢的方法,但这通常只是在列表表单上显示多个记录时的一个因素

另一个选项是将表单基于一个查询,该查询从两个查询(调优和硬件)中选择数据,并连接在一起。这将比使用DLOOKUP更快。这并不总是有效的,因为添加一些连接将导致查询“不可更新”。最好的做法是尝试创建一个新查询,从两个查询中进行选择,确保完成联接,以便在硬件表中只有一行用于调优表中的一行

(使用外部连接(例如左连接),即使不存在硬件行,也始终获取调整行)

如果任何一个表都有GROUPBY子句(即带有SUM、MIN、MAX),您将无法执行此操作,因为GROUPBY语句始终是不可更新的)

还要注意,Access的更高版本可以将条件格式规则添加到字段(非常类似于excel)中,以便在“设计”视图中打开表单。请参见功能区>表单设计>格式>条件格式


另外,我希望您给出的VBA IF语句有一个设置颜色的else

DLOOKUP将从另一个表或查询中获得一个值,其中的条件取自显示的当前记录

然而,如果您需要从另一个表中获取大量字段,那么这可能是一种缓慢的方法,但这通常只是在列表表单上显示多个记录时的一个因素

另一个选项是将表单基于一个查询,该查询从两个查询(调优和硬件)中选择数据,并连接在一起。这将比使用DLOOKUP更快。这并不总是有效的,因为添加一些连接将导致查询“不可更新”。最好的做法是尝试创建一个新查询,从两个查询中进行选择,确保完成联接,以便在硬件表中只有一行用于调优表中的一行

(使用外部连接(例如左连接),即使不存在硬件行,也始终获取调整行)

如果任何一个表都有GROUPBY子句(即带有SUM、MIN、MAX),您将无法执行此操作,因为GROUPBY语句始终是不可更新的)

还要注意,Access的更高版本可以将条件格式规则添加到字段(非常类似于excel)中,以便在“设计”视图中打开表单。请参见功能区>表单设计>格式>条件格式


另外,我希望您给出的VBA IF语句有一个将颜色设置回原色的else

我们需要查看硬件查询,以及ms access的哪个版本?您可以使用DLOOKUP使用Tuning中的条件查找硬件中的值我们需要查看硬件查询,还可以使用哪个版本的ms access?您可以使用DLOOKUP,使用优化中的条件查找硬件中的值