2017-10-05 75 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