学生信息管理系统之优化问题
2017-09-18 20:51
489 查看
一、键盘事件
对于键盘事件我们要学习的有很多,之前看VB课本的时候都没怎么注意过键盘事件的使用方法,看来学习还真是需要不断重复的过程,即使永远记不住的。关于键盘事件,百度了一篇文章感觉知识点很全
键盘事件总结文章
那么要学习键盘事件,当然ASCII表是必不可少的。
1、文本框输入内容只能为汉字
Private Sub txtDirector_KeyPress(KeyAscii As Integer) If KeyAscii >= -20319 And KeyAscii <= -3652 Or KeyAscii = 8 Then Else MsgBox "请输入中文!", 0 + 48, "提示" KeyAscii = 0 txtDirector.SetFocus End If End Sub
2、文本框输入内容为数字
Private Sub txtCourseno_KeyPress(KeyAscii As Integer) If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 _ Or KeyAscii = 13 Then Else If KeyAscii = 32 Then MsgBox "不能输入空格!", 0 + 48, "警告" KeyAscii = 0 Else MsgBox "对不起,课程编号为数字!", 0 + 48, "警告" KeyAscii = 0 txtCourseno.Text = "" txtCourseno.SetFocus End If End If End Sub
感觉这只是最简单的一种方法,看了云召的博客,其实有好多种解决办法的,有兴趣的可以看一下
云召兄博客链接
二、出生日期与入校日期符合逻辑
'判断日期是否符合逻辑 If Val(Left(txtRudate, 4)) <= Val(Left(txtBorndate, 4)) Then MsgBox "入学年份和出生年份逻辑错误,请重新输入", vbOKOnly +vbExclamation, "警告" txtBorndate.SetFocus '给当前记录做标签 Exit Sub Else txtSQL = "select * from student_info" '执行查询操作 Set mrc = ExecuteSQL(txtSQL, MsgText) '添加记录 mrc.AddNew '给每个字段赋值 …….
利用了VB中学到的 val left函数,这样判断的并不是很精细,想要更精细当然要在添加条件。
当然办法不只这一种,看了邵聪的博客说还可以将这两个日期赋为两个不同的整型值,在通过代码比较这两个值得大小,感觉这个办法也很不错。
更多的办法自己去探讨啦!
三、将子窗体设置在屏幕中间代码
Me.Left = Screen.Width / 2 - Me.Width / 2 Me.Top = Screen.Height / 2 - Me.Height / 2
四、将选择文本框设置为自动显示第一条记录
If comboSID.ListCount > 0 Then comboSID.ListIndex = 0 End If
五、查询修改内容是否与数据库中重复
'查询方法一 'If Not (mrc.EOF Or mrc.BOF) Then 'mrc.MoveFirst 'While (mrc.EOF = False) 'If (Trim(mrc.Fields(0)) = Trim(txtClassno.Text) And Trim(mrc.Fields(1)) = Trim(combograde.Text)) Then 'MsgBox "班号或年级已经存在,请重新输入!", vbOKOnly + vbExclamation, "警告" 'txtClassno.Text = "" 'txtClassno.SetFocus 'Exit Sub 'Else 'mrc.Move 4000 Next 'End If 'Wend 'mrc.Bookmark = mybookmark 'mrc.Delete 'mrc.addnew '...... '第二种查询方法 txtSQL = "select * from class_info" Set mrcc = ExecuteSQL(txtSQL, MsgText) If Not (mrcc.EOF Or mrcc.BOF) Then mrcc.MoveFirst While (mrcc.EOF = False) If (Trim(mrcc.Fields(0)) = Trim(txtClassno.Text) And Trim(mrcc.Fields(1)) = Trim(combograde.Text) And _Trim(mrcc.Fields(2)) = Trim(txtDirector.Text) And Trim(mrcc.Fields(3)) = Trim(txtClassroom.Text)) Then MsgBox "班号或年级已经存在,请重新输入!", vbOKOnly + vbExclamation, "警告" mrcc.Close txtClassno.Text = "" txtClassno.SetFocus Exit Sub Else '移动到下一条记录 mrcc.MoveNext End If Wend mrc.Delete mrcc.Close mrc.AddNew mrc.Fields(0) = Trim(txtClassno.Text) mrc.Fields(1) = Trim(combograde.Text) mrc.Fields(2) = Trim(txtDirector.Text) mrc.Fields(3) = Trim(txtClassroom.Text) mrc.Update MsgBox "更新数据成功!", vbOKOnly + vbExclamation, "修改班级信息" Else Exit Sub End If
六、设置年级课程,使已选课程不能重新加入
先判断后加入Private Sub cmdadd_Click() '判断是否有内容被选中(列表框的listindex属性用来指示当前选择项,-1说明没有没选中的数据项 For i = 0 To listselectcourse.ListCount - 1 If listselectcourse.List(i) = listallcourse.List(listallcourse.ListIndex) Then MsgBox "此项已添加,请勿重复添加!" Exit Sub End If Next If listallcourse.ListIndex <> -1 Then listselectcourse.AddItem listallcourse.List(listallcourse.ListIndex) End If End Sub
相关文章推荐
- 学生信息管理系统优化问题汇总
- 学生信息管理系统之优化问题
- 学生信息管理系统之优化问题续
- 学生信息管理系统——常见问题(二)
- 【VB】学生信息管理系统问题总结
- 解决学生信息管理系统之List列表中重复添加相同数据问题。
- 学生信息管理系统之优化注意事项
- 学生信息管理系统总结 之 "常见小问题"
- 学生信息管理系统优化(一)
- 学生信息管理系统中遇到的问题解析
- 【VB】学生信息管理系统优化总结
- 学生信息管理系统问题(二)
- "Str2$"变量未定义(学生信息管理系统问题之一)
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统之ASCII问题汇总
- 【学生信息管理系统】——数据类型问题
- 学生信息管理系统问题集锦(一)
- 学生信息管理系统问题集锦(二)
- 学生信息管理系统——常见问题
- 学生信息管理系统问题集锦