1.限定text填写类型和长度
1.1 限定Text可填写的长度
'txtUserName是输入用户名的文本框' Private Sub txtUserName_Change() 'Len(text):得到字符串的长度。不论中英文字符,均按1计数。' If Len(txtUserName.Text) > 15 Then '限制输入长度为15,一旦超过就只显示前15' txtUserName.Text = Left(txtUserName.Text, 15) txtUserName.SelStart = 15 '作用是选中排名前15的字符' End If End Sub
'判断电话号码是否小于7位数' If Len(txtTel.Text) < 7 Then MsgBox "电话号码不能小于7位!", vbOKOnly + vbExclamation, "警告" Exit Sub txtTel.SetFocus End If
1.2 Text只能输入英文和数字
用户名的输入格式:英文、数字或英文+数字,英文不区分大小写,可以使用退格键
'设置用户名输入的格式' Private Sub txtUserName_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57, 65 To 90, 97 To 122 Exit Sub Case 8 Exit Sub Case Else MsgBox "请输入数字或英文" End Select KeyAscii = 0 End Sub
1.3 Text只能输入英文和汉字
Private Sub txtDirector_KeyPress(KeyAscii As Integer) If KeyAscii < 0 Or KeyAscii = 8 Or KeyAscii = 13 Then ElseIf Not Chr(KeyAscii) Like "[a-zA-Z]" Then KeyAscii = 0 End If End Sub
1.4 Text只能输入数字,且能退格
'文本框只能输入数字,且能退格' Private Sub txtClassno_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57 Exit Sub Case 8 Exit Sub End Select KeyAscii = 0 End Sub
1.5 Text不能输入特殊字符
Private Sub txtComment_KeyPress(KeyAscii As Integer) Dim cTemp As String cTemp = "`~!@#$%^&*()-=_+[]{};:'\|<>/?.‘“”’、,。——+()《》?,~·……¥!:;【】" & """ '禁止输入特殊的字符" If InStr(1, cTemp, Chr(KeyAscii)) <> 0 Then KeyAscii = 0 End Sub
2. 增加验证原密码功能
首先在Module1模块里定义一个公有变量:
Public PassWord As String
然后在frmLogin登陆页面写下以下代码:
Private Sub cmdOK_Click() '点击确定登录' PassWord = Trim(txtPassword.Text) '把登陆时输入的密码赋给公有变量PassWord' End Sub
最后在修改密码窗体写下以下的代码:
If PassWord <> Text1(0).Text Then MsgBox "原密码输入不正确", vbOKOnly + vbExclamation, "修改密码" End If
3. 增加数据集移动位置提示
- 数据集记录计数=1时,提醒已到最后一条记录
Private Sub firstCommand_Click() '第一条记录按钮' mrc.MoveFirst '移动到数据集的第一条记录 Call viewData '调用显示数据的函数 If mrc.RecordCount = 1 Then MsgBox "只剩下这一条记录!", vbOKCancel + vbExclamation, "警告" End If End Sub
Private Sub lastCommand_Click() '最后一条记录按钮' mrc.MoveLast '移动到数据集的最后一条记录 Call viewData '调用显示数据的函数 If mrc.RecordCount = 1 Then MsgBox "只剩下这一条记录!", vbOKCancel + vbExclamation, "警告" End If End Sub
Private Sub nextCommand_Click() '下一条记录按钮' If mrc.RecordCount = 1 Then MsgBox "只剩下这一条记录!", vbOKCancel + vbExclamation, "警告" Else mrc.MoveNext '数据集向后移动' If mrc.EOF Then '判断是否到末位置' MsgBox "这已经是最后一条记录了!", vbOKOnly + vbExclamation, "警告" mrc.MovePrevious '将记录指针移至上一条' End If End If Call viewData End Sub
Private Sub previousCommand_Click() '上一条记录按钮' If mrc.RecordCount = 1 Then MsgBox "只剩下这一条记录!", vbOKCancel + vbExclamation, "警告" Else mrc.MovePrievious '将记录指针移至上一条' If mrc.BOF Then '如果记录指针到顶了' mrc.MoveLast '将记录指针移至下一条' End If End If Call viewData End Sub
4. 增加记录集清空提示
当删除最后一条数据时,按钮事件会因为`mrc.MoveFirst`类似的情况报错,因此增加了错误处理程序。
Private Sub deleteCommand_Click() '删除记录按钮' On Error GoTo P_Err '遇到错误跳转到P_Err错误处理程序' ………………………………………… p_EXIT: Exit Sub P_Err: '清空记录集并提示' txtSID.Text = "" txtName.Text = "" comboSex.Text = "" txtBorndate.Text = "" comboClassNo.Text = "" txtTel.Text = "" txtRudate.Text = "" txtAddress.Text = "" txtComment.Text = "" MsgBox "最后一条信息已删除,即将退出!", vbOKOnly + vbCritical, "警告" Unload Me GoTo p_EXIT End Sub
5. 增加当记录集为空时的提示
记录集为空,直接打开修改学籍窗口会报错,所以添加了以下提示,并且在没有数据的情况下,按钮都是不可操作的。
Private Sub Form_Load() Dim txtSQL As String Dim MsgText As String txtSQL = "select * from student_Info" Set mrc = ExecuteSQL(txtSQL, MsgText) '执行查询操作 '得到student表,并显示出来 If mrc.RecordCount = 0 Then '当前记录集为空' MsgBox "暂无学籍信息,请先录入", vbOKCancel + vbExclamation, "警告" Frame2.Enabled = False 'Frame里的按钮都不可点击' Frame3.Enabled = False Else 'select得到的临时表,游标指向尾记录,在Access中指向第一条' mrc.MoveFirst '移动到第一条记录' Call viewData '显示数据' myBookmark = mrc.Bookmark '做标记' mcclean = True '给标志赋初值' End If End Sub