首页 > 解决方案 > 使用文本框根据关键字搜索条目(单独实体有多个文本框)并实现组合框

问题描述

我希望能够将关键字输入到文本框中,该文本框将搜索该关键字的记录并根据找到的该词显示报告。

请注意:有多个文本框用于分隔特定信息,因此我需要它来为每个单独的文本框工作。有一个文本框可以根据日期(月/日/年)搜索条目,但我一直遇到它不显示某些日期范围的问题。

我也希望添加一个组合框。

我已经尝试过另一个人给我的代码,但是我在使用普通文本框时遇到的问题是,它要求我输入条目中的所有内容,而不是基于没有弹出的关键字进行搜索当其他条件已经到位时(我知道有一个适合的条目,但由于某种原因,当我添加文本框元素时它不起作用,除非我输入我正在搜索的文本框中的确切条目具体信息来自)。

我一直在尝试查找组合框的信息,但我没有找到任何真正适用于我想做的事情。

Function SelectedItems(objBox As ListBox) As String
    Dim strRtn As String, varItm
    For Each varItm In objBox.ItemsSelected
        strRtn = strRtn & ",'" & objBox.ItemData(varItm) & "'"
    Next varItm
    If strRtn <> vbNullString Then SelectedItems = Mid(strRtn, 2)
End Function
Private Sub Command62_Click()
    Dim strSQL As String
    Dim strArr As String
    Dim varItm

    For Each varItm In Array("District", "Circumstance", "Location", "Method", "Point", "Rank", "Description", "Missing", "IDNumber", "Dateto", "Datefrom", "Address")
        strArr = vbNullString
        Select Case Me.Controls(varItm).ControlType
            Case acListBox
                strArr = SelectedItems(Me.Controls(varItm))
            Case acTextBox
                If Not IsNull(Me.Controls(varItm).Value) Then
                    strArr = "'" & Me.Controls(varItm).Value & "'"
                End If
        End Select
        If strArr <> vbNullString Then
            strSQL = strSQL & "t." & varItm & " in (" & strArr & ") and "
        End If
    Next varItm
    If strSQL <> vbNullString Then strSQL = "where " & Left(strSQL, Len(strSQL) - 5)

    With CurrentDb.QueryDefs("qryMultiselect")
        .SQL = "select * from tblDataEntry t " & strSQL
    End With
    DoCmd.OpenQuery "qryMultiselect"
End Sub

我想要的是能够将我的多选列表框与我的文本框以及我的组合框一起使用。使用所有这些或至少它们的组合,我希望能够对我的数据进行排序,以便能够根据正在查找的内容创建报告。除了确保用户可以自由地不必输入所有字段的信息外,只需输入他们认为需要输入信息的字段。

使用文本框:我希望能够根据与我正在寻找的数据的特定部分相对应的关键字进行搜索,并且能够将其他人留空并能够提取结果。

日期/时间文本框和我的组合框也是如此。

标签: ms-accesscomboboxtextboxvbamulti-select

解决方案


推荐阅读