【发布时间】:2021-04-12 11:37:36
【问题描述】:
我有一个包含很多列的非常宽的数据集。大多数只有 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
【问题讨论】:
-
但是我只返回一条记录 - 在哪里?这还不清楚。
-
我编辑了我的问题,如果可以澄清问题,请告诉我。
-
嗯,这应该(两者)都有效。要检查的事项:子表单上是否有任何其他过滤器? -- How to debug dynamic SQL in VBA 即将生成的 SQL 粘贴到新查询中。
-
子表单上没有任何其他过滤器。这将是我的第一个组合框,但是一旦我掌握了语法,我将不得不创建更多组合框。
-
另外,我将我的 SQL 运行到 SQL 视图中的一个新查询中,并且输出符合预期。即我必须硬编码 NO 和 YES 值,因为我不能使用 Me.cboLocationShot 但它返回了选择时匹配 YES 的所有记录以及选择时匹配 NO 的所有记录。
标签: ms-access combobox distinct