在Access中,如何创建一个方法来从一个表创建约152个不同的文件?
问题描述:
我有一张桌子,有大约1500名学生和他们的老师。有152名教师。一位老师的集体学生是他们的案例。我想输出一个Excel文件,将显示他们的情况。如果我正在做这种蛮横的事情,那将是一件容易的事。但是,有没有一种方法可以设置它,以便Access可以循环并为每位教师创建一个Excel文件。除了我的学生桌外,我还有一张老师桌,里面有所有的老师。我还为他们分配了一个数字,以便循环可以通过它们进行计数。我理解我想要做的结构,我只是不知道最好的方式去实现它或诚实的代码,哈哈。无论哪种方式,基本上,我在下面列出的是表中的内容。表名是学生和教师。在Access中,如何创建一个方法来从一个表创建约152个不同的文件?
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
或者那里有。
这不是数据库设计,它是使用两个表格将数据输出到Excel的示例。如果学生表能够让你更容易,可以将学生表视为对联结表的查询。 – Fionnuala