请教是怎么回事?以下是出问题的部分代码
                 Set rsBill = .Execute("Select fstatus from z_kuka_cjyb Where itemcode = '" & vntItemcode & "'")
                 IntStatus = rsBill.Fields("fstatus").Value
'                 If rsBill.Fields("fstatus").Value = 7 And fpSpread1.GetText(11, IntJ, vntJudge) = False Then
'                 If fpSpread1.GetText(11, IntJ, vntJudge) = False And rsBill.Fields("fstatus").Value = 7 Then
                 If fpSpread1.GetText(11, IntJ, vntJudge) = False Then
                    '当前条码为出库状态,允许一次或多次转移
'                    If rsBill.Fields("fstatus").Value = 7 Then
                    If IntStatus = 7 Then
                         .BeginTrans
                        .Execute ("Insert Into z_kuka_cjbill(itemcode,ftrantype,ftbno,fscandate,importdate)" & _
                                 " Values('" & IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, vntItemcode, Null) & "',5,'" & IIf(fpSpread1.GetText(9, IntJ, vntftbno) = True, vntftbno, Null) & "','" & IIf(fpSpread1.GetText(10, IntJ, vntFscandate) = True, Format(vntFscandate, "yyyy-mm-dd hh:mm:ss"), Format(DteCurrency, "yyyy-mm-dd hh:mm:ss")) & "','" & Format(DteCurrency, "yyyy-mm-dd hh:mm:ss") & "')")
                        .Execute ("Update a Set place = '" & IIf(fpSpread1.GetText(9, IntJ, vntftbno) = True, vntftbno, Null) & "'from z_kuka_cjyb a Inner Join z_kuka_cjbill b On a.itemcode=b.itemcode Where a.itemcode = '" & vntItemcode & "' ")
                         .CommitTrans
                         fpSpread1.SetText 11, IntJ, 1
                    End If
'                 ElseIf rsBill.Fields("fstatus").Value = 1 Then
                 ElseIf IntStatus = 1 Then
                     '当前条码为入库状态,不允许转移
                     MsgBox vntItemcode & "条形码为入库状态,不允许转移", , "系统提示:"
'                 ElseIf rsBill.Fields("fstatus").Value = 6 Then
                 ElseIf IntStatus = 6 Then
                    '当前条码为回收状态,不允许转移
                    MsgBox vntItemcode & "条码是回收状态,不允许转移", , "系统提示:"
                 End If
                 Set rsBill = Nothing这是怎么回事,.begintrans后,一旦开始执行第一条插入语句时,就报以上错误,请高手赐教。

解决方案 »

  1.   

    '"& IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, vntItemcode, Null) &"'
    改成如下试试:
    "& IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, vntItemcode, "Null") &"
      

  2.   

    iif是VB中的函数,在代码执行时会根据iif中的条件来判断具体内容:
    cnn.execute "insert into tablename(aa) values("& iif(bb=true,"'cc'","NULL") &")"
    这sql句在具体执行时的两种情况:
    "insert into tablename(aa) values('cc')"
    或"
    "insert into tablename(aa) values(NULL)"
      

  3.   

    原来你给的答案是错误的,按照1楼给的答案。'                        .Execute ("Insert Into z_kuka_cjbill(itemcode,ftrantype,ftbno,fscandate,importdate)" & _
    '                                 " Values(" & IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, vntItemcode, "Null") & ",5,'" & IIf(fpSpread1.GetText(9, IntJ, vntftbno) = True, vntftbno, Null) & "','" & IIf(fpSpread1.GetText(10, IntJ, vntFscandate) = True, Format(vntFscandate, "yyyy-mm-dd hh:mm:ss"), Format(DteCurrency, "yyyy-mm-dd hh:mm:ss")) & "','" & Format(DteCurrency, "yyyy-mm-dd hh:mm:ss") & "')")我调试得到的实际语句是Insert Into z_kuka_cjbill(itemcode,ftrantype,ftbno,fscandate,importdate) Values(1901000007/5,5,'cccc','2009-08-28 14:35:28','2009-08-28 14:35:28')其中,1901000007/5应该是字符型才对,弄得插入数据库,老是数据不正确。
    然后我又使用上了我楼上贴的语句,它竟然又可以正确使用,没有报一开始的错误了。
    并且调试状态下得到的SQL语句是这样的。Insert Into z_kuka_cjbill(itemcode,ftrantype,ftbno,fscandate,importdate) Values('1901000007/5',5,'eeee','2009-08-28 14:43:49','2009-08-28 14:43:49')这才是正确的。请问一会报错,一会又不报错,是怎么回事?
      

  4.   

    IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, "'" & vntItemcode & "'", "Null")
      

  5.   

    '字段为字符型:
    IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, "'" & vntItemcode & "'", "Null")
    '字段为数值型:
    IIf(fpSpread1.GetText(1, IntJ, vntItemcode) = True, "" & vntItemcode & "", "Null")