在SQL的INSERT INTO语句中引用的多个控件TEXT为空时,如何编写相应的SQL语句,以防止SQL语句执行失败。

解决方案 »

  1.   

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

  2.   

    拼sql阿
    Dim strSql as String
    strSql = "insert into tb values("
    if TextBoxID.Text="" then
       strSql=Strsql & "null,"
    end if
    if TextBoxName.Text="" then
       strSql=Strsql & "null,"
    end ifif TextBoxPassword.Text="" then
       strSql=Strsql & "null)"
    end if
      

  3.   

    1楼和2楼的方法都可以,道理是一样的,就是拼sql语句
      

  4.   

    strsql="insert into 表名(字符字段,数值字段) values(" & iif(trim(text1.text)="","NULL","'" & trim(text1.text) & "'") & "," & iif(trim(text2.text)="","NULL",val(trim(text2.text))) & ")"
      

  5.   

    strsql=" insert into 表名(字符字段,数值字段) values("& iif(trim(text1.text)="","NULL","'"& text1.text &"'") &","& iif(trim(text2.text)="","NULL","" & text2.text &"") &")"
    cn.execute strsql
      

  6.   

    1)如果字段允许空值,用 1 楼的方法。
    2)如果不允许空值但是有默认值:
    strsql=" insert into 表名(字符字段,数值字段) values(" & _
            "'" & trim(text1.text) & "'," & _
            "0" & trim(text2.text) & ")"
    如果 Text1 为空,则 '' 作为默认值。
    如果 Text2 为空,则 0 作为默认值;不为空时,数值前面多个前导零,一般都是被直接忽略而不会引起错误的。
    3)如果即不允许空值也不允许有默认值,那么要先对每个字段进行有效性检查。其实有效性检查总是必须的,否则 Text2 中输入字母还是出错。