關係數據存儲在Excel中的表格中。 Access作爲「BI層」查詢鏈接的Excel表格。分析是在同一個Excel中完成的,該Excel使用Excel查詢作爲源來存儲已存儲的表,從而導致「往返」Excel-> Access-> Excel。從Excel管理Excel-Access-linked-tables(推送更新)
我希望在Excel中的Connections上刷新刷新也會提供一個觸發Access來刷新鏈接表的選項(「傳遞刷新」),但最終我總是必須打開Access才能觸發刷新。
處理來自Excel的鏈接表將允許觸發刷新,並且還可以使多個用戶共享BI邏輯。因此,鏈接不存儲在具有本地路徑的Access中,而是存儲在具有Access的遠程路徑的Excel中。
Office 2013中是否存在內置功能?
如果沒有,除了任何其他建議:
1)VBA和SELECT * INTO?這意味着另外需要在Access中維護表結構,但提供更多類型的安全性
2)使用VBA TransferSpreadsheet acLink而不是acImport,可能甚至存在TransferTable-Method,但不斷創建新鏈接似乎比使用方法1:
3)第三個選項是更新excel中訪問vba的鏈接表(首選解決方案)。
Public Sub UpdateLinkedTables()
Dim accApp As Access.Application
Set accApp = CreateObject("Access.Application")
Call accApp.OpenCurrentDatabase(Config.msaDbPath)
Call IterateLinkedTables(accApp)
Call accApp.CloseCurrentDatabase
Call accApp.Quit
Set accApp = Nothing
End Sub
Private Sub IterateLinkedTables(accApp As Access.Application)
Dim tdf As TableDef
'Debug.Print accApp.CurrentDb.TableDefs.Count
For Each tdf In accApp.CurrentDb.TableDefs
If Left(tdf.Connect, 10) = "Excel 12.0" Then
'Debug.Print tdf.Name & " " & tdf.Connect
tdf.RefreshLink
End If
Next tdf
'Set tdf = db.TableDefs
End Sub
我能夠在第一次運行上面的代碼沒有任何錯誤。但第二次和正在進行我收到運行時錯誤'3027':無法更新。數據庫或對象是隻讀的。 表似乎無論如何得到更新,但我想修復錯誤,任何建議?