注册 登录
编程论坛 VFP论坛

VFP返回按钮中的报错求解

talkrobin 发布于 2022-05-27 17:16, 2178 次点击
返回命令按钮click 代码
thisform.release  *这行懂
sele 学生选课     *这行懂
dele all for 课程编号=space(7) and 成绩=0  * 这行不是最理解.请大神解释一下.
close data   *这行懂  


第一个问题求解第三行意思
第二个问题是  点击返回按钮 后报错怎么解决
求解以上2个问题

程序错误 窗口
操作符/操作数类型不匹配。
取消C)   挂起(S)  忽略(I)  帮助(H)

只有本站会员才能查看附件,请 登录
18 回复
#2
my23182022-05-27 18:49
删除所有课程编码为7个空格且成绩为0的记录
#3
my23182022-05-27 18:52
错误问题,自己看看允许到哪里报的错,不会用调试器可以在语句间加wait
#4
talkrobin2022-05-27 19:28
以下是引用my2318在2022-5-27 18:52:36的发言:

错误问题,自己看看允许到哪里报的错,不会用调试器可以在语句间加wait


已加wait ,看来是第三行有问题

thisform.release
select 学生选课
delete all for 课程编号 = space(7) and 成绩 = 0
wait
close data

就是第三行不知道哪里错了
#5
laowan0012022-05-27 20:31
delete all for 课程编号 = space(7)
delete all for 成绩 = 0
看看这两句哪个报错
(课程编号是字符型还是数字型?)
#6
talkrobin2022-05-27 20:35
以下是引用laowan001在2022-5-27 20:31:36的发言:

delete all for 课程编号 = space(7)
delete all for 成绩 = 0
看看这两句哪个报错
(课程编号是字符型还是数字型?)

-----------------------------

字段类型:
课程编号  字符型  7
成绩   数值型   3
#7
laowan0012022-05-27 20:38
delete all for 课程编号 = space(7)
改成
delete all for empty(课程编号)
试试
#8
talkrobin2022-05-28 12:27
以下是引用laowan001在2022-5-27 20:38:34的发言:

delete all for 课程编号 = space(7)
改成
delete all for empty(课程编号)
试试


感谢已经解决了,感谢提醒.
#9
laowan0012022-05-28 17:45
楼主用的是vfp9吗?
#10
talkrobin2022-05-28 21:26
以下是引用laowan001在2022-5-28 17:45:03的发言:

楼主用的是vfp9吗?


目前使用的是VFP6中文版
#11
talkrobin2022-05-28 21:45
输入如下过程代码:
set talk off
set filter to
calculate avg(成绩) to c1
calculate avg(成绩) for 性别="男" to c2
calculate avg(成绩) for 性别="女" to c3
calculate avg(成绩) for 班级简称="02会计"  to c4
calculate avg(成绩) for 班级简称="02工商"  to c5
calculate avg(成绩) for 班级简称="02国贸" to c6
thisform.pageframe1.page1.text1.value=c1
thisform.pageframe1.page1.text2.value=c2
thisform.pageframe1.page1.text3.value=c3
thisform.pageframe1.page1.text4.value=c4
thisform.pageframe1.page1.text5.value=c5
thisform.pageframe1.page1.text6.value=c6
这个代码检查了几次, 运行后程序错误 提示非数值表达式。
及其page1 和page2 任意切换内容一样,加label 或text 有问题
下方2个录制错误视频,请查阅
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

请看到的大神们告知原因.
#12
my23182022-05-28 21:50
用type()看看c1到c6是啥类型,一般text控件的值为字符型
#13
talkrobin2022-05-28 21:53
回复 12楼 my2318
c1 --   c6   没有设置字符类型的
#14
laowan0012022-05-29 10:00
以下是引用talkrobin在2022-5-28 21:26:28的发言:



目前使用的是VFP6中文版

还是用VFP9吧
#15
talkrobin2022-05-29 19:55
以下是引用laowan001在2022-5-29 10:00:06的发言:


还是用VFP9吧


行,我试试,看看运行情况.
#16
talkrobin2022-05-30 10:19
以下是引用laowan001在2022-5-29 10:00:06的发言:


还是用VFP9吧



此案例的代码都是用6.0开发的.


我已经安装使用了9.0 运行后的问题还是一样

运行后程序错误: [提示非数值表达式]。
#17
laowan0012022-05-30 11:54
以下是引用talkrobin在2022-5-30 10:19:27的发言:




此案例的代码都是用6.0开发的.


我已经安装使用了9.0 运行后的问题还是一样

运行后程序错误: [提示非数值表达式]。

既然已经明确是什么错误了,那就检查c1~c6的值吧
messagebox(c1)
messagebox(c2)
...
messagebox(c6)
我怀疑有NULL值
#18
gs25367856782022-05-30 13:37
VFP返回按钮中的报错求解
返回命令按钮click 代码
thisform.release  *这行懂
sele 学生选课     *这行懂
dele all for 课程编号=space(7) and 成绩=0  * 这行不是最理解.请大神解释一下.
close data   *这行懂

一般地说,thisform.release 要放到最后。
#19
talkrobin2022-05-31 10:55
以下是引用gs2536785678在2022-5-30 13:37:19的发言:

VFP返回按钮中的报错求解
返回命令按钮click 代码
thisform.release  *这行懂
sele 学生选课     *这行懂
dele all for 课程编号=space(7) and 成绩=0  * 这行不是最理解.请大神解释一下.
close data   *这行懂

一般地说,thisform.release 要放到最后。



------------------
非常感谢指导.
特别是"一般地说,thisform.release" 要放到最后 这句提醒,
1