需要一个VB抽奖程序~
1.空格键开始;回车键结束2.随机读取数据库中的人名,并滚动显示出来,按回车键结束后,定格显示出的人名为中奖者.3.人名不能重复.如果可用,我会追加积分.谢谢...
1.空格 键开始 ;回车 键结束
2.随机读取数据库中的人名,并滚动显示出来,按 回车键结束后,定格显示出的人名为中奖者.
3.人名不能重复.
如果可用,我会追加积分.
谢谢 展开
2.随机读取数据库中的人名,并滚动显示出来,按 回车键结束后,定格显示出的人名为中奖者.
3.人名不能重复.
如果可用,我会追加积分.
谢谢 展开
3个回答
展开全部
说几点编程建议给你就行了。
定义一个模块级的整数变量
1、首先获得数据中的人名个数。将这个数赋给变量
2、定义一个数组。数组上限数为人名数量,
3、用Randomize 来防止重复人名
4、下面的是按空格运行,回车停止
如果你的窗体上没有什么按钮和文本框等能得到焦点的控件就将下面的代码放在窗体的Form_KeyUp()过程中。否则就每个能得到焦点的控件中都要放。
If KeyCode = 13 Then'回车键
MsgBox "Stop"
ElseIf KeyCode = 32 Then'空格键
MsgBox "run"
End If
定义一个模块级的整数变量
1、首先获得数据中的人名个数。将这个数赋给变量
2、定义一个数组。数组上限数为人名数量,
3、用Randomize 来防止重复人名
4、下面的是按空格运行,回车停止
如果你的窗体上没有什么按钮和文本框等能得到焦点的控件就将下面的代码放在窗体的Form_KeyUp()过程中。否则就每个能得到焦点的控件中都要放。
If KeyCode = 13 Then'回车键
MsgBox "Stop"
ElseIf KeyCode = 32 Then'空格键
MsgBox "run"
End If
展开全部
Option Base 1
Dim xm ,xmOk 'xmOk用来保存对应的姓名有没有被选中
Dim i As Integer
Private Sub form_load()
xm = Array("张三", "李四", "王五", "你", "我")
xmOk=Array(0,0,0,0,0)
End Sub
Private Sub Command1_Click() '命令按钮1的单击事件
Timer1.Enabled = True
End Sub
Private Sub command2_click()
Timer1.Enabled = flase
End Sub
Private Sub timer1_timer()
i = Int(Rnd * 5) + 1
if xmOk(i)=1 then
Label1.Caption = xm(i)
else
xmOk(i)=1
end if
End Sub
自己弄下,如果不会加我QQ,我帮你编好了给你。
或者是
Option Explicit
Dim kt As Boolean
Dim 中奖候选人() As String
Dim tmp_ren() As String
Dim 剩余人选 As Integer
Dim i As Integer
Dim j As Long
Private Sub Command1_Click() '抽奖按钮
kt = Not kt
If kt = True Then Call 中奖
End Sub
Private Sub Form_Load()
Dim x As Integer
剩余人选 = 100
ReDim 中奖候选人(剩余人选) As String
ReDim tmp_ren(剩余人选) As String
For x = 1 To 剩余人选
中奖候选人(x) = "中奖人" & CStr(x)
tmp_ren(x) = 中奖候选人(x)
Next
End Sub
Private Sub 中奖()
'On Error Resume Next
If 剩余人选 < 96 Then
MsgBox "已经抽过5次奖了"
Exit Sub
End If
For j = 1 To 99999999
If j > 99999999 Then j = 0
If kt = True Then
If j Mod 200 = 0 Then
i = i + 1
If i > 剩余人选 Then i = 1
Text1.Text = 中奖候选人(i)
End If
Else
'MsgBox "中奖人:" & 中奖候选人(i)
Print 中奖候选人(i)
剩余人选 = 剩余人选 - 1
ReDim 中奖候选人(剩余人选) As String
Dim k As Integer
For k = 1 To 剩余人选
If k < i Then
中奖候选人(k) = tmp_ren(k)
Else
中奖候选人(k) = tmp_ren(k + 1)
End If
Next
ReDim tmp_ren(剩余人选) As String
For k = 1 To 剩余人选
tmp_ren(k) = 中奖候选人(k)
Next
Exit Sub
End If
DoEvents
Next
End Sub
Dim xm ,xmOk 'xmOk用来保存对应的姓名有没有被选中
Dim i As Integer
Private Sub form_load()
xm = Array("张三", "李四", "王五", "你", "我")
xmOk=Array(0,0,0,0,0)
End Sub
Private Sub Command1_Click() '命令按钮1的单击事件
Timer1.Enabled = True
End Sub
Private Sub command2_click()
Timer1.Enabled = flase
End Sub
Private Sub timer1_timer()
i = Int(Rnd * 5) + 1
if xmOk(i)=1 then
Label1.Caption = xm(i)
else
xmOk(i)=1
end if
End Sub
自己弄下,如果不会加我QQ,我帮你编好了给你。
或者是
Option Explicit
Dim kt As Boolean
Dim 中奖候选人() As String
Dim tmp_ren() As String
Dim 剩余人选 As Integer
Dim i As Integer
Dim j As Long
Private Sub Command1_Click() '抽奖按钮
kt = Not kt
If kt = True Then Call 中奖
End Sub
Private Sub Form_Load()
Dim x As Integer
剩余人选 = 100
ReDim 中奖候选人(剩余人选) As String
ReDim tmp_ren(剩余人选) As String
For x = 1 To 剩余人选
中奖候选人(x) = "中奖人" & CStr(x)
tmp_ren(x) = 中奖候选人(x)
Next
End Sub
Private Sub 中奖()
'On Error Resume Next
If 剩余人选 < 96 Then
MsgBox "已经抽过5次奖了"
Exit Sub
End If
For j = 1 To 99999999
If j > 99999999 Then j = 0
If kt = True Then
If j Mod 200 = 0 Then
i = i + 1
If i > 剩余人选 Then i = 1
Text1.Text = 中奖候选人(i)
End If
Else
'MsgBox "中奖人:" & 中奖候选人(i)
Print 中奖候选人(i)
剩余人选 = 剩余人选 - 1
ReDim 中奖候选人(剩余人选) As String
Dim k As Integer
For k = 1 To 剩余人选
If k < i Then
中奖候选人(k) = tmp_ren(k)
Else
中奖候选人(k) = tmp_ren(k + 1)
End If
Next
ReDim tmp_ren(剩余人选) As String
For k = 1 To 剩余人选
tmp_ren(k) = 中奖候选人(k)
Next
Exit Sub
End If
DoEvents
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说实话如果不是练习的话!最好去下在一个现成的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询