我有一个非常宽的数据集,有很多列。大多数人只有2-6种可能的选择。用户将来可能会对这些列有不同的选项。
我的解决方案是使用MS Access创建一个搜索表单,允许用户根据输入查找记录,其中大多数列都是组合框的。
我已经成功地为我的组合框和返回值获得了不同的值,但是当例如选择";是";尽管我的数据集有很多匹配"是"。我试过使用一个用*封装的LIKE,甚至硬写YES,但得到了相同的结果。当我选择";否";我没有得到任何结果,我希望得到一张";否";。我怎样才能得到所有的记录?此外,我希望我的组合框以空白开始,并包含一个空白选项。
我的行源
SELECT DISTINCT WeddingList.[Location Shots/drone shots] FROM WeddingList;
我的"在"更新"之后;VBA-
Private Sub cboLocationShot_AfterUpdate()
Dim locationShot As String
locationShot = "Select * from WeddingList Where ([Location Shots/drone shots] LIKE '*" & Me.cboLocationShot & "*')"
'locationShot = "SELECT * from WeddingList WHERE [Location Shots/drone shots] LIKE '*YES*'"
Me.WeddingList_subform2.Form.RecordSource = locationShot
Me.WeddingList_subform2.Form.Requery
我的Form 屏幕截图
以下是解决我问题的方法。
Select * FROM Mytable Order By Desc
运行表单
重新添加来自组合框的逻辑。
在您的代码中,没有在"LIKE"匹配中指定引用组合框的列。匹配将发生在绑定列上,通常是组合框中的第一列。