如何在条件语句中不是RecordSource的Query中使用记录?

时间:2015-07-31 18:59:34

标签: vba ms-access access-vba

首先,我对AccessVBA相对较新,虽然我对事情有一些很好的理解,但我仍然不太熟悉访问的基本概念和{{ 1}}使用。

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

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 是调整中的字段)

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

如果这是足够的信息,请告诉我,这是我在这里的第一篇文章。

提前多多感谢!

1 个答案:

答案 0 :(得分:0)

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

但是,如果你需要从另一个表中获取很多字段,那么它可能是一个很慢的方法,但这通常只是在列表表单上显示多个记录时的一个因素。

另一种选择是将表单基于一个查询,该查询从两个查询Tuning和Hardware中选择数据。这比使用DLOOKUP更快。这并不总是有效,因为添加一些连接会导致查询无法更新&#34;。最好的办法是尝试从两个查询中选择创建一个新查询,确保连接完成,以便在调优表中的单行中只有一行喜欢硬件表。

(使用OUTERJOIN(例如LEFT JOIN),即使没有硬件行,也总是得到调整行。)

如果任何一个表都有group by子句(即使用SUM,MIN,MAX),那么由于group by语句始终是不可更新的,因此无法执行此操作。

另请注意,Access的更高版本可以在字段中添加条件格式规则(非常类似于excel)在设计视图中打开表单。请参阅功能区&gt;表单设计&gt;格式&gt;条件格式。

PS。我希望你提供的VBA IF语句有一个将颜色设置回来的其他