学生管理系统之BUG(5)

BUG 五:添加成绩时应有顺序

表与表之间是由那些连接字段连接在一起的,所以这些连接字段不仅不能随便输入,而且还得有一定的顺序。

比如在frmAddResult中,学号和课程内容是由班号来确定的,而姓名又是由学号来确定的。所以我们必须控制在没选班号之前学号和课程是不可以选择的,而姓名又是跟学号是绑在一起的,所以姓名不能随便更改(姓名被锁住),而分数必须是在这些信息都填完后(这才能准确的表示一个人)才可以填写。

原代码:

添加班号在Form_Load过程中

Private Sub Form_Load()

  1. Dim mrc As ADODB.Recordset
  2. Dim txtSQL As String
  3. Dim MsgText As String
  4. Flagselect = False
  5. txtSQL = "select * from class_Info "
  6. Set mrc = ExecuteSQL(txtSQL, MsgText)
  7. While (mrc.EOF = False)
  8. comboClassno.AddItem mrc!class_No
  9. mrc.MoveNext
  10. Wend
  11. mrc.Close

添加学号和课程在comboClassno_Click过程中

Private Sub comboClassno_Click()

  1. Dim mrc As ADODB.Recordset
  2. Dim txtSQL As String
  3. Dim MsgText As String
  4. comboSID.Clear
  5. comboCourse.Clear
  6. txtSQL = "select * from student_Info where class_NO = '" & comboClassno.Text & "'"
  7. Set mrc = ExecuteSQL(txtSQL, MsgText)
  8. While (mrc.EOF = False)
  9. comboSID.AddItem mrc!student_ID
  10. mrc.MoveNext
  11. Wend
  12. mrc.Close
  13. txtSQL = "select * from class_Info where class_No = '" & comboClassno.Text & "'"
  14. Set mrc = ExecuteSQL(txtSQL, MsgText)
  15. Grade = mrc!Grade
  16. mrc.Close
  17. txtSQL = "select * from gradecourse_Info where grade = '" & Grade & "'"
  18. Set mrc = ExecuteSQL(txtSQL, MsgText)
  19. While (mrc.EOF = False)
  20. comboCourse.AddItem mrc!course_Name
  21. mrc.MoveNext
  22. Wend
  23. mrc.Close
  24. Flagselect = True

End Sub

改后代码:

添加班号在cboClassNumber_DropDown过程中,且在选择考试类型后

Private Sub cboClassNumber_DropDown()

  1. Dim mrs As ADODB.Recordset
  2. Dim strSQL As String
  3. Dim MsgText As String
  4. If Trim(cboExamType.Text) = "" Then
  5. MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示"
  6. cboExamType.SetFocus
  7. Exit Sub
  8. End If
  9. strSQL = "select * from class_Info"
  10. Set mrs = ExecuteSQL(strSQL, MsgText)
  11. If mrs.EOF Then
  12. MsgBox "没有班号,请先添加班号!", vbInformation + vbOKOnly, "提示"
  13. frmAddClassinfo.Show
  14. frmAddResult.Hide
  15. Exit Sub
  16. End If
  17. cboClassNumber.Clear
  18. While Not (mrs.EOF)
  19. cboClassNumber.AddItem mrs!class_No
  20. mrs.MoveNext
  21. Wend
  22. mrs.Close

End Sub

添加学号在cboNumber_DropDown过程中,且在选择考试类型,班号之后

