gpt4 book ai didi

database - 如何迁移一个Access数据库以使多个用户可以从任何地方访问

转载 作者:行者123 更新时间:2023-12-01 06:32:59 25 4
gpt4 key购买 nike

可以说我有一个访问文件(或两个文件分成带数据的文件和前端文件)。我想将此功能提供给各种位置的用户。

之前已经问过这个问题,但是有些答案很旧,例如

list here

SO 2879281 here

SO 11979044 here

SO 32667061 here

似乎有很多方法可以实现,而我只是想征求意见,看看我是否错过了任何选择:

这些选项各有利弊。最显着的区别在于:

  • 成本和时间
  • 需要重新编写访问数据库才能放在SQL Server中
  • 需要重写前端
  • 同时使用。
  • 解决方案和性能的可伸缩性。
  • 使用SQL Server存储数据。
  • 简单!

  • 我看到的是这些选项。

    1.创建链接到sql服务器数据的桌面前端文件。

    每个用户在前端文件的PC上都有自己的副本。您可以自己管理自己的SQL Server数据库/实例,也可以使用MS Azure或类似的Web服务。 (可以在服务器上安装和使用SQL Server的免费版本,或者您可以

    优点:您不需要重新编写前端文件。

    缺点:您需要一个SQL Server实例。您需要迁移数据表(并且可能需要做一些工作才能在SQL Server中复制它们,尤其是如果您有数据宏,或者使用特殊的数据类型(例如“是/否”,“Multipel选择组合框”等)时。 。有免费的工具可以完成大部分迁移工作,而需要付费的工具则可以完成更多的迁移工作。

    2.将文件存储在保管箱或类似文件上,以方便共享

    如果只有一个用户一次需要更新数据库,则此方法有效。

    将文件存储在Dropbox上,并使用类似于 here的vbscript将文件从dropbox抓取到本地磁盘,允许用户对其进行更新,然后再将其放回dropbox。 (如果其他用户已抓取文件,则使用一种机制来阻止其他用户抓取该文件。)。如果另一位用户已抓取文件以进行更新,则可以采用这种方法来允许用户抓取该文件以进行只读操作。

    请注意,此方法最大程度地减少了重新编写数据库的需要,并且可以使用免费的在线文件存储来促进共享

    请注意,可以按照选项1的建议将2修改为自动更新存储在用户PC上的前端文件。

    优点:便宜!最小的变化。

    缺点:一次只能更新一个用户。您需要编写相当复杂的VB脚本。您需要为每个用户手动设置保管箱,并将其同步到C驱动器。

    3.使用Access 2010创建一个Web应用程序。 (数据存储在Sharepoint列表中,并且表单使用宏来响应用户的操作。信息 here和视频演示 here

    缺点:一种“老派”做法-Access 2013更好。

    4.使用Access 2013 Web应用程序。 它将数据存储在SQL Server中,并使用新的Access功能提供Web GUI(即视图)。您还可以从桌面访问前端访问相同的SQL Server数据(用于报告等)。

    缺点:3和4

    您创建的“表单”不具备与桌面前端一样好的功能,因为无法使用VBA-而是使用宏。但这在很多情况下都是可以的。

    需要共享点订阅,这可能会使您的数据库无法广泛使用,因为(大多数)用户将需要共享点帐户。

    您可能需要重新编写现有的访问表单。
    优点:使用SQL Server时更具可伸缩性。易于使用Access创建和管理。

    5.使用虚拟主机桌面服务器。 mentioned here例如 Amazon Web services

    我需要这方面的帮助。据我了解,这可能会非常昂贵。我有类似的问题:

    5a:每个用户是否需要“订阅”自己的工作区?这些工作区是否需要MS Access / Office许可证? (例如,如果是这样的话,亚马逊的价格是40美元/用户/月),或者您可以只使用Access运行时(因此亚马逊的价格仅为25美元/用户/月)。

    5b。每个用户的工作区可以链接到存储在文件服务器上的相同访问数据文件,还是可以一个工作区访问另一个工作区文件。拥有fielserver会产生成本。

    6.使用第三方软件。

    例如$ 50 /用户/月 EQL Data plugin声称能够在网络浏览器内运行未修改的Access应用程序。

    缺点:价格昂贵! ?
    优点:可能比上面的其他方法容易。

    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,并且子记录(外键)必须是一长串。

    根据数据的大小和行数,通常比将表移动到SQL Server更好。此设置的一个非常好的功能是您的应用程序可以在没有任何互联网连接的情况下继续运行。找到Wi-Fi等瞬间,数据就同步了。

    因此,我不会取消SharePoint表的选项,因为它们可以很好地与多种Access应用程序配合使用,包括带有相关表的应用程序。而且,“离线”模式对于那些没有互联网连接的野外笔记本电脑来说非常有用。

    9.使用像teamViewer这样的远程控制软件来允许使用远程PC,从而允许使用数据库。一次只允许一个用户!

    最佳答案

    最便宜的方式(恕我直言):

    8.将数据表移至SQL Server并保留MS Access前端

  • 使用Upsizing wizard将共享的Microsoft Access数据库(仅包含表)转换为SQL Server数据库。
  • 因为现在您正在连接到MS SQL,所以在Access 客户端应用程序中
  • 更改表的位置(连接字符串现在指向MS SQL数据库)
  • 在您的VBA代码中,将包含访问特定语法的SQL查询手动更新为标准化SQL(逻辑–升迁向导无法在代码中看到它们,因此无法自动转换它们)

  • 做完了

    当然,这可能会有一些陷阱,但是在我这样做的时候(它是Access 97和SQL Server 95),升迁过程已经完成,没有任何错误,并且包括VBA更新在内的整个迁移都在大约半天的时间内完成。

    如果完成此过程,则可以继续使用Access前端;如果您有兴趣,则可以慢慢开始重新评估是否将更新到另一个前端。如果您周围有一些Access程序员,他们可能会对 感到满意,因为VBA→VB.NET比VBA→C#更原生。我实际上已经做到了,并且对VB.NET感到非常满意。 V#.NET中也可以使用C#中可以达到的所有尖端技术。

    关于SQL Server:您可以使用免费的 SQL Server Express版本,直到对其限制满意为止。当前,它是10 GB数据库大小和单个CPU(但有多个内核)。

    关于database - 如何迁移一个Access数据库以使多个用户可以从任何地方访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653858/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com