访问2010为啥提示输入参数值

Posted

技术标签:

【中文标题】访问2010为啥提示输入参数值【英文标题】:Access 2010 why am I being prompted to enter parameter value访问2010为什么提示输入参数值 【发布时间】:2016-09-06 15:08:53 【问题描述】:

这是我来自 Access 2010 的子查询。我提示用户输入年份 (yyyy) 和月份 (1-12),但由于某种原因,用户也会收到站点提示。有人能告诉我为什么吗?我不希望用户提示站点。

PARAMETERS [Enter Year (yyyy)] Text ( 255 ), [Enter Month (1-12)] Short;
SELECT Sum([AB Units]) AS [Monthly AB Units], 
SELECT Count(*) FROM [New  Referrals] 
   WHERE ((Year([New Referrals].[Date of Referral]) = [Enter Year (yyyy)]) 
   AND (Month([New Referrals].[Date of Referral]) = [Enter Month (1-12)]))
   AND ([New Referrals].[First Visit] Is Null) 
   AND (([New Referrals].Site)="2")) 
 AS Waitlist FROM [DNS] 
WHERE (((Year([DNS].[Date of Entry]))=[Enter Year (yyyy)]) 
   AND ((Month([DNS].[Date of Entry]))=[Enter Month (1-12)]) 
   AND (([DNS].Site)="2")); 

【问题讨论】:

由于某种原因无法发布我的查询代码。不断收到消息 - 提交评论时出错。 您引用[DNS].Site[New Referrals].Site 这正是DNS 中列的名称吗?如果您拼写错误的列(即无法在引用的表中找到查询中的列),则会将其视为参数。 此查询也不能按原样工作。我假设您在[Monthly AB Units], 之后缺少( 【参考方案1】:

很可能名为 Site 的字段不在 [New Referrals] 或 [DNS] 中。检查两个表并确保其中存在该字段,因为您的查询中有对该字段的引用。

如需进一步审核,请查看this article on the Microsoft website。

【讨论】:

【参考方案2】:

就像@JohnnyBones 暗示它很可能是一个错误命名的字段,但是说你确实有一个应该出现在你的 SQL 视图中的语法错误:

您缺少与第一个 WHERE 子句一起使用的括号

这个

WHERE ((Year([New Referrals].[Date of Referral])

应该是这样的:

WHERE (((Year([New Referrals].[Date of Referral])

一个好的文本编辑器(我使用 Textpad)会显示匹配的括号 - 更重要的是哪些不匹配

【讨论】:

以上是关于访问2010为啥提示输入参数值的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 INSERT INTO VALUES 会出现“输入参数值”?

在组合框中输入参数值

在输入值提示中显示 SQL 参数

为啥选择屏幕参数的值转换为大写?

访问 - 输入参数值错误

为啥 Math.floor 返回一个双精度值?