VB机房收费系统04——注册窗体

前言

先挂一张注册的流程图


正文

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,报错如上。
原因是这样,我数据库中要录入的姓名格式为studentName,但是文本框名称和需要录入数据库中的列的名称不相符。我把姓名文本框名称改成studentName就解决了。



无法向数据表中插入指定列


图中的问题是,在为数据库添加记录时,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)




相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...