《学生信息管理系统》优化完工!!!!!

《学生信息管理系统》优化完工!!!!!_第1张图片


    用了两个星期的时间,终于把系统写完并优化到了自己满意的地步。
    
    敲这个系统,后期优化得到了很多人的帮助,盖丽男,周洲,曹学亮...非常感谢我的朋友们......

    下面也来说说我对这个系统的改造:

        1.添加信息的窗体添加完记录或者数据后,不卸载,可继续添加,直到用户不想添加了,点“取消”
    2.添加完一条记录后,所有输入型控件清空数据,高效的方法:

Dim ctrl As Control
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is TextBox Then   '是否为文本框TextBox
                ctrl.Text = ""
            End If
            If TypeOf ctrl Is ComboBox Then  
                ctrl.Text = ""
            End If
        Next
     
     这是从别人那学来的,很实用

   3.修改密码窗体上添加旧密码一项,同时显示这是在修改哪个登录用户的密码

《学生信息管理系统》优化完工!!!!!_第2张图片

     
     原理非常简单,就是输入旧密码的文本框连上数据库,然后进行比较,最后代码窗口很多个if,else,end if

    4.添加出生日期和入学日期的文本框在获得焦点的时候(还没填),弹窗提示,输入“yyyy-mm-dd”格式的日期,信息全部添加完成后,点击确定以添加学生档案,如果入学日期<=出生日期,弹窗并提示用户返回修改
    当然,也可以将文本框换做VB里的日期时间控件,这样选择的值即为value值,这样更方便

    在合适的地方,写下下面的代码即可解决,Thanks  周洲

'定义这两个变量,后期进行输入出生和入学时期的比较
                Dim borndate As Date
                Dim getdate As Date
                '开始比较两个框输入的是否符合逻辑关系
                borndate = Trim(txtBorndate.Text)
                getdate = Trim(txtRudate.Text)
    
                If getdate <= borndate Then
                    MsgBox "入学时间不能小于出生时间,(+﹏+)~狂晕 请重新输入", vbOKOnly + vbInformation, "提示"
                    txtRudate.SetFocus
                    Exit Sub
                End If

    5.关于修改记录
    如果记录集为空,点击菜单中的“修改记录”,会弹窗

《学生信息管理系统》优化完工!!!!!_第3张图片


      如果不为空,则出现修改记录窗体,一项一项记录删除下去,删除了最后一条记录会出现


《学生信息管理系统》优化完工!!!!!_第4张图片


然后弹窗


《学生信息管理系统》优化完工!!!!!_第5张图片


      点击确定,即可出现添加记录的界面,点击取消,返回主界面:






      只要在32个地方添加点儿代码就好了

【1】主窗体的菜单项里

Private Sub modifysinfo_Menu_Click()
    txtSQL = "select * from student_Info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    If mrc.RecordCount = 0 Then
        str2 = MsgBox("记录集为空,是否现在填写?( ⊙o⊙?) ", vbOKCancel, "问你呢")
        If str2 = vbOK Then
            frmAddsinfo.Show
        Else
            Exit Sub
        End If
    Else
        frmModifysinfo.Show
    End If
End Sub


【2】修改窗体的加载事件中

<del>Private Sub Form_Load()
    Dim txtSQL As String
    Dim MsgText As String
    
    txtSQL = "select * from student_Info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    If mrc.RecordCount = 0 Then
        str2 = MsgBox("记录集为空,是否现在填写?( ⊙o⊙?) ", vbOKCancel, "问你呢")
        If str2 = vbOK Then
            frmAddsinfo.Show
        Else
            Exit Sub
        End If
    Else
        mrc.MoveFirst
        Call viewData
        myBookmark = mrc.Bookmark
        mcclean = True
    End If
End Sub</del>


【3】【2】删除按钮

Private Sub deleteCommand_Click()
    myBookmark = mrc.Bookmark
    str2 = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
    
    On Error GoTo gperror
    
    If str2 = vbOK Then
        mrc.MoveNext
        If mrc.EOF Then
            mrc.MoveFirst
            myBookmark = mrc.Bookmark
            mrc.MoveLast
            mrc.Delete
            mrc.Bookmark = myBookmark
            Call viewData
        Else
            myBookmark = mrc.Bookmark
            mrc.MovePrevious
            mrc.Delete
            mrc.Bookmark = myBookmark
            Call viewData
        End If
    Else
        mrc.Bookmark = myBookmark
        Call viewData
    End If
    Exit Sub
gperror:
    MsgBox "已经没有记录了,窗口即将关闭!", vbOKOnly + vbInformation, "提示"
    txtSID = ""
    comboClassNo = ""
    txtTel = ""
    Unload Me
    
    str1 = MsgBox("记录都删没了,还添加吗?", vbOKCancel + vbQuestion, "问题:")
    If str1 = vbOK Then
        frmAddsinfo.Show
    End If
End Sub



    6.查询窗体中MSHFlexGrid


    修改单元格大小,以及字段名第一行显示


    With myflexgrid
        .CellAlignment = 4
        .TextMatrix(0, 0) = "学号"
        .TextMatrix(0, 1) = "姓名"             '做个改进,把分号前的1改为了0
        .TextMatrix(0, 2) = "性别"
        .TextMatrix(0, 3) = "出生日期"
        .TextMatrix(0, 4) = "班号"
        .TextMatrix(0, 5) = "联系电话"
        .TextMatrix(0, 6) = "入校日期"
        .TextMatrix(0, 7) = "家庭住址"
        
        For i = 0 To 7
        .ColWidth(i) = .Width / 8
        Next
    End With


     7.对一些只用于选择的复合框控件,将其style改为2,以及窗体加载时显示默认值,

<span style="font-size:18px;"><strong>      comboCoursetype.Text = comboCoursetype.List(0)</strong></span>

      0 为索引

      虽然改为2后,出现过这样的错误,而且窗体中框里的东西删不了,一直显示着(系统运行时不显示)


《学生信息管理系统》优化完工!!!!!_第6张图片



《学生信息管理系统》优化完工!!!!!_第7张图片




     8.设置年级课程 

      看曹学亮的改进受的启发,于是也做成了这个样子的了,感谢曹学亮的帮助






     可一次勾选多门课程,全部添加,全部删除,而且写了自定义过程,不能出现重复科目,这个的代码,下篇博客再粘。


     9.文本框输入长度限制,这个用maxlength属性


    10.主窗体下面的状态栏

     逐渐摸索才知道,在控件上右键属性,就可以设置了

    11.自己的迷糊

 (1)启动对象不知道是Sub Main
 (2)没有添加引用
 (3)书写错误,点儿写成逗号,少写,多写 等等等等
 (4)记录集定义有个dim mrcc as ADODB.Recordset,写代码初期一直以为是作者写错了,只有一个mrc,结果最终证实是我错了......
 

    用户体验至上,软件脱离了生活,疏远了人民,那就没有什么价值了,系统优化到极致而且没有逻辑错误那就是好系统了吧。

    文章纰漏之处,非常欢迎批评指正。     




你可能感兴趣的:(数据库,优化,用户体验,odbc,学生信息管理系统)