Access linked Backend tables 在第一个 table 中打开速度很慢,然后在创建记录锁定文件后速度很快 - 我可以让这个锁定文件保持打开状态吗?
Access linked Backend tables is slow to open for 1st table, then fast once record-locking file is created - can I keep this lock file open?
到目前为止,我一直在成功使用具有拆分后端的数据库。开发时前后端一直在同一个盘,现在后端在网盘上,为多用户做准备。
我的问题是,每当我现在从前端打开链接的 table(或从中读取数据的表单)时,第一个 table 总是加载缓慢。如果我然后关闭 table 并打开另一个 table,加载速度也会很慢。但是如果我打开任何 table 然后打开第二个 table,第二个 table 和之后的任何其他人都会很快。
这似乎与必须创建锁定文件有关,然后在 table 关闭时关闭,这意味着必须为下一个 table.
有没有办法在应用程序启动时创建记录锁定文件,以便它在整个用户会话期间保持可用?
谢谢
是的,这是一个广为人知的问题,多年来我们建议您采用所谓的持久连接。
如果你在做开发,那么通常你可以做的就是简单地点击一个table(任何链接table)来打开它,现在你可以工作,设计表格,而不是在开发过程中遇到巨大的延迟。
虽然以上修复了开发期间和开发时的延迟,但当您 运行 您的应用程序时,可以使用相同的概念和方法。
像每个应用程序一样,您无疑有一些启动代码。此代码可以采用您在应用程序启动时启动的第一种形式。
因此,您可以创建一个标准代码模块。假设它是 Module1。在该模块中,您可以放置此代码:
Option Compare Database
Option Explicit
Public rstPersist As DAO.Recordset
Sub MyOpenPersist()
' opens a back end table to force and keep
' open the connection for greatly improved
' speed
Set rstPersist = CurrentDb.OpenRecordset("tblDefaults")
End Sub
然后在启动时启动的第一个表单中,在 on-load 中,您可以包含以下代码:
Call MyOpenPersist
现在,这将打开一个 table 到“全局”rstPersit 记录集。
现在,从那时起 on-wards,由于已创建锁定文件(您注意到这需要很长时间),因此应用程序、表单和所有内容现在都将 运行没有那个延迟。
选择打开哪个 table 并不重要 - 唯一的要求是 table 是链接的 table,因为您可以(并且可能)有一些本地 tables 在前端用于设置或其他内容。因此,在这种情况下,我打开了一个名为 defaults 的 table(打开 table 非常好,因为它是一个 1 条记录 table,带有城市和默认区域等默认设置phone 数字等的代码)。所以,可以这么说,我实际上用一块石头杀死了两只鸟,因为无论如何我都需要 table 应用程序中许多东西的默认值。
到目前为止,我一直在成功使用具有拆分后端的数据库。开发时前后端一直在同一个盘,现在后端在网盘上,为多用户做准备。
我的问题是,每当我现在从前端打开链接的 table(或从中读取数据的表单)时,第一个 table 总是加载缓慢。如果我然后关闭 table 并打开另一个 table,加载速度也会很慢。但是如果我打开任何 table 然后打开第二个 table,第二个 table 和之后的任何其他人都会很快。
这似乎与必须创建锁定文件有关,然后在 table 关闭时关闭,这意味着必须为下一个 table.
有没有办法在应用程序启动时创建记录锁定文件,以便它在整个用户会话期间保持可用?
谢谢
是的,这是一个广为人知的问题,多年来我们建议您采用所谓的持久连接。
如果你在做开发,那么通常你可以做的就是简单地点击一个table(任何链接table)来打开它,现在你可以工作,设计表格,而不是在开发过程中遇到巨大的延迟。
虽然以上修复了开发期间和开发时的延迟,但当您 运行 您的应用程序时,可以使用相同的概念和方法。
像每个应用程序一样,您无疑有一些启动代码。此代码可以采用您在应用程序启动时启动的第一种形式。
因此,您可以创建一个标准代码模块。假设它是 Module1。在该模块中,您可以放置此代码:
Option Compare Database
Option Explicit
Public rstPersist As DAO.Recordset
Sub MyOpenPersist()
' opens a back end table to force and keep
' open the connection for greatly improved
' speed
Set rstPersist = CurrentDb.OpenRecordset("tblDefaults")
End Sub
然后在启动时启动的第一个表单中,在 on-load 中,您可以包含以下代码:
Call MyOpenPersist
现在,这将打开一个 table 到“全局”rstPersit 记录集。
现在,从那时起 on-wards,由于已创建锁定文件(您注意到这需要很长时间),因此应用程序、表单和所有内容现在都将 运行没有那个延迟。
选择打开哪个 table 并不重要 - 唯一的要求是 table 是链接的 table,因为您可以(并且可能)有一些本地 tables 在前端用于设置或其他内容。因此,在这种情况下,我打开了一个名为 defaults 的 table(打开 table 非常好,因为它是一个 1 条记录 table,带有城市和默认区域等默认设置phone 数字等的代码)。所以,可以这么说,我实际上用一块石头杀死了两只鸟,因为无论如何我都需要 table 应用程序中许多东西的默认值。