如何分阶段录入记录(自动调出没输完的记录并保存)
时 间:2009-05-14 12:07:15
作 者:Trynew ID:2645 城市:广州
摘 要:1、如何判定表中是否存在指定条件的记录。可用在密码登陆、防止重复录入等方面。
2、如何取消当前记录的更新(用按钮向导可自动生成。)
3、如何转到指定条件的记录(用FindFirst方法)
4、如何操作、设置窗体中的所有控件(用窗体控件集合循环的方式)
5、如何设置窗体中部分字段不可修改
正 文:
有网友问道:如何分阶段录入一条记录,要求是在新记录中录入一个机器号,如果这个机器号已有一条记录,并且要求必须录入的字段不完整的,则转到这条记录继续录入,同时已经录入的字段不能修改;若没有这个机器号或这个机器号的上条记录已经录入完整,则继续在新增的这条记录中录入相关信息。
点击下载此附件
这个分两步处理:
1、如何判断这个机器号已有一条记录,并且要求录入的字段是否完整(通常也可以利用这个方法进行数据完整性和防止重复录入数据)。这个就在机器号文本框的更新后事件中进行判断处理,利用DLookup( )函数使用相关条件进行查找判断。若找到相关记录,则取消当前录入,并转到相应的记录,这个使用窗体数据集的FindFirst 方法。
2、转到相应记录时,保护以录入的数据。这个是在窗体的成为当前事件中进行处理。利用对窗体所有控件(控件集合)进行循环来判断处理。这里分别对控件的类型、控件的字段值、控件的标示(利用控件的标示属性Tag来标记区分有无数据都可以修改的字段,比如备注之类的)。对控件的锁定属性根据判定的结果进行设置就可以了,为了更好区别那些控件不允许修改,方便使用,最好对锁定的字段设置一下文本颜色。
程序见下面的代码及附件。
Private Sub MC__机器号_AfterUpdate()
Dim MachNum As String
'查找指定的机器号和指定字段内容有空的记录,若存在则转到找到的记录中
MachNum = Nz(DLookup("[MC#/机器号]", "[Laser P]", "[MC#/机器号]='" & [MC__机器号] & "' And ([Part#/料号] Is Null or [Lot#/批号] Is Null or [Style/类型] Is Null or [Side/正/反面] Is Null or [Start date/开始日期] Is Null or [Start time/开始时间] Is Null or [In shfit/开始班次] Is Null or [Start Op#/开始员工号] Is Null or [Panel qty/板数] Is Null or [End date/结束日期] Is Null or [End time/结束时间] Is Null or [End Op#/结束员工号] Is Null)"))
If MachNum <> "" Then
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 '取消当前录入
Me.Recordset.FindFirst "[MC#/机器号]='" & MachNum & "' And ([Part#/料号] Is Null or [Lot#/批号] Is Null or [Style/类型] Is Null or [Side/正/反面] Is Null or [Start date/开始日期] Is Null or [Start time/开始时间] Is Null or [In shfit/开始班次] Is Null or [Start Op#/开始员工号] Is Null or [Panel qty/板数] Is Null or [End date/结束日期] Is Null or [End time/结束时间] Is Null or [End Op#/结束员工号] Is Null)"
End If
End Sub
Private Sub Form_Current()
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acComboBox or ctl.ControlType = acTextBox Then
'如果字段为空或字段标记(tag)为"*"则允许修改
If IsNull(ctl) or ctl.Tag = "*" Then
ctl.Locked = False
ctl.ForeColor = -2147483640
Else
ctl.Locked = True
ctl.ForeColor = 9868950
End If
End If
Next ctl
End Sub
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)