| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:代码运行出错了!
只看楼主 加入收藏
seabreay
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-1-3
收藏
 问题点数:0 回复次数:7 
代码运行出错了!
use \图书管理系统\读者情况表.DBF
dimension a(9999)
for i=1 to 9999
go 1
store 借书证号 to a(i)
endfor
if a==alltrim(thisform.text3.value)
alltrim(thisform.text3.value)
else
nAnswer=messagebox("读者不存在,请添加读者!",42,"错误信息")
endif
cancel
以上是我在 text1 的 vald 属性里面添加的代码,但是我一运行就出错我实在是找不是错误的原因!
还请各位看看到底是错在哪里!先谢过了!
为什么我输入了正确的借书证号还是会弹出"读者不存在,请添加读者!"的提示信息呢?
搜索更多相关主题的帖子: 代码 运行 
2007-01-12 17:47
dragon000211
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-12-11
收藏
得分:0 
你是不是想通过在text1失去焦点前自动在数据库里面查找该读者是否存在,如果是的话,大可不必这样编写代码,使用scan 。。。。。。endscan就行了
2007-01-12 19:15
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
dimension a(9999)
for i=1 to 9999
go 1
store 借书证号 to a(i)
endfor
if a==alltrim(thisform.text3.value)
alltrim(thisform.text3.value)
else
nAnswer=messagebox("读者不存在,请添加读者!",42,"错误信息")
endif
cancel

1、你前面的代码定义的a是数组,而你后面使用的a却是变量。请注意红色标注的代码;
2、alltrim()是消除前后空格的函数,正确用法是:变量名=alltrim(thisform.text3.balue)。请注意蓝色标注的代码;
3、store是将整条记录传递给数组变量,你的第四行应该改为:a(i)=借书证号。

[此贴子已经被作者于2007-1-12 19:30:03编辑过]


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2007-01-12 19:29
seabreay
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-1-3
收藏
得分:0 
我不会用scan.........endscan这种语法结构!
还有我改成
a(i)==alltrim(thisform.text3.value)
以后提示就变成了"下标超界!"能再指教一下是什么问题吗?

[此贴子已经被作者于2007-1-12 19:47:52编辑过]

2007-01-12 19:32
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
你的程序问题较多:
1、你在for....endfor循环中将数据表的第一条记录赋值到a(9999)数组,也就是说,数组中的9999个变量值完全一样。这可能不是你的初衷;
2、你在接下来的代码中并没有重新定义循环变量i值,此时i值在for循环中值仍为9999+1即10000,这就是下标超界的原因。
总之,你的程序流程不清晰,需要改进。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2007-01-12 19:59
seabreay
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-1-3
收藏
得分:0 
a(i)==alltrim(thisform.text3.value)
请问能这个样子数组和输入的值直接进行比较吗?
2007-01-12 21:35
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
(1)在表单的初始化部分打开表(thisform.init),并做相应设置:
use \图书管理系统\读者情况表.DBF
thisform.text3.value=''
thisform.text3.inputmask=replicate("x",len(借书证号))
(2)在text3.valid()里的代码是:
select 读者情况表
locate all for 借书证号=thisform.text3.value
return !eof()

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-01-12 22:45
seabreay
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-1-3
收藏
得分:0 

谢谢版主提示,做出来了我看了好久的书,问了好多人都没做出来!太谢谢您啦!
2007-01-12 23:03
快速回复:代码运行出错了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063831 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved