抽獎程序 Access數(shù)據(jù)庫功能模塊講解 VBA代碼編程實例
Public a1 As Integer
Public idnum As Long
Dim rs1 As DAO.Recordset? ? '定義記錄集變量
Private Sub Command抽獎1_Click()
If a1 = 1 Then
a1 = 0
rs1.Close
Else
a1 = 1
Set rs1 = CurrentDb.OpenRecordset("獎勵表", dbOpenTable)
End If
End Sub
Private Sub Command抽獎2_Click()
If a1 = 1 Then
a1 = 0
rs1.Close
DoCmd.SetWarnings (False)
Dim del_sql As String
del_sql = "Delete From 獎勵表 Where ID=" & idnum
DoCmd.RunSQL del_sql
Else
a1 = 1
Set rs1 = CurrentDb.OpenRecordset("獎勵表", dbOpenTable)
End If
End Sub
Private Sub Command重置_Click()
DoCmd.SetWarnings (False)
Dim del_sql As String
del_sql = "Delete From 獎勵表"
DoCmd.RunSQL del_sql
Dim update_sql As String
update_sql = "insert into 獎勵表 select * From 獎勵備份表"
DoCmd.RunSQL update_sql
End Sub
Sub 抽獎1()
On Error GoTo 抽獎完成
If a1 = 1 Then
Dim Record_count As Long
? ? Record_count = rs1.RecordCount
? ? Dim rnd_i As Long
? ? '--------------------------------------------------------
? ? Randomize
? ? rnd_i = Int((Record_count - 1 + 1) * Rnd + 1)
? ? rs1.MoveFirst
? ? rs1.Move (rnd_i - 1)
? ? Me.獎勵 = rs1.Fields("獎勵名稱").Value
? ? idnum = rs1.Fields("ID").Value
End If
Exit Sub
抽獎完成:
MsgBox "抽獎完成,重新抽獎可重置"
a1 = 0
rs1.Close
End Sub
Private Sub Form_Timer()
If a1 = 1 Then
? ? Call 抽獎1
End If
End Sub