关于学生信息管理系统的改进问题

 

   最近在大家验收时,我旁听了一点,很多师哥师姐提出了很多我们没有到过的东西,感觉长了不少知识。

   一,界面的美化

   在作品展的时候还能想到界面的美化,但是这次却没怎么注意,但是至少那些控件的摆放,对齐还是要有滴吐舌头

  二,回车键不能使用

    比如,在我们登陆学生信息管理系统的时候,敲完用户名和密码进入系统时,猛敲回车,根本不能像QQ那样,如我们所愿的进入系统,而是呆呆的毫无反应,这时,只能尴尬地,毫无创意地去点击确定按钮。这根本不符合我们平时的习惯嘛~

   这个问题改进起来,也很好改进,只需更改按钮的Default属性就行了。

三,判断语句的添加

 1,添加课程时的重复问题;

 2,在查询记录时,没有查询到符合条件的记录,不提示“没有符合条件的记录”,根本没反应。

 3,记录的读取不能连城环状,例如,一直点击下一条,到最后一条记录时,不能从最后一条跳转到第一条;

 4,修改记录时,如果数据库中没有记录时的处理:弹出提示:“数据库中没有任何记录,请先添加记录”,然后弹出添加记录的窗口。

5,删除完数据库中的数据后会出现EOF和BOF同时为TRUE的清空。

6,输入框中值的有效性的判断:字符长度的判断;数值长度的判断;日期格式的判断;  出生日期和入学日期的先后顺序,出生日期和入学日期之间的时间差是否小于某个值。

四,自动清空功能

1,登陆时用户名符合,但是密码不符合,此时应清空密码,并且输入密码的文本框应再次获得焦点。

2,添加完信息之后,文本框应自动清空,来便于添加下一条信息。

3,查询完信息时,如果没有查到符合条件的记录,则应该将CHECK的VALUE自动变为FALSE,即,复选框处于未选中的状态,并且各个文本框的内容清空,弹出提示信息。

五,标记中的代码漏洞

例如,在本窗体中,用了一个mcclean布尔类型的变量来标记是否修改过输入框中的值,其中TRUE表示未标记,即未修改过任何值,FALSE表示标记,修改过其中的值,但是细看代码:

Private Sub editCommand_Click()
    mcclean = False  '点击按钮后,标记修改过当前记录
    
    
    '第一组按钮不能用
    Frame1.Enabled = False
    firstCommand.Enabled = False
    previousCommand.Enabled = False
    nextCommand.Enabled = False
    lastCommand.Enabled = False
    
    '可以修改输入框中的值
    txtCourseno.Enabled = True
    txtCoursename.Enabled = True
    comboCoursetype.Enabled = True
    txtCoursedes.Enabled = True
    
    '添加信息
    comboCoursetype.AddItem "必修"
    comboCoursetype.AddItem "考察"
    
    myBookmark = mrc.Bookmark         '记录书签
    
End Sub

 

Private Sub updateCommand_Click()
    Dim txtSQL As String  'SQL查询语句
    Dim MsgText As String    'EXECUTSQL第二个参数
    Dim mrcc As ADODB.Recordset     '记录集对象
    
    
    If mcclean Then     '如果没有修改过课程信息
        MsgBox "请先修改课程信息", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    
    
    '检验输入框的值是否为空
    If Not Testtxt(txtCourseno.Text) Then
        MsgBox "请输入课程编号。", vbOKOnly + vbExclamation, "警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    
    If Not IsNumeric(Trim(txtCourseno.Text)) Then
        MsgBox "课程编号请输入数字", vbOKOnly + vbExclamation, "警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursename.Text) Then
        MsgBox "请输入课程名称", vbOKOnly + vbExclamation, "警告"
        txtCoursename.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(comboCoursetype.Text) Then
        MsgBox "请输入课程类型", vbOKOnly + vbExclamation, "警告"
        comboCoursetype.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursedes.Text) Then
        MsgBox "请输入课程描述信息。", vbOKOnly + vbExclamation, "警告"
        txtCoursedes.SetFocus
        Exit Sub
    End If
    
    mrc.Delete
    
    '执行查询,返回记录集
    txtSQL = "select * from course_info where course_no='" & Trim(txtCourseno.Text) & "'"
    Set mrcc = ExecuteSQL(txtSQL, MsgText)
    
    
    
        
    
    
    If mrcc.EOF = False Then
        MsgBox "课程编号重复,请重新输入", vbOKOnly + vbExclamation, "警告"
        mrcc.Close
        txtCourseno.SetFocus
    Else
        mrcc.Close
        
        '更新记录
        mrc.AddNew
        mrc.Fields(0) = Trim(txtCourseno.Text)
        mrc.Fields(1) = Trim(txtCoursename.Text)
        mrc.Fields(2) = Trim(comboCoursetype.Text)
        mrc.Fields(3) = Trim(txtCoursedes.Text)
        mrc.Update
        MsgBox "修改课程信息成功", vbOKOnly + vbExclamation, "警告"
        
        mrc.Bookmark = myBookmark      '标记书签
        Call viewData   '显示信息
        
        '第一组按钮可用
        Frame1.Enabled = True
        firstCommand.Enabled = True
        previousCommand.Enabled = True
        nextCommand.Enabled = True
        lastCommand.Enabled = True
        
        '输入框边为不可输入状态
        txtCourseno.Enabled = False
        txtCoursename.Enabled = False
        comboCoursetype.Enabled = False
        txtCoursedes.Text = False
        
        mcclean = True     '标记值置为默认值
    End If
        
