Access 2007 - accdb;跨多个服务器建立可靠的多用户环境的选项?
我在整理有关多用户环境中使用的 Access 2007 的所有信息/各种选项时遇到问题。这里简单描述一下我目前的情况。在工作中,有一个“业务 LAN”,我可以登录并使用它通过远程桌面监控另外两台服务器。业务局域网由我们IT部门严格控制,任何人未经其同意不得安装任何软件或驱动程序。不过,我确实在两台服务器上都有管理权限。
我使用 RD 登录的两台服务器本质上用于执行相同的任务,即监视和控制不同工艺线的热量。每个服务器运行不同的程序来完成此任务,但这两个程序都使用 SQL Server 作为后端。
我创建了两个访问数据库(每台服务器上一个,因为它们当前位于单独的防火墙后面),以便从这些程序的后端 SQL 端查询信息,并将其与我在表中编译的相关信息相结合,以便向数据库添加更多详细信息。程序正在收集的数据。我的程序仍处于调试阶段,但最终现场技术人员/维护人员可以访问这些信息,以使他们的工作更轻松。维护人员还可以根据维修状态等添加更多信息...最后,我创建了可由正在寻找其区域整体状态的经理/工程师运行的报告。
两个访问数据库都是分开的,以便后端与表单、查询等分开。我使用 ODBC 数据源导入 SQL 的链接。我使用 vba 进行用户身份验证、用户日志记录更新和用户/组访问控制。一切都按我的预期方式运行,除了事实上每个登录服务器的人都将尝试运行相同的前端副本。例如,我让一位同事通过 RD 登录到服务器来测试程序,而我则从我的办公桌上登录。登录后我可以看到他打开的表格。访问已经在运行。由于无法在每个单独的工作站上本地安装访问(甚至运行时,由于 IT 限制),我不确定采取什么方法来解决此问题。
附加信息,服务器 1 其中一台服务器被认为是“主服务器”,其中多个客户端站“从服务器”都与之通信。访问主服务器上的文件夹的唯一方法是登录到客户端站并运行 RD。
服务器2 该服务器被认为是“历史学家”。它与终端服务器通信,用户使用 RD 登录并运行使用驻留在历史数据库上的 SQL 后端的应用程序。我已经能够设置共享,以便某些文件夹在终端服务器的历史记录上可见。
谁能告诉我最好的选择是什么?
提前致谢。
CTN
I am having trouble sorting through all the information / various options in regards to Access 2007 used in a multi-user environment. Here is a brief description of my current situation. At work there is the "Business LAN" which I can log on and use to monitor two other servers via remote desktop. The business LAN is strictly controlled by our IT department and no one is permitted to install any software or drivers without their consent. I do have administrative privileges on both servers though.
The two servers that I log on to using RD are used for essentially the same task, which is to monitor and control the heat to different process lines. Each server runs a different program to accomplish this task but both programs use SQL Server as a back end.
I created two access databases (one on each server because they are currently behind seperate firewalls) in order to query information from the backend SQL side of these programs and combine it with relative information I have compiled in tables in order to add more detail to the data the programs are collecting. My program is still in the debug stage but ultimately this information can then be accessed by field techs / maintenance in order to make their job easier. Maintenance staff can also add even more information based on the status of repairs etc....Last, I have created reports which can be run by Managers / Engineers who are looking for an overall status of their area.
Both access db's are split so that the back ends are seperate from the forms, queries, etc... I use an ODBC data source to import a link to SQL. I am using vba for user authentication, user logging record updates, and user / group access control. Everything works the way I intended except the fact I everyone who logs on the server will be trying to run the same copy of the front end. For example, I had a co-worker log on to the server via RD to test the program and I logged on from my desk. After logging in I could see the forms he had open. Access was already running. Without being able to install access locally (or even runtime, due to IT restrictions) on to each individuals workstation, I'm not sure what approach to take to resolve this.
Additional info, Server 1
One of the servers is considered to be the "master server" in which a number of client stations "slave servers" all communicate with. The only way to access folders on themaster server is log on to the client station and run RD.
Server 2
This server is considered to be the "historian". It communicates with a terminal server in which users log on using RD and run applications which use SQL backend which resides on the historian. I have been able to set up shares so that certain folders are visible on the historian from the terminal server.
Can anyone tell me what my best option is?
Thanks in advance.
CTN
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一些 IT 部门千方百计让你很难做好工作,这真的很疯狂。
您提到通过终端服务器登录的用户。如果是这样,也许您可以将前端存储在终端服务器登录的用户配置文件中?当然,这假设他们不仅仅使用两个默认的管理终端服务器登录。
我不清楚的另一件事是为什么在 Access/Jet/ACE 中需要后端——为什么不直接通过 ODBC 链接到 SQL Server 并直接使用该数据?在这种情况下,拥有包含数据表的独立 Jet/ACE 文件的唯一原因是,您为 Access 应用程序存储的数据未存储在 SQL Server 中。您可能还拥有临时表(例如,用于暂存复杂的报告等),但这些表应该位于每个用户的临时数据库中,而不是位于共享后端中。
It's really crazy the way some IT departments do everything possible to make it hard to do your job well.
You allude to users logging on via Terminal Server. If so, perhaps you can store the front ends in the user profiles of their Terminal Server logons? This assumes they're not just using the two default admininstrative Terminal Server logons, of course.
The other thing that's not clear to me is why you need a back end at all in Access/Jet/ACE -- why not just link via ODBC to the SQL Server and use that data directly? The only reason to have an independent Jet/ACE file with data tables in it in that scenario is if there is data you're storing for your Access application that is not stored in the SQL Server. You might also have temp tables (e.g., for staging complicated reports, etc.), but those should be in a temp database on a per-user basis, not in a shared back end.
以下是如何实现 David Fenton 所写内容的建议:编写一个简单的批处理脚本,将前端从安装路径复制到 %TEMP%(当前用户会话的临时文件夹)并从那里运行前端。告诉
你的用户不要直接运行前端,而只能通过批处理脚本运行,那么每个人都应该获得自己的前端副本。或者,在安装路径中为您的前端指定不同的后缀,并在复制到 %temp% 时将其重命名为“frontend.mdb”。
Here is a suggestion how to implement what David Fenton wrote: write a simple batch script which copies your frontend from the installation path to %TEMP% (the temporary folder of the current user session) and runs the frontend from there. Something along the lines of
Tell your users not to run the frontend directly, only via the batch script, then everyone should get his own copy of the frontend. Or, give your frontend a different suffix in the installation path and rename it to "frontend.mdb" when copying to %temp%.