【问题标题】:Use of DCount in Access to produce group sequential column在 Access 中使用 DCount 生成组顺序列
【发布时间】:2016-06-29 03:21:22
【问题描述】:

我有一个计算列“TimeAfterClass”,它使用 DateDiff 来计算从上课开始到审核日期之间的天数。这工作正常。许多结果对于“TimeAfterClass”具有相同的数字,并且也属于同一类别(例如“数学”或“英语”)...有人要求我修改 TimeAfterClass 结果以添加或减去 .01根据结果​​是在上半场还是下半场。例如,如果表数据是:

我需要前两个变为 30.98 和 30.99,第三个将保持 31,然后接下来的两个将是 31.01 和 31.02。这样我就可以将数据导入 Excel 并创建数据透视表,而无需对分数进行实际数学运算,因为它将由 TimeAfterClass 评估,然后条目将是唯一的。

我一直在尝试将其分解为多个部分进行处理...所以我认为我的第一步是创建一列序列,例如,新表如下所示:

我试过这段代码:

SELECT Subject_TAC, Subject, Scores_TAC_ID, "Time_" & DCount("TimeAfterClass","Test","Subject_TAC=" & [Subject_TAC] & "And Scores_TAC_ID

我得到这个错误:

由于这是一组波动的数据(每月更新),我需要动态计算。

测序后我的下一步是使用中位数,然后从前半部分逐步减去 0.01,然后在后半部分的结果中逐步添加 0.01。

但我什至无法超越获得序列的第一步。

我已经阅读了这个网站和其他网站上的很多帖子,但我无法破解这个问题。

任何帮助或建议将不胜感激。

【问题讨论】:

    标签: ms-access dcount


    【解决方案1】:

    用于 DLookup 的变量似乎是数字,如果不正确,则需要进行一些编辑...

    SELECT Test.Subject_TAC, Test.Subject, Test.Scores_TAC_ID, 'Time_' & DCount("TimeAfterClass","Test","Subject_TAC=" & [Subject_TAC] & " And Scores_TAC_ID <=" & [Scores_TAC_ID] & "") AS Time_Num
    FROM Test;
    

    根据您的主题是文本的响应,如果是文本,您必须在变量周围添加单引号:

    SELECT Test.Subject_TAC, Test.Subject, Test.Scores_TAC_ID, 'Time_' & DCount("TimeAfterClass","Test","Subject_TAC='" & [Subject_TAC] & "' And Scores_TAC_ID <=" & [Scores_TAC_ID] & "") AS Time_Num
    FROM Test;
    

    【讨论】:

    • Score 和 TimeAfterClass 是数字,但 Subject 不是。我尝试了上面的内容,但仍然出现#error。我非常感谢您的帮助。我会继续努力的。我认为这可能与 TimeAfterClass 是一个计算列有关。
    • 好吧,我创建了第二个表 1,其中 TimeAfterClass 刚刚输入但未计算,仍然出现#error,但对错误的解释不同。这次消息说“您作为查询参数输入的表达式产生了这个错误:'对象不包含自动化对象'Math。”......所以我认为主题名称为“Math”会令人困惑。我会尝试“算术”。
    • 好吧,同样的事情发生在算术上。
    • 修改代码为:SELECT Test.Subject, Test.Scores_TAC_ID, 'Time_' & DCount("TimeAfterClass","Test","'Subject=" & [Subject] & " And Scores_TAC_ID
    • 效果很好。非常感谢“随机回答的家伙”。
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多