VBA-多字段下拉框搜索查询

时间:2018-07-08 20:04:58

标签: vba access-vba

我有一个下拉复选框,您可以在其中手动选择要查询的其他选项。

我想做什么:

我想制作一个搜索查询表单,该表单将允许用户从下拉列表中选择多个信息。然后,我解析主表中的特定列以获取此信息。

问题:

我有一个下拉的多字段组合列表,允许用户选择多个选项进行搜索。图片应该更好地展示它: Search Query - Select items you want to search for

我不知道如何在SQL查询中使用“技术”字段。

查询:

Me.Technology包含用户在表单中选择的字符串。字符串上方提供的图像中的I.E将是“控制台,PC,Web”。

EveryTable.Technology是一个包含所有选项的列表。

telent 192.168.100.2 2000 /tgc/rf/tx1 set gain_target -2.0.

下面是显示具有所有信息的主表的图像。提供一个关于我试图在查询中引用的单元格中保存的内容的想法。

Master table that holds all information

预期输出

根据我提供的图像,预期的输出将为我提供“行”的“主要”形式的子表格,该行的“技术”列中包含字符串“控制台,PC,Web”。 如下图所示,按Enter键后,我的预期输出没有恢复到我想要的状态。

Expected Output Error

1 个答案:

答案 0 :(得分:0)

某位伟人,用户“ Tim Williams”回答了我的问题,但删除了他的答案。无论如何,这是供将来参考。

Private Sub button_Click()

    Dim SQL As String, sep As String, arr, t
    Dim Sector As String

    Sector = Me.txtSector
    If Sector = "All" Then Sector = ""

    SQL = "SELECT * FROM EveryTable WHERE " & _
      "EveryTable.Sector LIKE '*" & Sector & "*'"

    If Len(Me.Technology) > 0 Then

        SQL = SQL & " AND ("
        sep = ""
        arr = Split(Me.Technology, ",")

        For Each t In arr
            SQL = SQL & sep & " EveryTable.Technology.Value LIKE '*" & Trim(t) & "*' "
            sep = vbCrLf & " AND "
        Next t
        SQL = SQL & ")"

    End If
    Debug.Print SQL

    Me.subformMain.Form.RecordSource = SQL
    Me.subformMain.Requery

End Sub