2017-10-05 68 views
0

我正在爲MS Access的多個用戶創建一個前端,我想出了一個方法來更新他們的表單,如果有任何需要更改的話。基本上我的VBA代碼會做什麼,刪除舊的表單並導入新的表單(如果有的話)(大約10個表單)。微軟表單更新系統

我的流程有一個問題...每次導入一個新表單時,都會要求用戶接受安全警告,並且在有這麼多表單時它會變得煩人,有時可能會很冗長進程坐下來等待每個進口和點擊接受每次新的進口進來。

有沒有更合乎邏輯的方式來做到這一點? Access是否具有構建函數,它將檢測對錶單的任何更改並基於單獨的數據庫對其進行更新?

Private Function PullNewForms() 

    DoCmd.TransferDatabase acImport, "Microsoft Access", _ 
          "LOCATION", _ 
          acForm, "frmLogin", "frmLogin" 
    DoCmd.TransferDatabase acImport, "Microsoft Access", _ 
          "LOCATIONb", _ 
          acForm, "frmNewUser", "frmNewUser" 
    DoCmd.TransferDatabase acImport, "Microsoft Access", _ 
          "LOCATION", _ 
          acForm, "frmOptionsMenu", "frmOptionsMenu" 
    DoCmd.TransferDatabase acImport, "Microsoft Access", _ 
          "LOCATION, _ 
          acForm, "frmResetPassword", "frmResetPassword" 
    DoCmd.TransferDatabase acImport, "Microsoft Access", _ 
          "LOCATION", _ 
          acForm, "frmVendorMainForm", "frmVendorMainForm" 

End Function 

這可以合併爲一行代碼嗎?

回答

3

重新考慮當前的設置。您不應該導入應用程序對象,如表格,報告,甚至模塊就像這樣可能會發生腐敗和崩潰。您的用戶羣中需要更穩定的版本控制系統。只有數據應該真的被導入。

考慮部署MS Access前端應用到多個用戶時,以下幾點:

  1. 給每個用戶自己的前端,以在本地計算機上運行。
  2. 保持一個共享的網絡,他們都可以訪問,但從來沒有直接使用在主前端,仍然保持分體式架構:

    Split Architecture Diagram

  3. 給每個用戶自己的批處理文件(.bat),其他們可以從桌面上雙擊或複製最新的Master FrontEnd以替換舊版本。

  4. 保留開發者自己的開發FrontEnd副本,經過測試和調試並準備部署到生產環境中時,您將替換爲新的Master FrontEnd。開始時這很難,但是儘量不要在Master或本地副本中進行開發更改,因爲您可能會覆蓋自己的更改。
  5. 最後,每改變一次新的表單/報表/宏/模塊,通知每個用戶一個新的可用FrontEnd,並讓他們只需點擊批處理文件即可替換以前的版本。

批處理文件

(以下保存文本在記事本中,但作爲一個.bat文件,而不是默認的.txt文件自動使它成爲一個雙擊可執行腳本與齒輪圖標,給每個用戶自己的批處理文件,因此剪裁本地路徑,並保存到桌面,或任何其前端的位置)

@echo off 

Copy "\\Server\Path\To\MasterFrontEnd.accdb" "C:\User\JaneDoe\LocalFrontEnd.accdb" /Y 

start "" cmd /c "echo UPDATE COMPLETE!&echo(&pause" 
+0

這是一個很好的解釋了,我喜歡這個主意......然而這東西,我在嘗試PA st和我在使用批處理文件從網絡驅動器進行復制時遇到問題。我會再看看我是否可以再次爲您複製此問題,但不幸的是,我現在不在辦公室,直到下週星期二我都無法檢查。 – Maldred

+0

嘗試將其保存爲cmd文件--Windows 10將非常高興地運行這些文件,但由於某些莫名其妙的原因,我看到了.bat文件的問題。 – Minty