我是初学。
for i=1 to n n为中奖用户的个数.
rs.move rndnumber(i-1)
.....
'以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.
next i
接到哪里。如果在主界面,可填写,请问如何定义。
再问,如何将结果显示在listview中,请解释。
关于抽奖,你可以随机抽取得数据库中的行号,然后它就是中奖用户。
象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