学生系统优化

来源:互联网 发布:大数据在线培训哪家好 编辑:程序博客网 时间:2024/06/05 11:43

0.窗体布局

 

 '设置窗体的大小和位置

    Me.Width = 7600

    Me.Height = 6700

    Me.Left = Screen.Width / 2 - Me.Width / 2

    Me.Top = Screen.Height / 2 - Me.Height / 2

 

1.添加日历功能代码

首先添加日历控件,ctrl+T或者菜单栏“工程—部件”,选中Microsoft Windows Common Controls-2 6.0 (SP6)有MonthView控件,就是日历了;然后就可以编写代码了。在窗体加载时,日历的visual属性不可用。


'添加点击日历时,输入日期

Private Submonthview1_dateclick(ByVal dateclicked As Date)

    If flag = True Then

        txtBorndate.Text = MonthView1.Year& "-" & MonthView1.Month & "-" &MonthView1.Day

    Else

        txtRudate.Text = MonthView1.Year &"-" & MonthView1.Month & "-" & MonthView1.Day

   end if

  MonthView1.Visible =False

End Sub

 

'在输入日期框的控件,添加日历显示代码

Private Subtxtborndate_click()

    flag = True

    MonthView1.Visible = True

End Sub

Private Subtxtrudate_click()

    flag = False

    MonthView1.Visible = True

End Sub


2.修改信息时,所有的文本框不可用

 

'使各个按钮有效

                cmdFirst.Enabled = True

                cmdPrevious.Enabled = True

                cmdNext.Enabled = True

                cmdLast.Enabled = True

   

                '使各个文本框失效

                txtSID.Enabled = False

                txtName.Enabled = False

                comboSex.Enabled = False

                txtBorndate.Enabled = False

                comboClassNo.Enabled = False

                txtRudate.Enabled = False

                txtTel.Enabled = False

                txtAddress.Enabled = False

                txtComment.Enabled = False

                mcclean = True

 

3.由于跟数据库有关系,所有当我们进行有关数据的操作时,需要注意当没有数据时应当做什么。当数据库中没有记录时的,弹出提示信息,让所有的按钮都不可用,这样可以避免由于没有数据而出现的错误。

 

 '判断表中数据是否为空

If mrc.RecordCount =0 Then

            MsgBox "数据库表中已经没有记录了!请先添加数据!", vbOKOnly + vbExclamation, "信息提示"

            Exit Function

 End If

 

4.修改型的窗体中,点击更新记录并不是真正的更新,而是把原先的记录删除,添加了一个新的记录。可以查看源代码定义了两个执行查询的变量:mrc和mrcc,相关代码操作是mrc.delete mrcc.AddNew.

 

5.添加课程信息窗口出现了一个问题,数据库中该表中的课程编号的数据类型是int,当你输入001时,它自动保存的是1,虽然会有判断是否重复记录,但是出入的和保存的判断不出来,因为输入的是001,表中保存的是1,所以这样做的后果是表中会有重复的课程编号。原因在于VBint类型保存时会自动舍去第一位是0的位数。


 

6.查询数据时,注意使用的组合sql语句,句尾要加个空格,否则会出现“变量或对象变量with未设置”的错误。


7.关于SQL语句,在单引号的左右需要注意不要输入多余的空格,不然会查询不到记录。

比如这个:第一行语句中,注意单引号的前后,是没有空格的。

'添加相关课程

    txtSQL = "select * fromgradecourse_info where grade='" & myGrade & "'"  

    Set mrc =ExecuteSQL(txtSQL, MsgText)         '调用模块中定义的查询函数

    MsgBox MsgText                  '弹出查询结果窗口

 

8.combobox控件数据重复问题及解决代码

txtSQL ="select grade from class_info"

    Set mrc = ExecuteSQL(txtSQL, MsgText)

       

    For i = 1 To mrc.RecordCount

        comboGrade.AddItem mrc.Fields(0)

        a(i) = mrc.Fields(0)

        mrc.MoveNext

    Next i

 

'去掉重复数据

    For i = 0 To comboGrade.ListCount - 1

        For j = i + 1 To comboGrade.ListCount -1

            s1 = a(i)

            s2 = comboGrade.List(j)

            If s1 = s2 ThencomboGrade.RemoveItem (j)

        Next j

    Next i

 

 

9.在无需提醒的由于操作不当造成错误的可以加上,来跳过错误,建议不在万不得已的情况下不使用这样的语句。

On Error Resume Next

 

10.判断listbox数据重复

用到的两个属性:listindex(返回一个数值型的索引)、listindex)返回该数据。

List1.listindex:表示当前选中数据,返回值是数值型

List1.list(index):返回索引的数据。


例子代码

Dim a As Integer

  

    If listAllCourse.ListIndex <> -1 Then

        a = listAllCourse.ListIndex

        For i = 0 TolistSelectCourse.ListCount - 1         '遍历判断是否有重复数据

            If listAllCourse.List(a) =listSelectCourse.List(i) Then

                MsgBox "已有该课程"

            Else

           listSelectCourse.AddItemlistAllCourse.List(listAllCourse.ListIndex)

        End If

        Next i

    End If

 

 

11.修改信息的窗口(添加判断是否有修改)的四步操作


(1)首先声明一个标志数组,根据信息的显示控件来定义大小

Dimflag(6) as boolean

 

(2)在修改记录按钮的事件中,给标志赋初值

Dim i asinteger

For i= 0to 5

   flag(i)=true

Next i

 

(3)添加这个几个控件的change事件,这里给出一个的代码,其余的相同;注意修改索引

Private SubtxtClassNo_Change()

    flag(0) = False

End Sub

 

(4)在更新按钮事件中,添加代码。如果有修改,就把原来的记录删除。

If flag(0) = TrueAnd flag(1) = True Then

        MsgBox "什么都没修改,不用更新"

        Exit Sub

    Else

        mrc.Delete

    End If


 

12.添加考试成绩与添加其他信息稍微有些不同,不同之处在于其他表有一个可以唯一确定一条记录的字段,而成绩表,除姓名和分数之外,其余四个字段都可以唯一确定一个记录。所以这里的判断条件是多条件判断:

 

 '执行查询操作

    txtSQL = "select * from result_infowhere exam_No ='" & comboExamNo.Text & "' and student_ID='" & comboSID.Text & "'and course_Name ='" &comboCourse.Text & "'"

    Set mrc = ExecuteSQL(txtSQL, MsgText)

    If mrc.EOF = False Then '判断是否到数据集最后

        MsgBox "有相同纪录,请重新输入信息!", vbOKOnly + vbExclamation,"警告"

        mrc.Close

 

13.文本框控件限制输入内容,可以使用退格键。

'电话文本框中只能输入数字

Private SubtxtTel_KeyPress(KeyAscii As Integer)

    If KeyAscii < 7 OrKeyAscii > 9 And KeyAscii < 48 Or KeyAscii > 57 Then  '(退格键的ASCII码是8

        KeyAscii = 0

    End If

End Sub


总结:学生管理系统让我明白了,学习是一件认真、严肃的事情,它不允许你将就、差不多来执行;只有不将就才可以将它学懂、学精。

原创粉丝点击