sql - 在基于表单字段的 MS Access 查询中选择 TOP x?
问题描述
我有一个 Access 报告,它Record Source
引用了表单上的几个字段。它工作正常。就是这样,SELECT
为简单起见,减去子句中的一堆字段:
SELECT
pt.PA,
pt.SpfCode
FROM
PtHead AS pt
LEFT JOIN tblProblems AS p ON pt.PA = p.PantagNo
WHERE
pt.PA = [Forms]![fdlgQualityHistory]![PA] AND
p.ComplaintDate >= [Forms]![fdlgQualityHistory]![StartDate];
我想升级这个报告,使它只显示最新的记录。这工作正常:
SELECT TOP 20 -- NEW PART
pt.PA,
pt.SpfCode
FROM
PtHead AS pt
LEFT JOIN tblProblems AS p ON pt.PA = p.PantagNo
WHERE
pt.PA = [Forms]![fdlgQualityHistory]![PA] AND
p.ComplaintDate >= [Forms]![fdlgQualityHistory]![StartDate]
ORDER BY p.ComplaintDate DESC; -- NEW PART
但是,我不希望它被硬编码为TOP 20
. 我希望它是TOP x
,基于同一表单上的另一个字段。以下失败:
SELECT TOP [Forms]![fdlgQualityHistory]![MaxProblems] -- FAILS HERE
pt.PA,
pt.SpfCode
FROM
PtHead AS pt
LEFT JOIN tblProblems AS p ON pt.PA = p.PantagNo
WHERE
pt.PA = [Forms]![fdlgQualityHistory]![PA] AND
p.ComplaintDate >= [Forms]![fdlgQualityHistory]![StartDate]
ORDER BY p.ComplaintDate DESC;
错误:
SELECT 语句包含拼写错误或丢失的保留字或参数名称,或者标点符号不正确。
我可以更改语法以使其正常工作吗?如果没有,我该怎么办?每次通过 VBA 运行报告时,我是否必须覆盖整个查询文本?
解决方案
在该控件 的更新后事件中修改记录源SQL 。[Forms]![fdlgQualityHistory]![MaxProblems]
推荐阅读
- python - “CommentForm”对象没有属性“cleaned_data”
- database - 在线程中检查与数据库的连接
- wordpress - 哪些 OpenStreetMap 瓦片服务器用于 WordPress 插件开发?
- java - 无法从 DAP 上的 http 响应读取缓冲区中的特殊字符
- c++ - 对成员函数和变量的未定义引用
- vue.js - 如何在 Vuex 中正确填充对象数组?
- google-calendar-api - 发布可由 Outlook 365 的现代身份验证订阅的 Web 日历
- java - H2 - (相当)长插入失败并出现错误 42000
- javascript - 如何仅使用源 URL 而不是原始文件来调整图像的大小?
- python - 我应该在尝试替换之前检查子字符串是否存在吗?