End Sub


 


我们会发现,只要点击过修改按钮,都会被标记为修改过。例如:我点击完修改按钮,再点击更新按钮,就会弹出如图所示提示:修改信息成功。可是我什么都没修改过啊!疑问

 

关于学生信息管理系统的改进问题_第1张图片

 

 

这里少考虑了那种点击了修改按钮,却没有修改的情况。

为此,我们添加如下代码:定义一个字符数组,用来当前正在修改的记录的原值

:Dim strTxtValue(0 To 3) As String

在修改记录和更新记录的代码中加入如下代码:

Private Sub editCommand_Click()
    mcclean = False  '点击按钮后,标记修改过当前记录
    
    '记录下此时文本框中的值
    strTxtValue(0) = mrc.Fields(0)
    strTxtValue(1) = mrc.Fields(1)
    strTxtValue(2) = mrc.Fields(2)
    strTxtValue(3) = mrc.Fields(3)
    
    '第一组按钮不能用
    Frame1.Enabled = False
    firstCommand.Enabled = False
    previousCommand.Enabled = False
    nextCommand.Enabled = False
    lastCommand.Enabled = False
    
    '可以修改输入框中的值
    txtCourseno.Enabled = True
    txtCoursename.Enabled = True
    comboCoursetype.Enabled = True
    txtCoursedes.Enabled = True
    
    '添加信息
    comboCoursetype.AddItem "必修"
    comboCoursetype.AddItem "考察"
    
    myBookmark = mrc.Bookmark         '记录书签
    
End Sub

如上,在标记修改后,记录下文本框中的值。

 

Private Sub updateCommand_Click()
    Dim txtSQL As String  'SQL查询语句
    Dim MsgText As String    'EXECUTSQL第二个参数
    Dim mrcc As ADODB.Recordset     '记录集对象
    
    
    If mcclean Then     '如果没有修改过课程信息
        MsgBox "请先修改课程信息", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    
    
    '检验输入框的值是否为空
    If Not Testtxt(txtCourseno.Text) Then
        MsgBox "请输入课程编号。", vbOKOnly + vbExclamation, "警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    
    If Not IsNumeric(Trim(txtCourseno.Text)) Then
        MsgBox "课程编号请输入数字", vbOKOnly + vbExclamation, "警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursename.Text) Then
        MsgBox "请输入课程名称", vbOKOnly + vbExclamation, "警告"
        txtCoursename.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(comboCoursetype.Text) Then
        MsgBox "请输入课程类型", vbOKOnly + vbExclamation, "警告"
        comboCoursetype.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursedes.Text) Then
        MsgBox "请输入课程描述信息。", vbOKOnly + vbExclamation, "警告"
        txtCoursedes.SetFocus
        Exit Sub
    End If
    
    mrc.Delete
    
    '执行查询,返回记录集
    txtSQL = "select * from course_info where course_no='" & Trim(txtCourseno.Text) & "'"
    Set mrcc = ExecuteSQL(txtSQL, MsgText)
    
    
    
    '判断是否出现了点击完修改按钮,却没有修改的情况
    
    If (strTxtValue(0) = txtCourseno.Text And strTxtValue(1) = txtCoursename.Text And strTxtValue(2) = comboCoursetype.Text And strTxtValue(3) = txtCoursedes.Text) Then
    
        MsgBox "亲~~~您没有修改过记录,请修改后再更新!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        
    End If
    
    
    
    If mrcc.EOF = False Then
        MsgBox "课程编号重复,请重新输入", vbOKOnly + vbExclamation, "警告"
        mrcc.Close
        txtCourseno.SetFocus
    Else
        mrcc.Close
        
        '更新记录
        mrc.AddNew
        mrc.Fields(0) = Trim(txtCourseno.Text)
        mrc.Fields(1) = Trim(txtCoursename.Text)
        mrc.Fields(2) = Trim(comboCoursetype.Text)
        mrc.Fields(3) = Trim(txtCoursedes.Text)
        mrc.Update
        MsgBox "修改课程信息成功", vbOKOnly + vbExclamation, "警告"
        
        mrc.Bookmark = myBookmark      '标记书签
        Call viewData   '显示信息
        
        '第一组按钮可用
        Frame1.Enabled = True
        firstCommand.Enabled = True
        previousCommand.Enabled = True
        nextCommand.Enabled = True
        lastCommand.Enabled = True
        
        '输入框边为不可输入状态
        txtCourseno.Enabled = False
        txtCoursename.Enabled = False
        comboCoursetype.Enabled = False
        txtCoursedes.Text = False
        
        mcclean = True     '标记值置为默认值
    End If
        
End Sub

在读取完记录后,先判断输入框中的值是否和按下修改按钮后,却没有修改的值一样,如果一样,弹出提示,并退出当前过程。

执行后:

 



 

关于学生信息管理系统的改进问题_第2张图片

 

 

  

 

 

你可能感兴趣的:(学生信息管理系统)