将Access部署为客户端 - 服务器应用程序

时间:2021-10-03 23:54:46

I'm using Access (2003 format) as a front-end with a SQL Server 2008 backend. Each user already has Access 2003 or 2007 installed. I'm curious as to the best deployment configuration to use for efficiency and maintainability.

我使用Access(2003格式)作为SQL Server 2008后端的前端。每个用户都已安装Access 2003或2007。我很好奇用于提高效率和可维护性的最佳部署配置。

Should I put the .MDB file on the server and place a shortcut to it on each machine? (There will only be two to three users at a time.) Or put a copy of the file on each machine? And if I'm using a 3rd-party ActiveX, does it need to be installed on each machine even if the .MDB is on the server (I assume so, but just checking), or just on the server?

我应该将.MDB文件放在服务器上并在每台机器上放置一个快捷方式吗? (一次只能有两到三个用户。)或者在每台机器上放一份文件?如果我使用的是第三方ActiveX,即使.MDB在服务器上(我假设是这样,但只是检查),还是仅在服务器上,是否需要在每台机器上安装?

5 个解决方案

#1


Access files can become problematic when opened by multiple users at the same time. I would have a copy of the file on each user's machine.

当多个用户同时打开时,访问文件可能会出现问题。我会在每个用户的计算机上有一份该文件的副本。

And yes, each machine needs the ActiveX control installed - even if the MDB is on the server.

是的,每台机器都需要安装ActiveX控件 - 即使MDB在服务器上也是如此。

#2


I specifically created the Auto FE Updater utility so that I could make changes to the FE MDE as often as I wanted and be quite confident that the next time someone went to run the app that it would pull in the latest version. For more info on the errors or the Auto FE Updater utility see the free Auto FE Updater utility at http://www.granite.ab.ca/access/autofe.htm at my website to keep the FE on each PC up to date.

我专门创建了自动FE更新程序实用程序,以便我可以根据需要随时更改FE MDE,并确信下次有人去运行应用程序时会引入最新版本。有关错误或Auto FE Updater实用程序的详细信息,请参阅我的网站http://www.granite.ab.ca/access/autofe.htm上的免费Auto FE Updater实用程序,以使每台PC上的FE保持最新。

#3


1) make accde file of your database program 2) import these files( form ,tables,query) on client side. 3) Import table checked link and mark check 4) all user or clients using only read-only form.they don't have rights to view design mood.

1)制作数据库程序的accde文件2)在客户端导入这些文件(表单,表格,查询)。 3)导入表格检查链接并标记检查4)所有用户或客户端仅使用只读形式。他们无权查看设计情绪。

#4


As Jon B said, the "putting the mdb on each user's machine" is a good solution. For what it's worth, I recommend that each user's runs a batch file that xcopies from the server the master mdb when the master has a later date. The batch file then runs the mdb. That makes deploying a new version easy.

正如Jon B所说,“将mdb放在每个用户的机器上”是一个很好的解决方案。对于它的价值,我建议每个用户运行一个批处理文件,当主服务器具有更晚的日期时,该服务器将从主服务器xcopies中获取。批处理文件然后运行mdb。这使得部署新版本变得容易。

#5


To expand on the "where does the ActiveX control need to be installed" answer:

要扩展“需要安装ActiveX控件的位置”,请回答:

The fact that you ask the question betrays a somewhat foggy grasp on the way Access works. Just because you are using SQL Server as your back end (which qualifies as client/server) does magically make Access run on the server. Access always runs in the local RAM of the workstation (or remote desktop session should you be running it on Windows Terminal Server/Citrix) and that means that ActiveX controls have to be installed on each workstation, just as Access has to be installed there (substitute appropriate qualifications for WTS).

你问这个问题的事实背叛了Access的工作方式。仅仅因为你使用SQL Server作为你的后端(它有资格作为客户端/服务器)确实在服务器上运行Access。 Access始终在工作站的本地RAM中运行(或者如果您在Windows Terminal Server / Citrix上运行远程桌面会话),这意味着必须在每个工作站上安装ActiveX控件,就像必须在那里安装Access一样(用适当的资格替代WTS)。

Access is not a client/server application though it can be used to create the client-side front end to a server database.

Access不是客户端/服务器应用程序,但它可用于创建服务器数据库的客户端前端。

