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函数判断控件的字符数。请各位老师能帮助修改!谢谢!