Access中实现ComboBox跳转指定记录及关联添加记录的代码需求
需求说明
我有一个包含数字选项的ComboBox,当前功能是:选中第一个选项后点击按钮,会在连续窗体中添加两条特定记录。现在要优化功能:点击按钮时,基于ComboBox的下一条记录添加两条记录,同时需要实现ComboBox自动跳转到这条下一条记录的代码。现有MoveDown_Click代码可正常运行,求实现该跳转的整合方案。
现有代码
1. Doublestart_Click 代码
Private Sub Doublestart_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = Recordset rs.AddNew Me.Trail = Me.Traildoulestart Me.RallyKlasID = 101 RallyKlasnaam.value = RallyKlasID.Column(1) RallyKlasgroep.value = RallyKlasID.Column(2) Me.Handler.value = Forms!FormClassEnteryRally.Form.ExhibitorRally rs.AddNew Me.Trail = Me.Traildoulestart Me.RallyKlasID = 104 RallyKlasnaam.value = RallyKlasID.Column(1) RallyKlasgroep.value = RallyKlasID.Column(2) Me.Handler.value = Forms!FormClassEnteryRally.Form.ExhibitorRally End Sub
2. MoveDown_Click 代码(可正常运行)
Private Sub MoveDown_Click() ComboName.SetFocus If ComboName.ListIndex <> ComboName.ListCount - 1 Then ComboName.ListIndex = ComboName.ListIndex + 1 Else ComboName.ListIndex = 0 End If End Sub
注:上述
MoveDown_Click代码运行正常 :)
解决方案
只需把ComboBox跳转逻辑整合到Doublestart_Click的末尾,即可实现点击添加按钮后自动切换到下一条选项。修改后的完整代码如下:
Private Sub Doublestart_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = Me.Recordset ' 明确引用当前窗体的记录集,避免歧义 ' 添加第一条记录 rs.AddNew Me.Trail = Me.Traildoulestart Me.RallyKlasID = 101 RallyKlasnaam.Value = Me.RallyKlasID.Column(1) RallyKlasgroep.Value = Me.RallyKlasID.Column(2) Me.Handler.Value = Forms!FormClassEnteryRally.Form.ExhibitorRally rs.Update ' 必须添加Update才能保存记录 ' 添加第二条记录 rs.AddNew Me.Trail = Me.Traildoulestart Me.RallyKlasID = 104 RallyKlasnaam.Value = Me.RallyKlasID.Column(1) RallyKlasgroep.Value = Me.RallyKlasID.Column(2) Me.Handler.Value = Forms!FormClassEnteryRally.Form.ExhibitorRally rs.Update ' 保存第二条记录 ' 自动跳转ComboBox到下一条记录 ComboName.SetFocus If ComboName.ListIndex <> ComboName.ListCount - 1 Then ComboName.ListIndex = ComboName.ListIndex + 1 Else ComboName.ListIndex = 0 End If ' 释放对象,避免内存泄漏 Set rs = Nothing Set db = Nothing End Sub
关键修改说明
- 给
Recordset添加Me.前缀,明确指向当前窗体的记录集 - 每条
rs.AddNew后补充rs.Update,否则记录不会写入数据库 - 在记录添加完成后插入ComboBox跳转逻辑,实现自动切换
- 最后添加对象释放代码,规范内存管理
内容的提问来源于stack exchange,提问作者Allard
相关产品推荐
相关产品推荐

