症状
在 Microsoft Access 中,使用传递查询作为其他查询中的源表,可能会导致性能较慢。
原因
Microsoft Access 不存储传递查询的定义。 因此,传递查询可能会在不同的时间执行,以检索与其定义相关的信息。 如果执行传递查询需要大量时间,则在执行传递查询时,Access 将显示为挂起。
解决方案
根据在 Access 中注意到的问题,有多种方法可防止此问题。常规更改:
-
改进传递查询性能,以减少执行查询所需的时间。
-
不要使用传递查询,而是在 SQL Server 中创建一个视图并将该视图作为链接表进行链接。
特定方案:设计查询:
-
在 Access SQL 视图中进行设计更改而不是设计视图(在查询设计视图中,您可以通过在设计视图中首先打开查询来将视图更改为 SQL 视图。 然后转到功能区上 "设计" 选项卡上的 "结果" 部分。)
-
问题影响已保存的查询。 因此,你可以在 Access SQL 视图中打开现有查询、复制 SQL 语法、创建新查询、将 sql 语法粘贴到 SQL 视图中,然后将查询更改为设计视图。 在保存查询之前,你将能够设计不会出现此问题的查询。
打开表单或执行查询:
-
将 "记录集类型" 属性更改为 "快照"。 (在 "设计" 视图中,在 "显示/隐藏" 组下的功能区的 "设计" 选项卡中公开属性表)
查看报表:
-
将报表更改为使用传递查询作为其记录源