ms-access - 获取项目中的查询列表 - MS Access

标签 ms-access report names openargs

我有一个非常千篇一律的数据库(非常相似、非常重复的查询),它进入一个模块化报告(即它们都返回具有不同标准的相同内容)。

大约有 100 个这样的查询,所以我使用组合框来显示查询,这些查询会发送到报告中(通过 OpenArgs)。

我需要生成项目中的查询列表(只是名称)。我希望组合框的控制源是这个查询列表。

如果我必须做一个字符串连接的 Value List 源或 Query/Table 源类型并不重要,唯一重要的是绑定(bind)列包含 "qryName"

到目前为止我所拥有的:

For Each qry In CurrentDb.QueryDefs
    list = list & ";" & """" & qry.Name & """" 
    'String in the form "qryName";"qryAnotherQuery";"qryNextQuery"
Next

但显然值列表有约 2000 个字符的限制,所以如果我有很多查询我不能使用值列表?另请注意:qry.Name 也会返回类似“~sq_cTableName”的内容,而不仅仅是我的查询......这是一个问题。我只想查询。

有什么想法吗?只要我可以将查询名称发送到我的报告的 OpenArgs,我也愿意以其他方式在没有组合框的情况下显示此信息。

最佳答案

如果您对 MSysObjects 具有读取权限,则可以将此查询用作组合框的行源。

SELECT m.Name
FROM MSysObjects AS m
WHERE m.Type=5 AND m.Name Not ALike "~%"  
ORDER BY m.Name;

条件 m.Name Not Alike "~%" 从结果集中排除临时和隐藏查询。

如果您对 MSysObjects 没有读取权限,则必须创建一个回调函数,然后将其用作组合框的行源。如果您必须走这条路,请参阅 Allen Browne 的这个示例,该示例列出了报告对象并将其更改为列出查询:List Box of Available Reports .

关于ms-access - 获取项目中的查询列表 - MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882317/

相关文章:

sql - 需要 Access 查询方面的帮助

transactions - 为什么这个自定义程序被命名为AQZZ...?

tomcat - 某些技术是如何得名的?

python - 导入与您所在文件同名的文件

没有名称的 rbind data.frames

sql - 如何在 MySQL 中创建表别名

c# - 如何在 .Net 上创建 Access 数据库备份?

sql - 使用带有 NOT EXISTS 的 INNER JOIN Access INSERT 语句会给出错误的结果

php - 根据 mysql (PHP) 中的选定列制作 pdf 报告

testing - 即使第二次迭代失败,具有多次迭代的 TFS 自动化测试也显示为已通过