我正在为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
这可以合并为一行代码吗?
答案 0 :(得分:3)
重新考虑此当前设置。您不应该像这样导入像表单,报告,甚至模块这样的应用程序对象,因为可能会发生损坏和崩溃。您需要在用户群中使用更稳定的版本控制系统。只能真正导入数据。
将MS Access FrontEnd应用程序部署到多个用户时请考虑以下事项:
将Master FrontEnd保留在共享网络上,他们可以访问但永远不会直接使用,仍保持拆分架构:
为每个用户提供他们自己的批处理文件(.bat),他们可以从他们的桌面双击或在任何地方复制最新的Master FrontEnd以替换他们的旧版本。
批量文件
(将以下文本保存在记事本中,但保存为.bat文件,而不是默认的.txt文件,该文件自动使其成为带有齿轮图标的双击可执行脚本。为每个用户提供自己的批处理文件,相应地定制本地路径,保存到他们的桌面或他们的FrontEnd所在的位置)
@echo off
Copy "\\Server\Path\To\MasterFrontEnd.accdb" "C:\User\JaneDoe\LocalFrontEnd.accdb" /Y
start "" cmd /c "echo UPDATE COMPLETE!&echo(&pause"