如何在Excel中禁用自动刷新连接调用SQL存储过程?

每当我更改打开的工作簿的窗口,并返回到MyFile.xlsb,我定义了外部连接,MyFile.xlsb中的所有数据透视表刷新自动运行。 不用添加它是非常烦人的function。 如何禁用它? 如何只按需要运行刷新。 重要的提示。 此问题仅在分发MyFile.xlsb的用户的计算机上发生。 在我的电脑上,它工作正常。

我已经将外部连接定义为SQL中对存储过程的引用。

用法

定义

连接string:

Provider=SQLOLEDB.1; Integrated Security=SSPI; Persist Security Info=True; Initial Catalog=MyDataBase; Data Source=MyServerName; Use Procedure for Prepare=1; Auto Translate=True; Packet Size=4096; Workstation ID=MyWorkstationID; Use Encryption for Data=False; Tag with column collation when possible=False 

这是我调用的SQL存储过程。

 CREATE PROCEDURE [dbo].[MyProcedure] AS BEGIN -- part one, show user what he has to see SELECT * FROM [dbo].[MyView] ORDER BY 1 -- part two, get user data INSERT INTO dbo.My_other_table_logins_history SELECT GETDATE(), ORIGINAL_LOGIN() END 

使用这个过程的概念在这里解释: 从Excel的SQL过程运行从用户login的连接属性作为参数

尝试运行这个:

 Option Explicit Public Sub disableAutoRefreshConnection() Dim cnn As WorkbookConnection For Each cnn In ActiveWorkbook.Connections With cnn.OLEDBConnection .BackgroundQuery = False If .Refreshing Then .CancelRefresh .EnableRefresh = False .RefreshOnFileOpen = False .RefreshPeriod = 0 End With Next End Sub 

 BackgroundQuery Default: True; If queries are asynchronous CancelRefresh Cancels refresh operations in progress EnableRefresh Default: True; If connection can be refreshed by the user RefreshOnFileOpen Default: False; If it auto-updates each time workbook is opened RefreshPeriod Default: 0; Number of minutes between refreshes