如何确定DATAGRID中的某一列不能为空呢?我写了一段代码,但总是报“类型不匹配”的问题,不知道如何解决,请各位高手帮帮忙吧,要不我就要去跳楼了!!!
代码如下:
For i = 0 To Me.DataGridHbzd.Columns.Count - 1
If Me.DataGridHbzd.Columns(i).Value = Null Then
'就上面这句报错,只要是某行某列为空就报类型不匹配 If MsgBox("任何一列都不能为空,请重新编辑!", vbOKOnly + vbDefaultButton1 + vbInformation, "重要提示!") = vbOK Then
Me.rsTest.CancelBatch adAffectAllChapters
Exit Sub
End If
Else
Me.rsTest.UpdateBatch adAffectAllChapters
strSQL = "select * from c_hbzd where sjhh='" & _
Sjhh & "' ordby sxh"
Set Me.DataGridHbzd.DataSource = rsTest
rsTest.Requery
End If
Next i
Exit Sub
代码如下:
For i = 0 To Me.DataGridHbzd.Columns.Count - 1
If Me.DataGridHbzd.Columns(i).Value = Null Then
'就上面这句报错,只要是某行某列为空就报类型不匹配 If MsgBox("任何一列都不能为空,请重新编辑!", vbOKOnly + vbDefaultButton1 + vbInformation, "重要提示!") = vbOK Then
Me.rsTest.CancelBatch adAffectAllChapters
Exit Sub
End If
Else
Me.rsTest.UpdateBatch adAffectAllChapters
strSQL = "select * from c_hbzd where sjhh='" & _
Sjhh & "' ordby sxh"
Set Me.DataGridHbzd.DataSource = rsTest
rsTest.Requery
End If
Next i
Exit Sub
Me.DataGridHbzd.Columns(i).Value =""
这样写试试
我不太明白您的意思,可能是我太笨了,请再次赐教!
这句改成:
if isnull(me.datagridhbzd.columns(8).value) then
If isNull(Me.DataGridHbzd.Columns(i).Value) Then
'就上面这句报错,只要是某行某列为空就报类型不匹配 MsgBox "任何一列都不能为空,请重新编辑!", vbOKOnly + vbDefaultButton1 + vbInformation, "重要提示!"
Me.rsTest.CancelBatch adAffectAllChapters
Exit Sub
Else
Me.rsTest.UpdateBatch adAffectAllChapters
strSQL = "select * from c_hbzd where sjhh='" & _
Sjhh & "' ordby sxh"
Set Me.DataGridHbzd.DataSource = rsTest
rsTest.Requery
End If
Next i
Exit Sub
end if
If Me.DataGridHbzd.Columns(i).Value = Null Then
改成
If Me.DataGridHbzd.Columns(i).Value = vbNullstring Then
不是
Me.DataGridHbzd.Columns(i).Value = Null
用,我是使用循环来解决的。
datagrid1.col=1
for i=0 to rs.recordcount-1
datagrid1.row=i
if datagrid1.text="" then
msgbox "",vbexclamation,""
datagrid1.setfocus
exit sub
end if
next i
Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)
If DataGrid1.Columns(ColIndex).Value = "" Then
cancle = True
Else
cancle = False
End If
End SubPrivate Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer)
Response = 0
End Sub