在 Access vba 中创建表并使用查询结果填充

Posted

技术标签:

【中文标题】在 Access vba 中创建表并使用查询结果填充【英文标题】:Create table in Access vba and populate with results from query 【发布时间】:2012-10-23 19:19:03 【问题描述】:

我正在开发一个 access 2010 数据库,需要一些帮助。

我正在尝试创建一些 vba 代码来运行查询,然后根据返回的记录创建和填充表。然后我想根据查询中的值(公司名称)重命名表。

我构建的查询将从我的表中返回不同的值,但我需要为结果中返回的每个公司创建一个单独的表。

欢迎提出任何建议。

【问题讨论】:

您需要每次运行创建一个表(返回的所有记录将针对单个公司)还是多个表(结果集中有多个公司,需要为每个创建和填充一个表) ? 【参考方案1】:

您确定为每家公司创建不同的表是个好主意吗?我不建议这样做!

好的,假设您有一个名为 QUERY 的查询,其中包含字段 CompanyName 并包含所有记录。你可以这样开始:

Sub Export_Query()
  Dim rs As Recordset

  Set rs = CurrentDb.OpenRecordset("select distinct CompanyName from QUERY")
  While Not rs.EOF
    On Error Resume Next
    CurrentDb.Execute "DROP TABLE [" & rs("CompanyName") & "]"
    CurrentDb.Execute "SELECT QUERY.* INTO [" & rs("CompanyName") & "] FROM QUERY WHERE CompanyName=""" & rs("CompanyName") & """;"
    On Error GoTo 0
    rs.MoveNext
  Wend

  rs.Close
  Set rs = Nothing
End Sub

这只是一个想法...您应该添加更多错误检查代码,并且还应该转义公司名称或确保它不包含任何特殊字符。

【讨论】:

这正是我想要的。谢谢!!它非常适合我需要做的事情。我必须为每个公司创建一个单独的表,以便另一个部门将数据加载到我们的 SQL 数据库中。我不知道为什么我不能只给他们一张表中的所有数据然后他们加载它,但此时我只想让他们现在需要的东西。

以上是关于在 Access vba 中创建表并使用查询结果填充的主要内容,如果未能解决你的问题,请参考以下文章

VBA、Access 和 SQL 的新手。我如何编写一个 SQL 查询来搜索我的 AccessDB 中的一个表并在找到它时给我一个 True/False? [复制]

使用 Access 2007 查询向导创建 SQL,仍然无法在 VBA 中运行

使用 VBA 在 Microsoft Access 中创建表单

查询在 QBE 中返回结果,但不是通过 VBA 代码

MS Access VBA 导出查询结果

MS Access VBA:基于查询结果的 VBA 命令