学生管理系统是我接触的第一个小系统!现在首先来说一下 我从开始前到进行中和结束后的经历和感受!
开始前,感觉很神奇,因为在日常生活中我们会接触到各种系统,但是可能从来没有想过他是怎么弄出来的。所以在开始学生管理系统之前,给我的感觉就是“神奇”!
进行中;
代码和窗体的构建!看着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
4、注册按钮的添加。每次看到这个登录窗体,我都能想起QQ的登录窗体上有一个注册的按钮!于是也就想加一个!
解决办法:其实这个挺简单的!把添加用户 的那个窗体修改一下界面。代码上稍加修改就行了!我想这么简单的大家应该都能搞定!但是以后应该注意的是
注册窗体的MDICHILD属性没必要改成true。点击“注册”按钮后应该调出刚才创建的注册窗体!
在按钮的 click事件中添加zhuceform.show理论上就OK了。但是并不能所愿,出现以下错误。
遇到这个问题,首先要了解一下 模式窗体和非模式窗体
模式窗体:简单的说,你必须关闭该窗体,才能操作其它窗体;比如说,必须按确定或取消,或者按关闭
非模式窗体:不用关闭此窗体,就可以跳转到另一个窗体。
还有一个深刻的解释:窗体名.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
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
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
9、添加 密码眼。相信很多时候我们在注册或登录某网站的时候,都会有这显示密码这一选项!所以给自己的系统也加一个。
解决办法:我是在输入密码的文本框后添加了一个image 控件,将其stretch属性改为true。然后在picture 中添加了一个小眼睛的图标。然后再image的mousedown属性中添加了两行代码
txtpassword1.PasswordChar = ""
txtpassword2.PasswordChar = ""
在鼠标按下的时候触发事件,将两个密码文本框的*清除
在image的mouseup事件中添加如下代码
txtpassword1.PasswordChar = "*"
txtpassword2.PasswordChar = "*"
在鼠标松开的时候触发事件,将两个密码文本框的输入内容加密
结束语:通过这一阶段的学习,又再次了解了和学习了数据库,感觉没有以前那么神秘了,我想 这也可以说明我成长了。加油!