相关疑难解决方法(0)

访问:列出查询依赖项

在这个答案的帮助下,我创建了一个报告来列出当前数据库中的所有查询,及其输入表/查询及其输出(用于操作查询)。
我对此非常满意,直到我注意到结果中缺少一些查询。
我有点不明白为什么。
有什么线索吗?

SELECT MSysObjects.Name AS queryName, 
  Mid("SelectMakTblAppendUpdateDeleteXtab  777777PassThUnion ",([msysqueries]![Flag]-1)*6+1,6) AS queryType, 
  src.Name1 AS [Input], 
  MSysQueries.Name1 AS Target, 
  MSysQueries.Attribute
FROM (MSysQueries INNER JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id) 
LEFT JOIN (SELECT * FROM MSysQueries WHERE Attribute = 5)  AS src ON MSysQueries.ObjectId = src.ObjectId
WHERE (((MSysObjects.Name)>"~z") AND (MSysQueries.Attribute=1))
ORDER BY MSysObjects.Name, src.Name1
Run Code Online (Sandbox Code Playgroud)

编辑:发现违背所有逻辑,INNER JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id有时不会返回它应该返回的每一行。
我检查了 MSysQueries 和 MSysObjects 并确保两侧都有相同的对象 id -2147483618,我确保 MSysQueries 有一行用于该 ObjectId,其中 Attribute=1,但是,在连接表时,该特定行的 attribute=1没有出现。很奇怪。我尝试使用内部联接,用条件替换 JOIN,在过程中添加 Val 或 CLng,没办法。我在这里迷路了。

编辑2:找到了一种通过使用正确“连接”两个表的方法 …

ms-access

4
推荐指数
1
解决办法
3515
查看次数

标签 统计

ms-access ×1