2017-07-04 34 views
0

我有一個Access數據庫,我使用傳遞查詢填充。
我從SQL數據庫中獲取特定數據並將其轉儲到Access上。
此Access數據庫每週更新一次,但我不能簡單地附加上週的新數據,因爲所有其他過去幾周也會更新。
經常壓縮和修復Access數據庫安全嗎?

我所做的是truncate的Access數據庫,然後再次加載一切。
當我這樣做時,我需要壓縮和修復的DB,以便大小不膨脹。

我的問題是,這樣做可以嗎?目前,我正在使用此處發佈的邏輯answer
我還沒有遇到任何問題,但我只是想確定並獲得我們的訪問權限的想法。此外,我正計劃在我們的服務器上執行計劃運行來完成此任務。
只需要確保它不會輕易被破壞(起初腐敗文件的可能性有多大?)。

如果你會問,爲什麼我需要這樣做?數據用戶無法在SQL服務器上訪問。
所以我必須爲它們提取數據,以便它們可以連接到Access數據庫。

以防萬一你需要的代碼:

Dim sqlDelete As String 
Dim sqlAppend As String 

sqlDelete = "DELETE * FROM dbo_Table;" 

sqlAppend = "INSERT INTO dbo_Table (Col1,Col2) SELECT Col1,Col2 FROM passThrough;" 

With DoCmd 
    .SetWarnings False 
    .RunSQL sqlDelete 

    .RunSQL sqlAppend 
    .SetWarnings True 
End With 

Application.SetOption "Auto Compact", True 
+0

我有一個問題,做一些定期包含*修復*之名,因爲這具有非常負面的內涵(*爲什麼你需要修復某些東西,除非它被破壞*)。爲什麼用戶不具有SQL Server的SELECT功能? –

+0

@KenWhite'你的用戶爲什麼不具備SQL Server的SELECT功能?'我也問完全相同的問題。不過,我認爲這與網絡流量和工作範圍有關(如公司指示)。服務器也是全球的一半。 – L42

回答

2

如果您需要截斷的數據和重新載入,我建議將所有的表,這應被截斷,所有的臨時表到單獨的數據庫。 分離後,可以在應用程序啓動時用空數據庫文件替換該數據庫中的不必要數據。只需保存一份空數據庫的副本,並使用舊數據將此文件複製到現有數據庫中即可。這應該在根據臨時數據庫中的表打開任何表單/記錄集之前完成。它將比每次更快地運行並且更可靠,因爲有時C可能會損壞文件。

模板的數據庫文件,也可以存儲在主數據庫中的備註字段

+0

我認爲我明白你的觀點,但仍然處理它的一半。思考你的答案多一點? :) – L42

+0

這就是我會做的。 – Gustav

+0

我編輯了一點答案,請讓我知道如果你需要額外的解釋。 –