主题:表单:学号注册
天资愚钝
[专家分:0] 发布于 2009-08-04 21:17:00
做一表单,想完成以下功能:
通过表单,向 [b]学生信息表中[/b] 中输入学生基本生信息(学号,姓名,电话,家庭住址)。输入前要作以下判断:
1.相同的学号是否已存在?如果相同 学号 已存在,显示提示消息。
2.输入的学号是否有效?(学号只能为指定位数的数字串)
附:学生信息能按学号顺序排列更好。
自己做的表单、学生信息表已上传。
最后更新于:2009-08-05 20:31:00
回复列表 (共6个回复)
沙发
sywzs [专家分:5650] 发布于 2009-08-05 16:13:00
表单、学生信息表 在哪里?
板凳
天资愚钝 [专家分:0] 发布于 2009-08-05 20:36:00
不好意思,文件已上传。自己写的'确认键'的click事件错误,请各位老师指正。
3 楼
sywzs [专家分:5650] 发布于 2009-08-06 05:25:00
'确认键'的click事件,大概改了一下,试试看。
IF !USED("学生信息表")
USE 学生信息表
ENDIF
SELECT 学生信息表
LOCATE FOR xuehao=ALLTRIM(thisform.text1.value)
IF !found()
IF TYPE(thisform.text1.value)="N" and len(ALLTRIM(thisform.text1.value))=8
INSERT INTO 学生信息表 (xuehao,xingming,dianhua,zhuzhi);
values(thisform.text1.value,thisform.text2.value,thisform.text3.value,thisform.text4.value)
MESSAGEBOX("学生信息已注册。。。")
ELSE
MESSAGEBOX("学号输入有误!")
ENDIF
ELSE
MESSAGEBOX("此学号已存在,请选择新的学号!")
ENDIF
4 楼
lbscyb [专家分:4780] 发布于 2009-08-13 01:21:00
IF !USED("学生信息表")
USE 学生信息表
ENDIF
SELECT 学生信息表
cXh =alltrim(thisform.text1.value)
locate for xuehao = cXh
if found()
MESSAGEBOX("此学号已存在,请选择新的学号!")
return
endif
if !(upper(vartype(cXh)) = 'C' and len(cXh) = 8)
MESSAGEBOX("学号输入有误!")
return
endif
insert into .........
以下的略了,实在是搞不懂楼主程序里的thisform.text1.value的数据类型(不看表结构的情况下):
IF( TYPE("thisform.text1.value")=N) and len(thisform.text1.value)==8)
TYPE("thisform.text1.value")=N 判断类型为数值型
len(thisform.text1.value)==8 判断字符长度为8
同一个值满足2个不同字段类型,可能吗?
5 楼
sywzs [专家分:5650] 发布于 2009-08-13 05:41:00
在本例中,我认为 TYPE("thisform.text1.value")=N 是判断字符串是否是由数字字符构成的,而 len(thisform.text1.value)=8 则是判断这个字符串的长度,两者并不矛盾。
6 楼
hgfeng1984 [专家分:150] 发布于 2009-08-13 10:12:00
vfp不是有个InputMask属性的?
我来回复