分享

用VBA实现随机选择记录

 今天George 2018-01-14

用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



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多