1
我有一個窗體,其中輸入了我的零件號和零件版本號。我正在嘗試編寫一些VBA,因此如果單擊窗體上的按鈕,它將搜索查詢,該查詢包含所有零件的所有歷史記錄,以查找零件號以及零件rev匹配。一旦找到匹配的部件號和部分轉速,它會自動爲我填入一些信息。在窗體中使用帶有多個條件的Dlookup
現在我有一個匹配的部件號返回數據,但它給找到的第一個數據,而不管部分轉的,即返回與另一部分數字,但不同的是轉速值。
Sub FindPartNumber_Click()
DoCmd.OpenQuery "SavedQuotesQuery" 'runs query to find any matching part numbers
'confirms if part previously exists
If IsNull(DLookup("PartNumber", "SavedQuotesQuery", "'[PartNumber]=" & Me.PartNumber _
& " AND [PartRev]=" & Me.PartRev & "'")) Then
MsgBox "Part does not previously exist. Please manually enter its characteristics", _
vbOK 'and alerts user
DoCmd.Close 'close query
Exit Sub
End If
[PartName] = DLookup("PartName", "SavedQuotesQuery", "PartNumber='" & Me.PartNumber _
& "'")
[Length] = DLookup("Length", "SavedQuotesQuery", "PartNumber='" & Me.PartNumber & _
" And PartRev = " & Me.PartRev & "'")
DoCmd.Close 'close query
End Sub
我只是用兩條匹配標準,語法掙扎,還是有別的東西怎麼回事呢?
這是一個完美的修復。非常感謝,但是我有一個跟進問題:如果有兩個匹配零件號和rev的實例,但它們有不同的長度,哪一個Access會返回? – user3216418
無法知道,因爲您無法使用「DLookup」指定排序順序。如果這是一個問題,一種方法是使用艾倫布朗的DLookup替代:[擴展DLookup()](http://allenbrowne.com/ser-42.html)。他的功能允許您指定自定義排序順序來處理您所描述的情況。 – mwolfe02