Access 2007 - accdb;跨多个服务器建立可靠的多用户环境的选项?

时间:2011-03-27 16:13:47

标签: sql-server ms-access-2007 multi-user ms-access

我无法对有关多用户环境中使用的Access 2007的所有信息/各种选项进行排序。以下是我目前情况的简要说明。在工作中有“商务局域网”,我可以登录并用于通过远程桌面监控另外两台服务器。业务局域网由我们的IT部门严格控制,未经许可,任何人不得安装任何软件或驱动程序。我确实在两台服务器上都有管理权限。

我使用RD登录的两台服务器用于基本相同的任务,即监控和控制不同生产线的热量。每个服务器运行一个不同的程序来完成此任务,但两个程序都使用SQL Server作为后端。

我创建了两个访问数据库(每个服务器上有一个,因为它们目前位于单独的防火墙后面),以便从这些程序的后端SQL端查询信息,并将其与我在表中编译的相关信息相结合,以便添加更多详细说明程序正在收集的数据。我的程序仍在调试阶段,但最终这些信息可以由现场技术人员/维护人员访问,以使他们的工作更轻松。维护人员还可以根据维修状态等添加更多信息....最后,我创建的报告可以由正在寻找其所在区域的总体状态的经理/工程师运行。

两个访问数据库都被拆分,以便后端与表单,查询等分开...我使用ODBC数据源将链接导入SQL。我正在使用vba进行用户身份验证,用户日志记录更新和用户/组访问控制。一切都按我预期的方式工作,除了我登录服务器的每个人都试图运行前端的同一副本。例如,我有一个同事通过RD登录服务器来测试程序,我从我的桌面登录。登录后,我可以看到他打开的表格。 Access已在运行。由于无法在每个工作站上本地安装访问权限(甚至运行时,由于IT限制),我不确定采取何种方法来解决此问题。

其他信息,服务器1 其中一个服务器被认为是“主服务器”,其中许多客户站“从服务器”都与之通信。访问主服务器上访问文件夹的唯一方法是登录到客户端工作站并运行RD。

服务器2 该服务器被认为是“历史学家”。它与用户使用RD登录的终端服务器通信,并运行使用驻留在历史记录中的SQL后端的应用程序。我已经能够设置共享,以便在终端服务器上的历史数据库中可以看到某些文件夹。

谁能告诉我我最好的选择是什么?

提前致谢。

CTN

2 个答案:

答案 0 :(得分:1)

一些IT部门尽一切努力使你很难完成工作,这真的很疯狂。

您提到通过终端服务器登录的用户。如果是这样,也许您可​​以将前端存储在其终端服务器登录的用户配置文件中?这假设他们当然不仅仅使用两个默认的管理终端服务器登录。

另一件我不清楚的事情是你为什么在Access / Jet / ACE中需要一个后端 - 为什么不通过ODBC链接到SQL Server并直接使用这些数据?在该场景中拥有包含数据表的独立Jet / ACE文件的唯一原因是,您是否存储了未存储在SQL Server中的Access应用程序的数据。您可能还有临时表(例如,用于暂存复杂的报表等),但这些表应该基于每个用户而不是在共享后端的临时数据库中。

答案 1 :(得分:1)

这是一个如何实现David Fenton所写的建议:编写一个简单的批处理脚本,将您的前端从安装路径复制到%TEMP%(当前用户会话的临时文件夹)并从那里运行前端。

的内容
 rem make sure current directory is where the script is
 cd /d %~d0%~p0
 rem assume frontend.mdb is in the same folder as the script
 copy /y frontend.mdb %temp%
 start %temp%\frontend.mdb

告诉用户不要直接运行前端,只能通过批处理脚本,然后每个人都应该获得自己的前端副本。或者,在安装路径中为前端添加不同的后缀,并在复制到%temp%时将其重命名为“frontend.mdb”。