我想在ms访问中从iif / switch语句内部执行查询。
像这样:switch
(
LevelNo = 3, (Select * from ReportBalanceSheetEquityMembers),
LevelNo = 2, (Select 3 as grpMain, 'Equity' AS MainText, 1 as grpSub, 'Equity' AS subText from ReportBalanceSheetEquityMembers),
(Select * from ReportBalance)
)
但它总是给我这个错误
Invalid SQL statement;expected "Delete, Insert, Procedure, Select, or Update
此处LevelNo是查询中的参数。
如何解决此问题。任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
您需要查询中的select语句,也只能返回1个值 如果在查询中使用
select top 1 switch
(
[LevelNo] = 3, (Select top 1 [fieldvalue] from ReportBalanceSheetEquityMembers),........
) from msysobjects
在模块中使用(使用保存的查询而不是表格)
Private Sub Command6_Click()
inp = InputBox("Enter value for LevelNo")
LevelNo = Val(inp)
Dim sql As String
sql = Switch(LevelNo = 3, "ReportBalanceSheetEquityMembers", LevelNo = 2, _
"ReportBalanceSheetEquityMembers", _
True, "ReportBalance")
'DoCmd.OpenQuery sql
DoCmd.OpenTable sql
End Sub