首先,我对Access和VBA比较陌生,虽然我对一些东西有很好的理解,但我仍然不太熟悉access和VBA使用的基本概念。
我有两个查询,调优和硬件(数据库用于数控加工线)。调整是表单的记录源。我在条件语句中使用调优查询中的数据,根据它们的值给表单上的代码框着色。在我的代码中有一个这样的示例:
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(Integral_Gain_X是调整中的一个字段)
我希望有一个类似类型的语句,它使用硬件查询中字段中的数据条目来创建类似类型的条件语句,但一直无法做到这一点。这是可能的吗?如果是的话,你能解释一下设置它的最佳方法吗?
请让我知道如果这是足够的信息,这是我在这里的第一个帖子。
提前谢谢你!
发布于 2015-08-01 22:59:24
DLOOKUP将从另一个表或查询中获取单个值,条件取自当前显示的记录。
但是,如果您需要从另一个表中获取大量字段,这可能是一个很慢的方法,但这通常只在列表表单上显示多个记录时才是一个因素。
另一种选择是将表单建立在一个查询的基础上,该查询从连接在一起的两个查询Tuning和Hardware中选择数据。这将比使用DLOOKUP更快。这并不总是有效的,因为添加一些连接将导致查询“不可更新”。最好的做法是尝试创建一个从两个查询中选择的新查询,确保完成联接,以便在硬件表中只对调优表中的单个行查找一行。
(使用OUTERJOIN (例如LEFT JOIN),即使不存在硬件行,也始终获得调优行)。
如果任何一个表都有group by子句(即with SUM,MIN,MAX),你就不能这样做,因为group by语句总是不可更新的)
还要注意,更高版本的Access可能会将条件格式设置规则添加到字段中(与excel中的情况非常相似),在“设计”视图中打开窗体。请参阅ribbon>Form Design>Format>Conditional格式设置。
PS。我希望您给出的VBA IF语句具有一个将颜色设置回原色的else
https://stackoverflow.com/questions/31753318
复制相似问题