在WHERE子句中使用一个SQL QUERY来访问VBA

时间:2014-06-23 11:00:50

标签: sql vba

我有两个表,一个是std Table和KeyTable。 我必须根据keytable的条件显示std表的值。 例如,如果用户选择ASIA,我必须在ASIA中创建国家/地区的SQL查询列表,并将此国家/地区值(例如:INDIA,SRILANKA,BANGLADESH)用作最终查询中的where子句。我试过建造它们。但我不确定语法

过滤掉ASIA值的第一个查询

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

根据where子句

中的第一个查询显示值的第二个查询
strSQL = "SELECT * FROM [Std Table] WHERE ([Std Table].Country IN (______));

我遗失的空白。

2 个答案:

答案 0 :(得分:0)

您可以将两个查询合并为一个语句:

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

答案 1 :(得分:0)

我试试

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

SQL Server允许你这样做,我想ACCESS也支持这个。

请注意,我删除了;中的strSQL1

您还可以提供逗号分隔值列表:

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