关于建立在access数据上的随机抽取
就是类似抽奖软件。请指教如何和数据库连接,及如何随即抽取。我是菜鸟,请详细指教

解决方案 »

  1.   

    一个简单的数据随即抽取程序。你应该先分析它的难点。
    我想1。数据随即抽取
        2。数据库的取值关于抽奖,你可以随机抽取得数据库中的行号,然后它就是中奖用户。
    象1的解决办法(使用随机数)
    public sub rnds(number as integer,icount as integer)    ‘随机抽取n个中奖人的数据的函数
    dim rndnumber(number) as integer
    dim i as integer
    dim j as integer  
    dim rndint as integer
    for i=1 to number setp 1
        rndint = int(icount*rnd()+1)            '随机抽取从1-icount,这里有一个技巧,你可以使用结果集的rs.recordcount属性作为抽奖的总人数。
        rndnumber(i) = rndint
        for j=1 to i-1         '寻找是否有重复
            if rndint = rndnumber(j) then
               i=i-1
               exit for 
            end if  
        next j
    next i
    end sub 以下是数据库操作的函数
    Public Function M_Access(M_AccessName As String)
    Dim M_temp As String
    Dim M_Error As String
    On Error GoTo ine
    Set conn = New Connection
    Set rs = New ADODB.Recordset
    M_temp = ""
    M_temp = App.Path + "\" & M_AccessName & ";"
    conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & M_temp & ";"
    Set rs = conn.Execute("select * from 数据库表名")
    dim strRsCount as integer    '记录用户个数
    strRsCount=rs.recordcount
    call rnds(1,strRsCount)      '中奖的假设只有一人,从数据库的人数中抽取
    rs.Close
    conn.Close
    GoTo inerr
    ine:
       M_Error = "数据库错误号:" & Err.Number & " 错误内容:" & Err.Description
       MsgBox M_Error, , "错误信息"
    inerr:
    Set rs = Nothing
    End Function
      

  2.   

    请解释如何和access进行数据读写,请回答。谢谢。
      

  3.   

    通过我给你的函数rnds
    你能得到一个获奖用户的编号数组.
    然后通过循环将用户的值取出. 
    for i=1 to n       n为中奖用户的个数.
        rs.move rndnumber(i-1)
        .....
        '以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.  
    next i
      

  4.   

    我是初学。
    for i=1 to n       n为中奖用户的个数.
        rs.move rndnumber(i-1)
        .....
        '以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.  
    next i
    接到哪里。如果在主界面,可填写,请问如何定义。
    再问,如何将结果显示在listview中,请解释。