vba - 将 ComboBox RowSource 属性设置为在“GotFocus()”方法中查询会在 ComboBox Access VBA 中留下空白值
问题描述
我想根据另一个表中的数据使用 VBA 在 Access 表单中填充我的 ComboBox。以前为了做到这一点,我做了以下事情:
- 在 Property Sheet -> Data 选项卡中,我使用以下信息填写了 Row Source 和 Row Source Type 字段:
现在,每当我单击组合框的下拉列表时,它都会使用 t_people 表中的所有名称填充下拉列表。
然而,这将我限制在 t_people's name 列中的数据更改时。为了获得更新的列表,我必须关闭表单并重新打开它,以便查询再次运行。我已经限制了对这个 Access 文件的访问,因此用户只能看到 x 个表单,并且不能关闭/打开它们或其他人。
我的解决方案是在表单加载时删除查询,而是在每次组合框获得焦点、有点击事件或类似事件时运行查询。我在 VBA 中通过以下事件做到了这一点:
'Run when the "name" combobox gains focus
Private Sub nameCb_GotFocus()
[nameCb].RowSource = "SELECT name FROM t_people"
End Sub
我已经设置了断点,并且这段代码确实运行了。但是,组合框不会在它之后填充。每次组合框获得焦点时,如何让组合框填充来自查询的值?
解决方案
在设计中设置RowSource,.Requery
进入控件时添加一个。
Private Sub nameCb_Enter()
nameCb.Requery
End Sub
推荐阅读
- javascript - 页面加载时自动单击下一个按钮
- php - 如何将图像包含在画廊中 - 包含在文章中
- c# - 为什么 FileSystemWatcher 在监视 Windows 卷的 Linux 容器中不起作用
- java - 在访问其他活动之前,活动不会呈现数组列表
- javascript - 无法发布对象列表,也只允许有限数量的响应标头
- ios - 有没有办法以编程方式检查(或以其他方式)“作为短信发送”选项是否启用?
- javascript - 在应用程序 vue 中检测未定义/空对象属性
- java - 我如何能够基于字符串的对象键实现面向对象的二叉搜索树
- python - http://127.0.0.1:5000/ Flask 服务器显示相同的内容,即使我使用更改源代码
- swift - 如何创建动画 GIF