前言
先挂一张注册的流程图
正文
If Not语句
If Not 是如果不是的意思,具体应用上述VB语句中,它起的作用是如果txtSID里面的文本不是或没有,系统提示请输入学号。
为列表框添加内容
不在添加控件过程中编写,在窗体过程中编写
Set mrc = ExecutesSQL(txtsql,msgtext)
ExecuteSQL是执行SQL语句。里面的两个参数txtsql是指用来执行的SQL语句:比如:select * from表;Msgtext参数 指的是实行完SQL语句后的弹出框,是成功了还是失败了之类的。
限制条件
选中需要限制的文本框,选择maxlength属性,如图。
我们需要查找ASCll码表,得到0的ASCll码是48.输入语句如下:
if KeyAscill < 48 Or KeyAscill > 57 Then KeyAscill = 0
这条语句用来判断输入的字符是否在0-9的范围中,如果不在这个范围,就把这个输入的字符屏蔽掉
但这么做会产生一个问题,就是使用BackSpace删除字符的时候,由于按键被屏蔽,无法删除。怎么解决呢?解决方法很简单,只要在上面的语句前在添加一条语句:
If KeyAscii = 8 Then Exit Sub
意思是,如果按了BackSpace,就直接退出该过程,按键就不会被屏蔽了。
Private Sub name_KeyPress(KeyAscii As Integer)
If KeyAscii > 0 And KeyAscii <> 13 And KeyAscii <> 8 Then
KeyAscii = 0
MsgBox "只允许输入汉字", 48, "温馨提示"
End If
End Sub
VB错误无效限定符
本错误出现在注册时输入姓名里,因为机房是头一个自己命名的项目,我把注册中姓名文本框的名称设置为name,报错如上。
原因是这样,name程序无法判断是文本框还是标签还是函数,因为同名的词在程序运行中也设计到其他作用。
无法向数据表中插入指定列
图中的问题是,在为数据库添加记录时,UserID列无法插入记录。
可是问题是UserID列的数据记录在User_Info表上,那么我们要想用field()=的方法添加语句。就得再调用user表。具体方法是:
'为数据库添加记录
txtsql = "select*from student_Info"
Set mrc = ExecuteSQL(txtsql, msgtext) ’我们需要再查询User表数据
txtsql = "select*from User_Info" 'UserID在student表中是第13列,在UserID表中是第11列
Set mrc1 = ExecuteSQL(txtsql, msgtext)
mrc.AddNew
mrc.Fields(11) = mrc2.Fields(13)