还是DATAGRID的问题,我都要被它搞死了!!

leemeimei1980 2003-04-11 09:54:51
如何确定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
...全文
19 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bhhxd 2003-04-28
  • 打赏
  • 举报
回复
用下面的写法可能更好,占用资源少,方便:
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 Sub

Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer)
Response = 0
End Sub
jimmychen1981 2003-04-28
  • 打赏
  • 举报
回复
我也遇见过这样的情况,好象Me.DataGridHbzd.Columns(i) = 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
Mistruster 2003-04-28
  • 打赏
  • 举报
回复
Me.DataGridHbzd.Columns(i) = Null
不是
Me.DataGridHbzd.Columns(i).Value = Null
sul3066 2003-04-11
  • 打赏
  • 举报
回复
试试把
If Me.DataGridHbzd.Columns(i).Value = Null Then
改成
If Me.DataGridHbzd.Columns(i).Value = vbNullstring Then
网络老男孩了 2003-04-11
  • 打赏
  • 举报
回复
if isnull(xxx) then
end if
Cooly 2003-04-11
  • 打赏
  • 举报
回复
For i = 0 To Me.DataGridHbzd.Columns.Count - 1
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
饮水需思源 2003-04-11
  • 打赏
  • 举报
回复
If Me.DataGridHbzd.Columns(i).Value = Null Then
这句改成:
if isnull(me.datagridhbzd.columns(8).value) then
leemeimei1980 2003-04-11
  • 打赏
  • 举报
回复
TO:Cooly(☆回答问题不要分儿☆)
我不太明白您的意思,可能是我太笨了,请再次赐教!
leemeimei1980 2003-04-11
  • 打赏
  • 举报
回复
写成Me.DataGridHbzd.Columns(i).Value =""也会报这个错误。
xing0091 2003-04-11
  • 打赏
  • 举报
回复
在vb的赋值里好像不支持null
Me.DataGridHbzd.Columns(i).Value =""
这样写试试
Cooly 2003-04-11
  • 打赏
  • 举报
回复
你的数据库中字段不允许为空,如果不能修改数据库,可以在DataGrid赋值是处理一下,如果字段是数字类型的,可以赋值为0,如果是字符型的可以赋值为"",日期型可以用当前日期代替....

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