如何在recordset里按指定条件定位纪录??find方法怎么用?
dim id as integer
dim rs as new adodb.recordset
....
....
id=10
rs.find "id="&id...可是找不到

解决方案 »

  1.   

    不推荐用ADO提供的方法,效率不是很高,建议直接使用SQL语句进行查询,因为其内部也是根据条件转换成SQL语句再执行的.
      

  2.   

    用Filter 试一下
    rs.Filter="id=" & id
      

  3.   

    看看,不知你的具体代码
    Private Sub Command2_Click()
    Dim id As Integer
    Dim rs1 As New adodb.Recordset
    rs1.Open "select * from orders", conn, adOpenDynamic, adLockPessimistic
    id = 3
    rs1.Find "订单号=" & id
    MsgBox rs1.Fields("供应商")
    End Sub
      

  4.   

    dim id as integer
    dim rs as new adodb.recordset
    ....
    ....
    id=10
    if rs.recordcount>0 then
       rs.movefirst
       rs.find "id="&id
       if rs.eof then msgbox "沒有找到符合條件的記錄"
    else
       msgbox "沒有記錄可查找"
    end if
      

  5.   

    用SQL语句进行查询..................
    查询语句:
    mRst.Open "SELECT * FROM tOutput1" & mGetWhere, mConnectString, adOpenKeyset, adLockPessimistic, adCmdText
    查询条件函数:
    Private Function mGetWhere() As String
    Dim mStr As String
        If Chk = 1 Then
            mStr = "日期>= '" & Format(dtpday.Value, "yyyy-mm-dd") & "' and 日期<= '" & Format(dtpday1.Value, "yyyy-mm-dd") & "'"
        End If
        '按单号查询
        If TextDH.Text <> "" Then
            If mStr = "" Then
                mStr = "单号 LIKE '" & "%" & TextDH.Text & "%'"
            Else
                mStr = mStr & " AND 单号 LIKE '" & "%" & TextDH.Text & "%'"
            End If
        End If
        '按供应商查询
        If IcbGhdw.Text <> "" Then
             If mStr = "" Then
                 mStr = "外部购货单位 LIKE '" & "%" & IcbGhdw.Text & "%'"
             Else
                 mStr = mStr & " AND 外部购货单位 LIKE '" & "%" & IcbGhdw.Text & "%'"
             End If
        End If
        If Text1.Text <> "" Then
            If mStr = "" Then
                mStr = "合同号 LIKE'" & "%" & Text1.Text & "%'"
            Else
                mStr = mStr & "AND 合同号 LIKE '" & "%" & Text1.Text & "%'"
            End If
        End If
        If IcbQf.Text <> "" Then
            If mStr = "" Then
                mStr = "内部购货单位 LIKE'" & "%" & IcbQf.Text & "%'"
            Else
                mStr = mStr & "AND 内部购货单位 LIKE'" & "%" & IcbQf.Text & "%'"
            End If
        End If
        If icbCK.Text <> "" Then
            If mStr = "" Then
                mStr = "出库车间 LIKE'" & "%" & icbCK.Text & "%'"
            Else
                mStr = mStr & "AND 出库车间 LIKE'" & "%" & icbCK.Text & "%'"
            End If
        End If
        mGetWhere = IIf(Trim(mStr) = "", "", " WHERE " & mStr)
    End Function