学生总结(四)----代码的优化与理解
2017-09-06 16:41
183 查看
对于学生的优化,我的总结还是针对于对代码的优化与理解多一些,界面的优化少了点,接下来请看这些优化吧!
1、在修改密码这一窗体上加上输入原密码,这样就不会谁都能任意的修改密码了!
下来请看代码
代码解释:frmlogin是你的登录窗体,username为你的登录窗体的用户名!通过了public 定义! 需要将你调用的窗体名写上!
2、聚焦要按着顺序执行
比如这张照片,如果你想按着你的tab键一直按着顺序的方式在各个文本框聚焦,是不是这样一想,就很爽。这时最简单的办法就是建立控件数组,很简单的!比如TXTsid(0) TXTname(1) ……按照这样的方式就可以了!
3、控制文本框内容的设置
a、只能输入汉字,回车和退格 , 如果不在这个范围内就不能输入!
b、限制输入内容只能是数字
4、添加成绩信息之重要逻辑关系
我们的身份证是从大小的,比如 **省 **县** 市**镇**村**组**门牌号,都是按着范围的大小排列的,因此我们写代码也要这样严谨,这个窗体有考试编号,选择班号,还有选择学号,原来没有选择年级,我又加了一个选择年级,如图所示!
所以这个原则应该是这样,我只是简单的举个例子啊,先是考试编号:2000期中,然后下一个窗口激活,选择年级2,然后下一个窗口激活再选择班号1,然后激活课程窗口,最后输入姓名!这样在面对大量的数据,系统也会很快的查询出信息,不会卡顿!
但是这里有一个特别神奇的地方,就是你的sql里只有一个表中有exam_no,别的表没有它,意思就是它连接不了与年级相关的表,所以要是想按照顺序的话,就得在那个有关年级的表建立exam_no的属性。这里呢,小编没有完成这项任务,只是将思想分享给大家
‘添加学号在comboSID_DropDown过程中,且在选择考试类型,班号之后 。dropdown为下拉框的属性
‘添加课程在cboCourse_DropDown过程中,在考试类型,班号及学号之后
5、设置年级课程这个窗体,我还是有好多的心得的,下来分享给大家!
a、首先这个窗体有一个思想,就是说所有课程里不能重复输入,已选择课程也不能重复输入,
这个窗体最值得分享的就是for循环,这段代码的思想是我和召子探讨到了半夜想到的,很实用!就是确定已选择课程那栏不能有重复的课程,请看代码,我给大家解释!
listSelectcourse.ListCount代表的是已选择课程的所有课程数。
for循环:第一次循环的时候是0~-1,这就是说明没有循环,意思就是已选择课程的数目为0,直接跳出循环,此时新加了课程,加在了已选课程那一栏!计算机都是从0开始的,所以已选择课程那栏如果有两个科目,那么对应的索引值不是1,2而是0,1 所以就有了listSelectcourse.ListCount - 1
b、如图所示如果课程里显示了蓝条,那么已选择课程就不能选择蓝条,同理,如果已选择课程有蓝条,那么所有课程就不能是蓝条!如下面两段代码
’保证全部课程选中时,已选课程不能同时选中
’保证已选课程选中时,全部课程不能被同时选中
6、使窗体不能改变大小,显示在屏幕中间
使窗体不能随便更改大小:BorderStyle改为1-FixedSingle
窗体居中显示:
1、在修改密码这一窗体上加上输入原密码,这样就不会谁都能任意的修改密码了!
下来请看代码
txtSQL = "select * from user_Info where user_id='" & Trim(frmlogin.username) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If Trim(Text1.Text) <> Trim(mrc.Fields(1)) Then MsgBox "密码输入不正确!", vbOKOnly + vbExclamation, "警告" Text1.Text = "" Text1.SetFocus
代码解释:frmlogin是你的登录窗体,username为你的登录窗体的用户名!通过了public 定义! 需要将你调用的窗体名写上!
2、聚焦要按着顺序执行
比如这张照片,如果你想按着你的tab键一直按着顺序的方式在各个文本框聚焦,是不是这样一想,就很爽。这时最简单的办法就是建立控件数组,很简单的!比如TXTsid(0) TXTname(1) ……按照这样的方式就可以了!
3、控制文本框内容的设置
a、只能输入汉字,回车和退格 , 如果不在这个范围内就不能输入!
If KeyAscii >= -20319 And KeyAscii <= -3652 Or KeyAscii = 8 Or KeyAscii = 13 Then Else KeyAscii = 0 End If
b、限制输入内容只能是数字
If KeyAscii = 8 And KeyAscii >= 48 Or KeyAscii <= 57 Then Else KeyAscii = 0 End If
4、添加成绩信息之重要逻辑关系
我们的身份证是从大小的,比如 **省 **县** 市**镇**村**组**门牌号,都是按着范围的大小排列的,因此我们写代码也要这样严谨,这个窗体有考试编号,选择班号,还有选择学号,原来没有选择年级,我又加了一个选择年级,如图所示!
所以这个原则应该是这样,我只是简单的举个例子啊,先是考试编号:2000期中,然后下一个窗口激活,选择年级2,然后下一个窗口激活再选择班号1,然后激活课程窗口,最后输入姓名!这样在面对大量的数据,系统也会很快的查询出信息,不会卡顿!
但是这里有一个特别神奇的地方,就是你的sql里只有一个表中有exam_no,别的表没有它,意思就是它连接不了与年级相关的表,所以要是想按照顺序的话,就得在那个有关年级的表建立exam_no的属性。这里呢,小编没有完成这项任务,只是将思想分享给大家
‘添加学号在comboSID_DropDown过程中,且在选择考试类型,班号之后 。dropdown为下拉框的属性
Private Sub comboSID_DropDown() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String If Trim(cboExamType.Text) = "" Then MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示" cboExamType.SetFocus Exit Sub ElseIf Trim(cboClassNumber.Text) = "" Then MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示" cboClassNumber.SetFocus Exit Sub Else strSQL = "select * from student_Info where class_No='" & cboClassNumber.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF Then MsgBox "该班没有学号,请先添加学号!", vbInformation + vbOKOnly, "提示" frmAddResult.Hide frmAddsinfo.Show End If comboSID.Clear While Not (mrc.EOF) comboSID.AddItem mrc!student_ID mrc.MoveNext Wend mrc.Close End If End Sub
‘添加课程在cboCourse_DropDown过程中,在考试类型,班号及学号之后
Private Sub cboCourse_DropDown() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String If Trim(cboExamType.Text) = "" Then MsgBox "请先选择考试类型!", vbExclamation + vbOKOnly, "提示" cboExamType.SetFocus Exit Sub ElseIf Trim(cboClassNumber.Text) = "" Then MsgBox "请先选择班号!", vbExclamation + vbOKOnly, "提示" cboClassNumber.SetFocus Exit Sub ElseIf Trim(cboNumber.Text) = "" Then MsgBox "请先选择学号!", vbExclamation + vbOKOnly, "提示" comboSID.SetFocus Exit Sub Else strSQL = "select * from class_Info where class_No='" & cboClassNumber.Text & "'" Set mrs = ExecuteSQL(txtSQL, MsgText) While Not (mrc.EOF) strGrade = mrc!Grade mrc.MoveNext Wend mrc.Close strSQL = "select * from gradecourse_Info where grade='" & strGrade & "'" Set mrc = ExecuteSQL(strSQL, MsgText) If mrc.EOF Then MsgBox "概年级没有课程,请先添加课程!", vbInformation + vbOKOnly, "提示" frmAddResult.Hide frmSetCourseinfo.Show End If cboCourse.Clear While Not (mrc.EOF) cboCourse.AddItem mrc!course_Name mrc.MoveNext Wend mrc.Close End If
5、设置年级课程这个窗体,我还是有好多的心得的,下来分享给大家!
a、首先这个窗体有一个思想,就是说所有课程里不能重复输入,已选择课程也不能重复输入,
这个窗体最值得分享的就是for循环,这段代码的思想是我和召子探讨到了半夜想到的,很实用!就是确定已选择课程那栏不能有重复的课程,请看代码,我给大家解释!
Private Sub cmdAdd_Click() For i = 0 To listSelectcourse.ListCount - 1 If listSelectcourse.List(i) = listAllcourse.List(listAllcourse.ListIndex) Then Exit Sub End If Next listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex) end sub
listSelectcourse.ListCount代表的是已选择课程的所有课程数。
for循环:第一次循环的时候是0~-1,这就是说明没有循环,意思就是已选择课程的数目为0,直接跳出循环,此时新加了课程,加在了已选课程那一栏!计算机都是从0开始的,所以已选择课程那栏如果有两个科目,那么对应的索引值不是1,2而是0,1 所以就有了listSelectcourse.ListCount - 1
b、如图所示如果课程里显示了蓝条,那么已选择课程就不能选择蓝条,同理,如果已选择课程有蓝条,那么所有课程就不能是蓝条!如下面两段代码
’保证全部课程选中时,已选课程不能同时选中
Private Sub listallcourse_Click() If listAllcourse.ListIndex <> -1 Then listSelectcourse.ListIndex = -1 End If End Sub
’保证已选课程选中时,全部课程不能被同时选中
Private Sub ListSelectcourse_Click() If listSelectcourse.ListIndex <> -1 Then listAllcourse.ListIndex = -1 End If End Sub
6、使窗体不能改变大小,显示在屏幕中间
使窗体不能随便更改大小:BorderStyle改为1-FixedSingle
窗体居中显示:
With Me .BorderStyle = 0 .Left = FrmMain.ScaleWidth / 2 - .Width / 2 .Top = FrmMain.ScaleHeight / 2 - .Height / 2 End With
相关文章推荐
- IT第七天 - 类及其属性、方法的理解,断点调试初识,代码优化总结,编程逻辑培养
- C++代码优化方法总结
- jQuery代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结
- 35 个 Java 代码性能优化总结
- 汇编总结-第三部分_2_GNU下优化代码
- 35 个 Java 代码性能优化总结
- 35 个 Java 代码性能优化总结
- Android App 瘦身总结 第三章 代码混淆及优化
- JavaScript代码性能优化总结
- 35 个 Java 代码性能优化总结
- C++代码优化方法总结
- 总结学生选课Dao类相应代码,对应数据库表的内容进行修改
- 关于C 代码优化的方法总结
- SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定
- 35个Java代码性能优化总结
- C++代码优化方法总结
- Unity3D代码及效率优化总结
- Java代码性能优化总结 推荐收藏