如题
一:是否已查询出来的结果,是不是我需要的。如果有这条记录就放行,请问后面的代码该如何写?
st = "select * from testpn where userid = ' & txtUserName &  ' and ps =' & txtpassword & ' "
Set rs = New ADODB.Recordset
  'rs.CursorLocation = adUseClient
    rs.LockType = adLockReadOnly
    rs.Open st, con二:我要查询的是二个条件,在FIND中是不允许这样做的,那我该如何才好呢?我要二个条件同时满足才会执行,,请问我该如果写。能不能给我实例给我。。谢谢!!!!
Set rs = New ADODB.Recordset
    
    rs.CursorLocation = adUseClient
    rs.LockType = adLockReadOnly
    rs.Open "testpn", con, 1, 3
    rs.Requery
    rs.MoveFirst
    If rs.EOF = False Then
    rs.Find "userid ='" & txtUserName & "'" [and "userid ='" & txtUserName & "'"]不允许

解决方案 »

  1.   

    一、
    If rs.eof then exit sub
    二、
    rs.filter = "userid ='" & txtUserName & "'" and "userid ='" & txtUserName & "'"
      

  2.   

    To: Tiger_Zhao(VB老鸟)
    第一问,偶都不知道他在说什么,看来是偶的中文水平不行;
    第二问,你肯定错的,Filter也不能双条件,这个偶以前遇到过的。
      

  3.   

    1还是看不懂2Filter可以双条件的from MSDN:使用 Filter 属性可选择性地屏蔽 Recordset 对象中的记录,已筛选的 Recordset 将成为当前游标。这将影响基于当前游标返回值的其他属性,如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount,因为将 Filter 属性设置为特定值可将当前记录移动到满足新值的第一个记录。条件字符串由 FieldName-Operator-Value 格式(如“LastName = 'Smith'”)的子句组成。可以创建用单独的 AND(如“LastName = 'Smith' AND FirstName = 'John'”)或 OR(如“LastName = 'Smith' OR LastName = 'Jones'”)子句连接而成的混合子句。对于条件字符串请遵循以下规则: FieldName 必须为 Recordset 中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。Operator 必须为:<、>、<=、>=、<>、= 或 LIKE。Value 是用于与字段值(如 'Smith'、#8/24/95#、12.345 或 $50.00)进行比较的值。字符串使用单引号而日期使用井号 (#),对于数字,可以使用小数点、货币符号和科学记数法。如果 Operator 为 LIKE,Value 则可使用通配符。只允许使用星号 (*) 和百分号 (%) 通配符,而且必须为字符串的尾字符。Value 不可为 Null。AND 和 OR 在级别上没有先后之分。可使用括号将子句分组。但不能象以下示例那样先将由 OR 联接的子句分组然后将该组用 and 联接到其他子句。
    (LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'与之相反,可以构造如下形式的筛选:
    (LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')
      

  4.   

    谢谢维也纳,是可以用几个条件,但是我查询的结果为空?我的记录里有这个记录,但用指针却没有?能给个代码吗?谢谢    
    rs.Open "testpn", con, 1, 3
        rs.Requery
        rs.MoveFirst
        If rs.EOF = False Then
        rs.Filter = "userid =' “& txtUserName & ” ' and ps='“& txtpassword &”'"
        yy = rs.RecordCount
        xx = rs.AbsolutePosition
        If xx < -1 Then
         MsgBox "无法查找"
         Else
         yy = rs!ps
         End If
        End If
      

  5.   

    接上。。
       1: rs.Filter = "userid='yeling' and ps ='123456 '"(可以查询)
           rs.Filter = "userid='"&txt&"' and ps ='&"txt1 "&'"(不行,变量如何表示?)   2: rs.Open "SELECT * FROM testpn " & "WHERE userid =    '  txtusername  ' And ps = 'txtpassword'", con, adOpenStatic, adLockReadOnly(这个也是,如果改为值便可以,如果用变量也查不到。该怎么表示)
    维也纳,在那里,回答我啊
      

  6.   

    晕,//rs.Filter = "userid =' “& txtUserName & ” ' and ps='“& txtpassword &”'"
    怎么是中文的双引号?英文双引号是字符串的边界,中文双引号是字符//rs.Filter = "userid='"&txt&"' and ps ='&"txt1 "&'"(不行,变量如何表示?)
    &是连接符,两端要有空格,后面的子句不对,双引号的位置错了, 2:里面也写错了
    概念不清啊!
    &是连接符,两端要么是以双引号括起来的字符串,要么是变量,应该这么写:"SELECT * FROM testpn WHERE userid = '" & txtusername & "' And ps = '" & txtpassword & "'"