我有一张 table ,大约有 1500 名学生和他们的老师。有教师152人。老师拥有的集体学生就是他们的工作量。我想输出一个 Excel 文件来显示他们的工作量。如果我正在做这种蛮力,那将是一件容易的事。但是,有没有一种方法可以设置它,以便 Access 可以循环并为每个老师制作一个 excel 文件。除了我的学生表,我还有一张包含所有教师的教师表。我还为它们每个分配了一个数字,以便循环可以对它们进行计数。我了解我想做的事情的结构,我只是不知道最好的方法......或者老实说代码,哈哈。无论哪种方式,我下面的基本上都是表格中的内容。表名是学生和教师。
Students
Student_Number Student_Name Teacher_Number
Teachers
Teacher_Number Teacher_Name
这基本上就是我这里的内容。我确实意识到,在正常情况下,使用名称作为连接字段是一个可怕的决定。但是,这不会比这两个字段大,我每年都必须从头开始,所以我不认为会有任何重名问题,因为我们今年没有重名。基本上,这些表不会改变,所以我不必担心更新。基本上,对于这件小事,我不担心规范化等问题。
请您参考如下方法:
遍历教师表并为现有查询分配一个字符串。
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
或者那里。




