首页 > 解决方案 > MS Access 调用函数通过 VB.NET

问题描述

我正在为 MS Access 制作一个 VB.NET 桌面应用程序。该数据库链接到 Sharepoint 站点。我想在 Access 中使用“在线/离线工作”功能,以便在没有网络连接的情况下使用该应用程序。

是否可以通过 VB.NET 执行“在线/离线工作”命令?这样,我可以先让代码检查网络连接,然后选择要使用的适当模式。

我知道 Access 不是用于同步在线和离线数据库的最佳平台,但我没有可用于 SQL Server 机器的资源,我对数据库现在的工作方式感到满意。

谢谢!

标签: vb.netms-access

解决方案


Access和共享点的自动离线模式和自动同步功能非常好。不幸的是,我不相信 ACE 引擎提供了同步和重新连接的特性和能力。因此,无法使用 JUST 使用 ACE 数据引擎与共享点同步的功能。

事实上,从 Access VBA 执行此操作的功能和选项也没有公开。我相信您可以执行命令来重新刷新表,但是显示您“离线”并重新连接到 SharePoint 的提示只会出现在 Access UI 中 - 不是数据库引擎,也不是 VBA 对象模型.

从 .net 执行此操作的唯一实用方法是采用 .net 同步框架,并且还希望您能找到为您编写的 SharePoint 同步提供程序,因为构建和设计您自己的同步需要大量工作框架。如果您构建了这样一个同步系统,那么您的访问应用程序将不得不仅转换回本地表 - 而您的 .net 系统将管理离线、在线和数据同步 - 不再访问。

我非常希望 Access 中的这个“惊人”功能能够作为 Access 的某些 API(或其他系统,如 .net)更好地公开,但事实并非如此。如前所述,虽然 .net 同步框架已贬值,但它仍然可能是这里的最佳选择。我认为 SQL Server 的同步提供程序可用,因此这意味着您将数据从 Access 迁移到 SQL Server,并在每台机器上运行 SQL Express 的免费版本,然后使用 + 构建 .net 中的数据同步. 这也意味着您不会使用 SharePoint 表,而是在云部分使用 sql server 表。

编辑

请记住,如果您采用.net 同步框架而不是复制,那么 sql server 的两端都可以是免费版。请注意,SQL express(免费版)可以是订阅者进行复制,但主机不能是免费版。但是,如果您使用 .net 同步框架,那么您就不会使用复制,因此两端都可以是 sql server 的免费版本。

那么,回答你的问题?不,使用同步来共享点是不切实际的,Access 具有的自动“离线”和自动“在线”模式使整个设置变得如此简单。我目前正在将此同步和 SharePoint 选项与 Access 和 office 365 一起使用 - 但预计 office 365 很快就会放弃对这个功能的支持,因此人们将不得不使用 SharePoint,因为 office 365(云部分)正在放弃这个功能。


推荐阅读