VBA Microsoft Access复选框不过滤数据

时间:2018-11-20 03:06:29

标签: ms-access access-vba

在002_Criteria表格上,我有一个复选框。当前它什么都不做,我希望这些复选框在该字段下显示相关数据,该字段在表格003_Species的列表框中选中。列表框是rowsource,是一个称为qSciName的查询。当前,它的所有科学名称都显示在列表框中。该查询具有多个表,例如PlantSpecies,其字段名称例如PlantSpeciesID,SciName,ComName,另一个表是Criteria具有SciName条件的。

我尝试了以下编码,但未在列表框中过滤结果。我还尝试列出查询中的字段,并使用条件指向复选框。当我执行此操作并添加更多字段时,它将减去科学名称,直到不显示任何内容。您可以怎么做才能使我的代码正常工作?

谢谢您的帮助:)

Private Sub Refilter()

    Dim strFilterString As String

    'BUILD THE FILTER STRING:
    If Forms("002_Criteria").CKNFixer = True Then
        strFilterString = strFilterString & " OR NFixer ='True'"
    End If

    If Forms("002_Criteria").CkSun = True Then
        strFilterString = strFilterString & " OR TolerantSun ='True'"
    End If

    If Forms("002_Criteria").CKShade = True Then
        strFilterString = strFilterString & " OR TolerantShade ='True'"
    End If

    If Forms("002_Criteria").CKWind = True Then
        strFilterString = strFilterString & " OR TolerantWind ='True'"
    End If

    If Forms("002_Criteria").CkSalt = True Then
        strFilterString = strFilterString & " OR TolerantSalt ='True'"
    End If

    If Forms("002_Criteria").CkPollinator = True Then
        strFilterString = strFilterString & " OR Pollinator ='True'"
    End If

    If Forms("002_Criteria").CkNative = True Then
        strFilterString = strFilterString & " OR Native ='True'"
    End If

    If Forms("002_Criteria").CKIntroduce = True Then
        strFilterString = strFilterString & " OR introduce ='True'"
    End If

    'REMOVE LEADING " OR " ON FILTER STRING:
    If strFilterString <> "" Then strFilterString = Mid(strFilterString, 5)

    'APPLY FILTER STRING TO 003_Species:
    If strFilterString <> "" Then
        Forms("003_Species").ListSciName.RowSource = "SELECT * FROM [qSciName] WHERE " & strFilterString
    Else
        Forms("003_Species").ListSciName.RowSource = "qSciName"
    End If

End Sub

0 个答案:

没有答案