把上面的代码改以下。
select book
ctextvalue=thisform.pageframe1.page1.text1.value
x=thisform.pageframe1.page1.combo1.value
if x="图书编码"
set filt to ctextvalue$bm
endifif x='图书名称'
set filt to ctextvalue$mc
endif
thisform.refresh在form的init事件public ctextvalue
ctextvalue=''
select book
ctextvalue=thisform.pageframe1.page1.text1.value
x=thisform.pageframe1.page1.combo1.value
if x="图书编码"
set filt to ctextvalue$bm
endifif x='图书名称'
set filt to ctextvalue$mc
endif
thisform.refresh在form的init事件public ctextvalue
ctextvalue=''
解决方案 »
- 如何合并如下两个表?(重排)
- 关于SQL Server事务处理的一系列问题。我分有多,只要能给出详细答案,我愿按字算分。(2)
- SQL Server 行变列
- 在 MS SQL SERVER 中有没有可以将OUT类型的变量输出到屏幕的东东
- 有没有办法加密储存过程
- 选择存储过程还是函数,大家给个建议?
- 如何获得数据库中的表,要表名(在线)
- 有没有一款工具可以,例如输入“李明”选好sql数据库,按搜索,就能列出含有“李明”数据的表?
- 我的这个视图在 mssql 中查处的记录集怎么和在asp中的不一样!我快发疯了
- 急!高手请进!
- 留名,有分送!!!!!!!
- 请教:Informix数据库存储过程中TEXT数据类型的问题
谁会
liujianjun_(流星尔) 给出的方案不能实现你的要求吗???
但是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的可是奇怪的是我照搬他的就不行
我在他的查询表单上把对应查询的文本框删了,再在上面自己添一个,运行,他的也不能模糊查询了难道关键是在文本框?
你把表格跟books绑定就行了。
你的方法很浪费效率。因为要重新生成数据源。
要这样
ctextvalue=allt(thisform.pageframe1.page1.text1.value)
否则差不出
查找终于搞定了
谢谢各位!
不过这样查出来的数据可以直接改,不太好吧
怎样可以只看不能改
为什么要在form的init事件里加public ctextvalue ctextvalue=''
加上public是因为。如果一个变量在set filt to会存在生命期的问题。运行中有时会出现找不到该变量的问题。如果直接set filt to bm=allt(thisform.text1.value)就不存在此问题。但如果ctextvalue=allt(thisfomr.text1.value) sele tablename set filt to bm=ctextvalue则就有此问题。
如果在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了
那么set filt to bm=allt(thisform.text1.value)
是可以的。
但如果把文本框中的值先赋给一个变量。然后set filt to bm=该变量时,该变量就存在生命期问题。如果public的话,就用变量替代文本框中的值也没事。