我有一個excel工作簿,其中包含25張工作表。每張工作表都有一個到MS Access查詢的數據連接。每個訪問查詢都有一個或多個來自InterSystemsCaché數據庫的鏈接表。這是來自其中一個連接字符串。Excel通過ODBC緩存訪問數據庫 - 鎖定許可問題
Provider = Microsoft.ACE.OLEDB.12.0; User ID = Admin; Data Source = \ DIR \ SUBDIR \ XXX \ Database \ CAST \ CAST_CLIENT_SETTINGS.mdb; Mode = Share Deny Write; Extended Properties =「」; Jet OLEDB:系統數據庫=「」; Jet OLEDB:註冊表路徑=「」; Jet OLEDB:引擎類型= 5; Jet OLEDB:數據庫鎖定模式= 0; Jet OLEDB:全局部分Bulk Ops = 2; Jet OLEDB:全局批量事務= 1; Jet OLEDB:New Database Password =「」; Jet OLEDB:創建系統數據庫= False; Jet OLEDB:加密數據庫= False; Jet OLEDB:不復制區域設置緊湊= False; Jet OLEDB:緊湊無副本修復= False; Jet OLEDB:SFP = False; Jet OLEDB:支持複雜數據= False; Jet OLEDB:繞過UserInfo驗證= False
後臺刷新未啓用且命令類型爲表。
Access數據庫具有25個鏈接到高速緩存數據庫的ODBC表。訪問數據庫中有25個查詢,每個查詢都使用一個或多個鏈接表。在每個記錄中鎖定否和記錄集類型Dynaset。
在excel工作簿中有一個包含一些vba代碼的按鈕,可以啓動所有25張紙的刷新以恢復最新信息。這工作得很好,除了花幾分鐘時間,但的問題是,它鎖定了25個緩存中的許可證,並保持鎖定,直到工作簿關閉。
該公司只有50個許可證,所以我不能使用這麼多。我有什麼設置可以阻止這種情況發生?我可以更改模式,鎖定模式,記錄集類型,後臺刷新,使用傳遞?我可以在vba中寫入一些東西來刷新這些鎖嗎?人們使用該實用程序來實時跟蹤他們在對應於高速緩存DB的應用程序中所做的更改,其中相對於。
在它被完全廢棄之前,我希望有一個人有一個想法,如果可能的話,它只能使用一個許可證。謝謝你的幫助。
感謝您的回答。我循環瀏覽書中的所有表單並執行此操作 - Selection.QueryTable.Refresh BackgroundQuery:= False。有沒有辦法讓進程等待,直到1查詢更新之前,移動到下一個或我需要使用某種睡眠功能? – 45Spartacus
這篇文章可能會幫助你:[鏈接到帖子](http://answers.microsoft.com/en-us/office/forum/office_2007-customize/using-vba-to-update-a-spreadsheet-with-a -data/ae9e55b2-1b40-42ef-98b3-289e643c08e4) – Nybbe