ms-access - 标识符内的参数
问题描述
我正在尝试编写一个添加查询,该查询将根据参数而变化。我有几个疑问:
LastK1StatDate
LastK2StatDate
。
.
LastK15StatDate
LastK16StatDate
我的条件应根据运行查询时为参数“qryKioskNum”输入的值而改变。
目前我的标准是这样的:
>Max("[LastK" & [qryKioskNum] & "StatDate]![K" & [qryKioskNum] & "LastDate]")
qryKioskNum 是短文本类型
它不断给我错误“表达式输入错误,或者太复杂而无法评估。”
以下是此查询的完整 SQL 语句:
PARAMETERS qryKioskNum Short;
INSERT INTO K1DispRejStat ( K1StatDate, K1BillCount1, K1BillCount2,
K1BillCount3, K1BillCount4, K1BillCount5, K1BillCount6, K1BillRej1,
K1BillRej2, K1BillRej3, K1BillRej4, K1BillRej5, K1BillRej6 )
SELECT DateValue([responseFrames]![dispDateTime]) AS [Date],
Sum(responseFrames.billCount1) AS SumOfbillCount1,
Sum(responseFrames.billCount2) AS SumOfbillCount2,
Sum(responseFrames.billCount3) AS SumOfbillCount3,
Sum(responseFrames.billCount4) AS SumOfbillCount4,
Sum(responseFrames.billCount5) AS SumOfbillCount5,
Sum(responseFrames.billCount6) AS SumOfbillCount6,
Sum(responseFrames.BillRej1) AS SumOfBillRej1, Sum(responseFrames.BillRej2)
AS SumOfBillRej2, Sum(responseFrames.BillRej3) AS SumOfBillRej3,
Sum(responseFrames.BillRej4) AS SumOfBillRej4, Sum(responseFrames.billRej5)
AS SumOfbillRej5, Sum(responseFrames.billRej6) AS SumOfbillRej6
FROM responseFrames, LastK1StatDate
WHERE (((responseFrames.kioskID)="K1"))
GROUP BY DateValue([responseFrames]![dispDateTime])
HAVING (((DateValue([responseFrames]![dispDateTime]))>Max("[LastK" &
[qryKioskNum] & "StatDate]![K1LastDate]")))
ORDER BY DateValue([responseFrames]![dispDateTime]);
目前一切都设置为“K1”,但我希望所有对 K1 的引用都是动态的
我认为这只是一个语法问题,但无法找到应该如何输入。
任何帮助都很棒。谢谢!
*为清晰起见进行了编辑
解决方案
我怀疑您可以通过使用带参数的查询来完成这项工作。使用 VBA 会好得多。用于InputBox
获取查询的可变部分并DoCmd.RunSQL
运行查询。