Private Sub Command2_Click()
Dim strfind As String
strfind = InputBox("输入要查询的名称", "查询")
strfind = "*" + strfind + "*"
If rs.State <> adStateClosed Then rs.Close
rs.Open "select * from note1 where 名称 like " + """+ strfind+""", conn
MsgBox rs.RecordCountIf rs.RecordCount = 0 Then
MsgBox "没有找到strfind", vbOKOnly
Else
Text1(0).Text = Trim(rs.Fields(0).Value) ' rs("名称")‘DEBUG在这行报错(3021)
Text1(1).Text = rs("注释")
Text1(2).Text = rs("内容")
End Ifrs.Close
End Sub
请问要模糊查询一个字段的内容怎么写语句?
如何把符合要求的记录的所有项保存到变量?如何每条都读到?如果没有查到记录如何得知?
最好有代码,容易看一些

解决方案 »

  1.   

    strfind = "*" + strfind + "*" ?
    我认为strfind = "%" + strfind + "%"比较好一些!查询到的记录你可以保存在记录集中不可以吗?if rs.RecordCount=0 then msgbox "没有找到记录"不知道我写的是不是你要的问题答案!祝你成功!
      

  2.   

    我用改了。问题没能解决,”查询到的记录你可以保存在记录集中不可以吗?“
    我是个新手,请问是再创建一个recordset吗?set rs1=new adodb.recordset?谢谢
      

  3.   

    //我认为strfind = "%" + strfind + "%"比较好一些!
    我认为strfind = "% " + strfind + " %"比较好一些!
    是不是通配符和关键字之间要加个空格。
      

  4.   

    我认为strfind = "%" & strfind & "%"比较好一些!
    注意 &符号两侧都要有空格的!
    rs.Open "select * from note1 where 名称 like " + """+ strfind+""", conn这样你就可以打开一个记录集了,所查询到几记录都保存在里面了!
      

  5.   

    无效的。rs.recordcount=-1的
    如何判断open方法成功与否?
      

  6.   

    Private Sub Command2_Click()
        Dim strfind As String
        strfind = InputBox("输入要查询的名称", "查询")
        If rs.State <> adStateClosed Then rs.Close
        rs.Open "select * from note1 where 名称 like '%" & strfind & "%'",conn,adopenkeyset,adlockreadonly
        MsgBox rs.RecordCount
        If rs.RecordCount = 0 Then
            MsgBox "没有找到strfind", vbOKOnly
        Else
            Text1(0).Text = Trim(rs.Fields(0).Value)  & ""
            Text1(1).Text = rs("注释") & ""
            Text1(2).Text = rs("内容") & ""
        End If    rs.Close
    End Sub
      

  7.   

    还是无法有效的得到符合条件的数据记录。
    我的程序如下:请看看我错在那里了??Private conn As ADODB.Connection
    Private rs As ADODB.RecordsetPrivate Sub Command2_Click()
    Dim strfind As String
    strfind = InputBox("输入要查询的名称", "查询")
    strfind = "%" + strfind + "%"
    If rs.State <> adStateClosed Then rs.Close
    rs.Open "select * from note1 where 名称 like " + """+ strfind+""", conn
    MsgBox rs.RecordCountIf rs.RecordCount = 0 Then
    MsgBox "没有找到strfind", vbOKOnly
    Else
    Text1(0).Text = Trim(rs.Fields(0).Value) & ""
    Text1(1).Text = rs("注释") & ""
    Text1(2).Text = rs("内容") & ""
    End If
    rs.Close
    End SubPrivate Sub Form_Load()
    Dim strdatapath As String
    Dim strdbsource As String
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & App.Path & "\mytestdb.mdb" + ";Persist Security Info=False"End Sub
      

  8.   

    Dim strfind As String
    strfind = InputBox("输入要查询的名称", "查询")
    if strfind = "" then exit sub
    If rs.State <> adStateClosed Then rs.Close
    rs.Open "select * from note1 where 名称 like '%"& strfind &"%'"& _
           ,conn, adOpenKeyset, adLockOptimistic
      

  9.   

    xie谢谢了。问题解决!!vbman2003(家人) 好样的!