一个简单的数据随即抽取程序。你应该先分析它的难点。 我想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
请解释如何和access进行数据读写,请回答。谢谢。
通过我给你的函数rnds 你能得到一个获奖用户的编号数组. 然后通过循环将用户的值取出. for i=1 to n n为中奖用户的个数. rs.move rndnumber(i-1) ..... '以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子. next i
我是初学。 for i=1 to n n为中奖用户的个数. rs.move rndnumber(i-1) ..... '以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子. next i 接到哪里。如果在主界面,可填写,请问如何定义。 再问,如何将结果显示在listview中,请解释。
我想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
你能得到一个获奖用户的编号数组.
然后通过循环将用户的值取出.
for i=1 to n n为中奖用户的个数.
rs.move rndnumber(i-1)
.....
'以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.
next i
for i=1 to n n为中奖用户的个数.
rs.move rndnumber(i-1)
.....
'以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.
next i
接到哪里。如果在主界面,可填写,请问如何定义。
再问,如何将结果显示在listview中,请解释。