If " & CDbl(shuliang) & " < "n_nmb" Then
 sql = " insert into chukubiao(v_name,v_unit,n_nmb,n_price,shop,v_xmb,v_memo,d_time,c_sfjs,c_zcfc,c_xmmc,c_xmbh) values('" & Combo4 & "','" & Combo3 & "','" & shuliang & "','" & fucaidanjia & "','" & Combo6 & "','" & Combo1 & "','" & beizhu & "','" & DTPicker1 & "','" & sfjs1 & "','" & Combo2 & "','" & Text2 & "','" & Text3 & "')"
   '更新数据库    'flag = "insert"
 conn.Execute (sql)
  'a = CDbl(shuliang)
  
 sql1 = " update kucunbiao set n_nmb = n_nmb-" & CDbl(shuliang) & " where v_name ='" & Combo4 & "' "
conn.Execute (sql1)
'Text4 = sql1
Else
  MsgBox "库存量不足"
End If
高手帮我看一下,我的程序一直执行两个SQL语句,好象哪个判断语句不起作用,正确的应该怎么弄呢?

解决方案 »

  1.   

    If " & CDbl(shuliang) & " < "n_nmb" Then这句是什么?VB里面有这么比较的吗?If CDbl(shuliang) < n_nmb Then
      

  2.   

    If " & CDbl(shuliang) & " < "n_nmb" Then
    这里没有一个变量,都是字符串,肯定是只有一个结果的呀
      

  3.   

    你本来就写了两个conn.Execute(SQL)语句,肯定是要执行两个了啊。
    而且你写的sql语句感觉很乱。
    要实现的功能应该是这样吧:
    如果客户输入数量小于库存数量,那么去处客户需求数量,更新库存表,否则提示“库存量不足”?
    LZ看是不是这个意思?
      

  4.   

    首先我认为你的写法就有问题
    为什么不这么写啊
    strsql = "select * from table"
    strsql = strsql & " where 条件"
    strsql = strsql & " order by ..."
    这样一般不会出错的
    然后是将sql语句输出来,在查询分析器中运行看看,是否正确
    这样你才能检查出到底是那部分有问题
      

  5.   

    我改成这个了,If CDbl(shuliang) < n_nmb Then可一直执行 msgboxa  啊
      

  6.   

    你单步执行看不就知道问题在哪里了
    你说一直执行Msgbox 
    是不是你的代码放在了循环里面
    而且需要的数量大于了库存数量
      

  7.   

    在if那设置断点,监测一下shuliang和n_nmb的值
      

  8.   

    msgbox在ELSE  和 END IF之间 
     并且需要的数量小于库存数量