到目前為止,我一直在成功使用具有拆分后端的資料庫。在開發程序中,前端和后端一直在同一個驅動器中,但現在后端在網路驅動器上,為多個用戶做準備。
我的問題是,每當我現在從前端打開鏈接表(或從中讀取資料的表單)時,第一個表總是加載緩慢。如果我然后關閉該表并打開另一個表,加載也很慢。但是如果我打開任何一張桌子然后打開第二張桌子,第二張桌子和之后的任何其他桌子都很快。
似乎它可能與必須創建鎖定檔案有關,然后在表關閉時關閉,這意味著必須為下一個表再次創建該檔案時存在延遲。
有沒有辦法在應用程式啟動時創建記錄鎖定檔案,以便它在整個用戶會話期間保持可用?
謝謝
uj5u.com熱心網友回復:
是的,這是一個廣為人知的問題,多年來我們建議您采用所謂的持久連接。
如果你在做開發,那么通常可以做的就是簡單地點擊一個表(任何鏈接的表)來打開它,現在你可以作業、設計表單,并且在開發程序中不會遇到巨大的延遲。
雖然上面修復了開發期間和開發時的延遲,但在運行應用程式時可以使用相同的概念和方法。
像每個應用程式一樣,您無疑有一些啟動代碼。此代碼可以以您在應用程式啟動時啟動的第一種形式出現。
因此,您可以創建標準代碼模塊。說它是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
然后在啟動時啟動的第一個表單中,甚至在加載時,您可以包含以下代碼:
Call MyOpenPersist
現在,這將為“全域”rstPersit 記錄集打開一個表。
現在,從那時起,由于已創建鎖定檔案(您注意到這需要很長時間),因此應用程式、表單和所有內容現在都將運行而不會出現延遲。
您選擇打開哪個表并不重要 - 唯一的要求是該表是一個鏈接表,因為您可以(并且可能)在前端有一些本地表,用于設定或其他內容。因此,在這種情況下,我打開了一個名為 defaults 的表(打開該表非常好,因為它是一個 1 記錄表,其中包含默認內容,例如城市和電話號碼的默認區號等)。所以,我實際上可以說是用一塊石頭殺死了兩只鳥,因為無論如何我都需要一張默認表來處理應用程式中的許多事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438216.html
上一篇:攔截來自側邊欄面板的請求
