我正在处理的Excel预算工作表中有一个宏,它从Access数据库中提取整个表。然后,我的宏有一堆SUMIFS和格式化函数,可以将特定数据组织并格式化为单独的工作表。我希望整个表格(21,000行预算数据)不会被转储到Excel工作表中,因为我只需要几行数据,具体取决于我选择的“团队”。有没有办法在我的Access数据转储中指定我只需要来自表(21,000行)而不是整个表的特定数据行?有没有办法在进行数据转储时忽略标题?
提前致谢!
答案 0 :(得分:0)
如果你已经录制了一个宏,你可以简单地编辑命令文本作为你的select语句。下面的示例只会从Templates表中提取单个列ID,而不是整个表。
Sub MyRecordedMacro
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=C:\Users\meuser\Desktop\database.accdb;Mode=Share Deny " _
, _
"Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:En" _
, _
...
.CommandText = "Select ID From Templates"
...
...
End With
您可以在此处了解如何创建相应的选择语句:http://www.w3schools.com/sql/sql_select.asp
我不知道如何从此类导入中排除标头。但是,您可以在导入后删除excel中的标题行。