And, as an aside, most of the professional Access developers I know of avoid ActiveX controls like the plague, since they are so easily broken with no recovery possible (since they can't be used with late binding). There's almost always a more reliable method for accomplishing the task, though it may require more code than a drop-in ActiveX control.

而且,顺便说一句,我所知道的大多数专业Access开发人员都避免像瘟疫这样的ActiveX控件,因为它们很容易被破坏而无法恢复(因为它们不能用于后期绑定)。几乎总是有一种更可靠的方法来完成任务,尽管它可能需要比嵌入式ActiveX控件更多的代码。

#1


Access files can become problematic when opened by multiple users at the same time. I would have a copy of the file on each user's machine.

当多个用户同时打开时,访问文件可能会出现问题。我会在每个用户的计算机上有一份该文件的副本。

And yes, each machine needs the ActiveX control installed - even if the MDB is on the server.

是的,每台机器都需要安装ActiveX控件 - 即使MDB在服务器上也是如此。

#2


I specifically created the Auto FE Updater utility so that I could make changes to the FE MDE as often as I wanted and be quite confident that the next time someone went to run the app that it would pull in the latest version. For more info on the errors or the Auto FE Updater utility see the free Auto FE Updater utility at http://www.granite.ab.ca/access/autofe.htm at my website to keep the FE on each PC up to date.

我专门创建了自动FE更新程序实用程序,以便我可以根据需要随时更改FE MDE,并确信下次有人去运行应用程序时会引入最新版本。有关错误或Auto FE Updater实用程序的详细信息,请参阅我的网站http://www.granite.ab.ca/access/autofe.htm上的免费Auto FE Updater实用程序,以使每台PC上的FE保持最新。

#3


1) make accde file of your database program 2) import these files( form ,tables,query) on client side. 3) Import table checked link and mark check 4) all user or clients using only read-only form.they don't have rights to view design mood.

1)制作数据库程序的accde文件2)在客户端导入这些文件(表单,表格,查询)。 3)导入表格检查链接并标记检查4)所有用户或客户端仅使用只读形式。他们无权查看设计情绪。

#4


As Jon B said, the "putting the mdb on each user's machine" is a good solution. For what it's worth, I recommend that each user's runs a batch file that xcopies from the server the master mdb when the master has a later date. The batch file then runs the mdb. That makes deploying a new version easy.

正如Jon B所说,“将mdb放在每个用户的机器上”是一个很好的解决方案。对于它的价值,我建议每个用户运行一个批处理文件,当主服务器具有更晚的日期时,该服务器将从主服务器xcopies中获取。批处理文件然后运行mdb。这使得部署新版本变得容易。

#5


To expand on the "where does the ActiveX control need to be installed" answer:

要扩展“需要安装ActiveX控件的位置”,请回答:

The fact that you ask the question betrays a somewhat foggy grasp on the way Access works. Just because you are using SQL Server as your back end (which qualifies as client/server) does magically make Access run on the server. Access always runs in the local RAM of the workstation (or remote desktop session should you be running it on Windows Terminal Server/Citrix) and that means that ActiveX controls have to be installed on each workstation, just as Access has to be installed there (substitute appropriate qualifications for WTS).

你问这个问题的事实背叛了Access的工作方式。仅仅因为你使用SQL Server作为你的后端(它有资格作为客户端/服务器)确实在服务器上运行Access。 Access始终在工作站的本地RAM中运行(或者如果您在Windows Terminal Server / Citrix上运行远程桌面会话),这意味着必须在每个工作站上安装ActiveX控件,就像必须在那里安装Access一样(用适当的资格替代WTS)。

Access is not a client/server application though it can be used to create the client-side front end to a server database.

Access不是客户端/服务器应用程序,但它可用于创建服务器数据库的客户端前端。

And, as an aside, most of the professional Access developers I know of avoid ActiveX controls like the plague, since they are so easily broken with no recovery possible (since they can't be used with late binding). There's almost always a more reliable method for accomplishing the task, though it may require more code than a drop-in ActiveX control.

而且,顺便说一句,我所知道的大多数专业Access开发人员都避免像瘟疫这样的ActiveX控件,因为它们很容易被破坏而无法恢复(因为它们不能用于后期绑定)。几乎总是有一种更可靠的方法来完成任务,尽管它可能需要比嵌入式ActiveX控件更多的代码。