【问题标题】:running sql query from sql into excel将sql查询从sql运行到excel
【发布时间】:2014-04-01 21:58:19
【问题描述】:

我记录了一个宏,它基本上从 excel 中运行 sql 查询并将数据粘贴到工作表中。然而,问题是当数据被粘贴到工作表中时,单元格的数据顺序被扭曲了。例如,我粘贴从 Range("B3") 开始的 sql 查询,但是如果在查询后我在单元格 D4 中有其他数据,则此数据无缘无故地移动到单元格 F4。我在工作表上获得的所有其他数据也是如此。换句话说,在粘贴 sql 查询的结果后,单元格数据的顺序会被扭曲。我该如何解决?

    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
    "ODBC;Driver=MySQL ODBC 5.1    
     Driver;SERVER=localhost;UID=root;DATABASE=second;PORT=3306" _
    , Destination:=Range("$B$4")).QueryTable
    .CommandText = Array( _
    "SELECT employees_0.eid, employees_0.ename, employees_0.age" & Chr(13) & "" & 
    Chr(10) & "FROM second.employees employees_0" _
    )
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Table_Query1"
    .Refresh BackgroundQuery:=False
    End With
   End Sub

【问题讨论】:

    标签: sql excel vba


    【解决方案1】:

    我认为您的问题是:

    .RefreshStyle = xlInsertDeleteCells
    

    应该是:

    .RefreshStyle = xlOverwriteCells
    

    你可以阅读更多关于here的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 2015-02-07
      • 2021-10-31
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多