David Fenton最近在another thread中提到
“任何Access应用程序的唯一合适位置(实际上是Windows 2000)是%AppData%环境变量指向的文件夹。”
我非常尊重大卫的知识,特别是在与Access有关的所有问题上,但我对此声明感到困惑。
遵循此建议有什么好处,特别是在您要让多人使用同一台计算机访问您的应用的环境中?
不安装到此文件夹只为一个用户安装应用程序?如果这是真的,不会多次安装您的应用程序在您的计算机上留下多个单独的应用程序副本?这些天硬盘空间很便宜,但是我仍然不希望前端文件和其他支持文件(图形,Word和Excel模板等)在一台机器上复制多次。
你有什么想法?我错过了理解大卫建议的关键吗?
答案 0 :(得分:2)
是的,这是一个问题,但唯一的方法是,假设IT管理员允许,在C盘根目录中创建一个文件夹,并在该文件夹中安装Access FE数据库文件。也就是说,即使文件重复,我仍然会使用Application Data文件夹。正如你所说,硬盘很便宜。
这假设您不是指用户同时登录系统的终端服务器/ Citrix系统。
答案 1 :(得分:1)
如果给定计算机上的每个用户的所有内容始终相同,那么文件的多个副本可能不是一个好主意。但是当一个例外发生时,你已经把自己画成了一个角落。例如,他们可能需要不同的模板版本。
对于Access开发人员来说,您似乎很少见。
答案 2 :(得分:1)
首先,这只是一个有多个用户登录到它的工作站的问题。那是非常罕见的,不是吗?
其次,您承认磁盘空间没有问题,因此唯一真正的问题是让前端保持最新状态,而且这个问题与前端存储位置的问题完全正交。 / p>
可以通过使用许多解决方案来解决该问题,这些解决方案会在用户打开前端时自动复制新版本的前端(如果需要)。 Tony Toews's Auto FE Updater是我所知道的最佳解决方案。它功能多样且易于使用,Tony不断改进它。
因此,简而言之,我认为这里根本没有任何问题。
答案 3 :(得分:0)
你在这里遇到了一些问题,因为你正在考虑环境变量名%appdata%
。该变量存储SHGetSpecialFolderPath(CSIDL_APPDATA)
返回的目录。
您要查找的是SHGetSpecialFolderPath(CSIDL_COMMON_APPDATA)
返回的目录。该目录没有环境变量。此目录(如名称所示)对所有用户都是通用的。
David的方法的优点是,当它位于CSIDL_APPDATA中时,Access数据受NTFS访问权限保护。用户只能删除他的副本。在CSIDL_COMMON_APPDATA中,任何人都可以删除单个共享副本。
答案 4 :(得分:0)
最好将这些建议和提示放在一边。这里假设您的应用程序将以多用户模式使用(这意味着同时在应用程序中有多个用户),那么几乎可以假设您的应用程序将分为两部分。所谓的应用程序部分(前端),然后是数据文件的一部分,或者所谓的后端部分。
所以,你有一个FE和一个BE。
在此环境中,办公室中的每个用户都将拥有自己的工作站副本。因此,假设BE(数据文件)被放置在服务器上的某个共享文件夹中。
如果我们不打算让多个用户运行这个应用程序,或者应用程序还没有真正开发,那么你真的不需要将应用程序分成两部分。但是,如果您拆分应用程序,则意味着您在处理此应用程序版本的下一个优秀版本的副本时,所有用户都可以安全地工作和使用您的应用程序。如果没有拆分环境,您实际上就无法进行任何可行的开发周期。
如果您打算在多用户环境中使用访问权限,那么很长时间和荣幸的建议是,每个用户必须拥有放置在每台计算机上的前端应用程序的副本。如果您避免使用此建议,最终结果是应用程序的一般操作不稳定。
我在这里有一篇文章在概念层面上解释,并不只是告诉你两个分割你的应用程序,但解释为什么你应该拆分你的应用程序:
http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm