【问题标题】: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], 之后缺少(

标签: sql ms-access ms-access-2010


【解决方案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)会显示匹配的括号 - 更重要的是哪些不匹配

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2021-02-20
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      相关资源
      最近更新 更多