【问题标题】:Group records and put into different tables in access将记录分组并放入访问中的不同表中
【发布时间】:2015-04-02 14:51:22
【问题描述】:

我有一个包含两个表的数据库。 (每个表中有 5,034,139 和 3,297,127 行)在这些表中,有报告名称(约 1000 个不同的报告)和日志日期。我想为每个报告名称创建新表,每个表都应包含报告的日志日期。

假设只有两个报告“a”和“b”。报告“a”的日志日期为 01.01.2014、03.04.2014 和 05.06.2014。报告“b”的日志日期为 04.07.2013、06.08.2014 和 02.03.2014。

我想创建两个表/查询。在一个表/查询中应该只报告 a 的日志日期,而在另一个表中应该只报告 b 的日志日期。就像SELECT * FROM Table1 AND SELECT * FROM Table2 WHERE REPORT = "a" for query1 和 SELECT * FROM Table1 AND SELECT * FROM Table2 WHERE REPORT = "b" for query2 但是我必须为一千多个报告名称执行此操作。

【问题讨论】:

  • 您需要提供更多信息。你有什么问题?
  • 您更可能希望创建一个简单的选择查询,该查询将返回许多数据集。
  • 是的,我想创建一个简单的选择查询,它将返回许多数据集。
  • 您的描述仍然缺少帮助您编写查询的信息。请提供表格中的字段名称。
  • LOG_DATE、USER_NAME 和 REPORT_NAME 是字段名称。表名是 21994_2000 和 21994_2001。

标签: ms-access vba


【解决方案1】:

好的 - 这实际上有点复杂,但您要做的是创建一个循环,通过 Report Name 循环遍历您的记录(以获取名称以创建表格)然后执行选择进入以创建一个包含每个报告的记录的新表格。

你应该得到类似的结果:

Dim rs As DAO.Recordset
Dim strSQL as string
Dim ReportName as string

Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT ReportName FROM TABLE1 UNION SELECT DISTINCT ReportName FROM TABLE2 ")

docmd.SetWarnings false

If Not (rs.EOF And rs.BOF) Then
    rs.MoveFirst 'Unnecessary in this case, but still a good habit
    Do Until rs.EOF = True

        ReportName = rs("ReportName") 'GET THE REPORTNAME

        strSQL="SELECT LogDates INTO " & ReportName & _
        "FROM (SELECT LogDates FROM Table1 " & _
        "WHERE ReportName = '" & ReportName & "' " & 
        "UNION "
        "SELECT LogDates FROM Table1 " & _
        "WHERE ReportName = '" & ReportName & "') " & 

        DoCmd.RunSql strSQL
        Docmd.setwarnings True

        'Move to the next record. Don't ever forget to do this.
        rs.MoveNext
    Loop
Else
    MsgBox "There are no records in the recordset."
End If

MsgBox "Finished looping through records."

rs.Close 'Close the recordset
Set rs = Nothing 'Clean up

您必须使用您的表和字段名称,但这应该为您提供您需要做的基础知识。

【讨论】:

  • 非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多