SQL

Excel Vba-在SQL字符串中使用撇号

发布于 2021-07-06 11:14:35

我正在使用excel将数据输入到Access数据库中,并且我的一些数据字符串包含用于测量的撇号。

这是我的SQL输入字符串

    stSQL = "INSERT INTO Products (ProductName, ProductDescription, ProductUnit, SupplierID) " & _
            "Values ('" & cboxItemNum & "', '" & txtDescription & "', '" & txtUnit & "', " & linkPID & ")"

    cn.Execute (stSQL)

我的字符串如下:

Aliplast 4E白色。30“ X 80’X 1/4”软。

在此字符串中,‘80后的’导致错误,我不确定如何解决。我不能只是告诉用户不要输入撇号。我该如何解决?

谢谢

关注者
0
被浏览
131
1 个回答
  • 面试哥
    面试哥 2021-07-06
    为面试而生,有面试问题,就找面试哥。

    您可以使用参数(推荐)或使用“替换”来更正此问题。

    & Replace(txtDescription,"'","''") &
    

    参数

    Dim cmd As New ADODB.command
    cn.Open ServerConnect
    
    cmd.ActiveConnection = cn
    
    stSQL = "INSERT INTO Products (ProductName, " _
       & "ProductDescription, ProductUnit, SupplierID) " _
       & "Values (param1,param2,param3,param4)"
    
    cmd.CommandText = stSQL
    cmd.CommandType = adCmdText
    With cmd
       .Parameters.Append .CreateParameter( _
             "param1", adInteger, adParamInput, , cboxItemNum)
       .Parameters.Append .CreateParameter( _
             "param2", adVarChar, adParamInput, 50, txtDescription )
       .Parameters.Append .CreateParameter( _
             "param3", adInteger, adParamInput, , txtUnit )
       .Parameters.Append .CreateParameter( _
             "param4", adInteger, adParamInput, , linkPID )
    End with
    cmd.Execute recs
    

    请注意,尽管我已将这些参数命名为param1到param4,但重要的是顺序,该顺序必须与参数的使用顺序匹配。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看