求助if not isnull 类型错误
Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)If 明细金额对账 = 1 Then
Dim 数量回单 As Variant
Dim 单价修正 As Variant
If ColIndex = 10 Then
ID = DataGrid1.Columns("序号").Value
If Not IsNull(DataGrid1.Columns("回单数量").Value) Then
If Not IsNumeric(DataGrid1.Columns("回单数量").Value) Then
MsgBox "对不起,回单数量是数字,请重新输入", vbOKOnly, "错误提示"
Cancel = True
Exit Sub
End If
End If
ElseIf ColIndex = 8 Then
If Not IsNull(DataGrid1.Columns("修正单价").Value) Then
If Not IsNumeric(DataGrid1.Columns("修正单价").Value) Then
MsgBox "对不起,修正单价是数字,请重新输入", vbOKOnly, "错误提示"
Cancel = True
Exit Sub
End If
End If
ElseIf ColIndex = 13 Then
时间 = DataGrid1.Columns("入账日期").Value
If 时间 = 1 Or 时间 = 2 Or 时间 = 3 Or 时间 = 4 Or 时间 = 5 Or 时间 = 6 Or 时间 = 7 Or 时间 = 8 Or 时间 = 9 Or 时间 = 10 Or 时间 = 11 Or 时间 = 12 Then
If (时间 < 服务器月 And 时间 >= 服务器月 - 1) Or (时间 = 12 And 服务器月 = 1) Then
核对日期 = 服务器年 & "-" & 时间 & "-" & "1"
单号 = DataGrid1.Columns("订单编号").Value
If MsgBox("确定已经完成对【" & Trim(单号) & "】的对账吗?" & Chr(13) & "此笔账目将要进入的月份为" & 服务器年 & "." & 时间 & "月,请确认!", vbYesNo, "提示信息") = vbYes Then
1.If IsNull(DataGrid1.Columns("回单数量").Value) And Not IsNull(DataGrid1.Columns("修正单价").Value) Then
sql3 = "update 财务应收 set 入账日期 ='" & 核对日期 & "',回单数量=送货数量 where 序号 ='" & ID & "'"
cn.Open strCn
rs.Open sql3, cn
cn.Close
2.ElseIf Not IsNull(DataGrid1.Columns("回单数量").Value) And IsNull(DataGrid1.Columns("修正单价").Value) Then
sql3 = "update 财务应收 set 入账日期 ='" & 核对日期 & "',修正单价=单价 where 序号 ='" & ID & "'"
cn.Open strCn
rs.Open sql3, cn
cn.Close
3.ElseIf IsNull(DataGrid1.Columns("回单数量").Value) And IsNull(DataGrid1.Columns("修正单价").Value) Then
sql3 = "update 财务应收 set 入账日期 ='" & 核对日期 & "',修正单价=单价,回单数量=送货数量 where 序号 ='" & ID & "'"
cn.Open strCn
rs.Open sql3, cn
cn.Close
End If
MsgBox "已经完成【" & Trim(单号) & "】对账,账目进入月份为" & 服务器年 & "." & 时间 & "月", vbOKOnly, "提示信息"
Cancel = True
Adodc1.Refresh
Call 单号金额对账初始化列宽修改限制
Else
Cancel = True
Exit Sub
End If
Else
MsgBox "对不起,你所填写的对账日期超过了对账月份的限制!" & Chr(13) & "这个月只能入上个月的账目,无法人其他时间账目。", vbOKOnly, "错误提示"
Cancel = True
Exit Sub
End If
Else
MsgBox "1年中只有12个月!请重新输入", vbOKOnly, "错误提示"
Cancel = True
End If
End If
End If
End Sub上述为代码。。。。。。。。。。。
问题陈述:代码三处共3处红字,为代码运行错误,提示错误信息为类型不匹配
代码用意:3个元素,回单数量,修正单价,入账日期,3个元素都是datagrid中的表格列,
操作步骤,当我去填写入账日期的时候,程序自动检查回单数量,与修正单价这2行数据,看看是否为空,如果为空则运行相应的sql语句
错误提示:类型不匹配
下面2张图
一张为界面图形,一张为代码运行错误图,还请大师指点。。谢谢
[ 本帖最后由 w360989426 于 2014-2-10 13:47 编辑 ]