如何分阶段录入记录(自动调出没输完的记录并保存)-trynew
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-窗体/数据页


如何分阶段录入记录(自动调出没输完的记录并保存)

发表时间:2009/5/14 12:07:15 评论(5) 浏览(7011)  评论 | 加入收藏 | 复制
   
摘 要: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群(群号:198465573)
 
 相关文章
Access开发平台--判断日期型数据不能重复录入的两种方法  【麥田  2012/12/4】
Access开发平台--判断数值型数据不能重复录入的两种方法,数字...  【麥田  2012/12/5】
【Access入门】控制输入字符长度,限制输入数据位数、长度的示例...  【麥田  2012/12/24】
今晚8点公益讲座《录入数据的两种方式》  【周芳  2013/3/26】
【Access基础】限制录入的条数/限制表中数据只能录入多少条记录...  【缪炜  2013/5/5】
保存时,检测全称禁止重复和非录入人不能修改  【王三平  2013/7/11】
常见问答
技术分类
相关资源
文章搜索
关于作者

trynew

文章分类

文章存档

友情链接