使用ADO或是DAO的Recordset可以解决这一问题。

解决方案 »

  1.   

    我也喷到过这种问题
    后来把insert into SQL语句改成adodc 的addnew,就不存在这个问题了
      

  2.   

    呵呵,你可以测试一下,80%以上的商用软件都通不过这样的测试。
    这些特殊的字符你可以进行编码。如何编码,你自己定。C语言不是有“\n”吗,你可以参考。
      SQL语法本来就有很多有意思的东西,很多网站的登录,名称你输个
    sddsl' or '1看看,是不是进去了。
      

  3.   

    Dim cn As New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=" & App.Path & "\Data\Data.mdb;" & _
                       "User Id=admin;" & _
                       "Password=;"strTemp = "sss'sss,sss"ss"
    cn.Excute "INSERT INTO tbl_temp VALUES(strTemp)"我的意思是上述情况下会出错,关键是strTemp字符串中包含了"'"、","等
    字符。那位可以为我解答?谢谢
      

  4.   

    strTemp = "sss'sss,sss"ss"      '好象多了一个"
    如果只有',可以如下:
    strTemp = VBA.Replace("sss'sss,sss''ss", "'", "''")关注!
      

  5.   

    谢谢各位的参与,但是我的问题还是没有解决。我也知道用RecordSet得AddNew方法可以解决问题,
    但是因为种种原因,我必须采用:
    cn.Excute "INSERT INTO tbl_temp VALUES(strTemp)"
    这个方法。希望大家帮帮忙!
      

  6.   

    Dim cn As New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=" & App.Path & "\Data\Data.mdb;" & _
                       "User Id=admin;" & _
                       "Password=;"' 注意下面两句
    strTemp = "sss'sss,sss""ss"
    strTemp = replace(strTemp,"'","''",0)cn.Excute "INSERT INTO tbl_temp VALUES(strTemp)"
      

  7.   

    strTemp = "sss'sss,sss"ss"
    这一行语法检测都过不了,在vb里,字符串常量中如果有“"”号,
    要用“""”来代替,即写两次"
      

  8.   

    cn.Excute "INSERT INTO tbl_temp VALUES(strTemp)"上面这句对不对?我没有这样用过,下面的可以:cn.Excute "INSERT INTO tbl_temp(字段名) VALUES('" & strTemp & "')"