Excel只读和Microsoft Query / ADO查询

时间:2012-06-12 08:15:50

标签: sql-server excel excel-vba ado vba

我开发了一个Excel 2007/2010 WorkBook,它将数据(由SqlServer存储过程通过VBA和ADO返回)导入到我的WorkBook的名为“Data”的工作表的几个Excel表中。 然后,我使用ADO(指向工作簿本身的连接)来检索其他工作表中的数据。我喜欢这个ADO层,因为它允许我清楚地分离数据访问层(数据工作表)和应用程序(所有其他工作表)。在我的情况下,数据透视表不是一个选项,因为我需要为检索到的数据添加一些公式。这就是我为WorkBook设置连接字符串的方法

Private Function GetThisWorkbookCN() As String
   Dim fileFullPath As String
   fileFullPath = ThisWorkbook.FullName
   GetThisWorkbookCN = "DSN=Excel Files;DBQ=" & fileFullPath  
End Function

我的问题是,只要工作簿不是只读的,一切正常:在这种情况下,连接指向保存的工作簿而不是打开的文件。 您认为是否可以设置连接以便从打开的文件中获取数据? 目前,我强迫每个用户在本地保存每个版本的工作簿,但我想避免这种情况。

编辑:Remou建议,作为一种解决方法,将数据保存在本地文件(csv或其他格式)中,并将ADO用于该文件而不是工作簿本身。这样可以避免维护问题,因为主文件可以在只读模式下打开。

0 个答案:

没有答案