Vba 如何在SharePoint online中迁移Access数据库和表单?

Vba 如何在SharePoint online中迁移Access数据库和表单?,vba,ms-access,sharepoint,asp.net-core,infopath,Vba,Ms Access,Sharepoint,Asp.net Core,Infopath,我正在启动一个新项目,我们希望将基于桌面的Access 2016应用程序(具有大量后端VBA和表之间的关系)迁移到SharePoint 2016本地版,并很快迁移到SharePoint Online。据我所知,我们将获得一个SharePoint网站的网站权限,我们可以用它做任何我们想做的事情。我希望通过SharePoint 2016内部部署和最终的SharePoint online,意味着有一个SQL Server和最终的Azure SQL数据库,我可以迁移Access后端表和查询,因为我知道S

我正在启动一个新项目,我们希望将基于桌面的Access 2016应用程序(具有大量后端VBA和表之间的关系)迁移到SharePoint 2016本地版,并很快迁移到SharePoint Online。据我所知,我们将获得一个SharePoint网站的网站权限,我们可以用它做任何我们想做的事情。我希望通过SharePoint 2016内部部署和最终的SharePoint online,意味着有一个SQL Server和最终的Azure SQL数据库,我可以迁移Access后端表和查询,因为我知道SharePoint列表不足以满足这一要求,尽管SharePoint列表是数据库表的等效替代品这一错误概念仍然存在

我关心的是如何构建自定义表单、执行所需的业务逻辑、执行CRUD操作,以及如何将数据以Excel文件的形式从SharePoint站点上载到后端

我是SharePoint新手,考虑到它不支持VBA,微软今年早些时候停止了Access Web应用程序,他们正在逐步淘汰SharePoint Designer 2013和InfoPath,过去一周的一些研究表明,我的最佳选择是使用ASP.NET Core构建自定义web应用程序,并以某种方式将其部署到我们可以控制的SharePoint网站和子网站,或者开发大量HTML、CSS和JS来创建前端界面。我读过有关Business Connectivity Service的内容,该服务用于从SharePoint网站前端和DB后端获取数据,并将数据发布到SharePoint网站前端和DB后端,以及使用Javascript和AJAX调用在数据库和前端之间执行CRUD操作。我研究了PowerApps,但这些似乎还不够,我仍在尝试区分SharePoint web部件和SharePoint加载项


上述任何一项都是可行的选择吗?有人能插嘴说一个更好的办法来解决这个问题吗?我需要什么技术才能最好地实现这一点?

支持将表从Access移动到SharePoint仍然是一种选择

因此,所有VBA代码等都将像以前一样工作。唯一真正的问题是,您是否希望将数据移动到SharePoint表而不是使用SQL server

SQL server表比SharePoint表快得多

但是,您当然可以考虑将表移动到SharePoint。当您将表移动到SharePoint(或SQL server)时,访问代码、表单、报表等,甚至您的VBA代码也会像以前一样工作。这意味着您将继续将Access应用程序部署到每个桌面。唯一的区别是现在您的表位于SharePoint或SQL server上

上述选择不会产生基于web的应用程序

因此,您可以移动数据,但您的应用程序仍将是桌面应用程序

如果您希望构建基于web的应用程序,那么Access是错误的工具–您需要采用类似Visual Studio的工具


因此,您可以继续使用Access,并将数据表放入云中,或现场SharePoint中,但应用程序仍将基于桌面

在过去几年中,我广泛使用了以下内容,我对这些经验感到满意:

  • Azure SQL数据库作为后端
  • 自动化流程,作为数据库的接口
  • 用于表单、桌面应用和移动应用的PowerApps
  • Excel用于报告(获取和转换,又称PowerQuery和DAX),特别是用于打印报告
  • 仪表板电源BI(有限使用)
是的,PowerApps有缺点,但是有很多现实的解决办法,并且定期添加新功能/改进


我还使用SharePoint列表作为数据源,但几乎总是迁移到Azure SQL数据库。

PowerApps中您认为什么不足?谢谢!我认为其中一个问题是我们在Access前端的VBA代码中嵌入了SQL,因此我认为SharePoint无法理解数据的命令,除非可以将表存储为SharePoint中的列表并通过Access中的外部表导入,然后从其中执行SQL调用。我认为,在某个时候,长期战略将是在SharePoint中重建整个应用程序,似乎我们必须使用InfoPath或HTML表单web部件来构建表单,并使用JS来替换VBA。现在的另一个问题是,是否可以在Excel数据导入SharePoint列表时对其导入和执行ETL操作,是否可以从SharePoint中的JS代码中输出Excel文件?如果使用Access中的链接表访问SharePoint表,则所有VBA、表单甚至SQL更新代码都可以正常工作。唯一真正的问题是,如果需要更新大量的行,性能问题可能会出现,而且也会出现——对SharePoint表的更新速度很慢。至于导入Excel?没有什么真正改变。Access不关心您是导入到本地表还是SharePoint上的链接表。我认为在不久的将来,我们会希望将整个应用程序移植到SharePoint中,并完全停止使用Access,这意味着在后端SQL数据库和整个前端都有表、查询和过程,包括业务逻辑以及在SharePoint Online中从Excel文件导入数据和进行报告的能力。我意识到SharePoint并不是为实现这一目标而设计的,但它是我必须使用的。这似乎是一种潜力。我将对PowerApps做更多的研究,看看它是否有可能用于我们计划做的事情。谢谢