学生管理系统总结

            学生管理系统是我接触的第一个小系统!现在首先来说一下 我从开始前到进行中和结束后的经历和感受!

        开始前,感觉很神奇,因为在日常生活中我们会接触到各种系统,但是可能从来没有想过他是怎么弄出来的。所以在开始学生管理系统之前,给我的感觉就是“神奇”!

        进行中;

        代码和窗体的构建!看着PDF文档,先是被ER模型和一些数据库的表的创建内容搞蒙了!后来才知道数据库已经建立好了。在做准备工作的时候我看见很多同学在装SQL server的时候都重装了系统,虽然知道装系统是简单而又麻烦的事,但还是装了!后来才知道,不一定要重装系统,也有解决的办法。(微微一笑)。装好之后,就真正的开始了!代码和窗体的构建和当时敲的百例差不多!代码中会掺杂着 一些SQL语句。虽然能大概看懂,但是感觉还是有点虚!其中有一些问题的是某些查询和修改的窗体并没有给代码,而是要自己根据之前给过的类似的进行更改!

       调试过程中!看着终于敲完了代码和窗体。然后迫不及待的开始了运行,然后就第一个窗体就出现了 错误。然后调试了半天 ,才弄好!看来一个程序重要和困难的地方在与后期的调试!在调试的整个过程中是痛并快乐的,痛的是又出现了错误,快乐的是解决了BUG之后,又学到了东西!所以千万不能怕困难的出现,因为每次困难的出现都伴随这一个你没有掌握的知识点!一步一步,慢慢来,才是王道!调试的过程中,也能悟出一点规律,例如出现“91”变量未定义 类型的错误,多半是问题出现了在与数据的连接,查询上面!等等!

         结束后;看着自己的小系统,经得住别人点击了,每一项功能都能正常运行。真的是大快人心啊!再加上自己做的小优化,把它做成独一无二的系统。成就感十足!

         回头看看,整个经历,从好奇到疑问困难最后到掌握学习!这也应该是使各标准的学习过程吧!

        说了这么多,下面来简单的总结一下,和做一下分享!

 1、 整个过程重点在调试的时候,但是由于bug实在有点多,所以,我用了一个比较笨的办法,就是按顺序把每个窗体出现的问题都记在一个本子上,当然也可以是Word里。然后逐项进行调试,调完一个就划一个!可能是 我的记性不好,总一不小心就修改错窗体!虽然方法笨,但是条理清晰,效率也提升了不少!

2、在父窗体上添加其他控件!不知道大家有没有 发现,父窗体的界面真的是有些不友好!而且不能添加除了picturebox和timer控件以外的其他控件!

        解决办法:可以在主窗体上添加一个无边框字窗体,将这个子窗体的 borderstyle 改为 0    MDIchild =true 

        然后在主窗体的加载事件中加入代码

                                    
Private Sub MDIForm_Load()
wubianform.Show
wubianform.Height = fMainForm.Height
wubianform.Width = fMainForm.Width

                 这样就行了,可以再这个无边框窗体上添加图片,换背景什么的了!说到换背景,为什么picturebox不行呢 ?以为添加了picturebox控件确实可以添加背景 ,但你会发现是此背景也可以叫 前景,他会完全挡住其他字窗体的!

3、由于调试的次数很多,所以在不知不觉的过程中就忘记了这次登录的是哪个账户!所以可以在刚才的无边窗体上做手脚!

       解决办法:在无边窗体上添加一个label控件!将其名字改为namelabel(当然名字你可以随便起,你开心就好),

                               
Private Sub Form_Load()
Dim txtSQL, msgtext As String
Dim mrc As ADODB.Recordset
Me.BorderStyle = 0 
txtSQL = "select*from user_info where user_ID='" & UserName & "'"
    Set mrc = executeSQL(txtSQL, msgtext)
       namelabel.Caption = Trim(mrc.Fields(0)) & ",你好!"
       mrc.Close
    

