sql="select name from student where studentid in( select studentid from class where class='99516'" 不知道是不是这个意思
.filter可以多次使用,使用后再设置 .filter = 0,则还原。
大概是这个意思。可是如果我再查询这个操作执行三次的话,那你上面的这个SQL不就长得......。 我现在想只能用select name from student where xxx 如果再查询的话呢,就加上条件 and xx select name from student where xxx and xx。 不过这样的话每次我都要打开recordset,执行rs.open "select ......" 我本想能不能做到就打开一次rs,然后通过某种手逐渐减少rs中的记录。 达到再查询的目的。
不知道是不是这个意思
我现在想只能用select name from student where xxx
如果再查询的话呢,就加上条件 and xx
select name from student where xxx and xx。
不过这样的话每次我都要打开recordset,执行rs.open "select ......"
我本想能不能做到就打开一次rs,然后通过某种手逐渐减少rs中的记录。
达到再查询的目的。
rs.filter = "xxx='xxx'" & "yyy='yyy'"
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.Book = clone_rs.Book
End If
clone_rs.Close
Set clone_rs = Nothing
End Sub
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?