更改语句,试试
.fields(0)=iif(isnull(kit(0,i)),"",kit(0,i)
.fields(3)=iif(isnull(kit(3,i)),"",kit(3,i)

解决方案 »

  1.   

    更改语句,试试
    .fields(0)=iif(isnull(kit(0,i)),"",kit(0,i)
    .fields(3)=iif(isnull(kit(3,i)),"",kit(3,i) 
      

  2.   

    这两句没有问题,其实aa这个字段我是不需要的,难道不需要的也要去判断吗?
    比如本来.fields这个字段我是不需要的但我还要写成上这样一句吗?
    .Fields(2) = iif(innull(kit(4, i)),"",kit(4,i)  
      

  3.   

                            .AddNew
                            if not isnull(kit(0,i)) then .Fields(0) = kit(0, i)  
                            if not isnull(kit(3,i)) then .Fields(1) = kit(3, i)  
                           
      

  4.   

    你们没有懂我的意思!
    数组kit()肯定有空值,它对应我要取的数据库.
    但我不会去取空值.
    现在我取到数据以后,准备向dbf数据库中插值
    提示我出错的地方就是在dbf数据库中,
    表mm中的一个字段aa.因为我不需要它,所以我
    没有对它进行处理,即我不需要用表达式.fields!aa=blank
    表示出来,你们说是不是.如果我加了这一句.fields!aa=blank
    程序就会正常运行.
    在mm表中的其他几个空值字段也是这样.即你只有把目标数据库
    的字段全部表达出来,程序就能调试通过.如你不理它,它也会报
    这个错.如下: 
     'field XX do not accept a null values!' XX是字段名
    你们现在懂我的意思了吗?
      

  5.   

    那么在插值前检查空值:For i = 0 To Adodc2.Recordset.RecordCount - 1
    if isnull(kit(0, i)) or isnull(kit(3, i)) then
       goto line1
    end if
                      '往Dbf数据库中插值.
                      Adodc1.RecordSource = "select * from mm"
                      Adodc1.Refresh
                      With Adodc1.Recordset
                            .AddNew
                            .Fields(0) = kit(0, i)  
                            .Fields(1) = kit(3, i)  
                            .Update  
    'do not accept a null values!' 注意:aa这个字段在数据库中是没有值的.
                            .Close
                        End With
                Adodc2.Recordset.MoveNext
    line1:        Next i
      

  6.   

    你没用到的字段,还是要判断,你如果不想判断,可以把数据库里的那个字段设置成允许null,就可以了
      

  7.   

    估计是你的数据库结构的问题,将数据库中的这个字段设置成允许空值(null).
      

  8.   

    adodc2.recordset.movelastReDim kit(8, Adodc2.Recordset.RecordCount)