第一次機房收費系統——註冊
阿新 • • 發佈:2018-12-10
思考:
因為註冊的時候,需要輸入初始的金額,但是上下機的時候,需要根據上網時間長短來改變學生表中的金額,所以導致最後的結賬很麻煩,最後我將註冊的內容也寫入到充值中,流程圖如下:
流程圖
程式碼
Private Sub cmdSave_Click()
'存檔
'連線基礎資訊資料庫
txtSQL = "select *from basicdata_info"
Set mrc_BData = ExecuteSQL(txtSQL, msgText)
'判斷是否有基礎資料
If mrc_BData.EOF Then
'MsgBox "請在管理員許可權中新增基本資料設定!", vbOKOnly + vbExclamation, "警告"
If Trim(mrc_User.Fields(2)) = "管理員" Then
frmBasicDataSet.Show
Else
MsgBox "請聯絡管理員新增基本資料資訊!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
End If
'判斷輸入金額是否低於最低金額
If Trim(txtRecharge.Text) < mrc_BData.Fields(5) Then '不能使用trim函式
MsgBox "金額不能低於設定的最小金額", vbOKOnly + vbExclamation, "警告"
txtRecharge.Text = ""
txtRecharge.SetFocus
mrc_BData.Close
Exit Sub
End If
'判斷卡號是否為空
If Trim(txtCardNo.Text) = "" Then
txtCardNo.SetFocus
txtCardNo.BackColor = vbRed
Exit Sub
End If
'判斷學號是否為空
If Trim(txtSID.Text) = "" Then
MsgBox "學號不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtSID.SetFocus
Exit Sub
End If
'判斷姓名是否為空
If Trim(txtName.Text) = "" Then
MsgBox "姓名不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtName.SetFocus
Exit Sub
End If
'判斷性別是否為空
If Trim(ComboSex.Text) = "" Then
MsgBox "性別不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
ComboSex.SetFocus
Exit Sub
End If
'判斷系別是否為空
If Trim(txtDept.Text) = "" Then
MsgBox "系別不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtDept.SetFocus
Exit Sub
End If
'判斷年級是否為空
If Trim(txtGrade.Text) = "" Then
MsgBox "年級不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtGrade.SetFocus
Exit Sub
End If
'判斷班級是否為空
If Trim(txtClass.Text) = "" Then
MsgBox "班級不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtClass.SetFocus
Exit Sub
End If
'判斷型別是否為空
If Trim(comboType.Text) = "" Then
MsgBox "型別不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
comboType.SetFocus
Exit Sub
End If
'判斷金額是否為空
If Trim(txtRecharge.Text) = "" Then
MsgBox "金額不能為空,請輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtRecharge.SetFocus
Exit Sub
End If
'連線資料庫
txtSQL = "select *from student_info " 'where cardno='" & txtCardNo.Text & "'"
Set mrc_Stu = ExecuteSQL(txtSQL, msgText)
'判斷卡號是否重複
While (mrc_Stu.EOF = False)
'判斷是否有重複記錄
If Trim(mrc_Stu.Fields(0)) = Trim(txtCardNo.Text) Then
MsgBox "卡號已經存在,請重新輸入卡號!", vbOKOnly + vbExclamation, "警告"
txtCardNo.Text = ""
txtCardNo.SetFocus
Exit Sub
Else
'移動到下一條記錄
mrc_Stu.MoveNext
End If
Wend
'判斷學號是否重複
While (mrc_Stu.EOF = False)
'判斷是否有重複記錄
If Trim(mrc_Stu.Fields(1)) = Trim(txtSID.Text) Then
MsgBox "學號已經存在,請重新輸入學號!", vbOKOnly + vbExclamation, "警告"
txtSID.Text = ""
txtSID.SetFocus
Exit Sub
Else
'移動到下一條記錄
mrc_Stu.MoveNext
End If
Wend
ReDate = Format(Date, "yyyy-mm-dd") '充值日期
ReTime = Format(Now, "hh:mm:ss") '充值時間
mrc_Stu.AddNew
mrc_Stu.Fields(0) = Trim(txtCardNo.Text) '卡號
mrc_Stu.Fields(1) = Trim(txtSID.Text) '學號
mrc_Stu.Fields(2) = Trim(txtName.Text) '姓名
mrc_Stu.Fields(3) = Trim(ComboSex.Text) '性別
mrc_Stu.Fields(4) = Trim(txtDept.Text) '系別
mrc_Stu.Fields(5) = Trim(txtGrade.Text) '年級
mrc_Stu.Fields(6) = Trim(txtClass.Text) '班級
mrc_Stu.Fields(7) = Trim(txtRecharge.Text) '金額
mrc_Stu.Fields(8) = Trim(txtExplain.Text) '備註
mrc_Stu.Fields(9) = Trim(UserName) 'UserID
mrc_Stu.Fields(10) = Trim(comboState.Text) '狀態
mrc_Stu.Fields(11) = "未結賬" '結賬狀態
mrc_Stu.Fields(12) = Trim(ReDate) '日期
mrc_Stu.Fields(13) = Trim(ReTime) '時間
mrc_Stu.Fields(14) = Trim(comboType.Text) '型別
mrc_Stu.Update
'新增到登錄檔中
txtSQL = "select *from recharge_info"
Set mrc_RE = ExecuteSQL(txtSQL, msgText)
mrc_RE.AddNew
mrc_RE.Fields(1) = Trim(txtSID.Text) '學號
mrc_RE.Fields(2) = Trim(txtCardNo.Text) '卡號
mrc_RE.Fields(3) = Trim(txtRecharge.Text) '金額
mrc_RE.Fields(4) = Trim(ReDate) '日期
mrc_RE.Fields(5) = Trim(ReTime) '時間
mrc_RE.Fields(6) = Trim(UserName) 'UserID
mrc_RE.Fields(7) = "未結賬" '結賬狀態
mrc_RE.Update
mrc_RE.Close
mrc_Stu.Close
MsgBox "註冊成功!", vbOKOnly + vbExclamation, "警告"
txtCardNo.Text = ""
txtSID.Text = ""
txtName.Text = ""
ComboSex.Text = ""
txtDept.Text = ""
txtGrade.Text = ""
txtClass.Text = ""
txtRecharge.Text = ""
txtExplain.Text = ""
comboState.Text = ""
End Sub
總結: 因為做到了結賬,發現了很多問題,所以才利用這種方式,之前的方式發現有很多問題。
感謝您的閱讀,如果您有更好的想法,歡迎分享給我!