【问题标题】:How to put query results into a datatable with Excel VBA and ADO?如何使用 Excel VBA 和 ADO 将查询结果放入数据表中?
【发布时间】:2012-02-09 02:40:37
【问题描述】:

我想通过 ODBC 使用 ADO 从数据库表中提取记录并将它们放入 Excel 工作表中。我可以做这个。最终,我希望数据包含在 Excel 表中。我知道如何通过选择适当的单元格并使用“插入”菜单创建表格来手动执行此操作。如何在我的 VBA 代码中执行此操作,以将返回的查询结果放入 Excel 表的目标工作表中?我尝试使用宏记录器,但生成的代码没有帮助。

【问题讨论】:

  • 您希望表格可刷新吗?请问数据源、品牌、版本是什么?您使用的是哪个版本的 Excel?你具体记录了什么动作?我发现这是开始使用这种代码的一种非常有用的方法。
  • 是的,我希望它是可刷新的,但不一定是可更新的。我正在使用 PostgreSQL ODBC 9.0 驱动程序。我记录的操作是:选择数据范围,选择插入选项卡,单击表格并为其命名。我还选中了标题框。我看不到如何将生成的代码与我的数据检索代码集成。我正在使用 Excel 2007。

标签: excel ado vba


【解决方案1】:

这样的?

在您导入数据后添加此代码。我假设以下。请相应修改。

  • 数据导入Sheet1的A1单元格

  • 第 1 行有列标题

    Sub Sample()
    
        Dim LastRow As Long, LastCol As Long
        Dim ws As Worksheet
        Dim rng As Range
    
        Set ws = Sheets("Sheet1")
    
        LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
        LastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column
    
        Set rng = Range("$A$1:$" & Split(Cells(, LastCol).Address, "$")(1) & "$" & LastRow)
    
        With ws
            .ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "Table1"
            .ListObjects("Table1").TableStyle = "TableStyleLight2"
        End With
    
    End Sub
    

【讨论】:

  • 这是完美的。太感谢了。我将此子添加到我的模块中并稍微调整它以将目标工作表作为参数,所以现在我可以在多个地方使用它。
【解决方案2】:

如果您单击“数据”选项卡上的“来自其他来源”按钮,您应该会看到列出的 ODBC。然后,您可以指定要连接的表。然后,您将拥有一个包含您的数据的可刷新表,换句话说,它将您已经在做的事情与您想要做的事情结合到一个步骤中。根据您在 cmets 中所说的话,我认为这是要走的路,但如果我遗漏了什么,请告诉我。

【讨论】:

  • 嗨,道格。当我通过 ADO 从数据库中提取记录时,我希望在我的 VB 代码中执行此操作。我一直无法在任何地方找到任何代码示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2012-07-11
  • 2019-01-15
  • 2016-10-11
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
相关资源
最近更新 更多