用VBA实现随机选择记录-Big Young
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


用VBA实现随机选择记录

发表时间:2017/10/31 15:55:24 评论(2) 浏览(7565)  评论 | 加入收藏 | 复制
   
摘 要:用VBA通过创建一个临时表,实现随机选取记录。
正 文:

用VBA通过创建一个临时表,实现随机选取记录。

Sub PickRandom()

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim strTableName As String
    
    strSQL = "Select tblStaff.Firstname, tblStaff.Lastname " & _
             "INTO tblTemp " & _
             "FROM tblStaff;"
    DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
    
    Set db = CurrentDb()
    Set tdf = db.TableDefs("tblTemp")
    Set fld = tdf.CreateField("RandomNumber", dbDouble)
    
    tdf.Fields.Append fld


    Set rst = db.OpenRecordset("tblTemp", dbOpenTable)
    
    rst.MoveFirst
    Do
        Randomize
        rst.Edit
            rst![RandomNumber] = Rnd()
        rst.Update
        rst.MoveNext
    Loop Until rst.EOF
    
    rst.Close
    Set rst = Nothing
    
    strTableName = "tblRandom_" & Format(Date, "ddmmmyyyy")
    strSQL = "Select TOP 25 tblTemp.Firstname, tblTemp.Lastname " & _
             "INTO " & strTableName & " " & _
             "FROM tblTemp " & _
             "ORDER BY tblTemp.RandomNumber;"
    DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True


    db.TableDefs.Delete ("tblTemp")
End Sub

Access软件网交流QQ群(群号:198465573)
 
 相关文章
[access查询]从表中随机抽调若干记录  【咱家是猫  2007/11/30】
【Access示例】随机生成身份证号码  【缪炜  2013/9/27】
【Access示例】随机生成中文字符  【缪炜  2015/2/13】
关于随机排序关联的操作思路及实例  【丘山  2016/9/11】
获取指定范围内的随机整数  【杨雪  2017/4/6】
利用查询生成一列随机数,数值更改成随机数方法  【宏鹏  2017/6/28】
常见问答
技术分类
相关资源
文章搜索
关于作者

Big Young

文章分类

文章存档

友情链接