如何实现以下功能,谢谢:
    窗体中有一个文本框,在文本框内输入内容即进行数据库查询。如:输入“a”,就可查询到数据库中以“a”开头的前十个单词,继续输入“ab”,就可查询到数据库中以“ab”开头的前十个单词。当输入完毕时,如果输入的内容和数据库查询到的内容完全匹配,那么将当前输入的内容在文本框中以大小写形式显示,查询不到则已全小写形式显示。
    如果想查询更多内容,则以空格分割。格式如下:“About w”,当前数据库查询的结果是显示以“w”开头的前十个单词。

解决方案 »

  1.   

    1.先将输入查询的内容进行分割开存入数组作为查询条件
    2.如果你不指定表中的某几个进行查找那就用遍历字段组成查询条件为NewSQL(where 字段 like '条件%')
    3.语句
    select * top 10 from 表 NewSQL
    余下的就自己解决吧。
      

  2.   

    我的问题不是数据库链接和查询语句,而是当输入一个单词结束后后,如果输入的内容和数据库查询到的内容完全匹配,那么将当前输入的内容在文本框中以大小写形式显示,查询不到则已全小写形式显示。 如果继续查询,则以空格分割。格式如下:“About w”,当前数据库查询的结果是显示以“w”开头的前十个单词。也就是输入一个字符就会进行一次查询。因为不知道下一个字符会是什么。
      

  3.   

    Private Sub Text1_Change()
        Static bChangeByCode As Boolean
        Dim lTextLen As Long, lPos As Long
        Dim sWord As String
        
        If bChangeByCode Then Exit Sub
        
        With Text1
            lTextLen = Len(.Text)
            If lTextLen = 0 Then Exit Sub
            If .SelStart <> lTextLen Then Exit Sub '只处理在末尾输入的情况
            
            '取最后一个单词
            lPos = InStrRev(.Text, " ")
            sWord = Mid$(.Text, lPos + 1)
            
            '根据是否存在格式化大小写
            If 在数据库中存在(sWord) Then
                sWord = UCase$(Left$(sWord, 1)) & LCase$(Mid$(sWord, 2))
            Else
                sWord = LCase$(sWord)
            End If
            bChangeByCode = True
            .SelStart = lPos
            .SelLength = Len(sWord)
            .SelText = sWord
            bChangeByCode = False
        End With
    End Sub
      

  4.   

    你的需要属于模糊查询的范畴,使用SQL结构化查询语句可达要求SQL = "select Name from b1 Where Name Like'" & Text1 & "%' order by name"详细的讨论可参阅http://iask.sina.com.cn/browse/browse_detail.php?qid=1758202的讨论。