首页 > 解决方案 > 标识符内的参数

问题描述

我正在尝试编写一个添加查询,该查询将根据参数而变化。我有几个疑问:

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 的引用都是动态的

我认为这只是一个语法问题,但无法找到应该如何输入。

任何帮助都很棒。谢谢!

*为清晰起见进行了编辑

标签: ms-access

解决方案


我怀疑您可以通过使用带参数的查询来完成这项工作。使用 VBA 会好得多。用于InputBox获取查询的可变部分并DoCmd.RunSQL运行查询。


推荐阅读