使用MS-Access和VBA时如何确定SharePoint是否在线

时间:2019-04-28 02:19:21

标签: ms-access access-vba sharepoint-online

我正在将Office 365与绑定到SharePoint列表的MS-Access一起使用。我有一些VBA代码,用户单击命令按钮即可运行。部分代码将数据追加到表中。不幸的是,一个用户一直尝试使用命令按钮,但没有意识到与SharePoint的连接(由于某种原因)丢失了。每当她单击命令按钮时,它都会附加相同的数据。我需要一些vba代码,用于检查SharePoint是否在线进行MS-Access。如果是,它将运行查询。如果不是,则编码退出以及消息。正在查找SharePoint是否在线上需要我帮助的MS-Access。

2 个答案:

答案 0 :(得分:0)

好吧,如果您处于脱机模式下并且已打开缓存,那么该用户应该可以自由添加记录。 PK将从-1开始,然后是-2,依此类推。

您可以检查互联网连接,但是如果将它们切换到离线模式,则Access通常将保持离线模式。

因此,您可能有一个虚拟表,并添加一条记录-如果PK <0,则您处于脱机状态(并删除该虚拟记录)。我不知道有一些命令会告诉您您实际上已经在线。我想您也可以使用shell()命令对服务器进行“ ping”操作,但是正如我所说的,您实际上可以通过有效的连接脱机,因此,请务必确保使用否定的PK技巧可以肯定地告诉您“访问”认为”并且“表现”为好像处于离线模式。

不清楚为什么按钮失败,但是如果选中了“使用SharePoint 2010或更高版本的缓存”复选框,则用户应该可以自由编辑,查看和添加记录。重新连接后,可以访问将同步所有更改和更新(双向同步)。

答案 1 :(得分:0)

阿尔伯特。谢谢,您的建议很有帮助。通过断开计算机与Internet的连接,然后运行命令按钮附带的代码,我进行了一些测试。就像您说的那样,在SharePoint表(不是临时表)中,所有导入的记录的PK <0,即-1,-2,-3等。我编写了一个简单的DCount查询来查找PK小于零。有趣的是,查询无法计算任何小于零的PK,只有PK> 0。我在标准中的解决方法是放置Like(“-*”)并成功。奇怪的是PK是一个自动编号字段,一个数字,但小于零却不起作用。使用DCount标准,我创建了一个MsgBox,该消息解释了发生了什么以及如果Internet连接仍然可用,如何使SharePoint恢复联机。而且,不要再次导入相同的电子表格(这是代码的一部分。因此,谢谢。