【发布时间】:2023-03-05 15:54:01
【问题描述】:
当我在 Access 中有子查询时,它会尝试在不询问的情况下“更正”它们,并在此过程中中断查询。例如,
Select * from TblA LEFT JOIN (Select * from [TblB] union Select * from [TblC]) as SubQry On TblA.Whatever = SubQry.Whatever
当我第一次运行它时,它运行良好。但是,在我保存并尝试重新打开它之后,Access 会尝试“提供帮助”并将括号更改为括号:
Select * from TblA LEFT JOIN [Select * from [TblB] union Select * from [TblC]]。作为 TblA 上的 SubQry.Whatever = SubQry.Whatever
当然,这会引发错误。选项菜单中是否有一个选项我可以切换以使 Access 停止尝试“帮助”我?
(脚注:实际表名比“TblB”更复杂,需要放在括号中才能识别)。
【问题讨论】:
-
如果可以的话+100。我讨厌 Access 的这个“功能”。
-
我迫不及待地想在 MS Word 中看到这个功能。想象一下编写一个 Word 文档并保存它。稍后,您重新打开它,发现 Word 对您的文本进行了一些“有用的”更正,而无需询问您,也无需告诉您。自然,用户无法停用此功能。现在这怎么可能出错???
-
什么版本?它在 2007 年没有对我这样做......
-
如果您的第二条 SQL 语句实际上是它正在被更正的内容,则 Access 实际上是在犯错误。但我怀疑你记错了——派生表应该是这样的:
[...]. as SubQry——注意括号后面的尾随句点。但是,您的实际子查询是完全无效的,因为它试图 UNION 带有表名的 SELECT 语句。你不能那样做。您可能的意思是:[SELECT * FROM TblB UNION SELECT * FROM TblC]. as SubQry.