如何实现在结果中再查询?

winyhuang 2003-08-22 10:06:21
比如我第一次输入一个关键字,想再缩小范围,在现在的结果中再按另一个关键字查询。我想到用FILTER,可是FILTER好像不能多次使用的吧?
我想最好能做到无限次再查询。
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xayzmb 2003-08-22
  • 打赏
  • 举报
回复
如此就相当于在第一个查询的基础上执行第二个查询.
xayzmb 2003-08-22
  • 打赏
  • 举报
回复
dim strwhere as string '保存查询条件
dim strSQL as string '保存SQL语句
strSQL = "select * from tableName where "
'当产生第一个条件时
strwhere = " 字段1 = 条件1"
strSQL = strSQL & strwhere
'执行strSQL查询语句
'.............
'...............
'当产生第二个条件时
strwhere = strwhere & " and 字段2 = 条件2"
strSQL = strSQL & strwhere
'执行strSQL查询语句
...............
..........
以此类推
可以有N个条件
ok?
道素 2003-08-22
  • 打赏
  • 举报
回复
这是自己写的函数
Private Sub Multi_Find(ByRef oRs As ADODB.Recordset, sCriteria As String, isNullData As Boolean)

Dim clone_rs As ADODB.Recordset
If isNullData Then Exit Sub
Set clone_rs = oRs.Clone

clone_rs.Filter = adFilterNone
clone_rs.Filter = sCriteria

If clone_rs.EOF Or clone_rs.BOF Then
oRs.MoveLast
oRs.MoveNext
Else
oRs.Bookmark = clone_rs.Bookmark
End If

clone_rs.Close
Set clone_rs = Nothing
End Sub
zhenglc 2003-08-22
  • 打赏
  • 举报
回复
用filter

rs.filter = "xxx='xxx'"

再查询
rs.filter = "xxx='xxx'" & "yyy='yyy'"
winyhuang 2003-08-22
  • 打赏
  • 举报
回复
大概是这个意思。可是如果我再查询这个操作执行三次的话,那你上面的这个SQL不就长得......。
我现在想只能用select name from student where xxx
如果再查询的话呢,就加上条件 and xx
select name from student where xxx and xx。
不过这样的话每次我都要打开recordset,执行rs.open "select ......"
我本想能不能做到就打开一次rs,然后通过某种手逐渐减少rs中的记录。
达到再查询的目的。
qingming81 2003-08-22
  • 打赏
  • 举报
回复
.filter可以多次使用,使用后再设置 .filter = 0,则还原。
jornet 2003-08-22
  • 打赏
  • 举报
回复
sql="select name from student where studentid in( select studentid from class where class='99516'"
不知道是不是这个意思

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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