当一个SQL语句中引用了多个变量时,可能会有部分变量包含空值,如何组织这条SQL语句才能保证SQL语句的正常执行。谢谢大家。

解决方案 »

  1.   

    先使用条件语句判断一下,再组织自己的SQL语句。
      

  2.   

    '在SQL语句中如果控件内容为空则为NULL
    strsql=" insert into 表名(字符字段,数值字段) values("& iif(trim(text1.text)="","NULL","'"& text1.text &"'") &","& iif(trim(text2.text)="","NULL","" & text2.text &"") &")"
    cn.execute strsql
      

  3.   

    Public Function ncc(ByVal ConvValue As Variant, Optional ByVal DefaultValue As Variant = "") As Variant
        On Error GoTo errEx
        ncc = IIf(IsNull(ConvValue) Or Trim(ConvValue) = "", DefaultValue, ConvValue)
        Exit Function
    errEx:
        ncc = DefaultValue
    End Function
    對於字符型變量,使用此函數轉一下,對就數值型變量,使用VAL函數。日期類型,則為NULL
    eg:
    "insert into 表格(字符欄位,數值欄,日期欄) VALUES('" & ncc(字符變量,"") & "'," & val(數值變量) & "," & iif(IsNull(日期變量),"NULL","'" & format(日期變量,"yyyy-MM-dd") & "'") & ") "
      

  4.   

    存入数据库在VB语句里用IIf(expr, truepart, falsepart)
    读出数据在SQL语句里用ISNULL(check_expression , replacement_value), 使用指定的替换值来替换 NULL。
      

  5.   

    为什么当Rs3.Fields("小区")为空时,下面这条语句
    sql = "insert into   chao(用户编号,小区) values ( " + CStr(Cbcard.Kahao) + "','" +  Rs3.Fields("小区") + "')"执行时出错,必须改成以下格式才能正常执行:sql = "insert into   chao(用户编号,小区) values ( " + CStr(Cbcard.Kahao) + "','" + CStr(IIf(IsNull(Rs3.Fields("小区")), "", Rs3.Fields("小区"))) + "') "
      

  6.   

    这样就可以
    sql = "insert into  chao(用户编号,小区) values ( " + CStr(Cbcard.Kahao) + "','" + CStr(Rs3.Fields("小区") & "") + "') " 
      

  7.   

    猜想是cstr的原因,把cstr去掉试一下
      

  8.   

    其实数据库中字段不用这样做可以这样
    sql = "insert into  chao(用户编号,小区) select '" + CStr(Cbcard.Kahao) + "',小区 from 小区编码 where 小区code = '001' " 
      

  9.   

    Rs3.Fields("小区")为null(表示没有数据,不是什么"为空")时,你第一句 后面就插入的是'null值',语法错误要插入null值,直接 values(     ,"null")
      

  10.   


    你的这个"NULL”值,存入数据库好象是字符串NULL,不是空值吧。
      

  11.   

    我也是经常这么写的  Rs3.Fields("小区").value & ""
    如果Rs3.Fields("小区").value 是空值也不会报错
      

  12.   

    关键是Rs3.Fields("小区").value 为空值时报引用错误,程序执行到这里就飞了
      

  13.   

    Rs3.Fields("小区").value & "" 
    这样挺好的
      

  14.   

    values(    ,null)sql = "insert into  chao(用户编号,小区) values ( '" + Cbcard.Kahao + "',null)"