Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Vba 访问单个记录上连续表单的条件格式_Vba_Ms Access - Fatal编程技术网

Vba 访问单个记录上连续表单的条件格式

Vba 访问单个记录上连续表单的条件格式,vba,ms-access,Vba,Ms Access,我有一个连续的表格,列出了取样的时间和这些样品中不同化学物质的含量。我想设置单元格的格式,以便在化学水平超出范围时显示。我的问题是,它们在每次采样时都会发生变化。3对于10小时的样本来说太高了,但是对于30小时来说是可以的。下面是我的连续形式的一个例子 Sample Time Lactics Sugar 10 hour .085 15.2 20 hour .125 12.8 30 hour

我有一个连续的表格,列出了取样的时间和这些样品中不同化学物质的含量。我想设置单元格的格式,以便在化学水平超出范围时显示。我的问题是,它们在每次采样时都会发生变化。3对于10小时的样本来说太高了,但是对于30小时来说是可以的。下面是我的连续形式的一个例子

Sample Time Lactics Sugar 10 hour .085 15.2 20 hour .125 12.8 30 hour .345 8.4 40 hour .405 4.2 50 hour .415 1.9 取样时间乳酸糖 10小时08515.2 20小时12512.8 30小时3458.4 40小时4054.2 50小时4151.9
所以我想对我跟踪的每个时间段和每个成分说“如果Lactics>.2在20小时后,然后使细胞变红”等等。如何使用VBA进行设置?

您可以使用带有值列表的表达式:

 ([sample]=10 And [Lactics]>=0.2) Or ([sample]=20 And [Lactics]>=0.35)

创建一个表格来保存“超出范围”的规则

然后将表单基于一个查询,该查询将原始表连接到值限制表,并带有一个计算字段,
lactics\u flag
,该字段指示值何时超出范围。并将条件格式设置基于
lactics\u标志

SELECT
    y.[Sample Time],
    y.Lactics,
    y.Sugar,
    IIf(y.Lactics > v.Lactics_limit, True, False) AS lactics_flag
FROM
    YourTable AS y
    INNER JOIN value_limits AS v
    ON y.[Sample Time] = v.[Sample Time];
将该方法的简单性与
表达式的复杂性进行比较,您需要表达相同的规则:

([Sample Time]="10 hour" And [Lactics]>0.3) Or ([Sample Time]="20 hour" And [Lactics]>0.35) Or ([Sample Time]="30 hour" And [Lactics]>0.4) Or ([Sample Time]="40 hour" And [Lactics]>0.45) Or ([Sample Time]="50 hour" And [Lactics]>?)
这种方法的另一个优点是,当规则存储在表中而不是作为表单中的条件格式表达式时,更容易维护规则。而且这些规则可以很容易地用于其他形式或报告


如果您没有针对每个
[采样时间]
的规则,您可以将它们从
值限制表中删除,并在查询中使用
左连接。

签出条件格式@Remou我可以说,如果>0.3,则将其设为红色,但如果>0.3和10小时,则不知道如何表示红色,如果>0.35和20小时,则表示红色,如果>0.4和30小时,则为红色;如果>0.45和40小时,则为红色……设置为“expression is”的条件格式将适用于我。我只是希望有更好的方法来管理代码。这会有用的…啊哈!!这就是我要找的!我需要一些东西来更频繁地更改/更新数字。这将非常有效!这比编辑所有条件格式表达式要好得多。
([Sample Time]="10 hour" And [Lactics]>0.3) Or ([Sample Time]="20 hour" And [Lactics]>0.35) Or ([Sample Time]="30 hour" And [Lactics]>0.4) Or ([Sample Time]="40 hour" And [Lactics]>0.45) Or ([Sample Time]="50 hour" And [Lactics]>?)