vfp程序改错(一个添加按钮的代码)
a=alltrim(thisform.Text1.value)b=ALLTRIM(thisform.Text2.value)c=alltrim(thisform.Text...
a=alltrim(thisform.Text1.value)
b=ALLTRIM(thisform.Text2.value)
c=alltrim(thisform.Text3.value)
d=alltrim(thisform.Text4.value)
e=ALLTRIM(thisform.Text5.value)
f=alltrim(thisform.Text6.value)
g=ALLTRIM(thisform.Text7.value)
h=ALLTRIM(thisform.Text8.value)
if empty(h) &&此条件成立则说明该文本框是空的
messagebox("请输入到期时间",16,"系统提示")
return
else
locate for 到期时间=h
ENDIF
if empty(g) &&此条件成立则说明该文本框是空的
messagebox("请输入开通时间",16,"系统提示")
return
else
locate for 开通时间=g
ENDIF
if empty(f) &&此条件成立则说明该文本框是空的
messagebox("请输入地址",16,"系统提示")
return
else
locate for 地址=f
ENDIF
if empty(e) &&此条件成立则说明该文本框是空的
messagebox("请输入联系电话",16,"系统提示")
return
else
locate for 联系电话=e
ENDIF
if empty(d) &&此条件成立则说明该文本框是空的
messagebox("请输入身份证号",16,"系统提示")
return
else
locate for 身份证号=d
if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的
go top
messagebox("不允许有重复的身份证号",16,"系统提示")
thisform.Text1.setfocus
return
endif
ENDIF
if empty(b) &&此条件成立则说明该文本框是空的
messagebox("请输入密码",16,"系统提示")
return
else
locate for 密码=b
if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的
go top
messagebox("不允许有重复的密码",16,"系统提示")
thisform.Text1.setfocus
return
endif
ENDIF
if empty(c)
messagebox("请输入姓名",16,"系统提示")
return
else
locate for 姓名=c
if .not.eof()
go top
messagebox("不允许有重复的姓名",16,"系统提示")
thisform.Text1.setfocus
return
endif
endif
if empty(a)=.f.
locate for 帐号=a
if .not.eof()
go top
messagebox("不允许有重复的帐号",16,"系统提示")
thisform.Text1.setfocus
return
else
msg=messagebox('确定要添加记录吗?',32+4,'系统提示')
if msg=6
append blank
go bottom
replace 帐号.帐号 with alltrim(thisform.Text1.value),帐号.密码 with ALLTRIM(thisform.Text2.value),帐号.姓名 with alltrim(thisform.Text3.value);
帐号.身份证号 with alltrim(thisform.Text4.value),帐号.联系电话 with ALLTRIM(thisform.Text5.value),帐号.地址 with alltrim(thisform.Text6.value);
帐号.开通时间 with ALLTRIM(thisform.Text7.value),帐号.到期时间 with ALLTRIM(thisform.Text8.value)
messagebox('保存记录成功!',64,'系统提示')
thisform.Text1.value=""
thisform.Text2.value=""
thisform.Text3.value=""
thisform.Text4.value=""
thisform.Text5.value=""
thisform.Text6.value=""
thisform.Text7.value=""
thisform.Text8.value=""
thisform.refresh
endif
endif
else
messagebox('请输入帐号!',16,'系统提示')
endif
错误是类型不匹配(主要是g,h,e三个变量有问题),我不想改数据库(到期和开通时间都是日期型,联系电话是数值型),帮忙改下上面的程序!要过程啊。 展开
b=ALLTRIM(thisform.Text2.value)
c=alltrim(thisform.Text3.value)
d=alltrim(thisform.Text4.value)
e=ALLTRIM(thisform.Text5.value)
f=alltrim(thisform.Text6.value)
g=ALLTRIM(thisform.Text7.value)
h=ALLTRIM(thisform.Text8.value)
if empty(h) &&此条件成立则说明该文本框是空的
messagebox("请输入到期时间",16,"系统提示")
return
else
locate for 到期时间=h
ENDIF
if empty(g) &&此条件成立则说明该文本框是空的
messagebox("请输入开通时间",16,"系统提示")
return
else
locate for 开通时间=g
ENDIF
if empty(f) &&此条件成立则说明该文本框是空的
messagebox("请输入地址",16,"系统提示")
return
else
locate for 地址=f
ENDIF
if empty(e) &&此条件成立则说明该文本框是空的
messagebox("请输入联系电话",16,"系统提示")
return
else
locate for 联系电话=e
ENDIF
if empty(d) &&此条件成立则说明该文本框是空的
messagebox("请输入身份证号",16,"系统提示")
return
else
locate for 身份证号=d
if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的
go top
messagebox("不允许有重复的身份证号",16,"系统提示")
thisform.Text1.setfocus
return
endif
ENDIF
if empty(b) &&此条件成立则说明该文本框是空的
messagebox("请输入密码",16,"系统提示")
return
else
locate for 密码=b
if .not.eof() &&此条件成立,说明要添加的内容和表中有重复的
go top
messagebox("不允许有重复的密码",16,"系统提示")
thisform.Text1.setfocus
return
endif
ENDIF
if empty(c)
messagebox("请输入姓名",16,"系统提示")
return
else
locate for 姓名=c
if .not.eof()
go top
messagebox("不允许有重复的姓名",16,"系统提示")
thisform.Text1.setfocus
return
endif
endif
if empty(a)=.f.
locate for 帐号=a
if .not.eof()
go top
messagebox("不允许有重复的帐号",16,"系统提示")
thisform.Text1.setfocus
return
else
msg=messagebox('确定要添加记录吗?',32+4,'系统提示')
if msg=6
append blank
go bottom
replace 帐号.帐号 with alltrim(thisform.Text1.value),帐号.密码 with ALLTRIM(thisform.Text2.value),帐号.姓名 with alltrim(thisform.Text3.value);
帐号.身份证号 with alltrim(thisform.Text4.value),帐号.联系电话 with ALLTRIM(thisform.Text5.value),帐号.地址 with alltrim(thisform.Text6.value);
帐号.开通时间 with ALLTRIM(thisform.Text7.value),帐号.到期时间 with ALLTRIM(thisform.Text8.value)
messagebox('保存记录成功!',64,'系统提示')
thisform.Text1.value=""
thisform.Text2.value=""
thisform.Text3.value=""
thisform.Text4.value=""
thisform.Text5.value=""
thisform.Text6.value=""
thisform.Text7.value=""
thisform.Text8.value=""
thisform.refresh
endif
endif
else
messagebox('请输入帐号!',16,'系统提示')
endif
错误是类型不匹配(主要是g,h,e三个变量有问题),我不想改数据库(到期和开通时间都是日期型,联系电话是数值型),帮忙改下上面的程序!要过程啊。 展开
1个回答
展开全部
* 这个好办,empty()就不用动了
* 你在给g、h、e赋值的时候,或者在locate搜索时,把格式转换一下即可
* 下面是在赋值时转换,不影响empty()
* 并且这样最好,如果输入错误日期,转换失败判断empty更好
e=ctod(ALLTRIM(thisform.Text5.value))
g=ctod(ALLTRIM(thisform.Text7.value))
h=val(ALLTRIM(thisform.Text8.value))
* 下面是在搜索那里转成:日期型ctod(),数值型val()
if empty(h)
messagebox("请输入到期时间",16,"系统提示")
return
else
locate for 到期时间=ctod(h)
endif
if empty(g) &&此条件成立则说明该文本框是空的
messagebox("请输入开通时间",16,"系统提示")
return
else
locate for 开通时间=ctod(g)
endif
if empty(e) &&此条件成立则说明该文本框是空的
messagebox("请输入联系电话",16,"系统提示")
return
else
locate for 联系电话=val(e)
endif
* 你在给g、h、e赋值的时候,或者在locate搜索时,把格式转换一下即可
* 下面是在赋值时转换,不影响empty()
* 并且这样最好,如果输入错误日期,转换失败判断empty更好
e=ctod(ALLTRIM(thisform.Text5.value))
g=ctod(ALLTRIM(thisform.Text7.value))
h=val(ALLTRIM(thisform.Text8.value))
* 下面是在搜索那里转成:日期型ctod(),数值型val()
if empty(h)
messagebox("请输入到期时间",16,"系统提示")
return
else
locate for 到期时间=ctod(h)
endif
if empty(g) &&此条件成立则说明该文本框是空的
messagebox("请输入开通时间",16,"系统提示")
return
else
locate for 开通时间=ctod(g)
endif
if empty(e) &&此条件成立则说明该文本框是空的
messagebox("请输入联系电话",16,"系统提示")
return
else
locate for 联系电话=val(e)
endif
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询