2012-10-22 50 views
1

我已經下表中的MS Access「替換」。MS Access查詢,以顯示最新的活動部件編號

ID PartNumber ReplacedNumber Status 
4 b      Active 
5 c   b   Replaced 
6 d   b   Replaced 
7 e   c   Replaced 
8 h   d   Replaced 
9 104308   408077-0102 Replaced 
10 310224   408077-0102 Replaced 
11 0R5888   408077-0102 Replaced 
12 4N6515   408077-0102 Replaced 
13 4N6860   408077-0102 Replaced 
14 408077-0102 408077-5102 Replaced 
15 408077-5102 408077-5102S Replaced 
16 408077-5102S    Active 

查詢要求

任何這些數字(104308,310224,0R5888,4N6515,4N6860,408077-0102,408077-5102,408077-5102S)應408077-5102S作爲最終的答案這個數字已經取代了所有其他的。所以,如果我的查詢有一個標準,[請輸入部件號找到最新號],得到的數量應該是408077-5102S。因爲它是唯一的活動號碼,並且已經取代了所有其他的號碼。

類似地,對於任何這些號碼(B,C,d,E,H)的最終答案應該是B中這個數已經取代所有的休息。所以,如果我的查詢有一個標準,[請輸入部件號找到最新的數],所得到的數字應該是b。因爲它是唯一的活動號碼,並且已經取代了所有其他的號碼。

任何想法?我也看過Replacing Values in SQL (Microsoft Access)但它沒有幫助。

+2

看看http://stackoverflow.com/questions/763016/is-it-possible-to-create-recursive-query-in-access – Laurence

+0

另外,看看這個問題:[什麼是最有效/優雅的方式來解析一個平坦的表格到樹?](http://stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-樹狀結構) – mwolfe02

回答

0

我認爲,在Replacing Values in SQL (Microsoft Access) searchReplaced功能正是你所需要的,爲什麼你說,它並不能幫助?

Sub Test() 
    Dim partToSearch, partReplace 

    partToSearch = InputBox("Part to Search? ") 
    partReplace = searchReplaced(partToSearch) 

    If partToSearch = partReplace Then 
    MsgBox "Part " & partToSearch & " Active" 
    Else 
    MsgBox "Part " & partToSearch & " Replaced by " & partReplace 
    End If 
End Sub 

狀態列是否已經存在,或者您是否需要填充它?

+0

狀態欄可用。我looooooooooooooooooost :) – user1765689

+0

我真的不明白這個問題可能是...你有沒有試圖進入函數searchReplaced?如果你的VBA控制檯上輸入?searchReplaced(「someValue中」),你得到了什麼? – fthiella