在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