如何设置Access表单实现单样本多测试方法不同运行次数的录入与存储?
测试申请表单改造方案
1. 表单控件调整
- 保留原有的绑定测试方法表的下拉框,新增两个文本框:
txtRunCount(输入运行次数)、txtSampleValue(输入样本值),默认设为隐藏状态,放置在下拉框旁。 - 添加一个临时预览列表(用Access连续子表单或列表框均可),实时展示用户已确认的「测试方法-运行次数-样本值」组合,方便查看和直接编辑。
2. 下拉框触发规则
给方法下拉框添加AfterUpdate事件代码,选完方法自动唤起输入框:
Private Sub cboTestMethod_AfterUpdate() ' 显示运行次数和样本值输入框 txtRunCount.Visible = True txtSampleValue.Visible = True ' 自动聚焦到运行次数输入框,引导用户输入 txtRunCount.SetFocus End Sub
3. 新增临时记录操作
添加「添加到待提交列表」按钮,点击后将当前选择的方法、输入的次数和样本值存入预览列表:
Private Sub btnAddToList_Click() Dim rs As Recordset Set rs = Me.subTempList.Form.RecordsetClone ' 可选:防止重复添加同一方法 rs.FindFirst "TestMethod = '" & Me.cboTestMethod.Value & "'" If rs.NoMatch Then rs.AddNew rs!TestMethod = Me.cboTestMethod.Value rs!RunCount = Me.txtRunCount.Value rs!SampleValue = Me.txtSampleValue.Value rs.Update Else MsgBox "这个方法已经添加过了,要修改直接在列表里编辑即可", vbExclamation End If ' 刷新预览列表 Me.subTempList.Requery ' 清空当前输入框并隐藏 Me.cboTestMethod.Value = Null Me.txtRunCount.Value = Null Me.txtSampleValue.Value = Null txtRunCount.Visible = False txtSampleValue.Visible = False End Sub
4. 提交按钮逻辑改造
修改原提交按钮代码,将预览列表中的每条记录单独写入目标数据表:
Private Sub btnSubmit_Click() Dim rsTarget As Recordset Dim rsTemp As Recordset Set rsTarget = CurrentDb.OpenRecordset("你的目标数据表名称") Set rsTemp = Me.subTempList.Form.RecordsetClone ' 逐条写入目标表 rsTemp.MoveFirst Do Until rsTemp.EOF rsTarget.AddNew ' LabBatchID为自动编号,无需手动赋值,数据库会自动生成 rsTarget!TestMethod = rsTemp!TestMethod rsTarget!RunCount = rsTemp!RunCount rsTarget!SampleValue = rsTemp!SampleValue rsTarget!客户信息字段 = Me.对应控件.Value ' 同步表单上其他必填字段 rsTarget.Update rsTemp.MoveNext Loop ' 清理资源 rsTarget.Close rsTemp.Close Set rsTarget = Nothing Set rsTemp = Nothing ' 清空表单和预览列表 Me.subTempList.Form.Recordset.Delete Me.subTempList.Requery ' 清空主表单其他控件 Me.对应控件.Value = Null MsgBox "提交成功", vbInformation End Sub
5. 删除按钮逻辑
保留原有功能,一键清空所有内容:
Private Sub btnDelete_Click() ' 清空预览列表 Me.subTempList.Form.Recordset.Delete Me.subTempList.Requery ' 清空主表单所有控件 Me.cboTestMethod.Value = Null Me.txtRunCount.Value = Null Me.txtSampleValue.Value = Null Me.对应控件.Value = Null txtRunCount.Visible = False txtSampleValue.Visible = False End Sub
注意事项
- 预览列表的数据源可提前创建临时表(字段设为TestMethod、RunCount、SampleValue),或使用内存记录集临时存储,无需持久化。
- 原方法下拉框绑定的测试方法表无需修改,确保用户只能选择可用的测试方法。
- LabBatchID为自动编号字段,表单上可将其设置为不可编辑或直接隐藏,无需用户操作。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