End Sub
                                学生管理系统总结_第1张图片

 4、注册按钮的添加。每次看到这个登录窗体,我都能想起QQ的登录窗体上有一个注册的按钮!于是也就想加一个!

       解决办法:其实这个挺简单的!把添加用户 的那个窗体修改一下界面。代码上稍加修改就行了!我想这么简单的大家应该都能搞定!但是以后应该注意的是

       注册窗体的MDICHILD属性没必要改成true。点击“注册”按钮后应该调出刚才创建的注册窗体!

        在按钮的 click事件中添加zhuceform.show理论上就OK了。但是并不能所愿,出现以下错误。

                                 学生管理系统总结_第2张图片

                遇到这个问题,首先要了解一下 模式窗体和非模式窗体

       模式窗体:简单的说,你必须关闭该窗体,才能操作其它窗体;比如说,必须按确定或取消,或者按关闭

       非模式窗体:不用关闭此窗体,就可以跳转到另一个窗体。

       还有一个深刻的解释:窗体名.Show [Modal][,Owerner]说明:Modal:指定窗体显示的模式,可以为vbModal(=1)或vbModeless(=0,默认值),vbModal表示将窗体作为模式对话框显示,这种情况下,Show方法后的代码要等到模式对话框关闭之后才能执行,且焦点也不能移动到其他窗体;vbModeless表示将窗体作为无模式对话框显示,这种情况下,焦点能在其他窗体之间转移。

      简单的理解,就是1 让该窗体模式化了!

5、在帮助菜单下,加入了联系我们按钮!!这个按钮点击后会来打开我的CSDN主页!

      解决办法:Shell "C:\Program Files (x86)\Internet Explorer\iexplore.exe http://blog.csdn.net/ming_5257 "    分解来看引号中的内容“浏览器.EXE文件的路径  后面是想要打开的网址!”

       这个貌似有个缺点,就是在自己电脑上可以,但是在别人电脑上就不行,应为每个人电脑上的浏览器路径和名称种类可能不同那个 !如果大家有解决的办法,欢迎交流分享!

6、在父窗体的状态栏上添加时间显示,并让其自动刷新时间!

     解决办法:在父窗体上添加一个timer控件,设置interval属性值为500

           在父窗体的Activate的事件中,设置状态栏的显示内容

                        
Private Sub MDIForm_Activate()
fMainForm.sbstatusbar.Panels(1).Text = Me.Caption
fMainForm.sbstatusbar.Panels(2).Text = Now
fMainForm.sbstatusbar.Panels(3).Text = "版权所有"
End Sub

                         在 timer的事件中添加代码             
                        
Private Sub Timer1_Timer()

    If fMainForm.sbstatusbar.Panels(2).Text <> CStr(Time) Then
    fMainForm.sbstatusbar.Panels(2).Text = Time
End If
end sub

                        这样就可以了 !

7、数据查询时,添加相应的逻辑。例如学号 与学生姓名对应 !

      解决办法:在学号的下拉框的单击事件中,添加代码!

                          
Private Sub Combosid_Click()
Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim msgtext As String
    txtSQL = "select * from student_info where student_id='" & Combosid.Text & "'"
    Set mrc = executeSQL(txtSQL, msgtext)
    While (mrc.EOF = False)
       txtname = mrc!student_name
        
        mrc.MoveNext
    Wend
    mrc.Close
End Sub
                             其他的逻辑方法和这个类似,就不做多介绍了!要注意的是,学号 的控件是combobox 所以要把代码添加进学号下拉框的click的事件中。

 8、学号文本框,禁止输入汉字!大家知道,学号一般都是数字,而很少是汉字,所以如果不加以限制,总感觉怪怪的!

       解决办法:在要限制的控件的KeyPress事件中,添加代码。

                             
Private Sub txtsid_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then Exit Sub
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
                              要问为什么,那就需要回去好好看看ASCII码了!

 9、添加 密码眼。相信很多时候我们在注册或登录某网站的时候,都会有这显示密码这一选项!所以给自己的系统也加一个。

       解决办法:我是在输入密码的文本框后添加了一个image 控件,将其stretch属性改为true。然后在picture 中添加了一个小眼睛的图标。然后再image的mousedown属性中添加了两行代码

                             txtpassword1.PasswordChar = ""
                             txtpassword2.PasswordChar = ""

在鼠标按下的时候触发事件,将两个密码文本框的*清除

在image的mouseup事件中添加如下代码

                             txtpassword1.PasswordChar = "*"
                             txtpassword2.PasswordChar = "*"

在鼠标松开的时候触发事件,将两个密码文本框的输入内容加密

结束语:通过这一阶段的学习,又再次了解了和学习了数据库,感觉没有以前那么神秘了,我想 这也可以说明我成长了。加油!


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