MS Access,根据文本框条目填充组合框
Posted
技术标签:
【中文标题】MS Access,根据文本框条目填充组合框【英文标题】:MS Access, populate combobox based on text box entry 【发布时间】:2015-06-02 19:28:43 【问题描述】:我有一个 MS Access 表单,用户可以在其中输入商店编号。
基于该条目,我对其进行了设置,以便它自动填充存储所在的区域和一些其他信息。我使用 IIf 和 Dlookup 来完成此操作。
=IIf(([Store]>0),DLookUp("[Region]","[Store Listing]","[Store]= " & [Forms]![Project Details]![txtStore]),"")
我还有一个与商店匹配的供应商表。每个商店都有 2-3 个与之关联的供应商。我希望与特定商店关联的供应商填充一个组合框,以便用户选择一个。
Dlookup 有效,但仅适用于与商店匹配的第一个供应商。它不会填充列表的其余部分。
=DLookUp("[IP]","[Vendors]","[Store]= " & [Forms]![Project Details]![txtStore])
有没有一种优雅的方法可以根据输入的商店填充组合框中的列表的其余部分?
谢谢!
【问题讨论】:
【参考方案1】:我猜你需要这个
Me.Combo0.RowSource = "Select IP from Vendors where Store=" & [Forms]![Project Details]![txtStore] & ")"
Me.Combo0.Requery
Dlookup 只返回第一个匹配项...这是它的工作原理
【讨论】:
所以我在这里是个菜鸟,可能做错了。但是我去了那个组合框的属性下的行源字段。当我点击那里时,它打开了一个查询编辑器。所以我去 SQL 视图,输入上面的文本,保存它,什么也没发生。通过以下编辑,它会显示所有供应商的列表,而不仅仅是那些属于指定商店的供应商。SELECT Vendors.IP FROM Vendors WHERE ((("[Store]=" & [Forms]![Project Details]![txtStore] & "')")<>False));
我在这里错过了什么? -再次感谢-
Ok ...为了使此代码按您的意愿工作,您需要使用 VBA,..假设您有一个文本框 txtStore
和一个组合框 Combo0
.. .把代码放在txtStore
的After Update事件上就完成了【参考方案2】:
谢谢约翰!效果很好。
Private Sub txtStore_AfterUpdate()
combo0.RowSource = "Select IP from Vendors where (Store=" & [Forms]![Project Details]![txtStore] & ")"
combo0.Requery
End Sub
【讨论】:
以上是关于MS Access,根据文本框条目填充组合框的主要内容,如果未能解决你的问题,请参考以下文章
根据从组合框中选择的条目在 Access 表单中创建条目(不包括来自组合框的条目)