MS Access - 通过查询最佳实践解决方案

时间:2015-04-01 12:51:17

标签: sql-server performance sql-server-2008 pass-through

所以我在这里有一个特殊的情况,我负责开发CRM,我想看看我是否可以对这个特定场景中更多的制裁,最佳实践方法有所了解。基本上,我有一个名为帐户的表单,它显示特定于该帐户的信息以及需要显示与该帐户关联的报价和订单的子表单,以便为用户提供已完成工作的快照。

由于查询的复杂性和可能的​​记录数量,如果使用SQL VIEW或更明显的是本地访问查询,滚动此子表单可能会很慢。这里最好的解决方案是传递查询,这样我就可以将处理直接发送到SQL。

我做了很多研究,我见过的最好的方法是1)使用VBA来改变传递查询的定义,或2)使用INSERT INTO语句来填充本地表可以用作该子表单的记录源。在这一点上,我只想确认这些方法中的任何一个或两个都有资格作为最佳实践情况,并且可能是实现这一目标的代码示例。现在我正在努力处理这个处理所属的地方。我不想调用启动主帐户表单的子窗体中的代码,因为可以从几个不同的位置打开此窗体,我不想复制该代码。

以下是我用于将数据集从传递查询复制到本地表,然后使用主/子关系字段仅显示该帐户的相应数据的代码。

Dim db As DAO.Database
Dim strSQL As String

Set db = CurrentDb

'Purge local table where pass through results are copied
strSQL = "Delete * FROM tblPassThruResults"
db.Execute strSQL

'Insert the results of the pass through query into local table
strSQL = "INSERT INTO tblPassThruResults Select Q_ACCOUNT_BUSINESS_OVERVIEW_PT.* FROM Q_ACCOUNT_BUSINESS_OVERVIEW_PT"
db.Execute strSQL

db.Close
Set db = Nothing

0 个答案:

没有答案