Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

回复 加入收藏帖  复制
我要提问 帖子上移

连续窗体子窗体必填

半夜罗 等级: 一星会员 积分:206 金币:1240 来自:成都Access交流中心 发表于:2019-08-25 14:21:04   已结帖
楼主

请问老师们,在做一个主子窗体输入数据时,子窗体是连续窗体,而且子窗体中有字段是必填项,想了好多办法,也没有做好。请示各位老师帮助,谢谢!!点击下载此附件

 

access培训  诚聘access开发人员

    半夜罗
      获得社区协助:请教问题(即发帖)67篇,其中获得解决的59篇;
      协助社区成员:协助他人(即回帖)60篇,其中被设为【最佳答案】的16篇;
      协助我们社区:发布技术文章31篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

fjfjb951 等级:一星助教★ 积分:56 金币:26 来自:漳州Access交流中心 发表于2019/8/25 19:12:36 最佳答案
1楼 得分: 2

用 Do Loop 循环一下



    希望我的回答能解决了您的问题,或者所附上的这些信息对您有所帮助!如有任何疑问或需要进一步帮助,请您直接在本站发贴,我们非常乐意帮助您解决问题!
    如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,以方便大家对那些正在等待解决的帖子给予关注!
    fjfjb951  [协助社区成员回帖15篇,其中【最佳答案】4篇;发布技术文章0篇。]
    Access软件网助教团队 
    http://www.umvsoft.com
    如果您没有注册这个论坛,请单击下面的链接进行注册,与我在论坛进行交流:
    http://www.accessoft.com/reg/reg.asp?userid=33089
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。
半夜罗 等级:一星会员 积分:206 金币:1240 来自:成都Access交流中心 发表于2019/8/26 11:45:29 
2楼 得分: 0
谢谢 fjfjb951 老师的回复!但我确实不会写循环语句,能帮助写一下吗?谢谢!!

    半夜罗
      获得社区协助:请教问题(即发帖)67篇,其中获得解决的59篇;
      协助社区成员:协助他人(即回帖)60篇,其中被设为【最佳答案】的16篇;
      协助我们社区:发布技术文章31篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
半夜罗 等级:一星会员 积分:206 金币:1240 来自:成都Access交流中心 发表于2019/8/28 14:52:54 
3楼 得分: 0
    Set rst = Form_发票录入_子窗体.RecordsetClone
    If rst.RecordCount > 0 Then
        rst.MoveLast
        rst.MoveFirst
        For i = 1 To rst.RecordCount
            If Nz(Len(rst!往来代码), 0) = 0 Then
                Me.子窗体.SetFocus
                Me.子窗体!往来代码.SetFocus
                MsgBox "请录入【往来代码】", 16, "系统提示"
                Exit Sub
            End If
            If Nz(Len(rst!开票日期), 0) = 0 Then
                MsgBox "请录入【开票日期】", 16, "系统提示"
                Me.子窗体.SetFocus
                Me.子窗体!开票日期.SetFocus
                Exit Sub
            End If
            rst.MoveNext
        Next
    Else
        MsgBox "没有明细数据,不能保存!", 16, "系统提示"
        Exit Sub

    End If

用下面的代码也可,但始终无法定位空值控件

Set rst = Form_发票录入_子窗体.RecordsetClone

    If rst.RecordCount > 0 Then

        rst.MoveLast

        rst.MoveFirst
        For i = 1 To rst.RecordCount
            If Nz(Len(rst!往来代码), 0) = 0 _
                Or Nz(Len(rst!开票日期), 0) = 0 _
                Or Nz(Len(rst!发票代码), 0) = 0 _
                Or Nz(Len(rst!发票号码), 0) = 0 _
                Or Nz(Len(rst!发票类型), 0) = 0 _
                Or Nz(Len(rst!金额), 0) = 0 _
                Or Nz(Len(rst!税额), 0) = 0 Then                
                MsgBox "请检查下列项目是否填写 ?" _
                    & Chr(10) & "【往来名称】 " _
                    & Chr(10) & "【开票日期】" _
                    & Chr(10) & "【发票代码】" _
                    & Chr(10) & "【发票号码】" _
                    & Chr(10) & "【金额】" _
                    & Chr(10) & "【税额】", _
                    vbCritical, "保存不成功!"                
                Exit Sub
            End If
            rst.MoveNext
        Next
    Else
        MsgBox "没有明细数据,不能保存!", 16, "系统提示"
        Exit Sub
    End If


用上面的代码能完全判断出必填项,但有一个问题是,不能准确定位空值的控件。由于不确定因素,没有将数据设为空值,而是用Len函数判断控件的字符数。请各位老师能帮助修改!谢谢!



    半夜罗
      获得社区协助:请教问题(即发帖)67篇,其中获得解决的59篇;
      协助社区成员:协助他人(即回帖)60篇,其中被设为【最佳答案】的16篇;
      协助我们社区:发布技术文章31篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:3篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。