错哪了,very急!!!

turbotarzan 2002-10-03 04:39:22
select book
x=thisform.pageframe1.page1.combo1.value
if x="图书编码"
select bm as 图书编码 ;
from book;
into cursor biao;
where at(thisform.pageframe1.page1.text.value,bm)<>0
thisform.pageframe1.page1.grid1.recordsource='biao'
endif
为什么这样也不能模糊查找

还有怎样作可以实现在选了combo1中的一个字段,在表单上显示相应的文本框而不相干的就隐藏掉。
...全文
43 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
turbotarzan 2002-10-06
  • 打赏
  • 举报
回复
谢了
turbotarzan 2002-10-05
  • 打赏
  • 举报
回复
是不是就是
如果在form的init事件里加public ctextvalue ctextvalue=''了
就可以直接set filt to bm=thisform.text1.value
而不用set filt to bm=allt(thisform.text1.value)了
也不用ctextvalue=allt(thiform.text1.value) selt tablename set filt to =ctextvalue了

流星尔 2002-10-05
  • 打赏
  • 举报
回复
不是这个意思。allt()是肯定要的。为了避免有空格,而造成不匹配。

如果不public。
那么set filt to bm=allt(thisform.text1.value)
是可以的。
但如果把文本框中的值先赋给一个变量。然后set filt to bm=该变量时,该变量就存在生命期问题。

如果public的话,就用变量替代文本框中的值也没事。
流星尔 2002-10-05
  • 打赏
  • 举报
回复
把grid1的readonly属性设为真。
加上public是因为。如果一个变量在set filt to会存在生命期的问题。运行中有时会出现找不到该变量的问题。如果直接set filt to bm=allt(thisform.text1.value)就不存在此问题。但如果ctextvalue=allt(thisfomr.text1.value) sele tablename set filt to bm=ctextvalue则就有此问题。
turbotarzan 2002-10-04
  • 打赏
  • 举报
回复
可以的很成功
但是where at(thisform.pageframe1.page1.text.value,bm)<>0为什么不可以
而这样
select 1
use 图书详情
sele 2
use 作者详情
select 图书名,作者名,图书类型,图书单价,出版社,入库时间,库存量;
from 图书详情,作者详情;
into cursor biao;
where at(thisform.pageframe1.page2.text1.value,图书名)<>0
sele 1
use
sele 2
use
thisform.grid1.recordsource='biao'
thisform.grid1.recordsourcetype=1
*thisform.pageframe1.page2.text1.value=''
却可以
这和我写的楼顶的那段有什么区别吗?

流星尔 2002-10-04
  • 打赏
  • 举报
回复
上面的代码就可以模糊查询
turbotarzan 2002-10-04
  • 打赏
  • 举报
回复
还有
为什么要在form的init事件里加public ctextvalue ctextvalue=''

turbotarzan 2002-10-04
  • 打赏
  • 举报
回复
试过了
要这样
ctextvalue=allt(thisform.pageframe1.page1.text1.value)
否则差不出
查找终于搞定了
谢谢各位!
不过这样查出来的数据可以直接改,不太好吧
怎样可以只看不能改

vfp_database 2002-10-04
  • 打赏
  • 举报
回复
TO:turbotarzan(忍着阿雷)
liujianjun_(流星尔) 给出的方案不能实现你的要求吗???
流星尔 2002-10-04
  • 打赏
  • 举报
回复
你所说的查询结果表也没有,那是因为你的表格绑定不对。数据已经出来了。
你把表格跟books绑定就行了。
你的方法很浪费效率。因为要重新生成数据源。
turbotarzan 2002-10-04
  • 打赏
  • 举报
回复
按错按钮了,还以为可以了
liujianjun_(流星尔) 的代码运行后,表单上连查询结果表都没有啊
我用
select bm as 图书编码;
from book;
into cursor biao;
where bm like thisform.pageframe1.page1.text.value
可以查但是要用通配符%

在网上下载了一个源代码它的模糊查询
就是用where at(thisform.pageframe1.page1.text.value,bm)<>0的

可是奇怪的是我照搬他的就不行
我在他的查询表单上把对应查询的文本框删了,再在上面自己添一个,运行,他的也不能模糊查询了

难道关键是在文本框?
turbotarzan 2002-10-03
  • 打赏
  • 举报
回复
我要用SQL做模糊查询
谁会
流星尔 2002-10-03
  • 打赏
  • 举报
回复
把上面的代码改以下。
select book
ctextvalue=thisform.pageframe1.page1.text1.value
x=thisform.pageframe1.page1.combo1.value
if x="图书编码"
set filt to ctextvalue$bm
endif

if x='图书名称'
set filt to ctextvalue$mc
endif

thisform.refresh

在form的init事件public ctextvalue
ctextvalue=''

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