Access交流中心

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

连续窗体子窗体必填

半夜罗  发表于:2019-08-25 14:21:04  
复制

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

 

Top
fjfjb951 发表于:2019-08-25 19:12:36

用 Do Loop 循环一下



半夜罗 发表于:2019-08-26 11:45:29
谢谢 fjfjb951 老师的回复!但我确实不会写循环语句,能帮助写一下吗?谢谢!!

半夜罗 发表于:2019-08-28 14:52:54
    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函数判断控件的字符数。请各位老师能帮助修改!谢谢!



总记录:3篇  页次:1/1 9 1 :