将多个源从Access数据库链接到VBA中的Excel文件

时间:2018-06-20 02:48:22

标签: excel vba excel-vba ms-access

我试图将Access中的两个表链接到我的Excel。一个是Table_1,另一个是Table2。但是,当我运行这些代码时,两个导入的表链接到同一源,或者说同一数据源被导入两次。我试图通过删除连接并重新连接来解决此问题。但这行不通。录制的宏使用一行Selection.ListObject.TableObject.Refresh。但是系统弹出错误,指出重新运行宏时未设置对象。完整代码如下。

在这种情况下,我想问一下如何释放对象并连接到另一个表。

Sub Macro1()


Sheets("S6_Inforce").Select
Range("B1").Select
Workbooks("Lapse1709_ANALYSIS_v1_S6.xlsm").Connections.AddFromFile _
    "C:\Users\j1sunx\Desktop\201709_Lapse_redo\Step1_Analysis\Lapse Study 201709 S6.accdb" _
    , True, False
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
    Connections("Lapse Study 201709 S6"), Destination:=Range("$B$1")). _
    TableObject
    .RowNumbers = False
    .PreserveFormatting = True
    .RefreshStyle = 1
    .AdjustColumnWidth = True
    .ListObject.DisplayName = "Table__1__S6_Inforce_Summary"
    .Refresh
End With
Sheets("S6_Terminated").Select
Range("B1").Select
ActiveWorkbook.Connections("Lapse Study 201709 S6").Delete
' Workbooks("Lapse1709_ANALYSIS_v1_S6.xlsm").Connections.Delete
' Selection.ListObject.TableObject.Refresh
Workbooks("Lapse1709_ANALYSIS_v1_S6.xlsm").Connections.AddFromFile _
    "C:\Users\j1sunx\Desktop\201709_Lapse_redo\Step1_Analysis\Lapse Study 201709 S6.accdb" _
    , True, False
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
    Connections("Lapse Study 201709 S6"), Destination:=Range("$B$1")). _
    TableObject
    .RowNumbers = False
    .PreserveFormatting = True
    .RefreshStyle = 1
    .AdjustColumnWidth = True
    .ListObject.DisplayName = "Table__2__S6_Terminations_Summary"
    .Refresh
End With
Range("F10").Select

结束子

0 个答案:

没有答案