回 帖 发 新 帖 刷新版面

主题:表单:学号注册

做一表单,想完成以下功能:
   通过表单,向 [b]学生信息表中[/b] 中输入学生基本生信息(学号,姓名,电话,家庭住址)。输入前要作以下判断:
    1.相同的学号是否已存在?如果相同 学号 已存在,显示提示消息。
    2.输入的学号是否有效?(学号只能为指定位数的数字串)
    附:学生信息能按学号顺序排列更好。

   自己做的表单、学生信息表已上传。

回复列表 (共6个回复)

沙发

表单、学生信息表 在哪里?

板凳


不好意思,文件已上传。自己写的'确认键'的click事件错误,请各位老师指正。

3 楼

'确认键'的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 楼

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 楼

在本例中,我认为  TYPE("thisform.text1.value")=N  是判断字符串是否是由数字字符构成的,而 len(thisform.text1.value)=8 则是判断这个字符串的长度,两者并不矛盾。

6 楼

vfp不是有个InputMask属性的?

我来回复

您尚未登录,请登录后再回复。点此登录或注册