Private Sub cboNumber_DropDown()

  1. Dim mrs As ADODB.Recordset
  2. Dim strSQL As String
  3. Dim MsgText As String
  4. If Trim(cboExamType.Text) = "" Then
  5. MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示"
  6. cboExamType.SetFocus
  7. Exit Sub
  8. ElseIf Trim(cboClassNumber.Text) = "" Then
  9. MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示"
  10. cboClassNumber.SetFocus
  11. Exit Sub
  12. Else
  13. strSQL = "select * from student_Info where class_No='" & cboClassNumber.Text & "'"
  14. Set mrs = ExecuteSQL(strSQL, MsgText)
  15. If mrs.EOF Then
  16. MsgBox "该班没有学号,请先添加学号!", vbInformation + vbOKOnly, "提示"
  17. frmAddResult.Hide
  18. frmAddsinfo.Show
  19. End If
  20. cboNumber.Clear
  21. While Not (mrs.EOF)
  22. cboNumber.AddItem mrs!student_ID
  23. mrs.MoveNext
  24. Wend
  25. mrs.Close
  26. End If

End Sub

添加课程在cboCourse_DropDown过程中,在考试类型,班号及学号之后

Private Sub cboCourse_DropDown()

  1. Dim mrs As ADODB.Recordset
  2. Dim strSQL As String
  3. Dim MsgText As String
  4. If Trim(cboExamType.Text) = "" Then
  5. MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示"
  6. cboExamType.SetFocus
  7. Exit Sub
  8. ElseIf Trim(cboClassNumber.Text) = "" Then
  9. MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示"
  10. cboClassNumber.SetFocus
  11. Exit Sub
  12. ElseIf Trim(cboNumber.Text) = "" Then
  13. MsgBox "请先选择学号!", vbExclamation + vbOKOnly, "提示"
  14. cboNumber.SetFocus
  15. Exit Sub
  16. Else
  17. strSQL = "select * from class_Info where class_No='" & cboClassNumber.Text & "'"
  18. Set mrs = ExecuteSQL(strSQL, MsgText)
  19. While Not (mrs.EOF)
  20. strGrade = mrs!Grade
  21. mrs.MoveNext
  22. Wend
  23. mrs.Close
  24. strSQL = "select * from gradecourse_Info where grade='" & strGrade & "'"
  25. Set mrs = ExecuteSQL(strSQL, MsgText)
  26. If mrs.EOF Then
  27. MsgBox "概年级没有课程,请先添加课程!", vbInformation + vbOKOnly, "提示"
  28. frmAddResult.Hide
  29. frmSetCourseinfo.Show
  30. End If
  31. cboCourse.Clear
  32. While Not (mrs.EOF)
  33. cboCourse.AddItem mrs!course_Name
  34. mrs.MoveNext
  35. Wend
  36. mrs.Close
  37. End If

End Sub

'判断姓名之前的选项是否已选择

Private Sub txtName_KeyDown(KeyCode As Integer, Shift As Integer)

  1. If Trim(cboExamType.Text) = "" Then
  2. MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示"
  3. cboExamType.SetFocus
  4. Exit Sub
  5. ElseIf Trim(cboClassNumber.Text) = "" Then
  6. MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示"
  7. cboClassNumber.SetFocus
  8. Exit Sub
  9. ElseIf Trim(cboNumber.Text) = "" Then
  10. MsgBox "请选择学号!", vbExclamation + vbOKOnly, "提示"
  11. cboNumber.SetFocus
  12. Exit Sub
  13. End If

End Sub

'判断分数之前的选项是否已选择

Private Sub txtResult_KeyDown(KeyCode As Integer, Shift As Integer)

  1. If Trim(cboExamType.Text) = "" Then
  2. MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示"
  3. cboExamType.SetFocus
  4. Exit Sub
  5. ElseIf Trim(cboClassNumber.Text) = "" Then
  6. MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示"
  7. cboClassNumber.SetFocus
  8. Exit Sub
  9. ElseIf Trim(cboNumber.Text) = "" Then
  10. MsgBox "请先选择学号!", vbExclamation + vbOKOnly, "提示"
  11. cboNumber.SetFocus
  12. Exit Sub
  13. ElseIf Trim(cboCourse.Text) = "" Then
  14. MsgBox "请先选择课程!", vbExclamation + vbOKOnly, "提示"
  15. cboCourse.SetFocus
  16. Exit Sub
  17. End If

End Sub

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值