假设我有一个访问文件(或两个文件分成带有数据和前端文件的文件)。我希望将其提供给各个位置的用户。
之前已经问过这个问题,但有些答案很老,例如
似乎有很多方法可以实现,我只是想征求意见,看看我是否错过了任何选择:
选项都有利弊。最显着的差异在于:
这是我看到的选项。
1。创建链接到sql server数据的桌面前端文件。
每个用户在前端文件的PC上都有自己的副本。您自己管理自己的SQL Server数据库/实例或使用MS Azure或类似的Web服务。 (有一个免费版本的SQL Server可以在服务器上安装和使用,或者你可以我们
PROS:您不需要重新编写前端文件。
缺点:您需要一个SQL Server实例。您需要迁移数据表(并且您可能需要做一些工作来在SQL Server中复制它们,特别是如果您有数据宏,或使用特殊数据类型(如是/否,Multipel选择组合框和其他一些)有一些免费工具可以完成大部分迁移工作,并为那些可以执行更多操作的工具付费。
2。将文件存储在保管箱或类似文件上,以方便共享
如果只有一个用户需要一次更新数据库,则此方法有效。
将文件存储在Dropbox上并使用类似here所述的vbscript将文件从dropbox抓取到本地磁盘,允许用户更新它,然后将其放回dropbox。 (一种机制用于阻止其他用户抓取文件,如果另一个用户抓住了它。)。如果其他用户已经抓住该文件进行更新,则可以调整此方法以允许用户抓取文件以进行READ ONLY目的。
请注意,此方法最大限度地减少了重写数据库的需要,并且可以使用免费的在线文件存储来方便共享
请注意,2可以修改为自动更新存储在用户PC上的前端文件,如选项1中所示。
PROS:便宜!最小的变化。
缺点:一次只能更新一个用户。您需要编写相当复杂的VB脚本。您需要为每个用户手动设置Dropbox,并将其同步到c驱动器。
第3。使用Access 2010创建Web应用程序。(数据存储在Sharepoint列表中,表单使用宏来响应用户操作。信息here和视频演示here
缺点:一个"旧学校"这样做的方式 - Access 2013更好。4。使用Access 2013 Web应用程序。这将数据存储在SQL Server中,并使用新的Access功能提供Web GUI(即视图)。您还可以从桌面访问前端访问相同的SQL Server数据(用于报告等)。
缺点:3& 4
"表格"您创建的功能不如桌面前端那样好,因为无法使用VBA - 而是使用宏。但在许多情况下这都可以。
需要进行sharepoint订阅,这可能会阻止您的数据库被广泛使用,因为(大多数)用户需要sharepoint帐户。
您可能需要重新编写现有的访问表单。 PROS:使用SQL Server时可扩展性更高。使用Access轻松创建和管理。
5。使用虚拟托管桌面服务器。 mentioned here例如Amazon Web services。
我需要帮助。据我了解,这可能是相当昂贵的。我有类似的问题:
5a:每个用户是否需要"订阅"到他们自己的工作区?这些工作区是否需要MS Access / Office许可证? (例如,如果Amazons将是40美元/用户/月),或者你可以只使用Access运行时(因此亚马逊只需25美元/用户/月)。
5b中。每个用户的工作空间是否可以链接到存储在文件服务器上的相同访问数据文件,或者一个工作空间可以到达另一个工作空间文件。有一个fielserver会有成本。
6。使用第三方软件。
例如$ 50 /用户/月EQL Data plugin声称能够在网络浏览器中运行未经修改的Access应用程序。
缺点:昂贵! ? PROS:可能比上面的其他方法更容易。7。使用MS Access停止并使用其他语言写入或重写整个数据库。
这始终是一种选择。我的主要问题是,如果您精通Access和VB或C#,将创建相同的应用程序。在Access中比在VB,java,C#(等)中更快。我的配合在JAVA中编写应用程序,它需要很长时间才能在几分钟内完成我在Access中可以执行的操作。此外,关于Access的好处在于它经常是最终用户"为自己创建数据库,并为他们提供所需的数据。
8。从Access到SharePoint的大小增加
除了SO here
您可以从Access到SharePoint(或低成本Office 365)中调整数据大小。 SharePoint表现在支持关系数据,因此当您将Access表移动到SharePoint时,支持“基本”主表到子表(以及级联删除)(但是您必须限制为自动编号的PR,并且子记录(外键)必须是很长一段时间。
根据数据行的大小和数量,上述解决方案比OFTEN更好,然后将表移动到SQL服务器。此设置的一个非常好的功能是您的应用程序可以继续运行,无需任何Internet连接。您找到一些Wi-Fi等的瞬间,然后您的数据同步。
因此,我不会注销SharePoint表的选项,因为它们可以很好地与多种Access应用程序一起工作,包括具有相关表的应用程序。对于那些没有互联网连接的现场笔记本电脑,“离线”模式非常适合。
9。使用远程控制软件,如teamViewer,允许使用远程PC,从而使用数据库。一次只允许一个用户!
答案 0 :(得分:1)
最便宜的方式(恕我直言):
使用Upsizing wizard将您的共享Microsoft Access数据库(仅包含表格)转换为SQL Server数据库。
因为现在您在Access 客户端应用程序中连接到MS SQL
完成。
当然,这可能有一些陷阱,但在我这样做的时候(它是Access 97和SQL Server 95),升级过程完成没有任何错误,包括VBA更新的完整迁移在大约半天内完成
如果您完成此过程,则可以继续使用Access前端,如果您感兴趣,可以慢慢开始重新评估是否要更新到另一个前端。如果你有一些Access程序员,他们可能会对vb.net感到满意,因为VBA→VB.NET比VBA→C#更本地化。我实际上已经完成了它,我对VB.NET非常满意。在VB.NET中可以访问C#中可访问的所有尖端技术。
关于SQL服务器:您可以使用免费的SQL Server Express版本,直到您对其限制感到满意为止。目前它是10 GB数据库大小和单CPU(但多核)。