错哪了,very急!
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中的一个字段,在表单上显示相应的文本框而不相干的就隐藏掉。
把上面的代码改以下。
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=''
可以的很成功
但是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=''
却可以
这和我写的楼顶的那段有什么区别吗?
按错按钮了,还以为可以了
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的
可是奇怪的是我照搬他的就不行
我在他的查询表单上把对应查询的文本框删了,再在上面自己添一个,运行,他的也不能模糊查询了
难道关键是在文本框?
是不是就是
如果在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了
不是这个意思。allt()是肯定要的。为了避免有空格,而造成不匹配。
如果不public。
那么set filt to bm=allt(thisform.text1.value)
是可以的。
但如果把文本框中的值先赋给一个变量。然后set filt to bm=该变量时,该变量就存在生命期问题。
如果public的话,就用变量替代文本框中的值也没事。