| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:有关“查询”代码的问题
只看楼主 加入收藏
comfortable
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-7-7
收藏
 问题点数:0 回复次数:6 
有关“查询”代码的问题
数据库表中有发票起号和发票止号两项,输入中间号码查询信息,以下是我写的“查询”click代码,但执行以后查不出来,麻烦大侠们帮忙修改一下,谢谢
t1=alltrim(thisform.text1.value)
t1=val(t1)
loca for t1>=val(发票起号) and t1<=val(发票止号)
if found()
  sele * from 发票信息 where t1>=val(发票起号) and t1<=val(发票止号) into cursor "temp"
  thisform.grid1.recordsource="temp"
 else
  messagebox("未找到相关记录!",64,"提示")
endif
搜索更多相关主题的帖子: 数据库 号码查询 
2011-07-08 21:17
ptyy803
Rank: 2
来 自:上海
等 级:论坛游民
威 望:2
帖 子:193
专家分:64
注 册:2009-6-11
收藏
得分:0 
查询号码应该有两项,一个是起始号,一个是终止号
cNo1=alltrim(thisform.text1.value)    && 发票起号
cNo2=alltrim(thisform.text2.value)    && 发票止号
loca for 发票起号>=cNo1.and.发票止号<=cNo2
if found()
  sele * from 发票信息 where 发票起号>=cNo1.and.发票止号<=cNo2 into cursor "temp"
  thisform.grid1.recordsource="temp"
else
  messagebox("未找到相关记录!",64,"提示")
endif
如果发票号码是数值型,号码变量可转换成数值型,也可将thisform.text1.value本身就设置成数值型的
如字段是数字型就写成: cNo1=alltrim(thisform.text1.value)   cNo2=alltrim(thisform.text2.value)
如字段是字符型就写成: cNo1=Val(alltrim(thisform.text1.value))   cNo2=Val(alltrim(thisform.text2.value))

2011-07-20 18:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1樓從程序設計和代碼都有很多問題。“查不出來”是怎麽個現象?

授人以渔,不授人以鱼。
2011-07-20 22:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我高度懷疑他的所謂查不到,是工作區混亂造成的。locate之前不選定工作區,就敢locate,對哪個表locate?生成了cursor臨時表,你知道VFP轉移了工作區了沒有,下一次還不選工作區做locate,你確保仍然在“發票信息”表上操作?

授人以渔,不授人以鱼。
2011-07-22 15:02
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
1。一般来说,程序在 sele * from 发票信息 where t1>=val(发票起号) and t1<=val(发票止号) into cursor "temp"  语句执行后,工作区就把 temp 所在区作为当前工作区。那么继续 locate ,就不会在含有全部發票信息的数据库表中查询,就会出错。因此在 loca for t1>=val(发票起号) and t1<=val(发票止号) 语句前必须加 SELE 数据库表 语句,確保在“發票信息”表上操作。

2。sele * from 发票信息 where t1>=val(发票起号) and t1<=val(发票止号) into cursor "temp"  语句执行后,会覆盖曾经有的 temp ,会造成 grid1 显示出错。因此必须在
if found() 语句后加上 thisform.grid1.recordsource="" 语句,然后在 sele * from 发票信息 where t1>=val(发票起号) and t1<=val(发票止号) into cursor "temp" 后执行
thisform.grid1.recordsource="temp" 语句,并且加上 thisform.grid1.REFRESH 语句保证正确显示查询内容。

仅供参考。



 
2011-07-23 08:36
hdlxdl
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2011-6-13
收藏
得分:0 
我觉得首先要理顺关系
语句where t1>=val(发票起号) and t1<=val(发票止号) 中
左边应是数据表中发票日期的字段名。
右边则是发票起和止的日期t1,t2,发票起止日期是用户检索的要求,在检索前,用户需要先输入这两个日期
2011-07-25 08:31
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:0 
以上各位可能都忽略了一个重要问题,就是 and 的两边不能同时出现等号。
2011-07-26 14:06
快速回复:有关“查询”代码的问题
数据加载中...
 
   



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

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