2012-12-18 30 views
2

我有一個連續的形式,列出樣本的時間和這些樣本中不同化學物質的水平。我想格式化單元格以顯示化學水平何時超出範圍。我的問題是,他們改變每個採樣時間。 .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

所以我想說:「如果Lactics> 0.2,在20小時,然後使細胞紅」等每個時間段,我跟蹤每個組件。我如何使用VBA進行設置?

+0

檢出條件格式http://office.microsoft.com/zh-cn/access-help/change-the-appearance-of-a-control-by-using-conditional-formatting-HA010208133.aspx – Fionnuala

+0

@ Remou我可以說,如果> .3的話會變成紅色,但是如果> .3和10小時我不知道如何說紅,如果> .35和20小時是紅,如果> .4和30小時紅,紅如果> .45和40小時.... – riley3131

+0

條件格式設置爲'表達式'將適用於我。我只希望有更好的方法來管理代碼。這將工作,雖然... – riley3131

回答

3

創建一個表來保存你的「越界」規則。

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

然後基礎上加入了您的原始表的value_limits表的查詢的形式,具有計算的字段,lactics_flag,其指示當該值超出了範圍。並根據您的條件格式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]>?) 

這種方法的另一個優點是,它更容易維護您的規則時它們存儲在表格中,而不是作爲表單中的條件格式表達式存儲。這些規則可以很容易地重新用於其他形式或報告。

如果您沒有每個[Sample Time]的規則,可以將它們留在value_limits表之外,並在查詢中使用LEFT JOIN

+1

啊!那就是我一直在尋找的!我需要一些能夠更頻繁地更改/更新數字的東西。這會很好!比編輯所有條件格式表達式要好得多。 – riley3131

2

您可以使用表達式爲王氏值的列表:

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

Conditional