2014-06-23 80 views
0

我有兩個表,一個是std Table和KeyTable。 我必須顯示基於鍵表的條件的std表的值。 例如,如果用戶選擇ASIA,我必須在ASIA中創建一個國家的SQL查詢列表,並將這個國家的值(例如:INDIA,SRILANKA,BANGLADESH)用作最終查詢中的where子句。我曾嘗試過構建它們。但我不知道語法的ACCESS VBA在WHERE子句中使用多個SQL QUERY

首先查詢篩選出亞洲的價值觀

strSQL1 = "SELECT keytable.[Lead Country] FROM keytable WHERE keytable.country='" & lstcountry & "';" 

第二個查詢根據第一個查詢顯示值where子句

strSQL = "SELECT * FROM [Std Table] WHERE ([Std Table].Country IN (______)); 

的我失蹤的空白。

回答

0

你可以在兩個查詢只是合併爲一個語句:

strSQL= "SELECT * " & _ 
"FROM [Std Table] " & _ 
"WHERE [Std Table].Country IN " & _ 
"(" & _ 
" SELECT s.[Lead Country] " & _ 
" FROM keytable AS s WHERE s.country = '" & lstcountry & "' " & _ 
")" 
+0

** @ user3631655 **,我修改了我的答案,讓**最終的數據來源於STD表不是從鍵表**。 – Linger

0

我想嘗試

strSQL1 = "SELECT keytable.[Lead Country] FROM keytable WHERE keytable.country='" & lstcountry & "'" 
strSQL = "SELECT * FROM [Std Table] WHERE ([Std Table].Country IN (" & strSQL1 & "));" 

SQL服務器將允許你這樣做,我想這ACCESS支持這一點,太。

請注意,我刪除了strSQL1中的;

你也可以提供逗號分隔值的列表:

strSQL = "SELECT * FROM [Std Table] WHERE ([Std Table].Country IN ('DE','UK','JP'));" 
+0

下次請使用評論 - 不要編輯答案! –