用了两个星期的时间,终于把系统写完并优化到了自己满意的地步。
敲这个系统,后期优化得到了很多人的帮助,盖丽男,周洲,曹学亮...非常感谢我的朋友们......
下面也来说说我对这个系统的改造:
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.修改密码窗体上添加旧密码一项,同时显示这是在修改哪个登录用户的密码
原理非常简单,就是输入旧密码的文本框连上数据库,然后进行比较,最后代码窗口很多个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.关于修改记录
如果记录集为空,点击菜单中的“修改记录”,会弹窗
如果不为空,则出现修改记录窗体,一项一项记录删除下去,删除了最后一条记录会出现
然后弹窗
点击确定,即可出现添加记录的界面,点击取消,返回主界面:
只要在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后,出现过这样的错误,而且窗体中框里的东西删不了,一直显示着(系统运行时不显示)
8.设置年级课程
看曹学亮的改进受的启发,于是也做成了这个样子的了,感谢曹学亮的帮助
可一次勾选多门课程,全部添加,全部删除,而且写了自定义过程,不能出现重复科目,这个的代码,下篇博客再粘。
9.文本框输入长度限制,这个用maxlength属性
10.主窗体下面的状态栏
逐渐摸索才知道,在控件上右键属性,就可以设置了
11.自己的迷糊
(1)启动对象不知道是Sub Main
(2)没有添加引用
(3)书写错误,点儿写成逗号,少写,多写 等等等等
(4)记录集定义有个dim mrcc as ADODB.Recordset,写代码初期一直以为是作者写错了,只有一个mrc,结果最终证实是我错了......
用户体验至上,软件脱离了生活,疏远了人民,那就没有什么价值了,系统优化到极致而且没有逻辑错误那就是好系统了吧。
文章纰漏之处,非常欢迎批评指正。