设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4105|回复: 11
打印 上一主题 下一主题

vba随机均匀分组

[复制链接]
1#
发表于 2016-7-29 17:28:52 | 显示全部楼层
access 应该能实现, 分班问题!
2#
发表于 2016-7-29 21:18:00 | 显示全部楼层
Private Sub Command0_Click()
Dim aa As Integer
aa = 597
Dim Conn1 As New ADODB.Connection
    Dim Rs_Date As New ADODB.Recordset
    Set Conn1 = CurrentProject.Connection
    Dim Arr_Date()
    Dim sql As String
    Dim rstCount As Integer
   Do While True
   CurrentDb.Execute "select * into 一班 from (SELECT TOP 18 Sheet1.序号, Sum(Sheet1.分数) AS 成绩合成之合计 FROM Sheet1 where 分组 is null GROUP BY Sheet1.序号 ORDER BY Rnd(-(序号+Rnd())))"
        Application.RefreshDatabaseWindow
        sql = "SELECT round(Sum(一班.成绩合成之合计)) AS 班级成绩总和 FROM 一班"
Rs_Date.Open sql, Conn1, 3, 3
    If Abs(Round(Rs_Date(0) / 18) - aa) < 1 Then
    Debug.Print Round(Rs_Date(0) / 18)
    GoTo line
    End If
    Rs_Date.Close
    Set Rs_Date = Nothing
    DoCmd.DeleteObject acTable, "一班"
    Loop
line:
    CurrentDb.Execute "update sheet1 set 分组='一班' where 序号 in (select 序号 from 一班)"
MsgBox "一班完成!"
    Rs_Date.Close
    Set Rs_Date = Nothing
End Sub
access 能完成!
3#
发表于 2016-7-30 08:18:23 | 显示全部楼层
传个实例,仅供参考,如果长时间运行,请中断,然后重启程序继续!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +8 收起 理由
tmtony + 8 (V币)优秀答复(6分)

查看全部评分

4#
发表于 2016-7-30 20:50:50 | 显示全部楼层
分班结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

5#
发表于 2016-7-31 18:24:31 | 显示全部楼层
不太明白你的意思
6#
发表于 2016-8-7 09:17:54 | 显示全部楼层
我完善了系统,有要求的话:qq:398157859
7#
发表于 2016-8-7 09:39:56 | 显示全部楼层
http://www.office-cn.net/thread-122019-1-1.html可以参考我做的这个程序!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 13:11 , Processed in 0.083042 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表