1

我有一张桌子,里面有大约 1500 名学生和他们的老师。现有教师152人。教师拥有的集体学生就是他们的案例量。我想输出一个 Excel 文件来显示他们的案件量。如果我这样做是蛮力的,那将是一件容易的事。但是,有没有一种方法可以设置它,以便 Access 可以循环并为每位教师制作一个 excel 文件。除了我的学生表之外,我还有一个包含所有教师的教师表。我还为它们每个人分配了一个数字,以便循环可以通过它们计数。我了解我想做的事情的结构,我只是不知道最好的方法……或者说实话,哈哈。无论哪种方式,我下面的内容基本上都是表格中的内容。表名是学生和教师。

Students
 Student_Number Student_Name   Teacher_Number

Teachers
 Teacher_Number   Teacher_Name 

这基本上就是我在这里所拥有的。我确实意识到,对于正常情况,使用名称作为连接字段是一个可怕的决定。但是,这不会比这两个字段大,而且我每年都必须从头开始,所以我不认为重复名称会出现任何问题,因为我们今年没有任何问题。基本上,这些表不会改变,所以我不必担心更新。基本上,对于这个小东西,我不担心规范化等。

4

1 回答 1

2

遍历教师表并将字符串分配给现有查询。

 Dim qdf As QueryDef
 Dim rs As DAO.Recordset

 ''Make sure you have a query that can be overwritten called OutputStudents
 ''or this will not work. You can create a query in VBA and do the checks 
 ''as to whether a query by that name exists, but this is simpler
 Set qdf = CurrentDB.Querydefs("OutputStudents")
 Set rs = CurrentDB.OpenRecordset("Teachers")

 Do While Not rs.EOF
    ''Set the sql of a query called OutputStudents (see above)
    qdf.SQL = "SELECT * FROM Students WHERE Teacher_Number=" & rs!Teacher_Number

    ''Output to Excel
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _
       qdf.Name, "Z:\docs\" _
       & Teacher_Number & ".xls", True
    rs.MoveNext
Loop

或者那里。

于 2013-01-09T15:08:19.263 回答