热情软件屋

 

怎样查找多重条件的记录


编号:QA004199
建立日期: 2001年5月14日 最后修改日期:2002年3月21日
所属类别:

侯延松:
    本问题涉及的操作系统 Windows
    本问题涉及的编程工具 VB6.0
    遇到的问题
    我看过很多关于查询的例子,比如用seek方法在一个表中查找name是“张三”的记录。我的问题是怎样查找多重条件的记录,比如说查找sex是“male”的,address是“北京”或“上海”的name是“张三”的记录。敬请指教,谢谢。
    你个人的水平:刚入门

回答:

    Seek方法现在很少使用,因为不太方便,需要建立索引。对于多重条件,应该使用FindFirst方法,如:
     strCriteria = "sex = 'male' and (address = '北京' or address = '上海') and name='张三'"
     Data1.Recordset.FindFirst strCriteria
     If Data1.Recordset.NoMatch Then
     MsgBox "没有找到记录"
     Else
     ' 找到其他记录
     Do Until Data1.Recordset.NoMatch
     Debug.Print Data1.Recordset("address")
     Data1.Recordset.FindNext strCriteria
     Loop
     End If
    如果你想使用变量代替上面的“北京”等,可以参考QA000597 "SQL的Select语句中可否使用VB变量"
    
    caozhen的意见:
    如果使用的是access,可以设置多重索引。新建一个索引,这个索引对字段"sex","address"和"name"进行索引。
    在程序中用
    rs.seek "=", "male", '北京',"张三" 'DAO recordset
    Seek方法速度远比Find方法快。
    
    lisle的意见:
    select * from table where field0 = '"& a &"' and field1 = '"& B & "'
    
    cansum的意见:
    filter="sex = 'male' and address = '北京' or address = '上海'and name='张三'" ,再filter="就可以取消筛选。
    
    相关问题:
    QA001557 "ADO的Find方法如何查找同时满足两个条件的记录"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio