建一个表单如下...但是运行表单后,每次库指针都会停在库底

alkal 2004-10-06 07:16:08
建一数据表:信息表.dbf ,内含车牌号与驾驶员两个字段。
表单中text1、text2两个文本框的ControlSource分别等于信息表中的车牌号与驾驶员字段。
当在text3文本框中输入一个车牌号,然后单击Command1按钮,实现定位功能,并将有关信息显示在text1、text2两个文本框内。
在Command1按钮Click事件中,我编写如下代码:
Scan for 车牌号=thisform.text3.value
Thisform.text3.value=””
Thisform.refresh
Endscan
但是运行表单后,每次库指针都会停在库底,并不能定位到所寻车牌号,请指点迷津,谢谢!
...全文
76 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
十豆三 2004-10-10
  • 打赏
  • 举报
回复
dfwxj(清风) 的方法就可以了。
淡蓝冰 2004-10-07
  • 打赏
  • 举报
回复
非常同意上面的說法
yestoyes 2004-10-06
  • 打赏
  • 举报
回复
你的命令用得不是地方,scan.....endscan是循环命令,而你此时实际上需要的是定位,所以
应该是类似如下的代码:
LOCATE FOR 车牌号=ALLTRIM(thisform.text3.value)
IF FOUND()
thisform.text1.value=车牌号
thisform.text1.value=驾驶员
ELSE
MESSAGEBOX("对不起!找不到相应的车牌号。")
ENDIF
zhaoshaom 2004-10-06
  • 打赏
  • 举报
回复
上同,因为SCAN
ENDSCAN
总是循环到最后的,
你可以用
set order to 车牌号
if seek(text3.value)
Thisform.text3.value= 表.车牌号
Thisform.refresh

endif
dfwxj 2004-10-06
  • 打赏
  • 举报
回复
很奇怪,在这里为什么要用SCAN?况且这里扫描的记录永远只有一条

SCAN每次运行结果都是要停在表底的,代码应修改如下:

loca for allt(车牌号)==allt(thisform.text3.value)
thisform.text3.value=''
thisform.refresh

要想提高速度就用索引再SEEK
LAIYANGPJ 2004-10-06
  • 打赏
  • 举报
回复
SCAN
<命令语句组>
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文件
记录完为止。





LAIYANGPJ 2004-10-06
  • 打赏
  • 举报
回复
你该好好看一下SCAN FOR .....ENDSCAN条件语句.
相关推荐
发帖
VFP

2573

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2004-10-06 07:16
社区公告
暂无公告