如何使用Excel VBA和ADO将查询结果放入数据表中?
我想通过ODBC使用ADO从数据库表中提取记录并将它们放入Excel工作表中。我可以做这个。最终,我想要将数据包含在Excel表格中。我知道如何通过选择适当的单元格并使用“插入”菜单创建表格来手动执行此操作。我如何在我的VBA代码中将返回的查询结果放入Excel表格中的目标工作表中?我尝试使用宏记录器,但生成的代码没有帮助。如何使用Excel VBA和ADO将查询结果放入数据表中?
是这样的吗?
在导入数据后添加此代码。我假设以下。请相应修改。
-
的数据在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
这是完美的。非常感谢。我将这个子文件添加到我的模块中,稍微调整它以将目标工作表作为参数,所以现在我可以在多个位置使用它。 – n8gard 2012-02-10 18:52:07
如果您单击“数据”选项卡上的“从其他源”按钮,应该会看到列出的ODBC。然后您可以指定要连接的表格。然后,您将拥有一个包含数据的可刷新表格,换句话说,它将您已经在做的和您想要的内容组合到一个步骤中。根据您在评论中所说的内容,我认为这是一条路,但如果我错过了某些东西,请告诉我。
嗨,道格。当我通过ADO从数据库中提取记录时,我期待在VB代码中执行此操作。我一直无法在任何地方找到任何代码示例。 – n8gard 2012-02-09 23:53:34
你想要的表是刷新?请问什么是数据源,品牌和版本?你使用的是什么版本的Excel?你准确记录了什么行为?我发现这是一种非常有用的方式,可以开始使用这种代码。 – 2012-02-09 03:43:51
是的,我希望它是可刷新的,但不一定可更新。我正在使用PostgreSQL ODBC 9.0驱动程序。我记录的操作是:选择数据范围,选择插入选项卡,单击表并给它一个名称。我也离开了检查标题框。我没有看到如何将生成的代码与我的数据检索代码集成。我正在使用Excel 2007. – n8gard 2012-02-09 17:03:38