Access 2019未绑定表单保存后无法清空及列表重查询问题
Access 2019未绑定表单清空与列表控件重查询故障解决
核心问题根源
- 保存逻辑缺失关键步骤:原代码仅打开记录集并赋值字段,但未执行
AddNew创建新记录、Update提交数据——这会导致数据未真正写入数据库,后续操作也会因记录集状态异常失效。 - 未绑定表单不支持Requery/Refresh清空:未绑定表单与数据源无绑定关系,
Me.Requery、Me.Refresh这类针对绑定表单的方法完全无效,必须手动重置控件值。 - 列表控件重查询时机错误:原代码中重查询操作放在记录集未正确提交的环节,且未确保保存完成后执行,导致无法加载最新数据。
修正后的完整代码
Private Sub Speichern_Click() Dim db As DAO.Database Dim rs As DAO.Recordset ' 显式声明DAO对象,避免隐式类型错误 Set db = CurrentDb Set rs = db.OpenRecordset("tbl_Sonderleistungen", dbOpenDynaset) ' 新增记录并提交保存:原代码缺失的核心步骤 rs.AddNew rs!Leistungsart = Me!Leistungsart rs!Datum = Me!Datum rs!Linie = Me!Linie rs!Schicht = Me!Schicht rs!SchichtFuehrerNr = Me!Personal rs!ReDatum = Me!ReDatum rs!Kommentar = Me!Kommentar rs!Bemerkung = Me!Bemerkung rs.Update ' 关闭并释放记录集资源 rs.Close Set rs = Nothing Set db = Nothing ' 手动清空未绑定表单的所有控件 Me!Leistungsart = "" Me!Datum = Null Me!Linie = "" Me!Schicht = "" Me!Personal = "" Me!ReDatum = Null Me!Kommentar = "" Me!Bemerkung = "" ' 重查询列表控件,加载最新数据 Me.lstSonderleistungen.Requery End Sub
关键修正说明
- 补全保存流程:通过
rs.AddNew初始化新记录,rs.Update提交数据,确保数据真正写入数据表。 - 手动清空控件:针对未绑定表单的特性,逐个设置控件值——文本控件设为空字符串
"",日期控件设为Null,下拉/选项组可根据需求设为默认值或Null。 - 优化重查询时机:在保存完成并释放记录集资源后执行列表控件重查询,保证加载最新的记录。
- 显式变量声明:明确声明
db和rs为DAO类型,避免隐式类型转换引发的未知错误。
内容的提问来源于stack exchange,提问作者PhilippT
相关产品推荐
相关产品推荐

