3

私は、サンプルが採取された時間と、それらのサンプルに含まれるさまざまな化学物質のレベルをリストする継続的なフォームを持っています。化学レベルが範囲外になったときに表示するようにセルをフォーマットしたいと考えています。私の問題は、サンプル時間ごとに変化することです。.3 は 10 時間のサンプルには高すぎますが、30 時間なら問題ありません。以下は、私の継続的なフォームがどのように見えるかの例です。

サンプル時間 Lactics Sugar
10時間.085 15.2
20時間.125 12.8
30 時間 .345 8.4
40時間.405 4.2
50時間.415 1.9

したがって、「20 時間で Lactics > .2 の場合、セルを赤くする」などと言いたいのですが、追跡している各期間と各コンポーネントについてです。これをVBAで設定するにはどうすればよいですか?

4

2 に答える 2

4

「範囲外」ルールを保持するテーブルを作成します。

Sample Time Lactics_limit
10 hour                .3
20 hour               .35
30 hour                .4
40 hour               .45
50 hour                 ?

lactics_flag次に、値が範囲外であることを示す計算フィールドを使用して、元のテーブルを value_limits テーブルに結合するクエリに基づいてフォームを作成します。そして、条件付き書式設定に基づいてくださいlactics_flag

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];

そのアプローチの単純さと、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]>?)

このアプローチのもう 1 つの利点は、ルールをフォーム内の条件付き書式設定式としてではなく、テーブルに格納すると維持しやすくなることです。また、ルールは他のフォームやレポートに簡単に再利用できます。

every のルールがない場合は、テーブルから除外して、クエリで a を使用でき[Sample Time]ます。value_limitsLEFT JOIN

于 2012-12-18T17:12:59.957 に答える
2

式は値のリストで使用できます。

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

条件付き

于 2012-12-18T16:59:46.837 に答える