2013-09-23 36 views
0

如何改進我的查詢,以便只應選擇那些尚未在Pasenger_Detail表中選擇的記錄。我該如何改進MS Access中的SQL查詢VBA

Private Sub BR_ID_LostFocus() 
    Dim s As String 

    s = "Select seat_no.seat_no" & _ 
     " FROM Seat_No" & _ 
     " Where seat_no.seat_no <= " & _ 
     " (select br_info.Seats_Reserved from br_info where " & _ 
     " Br_info.br_id=forms!pasenger_detail!br_id);" 

    Me.Seat_No.RowSource = s 
    Me.Seat_No.Requery 
End Sub 
+0

你能否提交表格定義? – 4dmonster

+0

我添加了關係圖可能會幫助你。 –

回答

2

您可以在下面的WHERE子句中使用Not In。如果它沒有在子查詢中找到座位,那麼它將在結果中列出seat_no。

SELECT Seat_No.seat_no 
FROM Seat_No 
WHERE Seat_No.seat_no <= 
(
    SELECT br_info.Seats_Reserved 
    FROM br_info 
    WHERE br_info.br_id = forms!pasenger_detail!br_id 
) 
AND Seat_No.seat_no NOT IN 
(
    SELECT pasenger_detail.seat_no 
    FROM pasenger_detail 
) 
+0

老闆,我做得更早,並正在工作。但問題在於顯示那些尚未被選中的座位號。但它顯示了座位_no表中的所有字段條目,但我只需要直到符合我最大的seat_no條件的那些條目。 –

+0

總之我需要這兩個東西,第一個已經在這個查詢中工作的人也是你所建議的。 –

+0

你失去了我。你的英語很難讓我跟隨。你能解釋一下哪些表格中存儲了什麼以及它們如何相互關聯?我們顯然需要更多信息。 – Linger