标题:代码运行出错了!
只看楼主
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
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册: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. 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
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
你的程序问题较多:
1、你在for....endfor循环中将数据表的第一条记录赋值到a(9999)数组,也就是说,数组中的9999个变量值完全一样。这可能不是你的初衷;
2、你在接下来的代码中并没有重新定义循环变量i值,此时i值在for循环中值仍为9999+1即10000,这就是下标超界的原因。
总之,你的程序流程不清晰,需要改进。

活到老,学到老! http://www. 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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115646-1-1.html




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

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