所以在我使用SQL查询数据库的所有VBA宏中,我刚刚使用了在Excel中录制宏时自动输入的内容。有没有办法简化它?它首先将它插入表中,但实际上我只想在电子表格中使用原始数据......它不需要看起来很好。
Sheets("Sheet1").Select
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=AS400;" _
, Destination:=Range("$A$1")).QueryTable
.CommandText = strSQL
.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_LOCAL_ITEM"
.Refresh BackgroundQuery:=False
End With
ActiveSheet.ListObjects("Table_LOCAL_ITEM").Unlist
Cells.Select
Selection.ClearFormats
答案 0 :(得分:0)
我不记得确切的代码,但是当我再次上班时可以查找它。但是,根据您使用哪种方法获取SQL中的数据(例如ADO或DAO),我会这样做,如果我只是想要原始数据。
如果将变量定义为记录集(例如Dim rst作为记录集),则VBA具有返回记录集中所有数据的功能,如:
Sheets("Sheet 1").Range("A1").CopyFromRecordset rst
将输出记录集中的所有数据。