首页 > 解决方案 > 如何为字段的每个唯一值生成随机记录?

问题描述

我有一个有 2 个字段的表:School Name; Student ID.

我想随机显示每所学校预定数量的学生证。

例如,来自 A 学校的 2 个随机学生 ID;来自学校 B 的 3 个随机学生 ID。

我还希望查询知道要根据另一个查询或表(学校 A:2 条记录;学校 B:3 条记录;学校 C:1 条记录等)生成多少随机记录(学生 ID)

最终,这些将显示在报告中。每个学校名称 1 页,在学校名称下方随机选择学生 ID。

到目前为止,我只能随机生成学生 ID,但我无法告诉查询为每所学校生成学生 ID。

下面的两个链接显示了原始表格的示例,以及我希望报告的外观。

桌子:

桌子

报告:

报告

标签: vbams-access

解决方案


如果要为每所学校生成随机学生 ID,请使用带有循环的记录集。这是一个想法,您可以如何做到这一点(注意:代码未经测试):

Dim rs as Recordset
'Select all school names
set rs = CurrentDb.OpenRecordset("SELECT SchoolName FROM SchoolTable") 

rs.MoveFirst

'Loop through all school names
Do While Not rs.EOF 

  'Execute your student ID randomly for the actual school name in the loop or do other stuff
  CurrentDb.Execute "YourQueryNameWhichYouAlreadyHave"
  rs.MoveNext

Loop

推荐阅读