Access中未绑定列表框切换记录后不更新问题求助
Access表单列表框切换记录不更新的解决办法
问题根源
列表框的行来源查询依赖表单当前记录的ID,但表单切换记录时,列表框不会自动重新执行查询刷新数据,导致内容停留在之前的记录对应的结果。
具体解决步骤
1. 给表单添加Current事件刷新代码
打开表单设计视图,右键表单空白区域选择事件生成器,在Current事件中写入以下VBA代码:
Me.你的列表框名称.Requery
把你的列表框名称替换成你实际使用的列表框控件名称。这个事件会在表单切换到新记录时触发,强制列表框重新加载数据。
2. 核对查询的表单引用正确性
确认查询里的[Forms]![frmTasks]![ID]和实际的表单名、控件名完全一致,注意Access在部分场景下区分大小写,同时确保frmTasks表单处于打开状态。
3. 检查列表框核心属性
- 确认
Row Source Type设置为Table/Query Control Source保持为空(未绑定列表框无需绑定字段)- 确认
Row Source确实选择了sqlNotes查询
4. 验证手动刷新效果
在表单视图下选中列表框,按F9键手动刷新,如果数据能正常显示,说明自动刷新的事件代码是关键缺失项。
备选方案
如果上述方法无效,可以直接把列表框的Row Source设置为SQL语句(而非保存的查询),避免查询缓存问题:
SELECT tblNotes.note_date AS Entry, tblNotes.author AS Author, tblNotes.note_text AS Comment, tblNotes.percent AS [%] FROM tblNotes WHERE tblNotes.note_id = Forms!frmTasks!ID ORDER BY tblNotes.note_date;
同样需要在表单Current事件中执行Me.你的列表框名称.Requery来触发刷新。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

