2017-01-01 211 views
0

当有人从Access数据库运行查询时,我遇到连接速度问题。当用户在不使用应用程序的几分钟后运行新查询时,加载数据的延迟显着增加。Microsoft Access - 如何在后端和前端之间创建到链接数据库的持久连接?

我发现this article解决这个问题,我做了所有的步骤,但代码不适合我!我有一个单一的数据库和应用程序在多用户环境(9人)工作。

有没有人有任何解决方案/建议?

感谢, Peyman的

+0

当你说“但代码不适合我!”这并不能帮助我们帮助你。 – nicomp

+0

是的你是对的。我应该更具体地处理这个问题。将代码添加到表单后,我没有收到任何错误消息。它没有改变任何东西,缓慢的连接保持不变! –

回答

1

请记住,持续的连接不总是解决网络速度慢的问题。然而,在相当高的情况下,它确实如此。

如果一个持久连接能够解决您的问题,那么“测试”最简单的方法就是在您的前端简单地打开一个链接表。 (只要它是指向后端的链接表,任何表都会执行)。现在运行你的代码或查询。如果运行速度很快,那么持续连接将有助于您的案例。如果上述简单的3秒测试不能解决性能问题,那么建议使用持久连接,这是一个好主意 - 它不会解决性能问题。

因此,请尝试以上操作。如果上述问题解决了您的问题,那么您可以采取几种方法之一来实现持续连接。

一些简单的方法来强制或总是有开到后端的连接:

只需打开某种形式绑定到一个链接表。它甚至可能是一个“测试”形式。在打开表单之后,您可以设置其可见属性= false。

另一种方法是定义一个全局记录集变量,并在启动时在后端的表中打开该记录集。例如:

设置RST = currentdb.OpenRecordSet(“从TBLTEST选择*”)

请记住,如果你使用非编译的应用程序(ACCDB而不是一个编译ACCDE)比任何未办理错误会吹掉这样的全局变量,因此你的持久连接将会丢失。

因此,在你进行一次雁行之前,你可以通过在前端打开一个链接表来简单地测试它,然后运行你的测试代码或者其他任何很慢的代码。如果您看不到加速,那么使用持久连接将无法解决您的性能问题。

+0

感谢Albert给予的帮助。分割数据库后,App的性能下降,这是由于连接速度与网络驱动器上存储的数据库一样正常。我做了几件事来加速连接,并以某种方式变得更好。关于持续连接,因为在一分钟的不活动之后,性能和延迟时间增加,我发现找到持续连接的解决方案。 –

+0

不确定你的意思是由于某种延迟 - 持续连接只是始终保持后端文件打开。这是需要很长时间的文件打开+关闭 - 所以始终保持后端打开消除了打开/关闭延迟 - 在这方面决不会出现任何“超时”问题。 –

相关问题