【问题标题】:Importing data from Access into Excel将数据从 Access 导入 Excel
【发布时间】:2014-08-08 16:49:02
【问题描述】:

我正在处理的 Excel 预算工作表中有一个宏,它从 Access 数据库中提取整个表。然后我的宏有一堆 SUMIFS 和格式化函数,可以将特定数据组织和格式化到一个单独的工作表中。当我只需要几行数据时,我希望整个表格(21,000 行预算数据)不要转储到 Excel 工作表中,具体取决于我选择的“团队”。有没有办法在我的 Access 数据转储中指定我只需要表中的特定数据行(21,000 行)而不是整个表?进行数据转储时有没有办法忽略标头?

提前致谢!

【问题讨论】:

  • 两个问题都是。如果您指定使用什么方法来导入数据,也许我可以给您一个示例,说明如何添加 select 语句并忽略标题。
  • 感谢您的回复。我只是进入 Excel > Data 选项卡并单击“From Access”。我基本上创建了一个宏,所以当我点击一个标题为“加载数据”的按钮时,它会通过在额外的工作表中创建一个表来复制该过程,然后在我希望它所在的单元格中格式化数据。

标签: excel vba


【解决方案1】:

如果您已经录制了执行此操作的宏,则可以简单地将命令文本编辑为您的选择语句。下面的示例只会从 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 中的标题行。

【讨论】:

  • 这是正确的轨道,但我需要很多列和指定数量的行。例如,我们有大约 1000 个不同的“团队”。我想从 1 个“团队”中选择所有行,这只有大约 10 行数据。从这 10 行数据中,我只需要大约 25 列的 10 列。我还需要删除每列的标题。
  • 听起来您的 select 语句应该类似于... Select col1, col2, col3, ... col10 from [table] where [team] = 'team1'
  • 你说得对,格雷格。我需要它看起来像.. 从 My_data_table WHERE facility=facility1 AND team=team1 中选择 January,February,March
  • 我的一些专栏中也有空格,即:“Year 1”。当我使用代码 Select Year 1 From My_table ...代码中断。也不让我用“”标记。
猜你喜欢
  • 2014-11-19
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 2013-05-16
  • 2019-11-28
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多