回 帖 发 新 帖 刷新版面

主题:关于缩小查询范围的问题?

在表单上有一个text,用于输入查询关键字,有一个check在结果中搜索,如何实现在已经产生的临时表中继续搜索适合自己的结果
以下是我的代码,但是在查了第一次后,划了在结果中搜索,点击查找却不能达到在已搜到的结果继续搜索,也就是呀达到不断缩小搜索范围的目的,不知道有没有好的办法?谢谢老师!
IF thisform.check1.Value=0
          cSearch=ALLTRIM(thisform.text1.value)
          SELECT * FROM btyszwzy WHERE 种形态特征 like "%&cSearch%" INTO CURSOR curtemp
          SELECT curtemp
          thisform.grid1.RecordSource='curtemp'
          thisform.text2.Value=RECCOUNT()
          thisform.refresh
      ELSE
          SELECT * FROM curtemp WHERE 种形态特征 like "%&cSearch%" INTO CURSOR curtemp1
          SELECT curtemp1
          thisform.grid1.RecordSource="curtemp1"
          thisform.text2.Value=RECCOUNT()   
          thisform.refresh  
       endif

回复列表 (共3个回复)

沙发

從你的代碼可以看出

你的查詢步驟應該如下:
1. 初始時thisform.check1.Value=0
2. 首先從btyszwzy主表查大范圍資料,存入到臨時表curtemp
3. 將thisform.check1.Value=1
4. 繼續縮小查找范圍時:執行ELSE,從第一步臨時表curtemp中查資料,存入到臨時表curtemp1中
5. thisform.check1.Value=1的情況下繼續縮小查找范圍.(依你的思路此步你希望從curtemp1中查找資料,但實際你是從curtemp中查找資料的)

所以你的程式只能縮小查詢一次,再一次時就不會達到預期的效果了。

給你如下建議:
在初始時
public grd_tbl
grd_tbl = 'btyszwzy'

IF thisform.check1.Value=0
    TMP_TBL = SYS(2015)
    cSearch=ALLTRIM(thisform.text1.value)
    SELECT * FROM btyszwzy WHERE 种形态特征 like "%&cSearch%" INTO CURSOR &TMP_TBL
    SELECT &TMP_TBL
    thisform.grid1.RecordSource= TMP_TBL 
    grd_tbl = TMP_TBL
    thisform.text2.Value=RECCOUNT()
    thisform.refresh
ELSE
    TMP_TBL = SYS(2015)
    SELECT * FROM &grd_tbl WHERE 种形态特征 like "%&cSearch%" INTO CURSOR &TMP_TBL
    SELECT &TMP_TBL
    thisform.grid1.RecordSource= TMP_TBL
    grd_tbl = TMP_TBL
    thisform.text2.Value=RECCOUNT()   
    thisform.refresh  
ENDIF

板凳

不行啊,没反应啊!

3 楼

thisform.refresh
換成
thisform.grid1.refresh
看看

我来回复

您尚未登录,请登录后再回复。点此登录或注册