关于建立在access数据上的随机抽取

WangYang123 2003-05-18 10:23:09
关于建立在access数据上的随机抽取
就是类似抽奖软件。请指教如何和数据库连接,及如何随即抽取。我是菜鸟,请详细指教
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WangYang123 2003-05-20
  • 打赏
  • 举报
回复
我是初学。
for i=1 to n n为中奖用户的个数.
rs.move rndnumber(i-1)
.....
'以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.
next i
接到哪里。如果在主界面,可填写,请问如何定义。
再问,如何将结果显示在listview中,请解释。
自由之眼 2003-05-19
  • 打赏
  • 举报
回复
通过我给你的函数rnds
你能得到一个获奖用户的编号数组.
然后通过循环将用户的值取出.
for i=1 to n n为中奖用户的个数.
rs.move rndnumber(i-1)
.....
'以下就是你对该用户的具体数据库操作.可以看上面的帖子,或者看看以前数据库操作的帖子.
next i
自由之眼 2003-05-18
  • 打赏
  • 举报
回复
一个简单的数据随即抽取程序。你应该先分析它的难点。
我想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
WangYang123 2003-05-18
  • 打赏
  • 举报
回复
请解释如何和access进行数据读写,请回答。谢谢。
WangYang123 2003-05-18
  • 打赏
  • 举报
回复
请问如何编写中奖人员数,即中奖人数是可以编辑的。如何保存抽取的结果。谢谢。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