2016-11-25 93 views
1

對於這裏的一些幫助,我將不勝感激,因爲我一直有一些嚴重的問題。爲Access表的每條記錄檢索不同字段的值

背景:

我有獨特的記錄列表。對於每條記錄,我都有一個單調遞增的模式(A,B或C)和分配​​給它的開發位置(1到5)。

因此,這三種模式中的每一種都在代表發展時期的五個字段中列出。

問題:

我需要檢索與有關發展階段的百分比,從各行不同的領域。它應該放在一個名爲「Output」的列中。

例子:

道歉,不知道如何在此附上一張桌子,但字段低於,該表是這些領域的轉置。

ID - (1,2,3,4,5) 
Pattern - (A, B, C, A, C) 
Dev - (1,5,3,4,2) 
1 - (20%, 15%, 25%, 20%, 25%) 
2 - (40%, 35%, 40%, 40%, 40%) 
3 - (60%, 65%, 60%, 60%, 60%) 
4 - (80%, 85%, 65%, 80%, 65%) 
5 - (100%, 100%, 100%, 100%, 100%) 
Output - (20%, 100%, 60%, 80%, 40%) 

在MS Excel中,我可以簡單地使用HLOOKUP或OFFSET函數來執行此操作。但我如何在Access中執行此操作?到目前爲止我所得到的最好的是Output:Eval([Category]),但是這似乎並沒有達到我想要的選擇「Dev」字段,並在構建表達式時將其視爲字段。

實際上,我有超過100個開發階段可以玩,有超過800種不同的模式,所以我認爲「切換」方法無法工作。

由於提前, alch84

+0

我刪除了MySQL的標記,因爲你的問題沒有任何關係與MySQL。 –

+1

要發佈樣本數據:http://ozh.github.io/ascii-tables/ – Andre

+0

那麼你有兩張桌子?模式屬於單獨的表格,但我不清楚您的數據庫。 – shawnt00

回答

0

假設

  1. [ID]爲唯一的列(主鍵),和
  2. 源列[輸出]僅依賴於值的[開發]

那麼這似乎工作:

UPDATE tblAlvo SET Output = DLOOKUP("[" & Dev & "]", "tblAlvo", "ID=" & ID) 

前:

ID Pattern Dev 1 2 3 4 5 Output 
-- ------- --- -- -- -- -- --- ------ 
1 A   1 20 40 60 80 100 
2 B   5 15 35 65 85 100 
3 C   3 25 40 60 65 100 
4 A   4 20 40 60 80 100 
5 C   2 25 40 60 65 100 

後:

ID Pattern Dev 1 2 3 4 5 Output 
-- ------- --- -- -- -- -- --- ------ 
1 A   1 20 40 60 80 100  20 
2 B   5 15 35 65 85 100  100 
3 C   3 25 40 60 65 100  60 
4 A   4 20 40 60 80 100  80 
5 C   2 25 40 60 65 100  40 
+0

謝謝Gord - 看起來不錯,但如果我沒有主鍵,該怎麼辦?我知道錯誤的做法,但是我的Access表格是從沒有主鍵的Excel工作簿導入的。 – Alvo

+0

如果'(ID,模式,開發)'唯一標識行,那麼你可以將它們添加到DLOOKUP的WHERE參數(第三個參數,'「ID =」&ID&「AND Pattern ='」&Pattern&... ')。否則,您可以從Excel導入爲您創建一個AutoNumber主鍵列。 –

+0

謝謝@GordThompson。 1.此公式運行但給出了「#Error!」下場。 'Dlookup(「[」&[Dev]&「]」,「tblAlvo」,「C Lob =」&[C Lob]「AND P Item =」&[P Item]&「AND Year =」AND [Year ])'。 2.從Excel導入不允許我創建一個AutoNumber主鍵列(至少因爲我使用鏈接表直接鏈接到數據源)。 – Alvo

相關問題