admin

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

sql

我正在使用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后的’导致错误,我不确定如何解决。我不能只是告诉用户不要输入撇号。我该如何解决?

谢谢


阅读 208

收藏
2021-07-01

共1个答案

admin

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

& 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,但重要的是顺序,该顺序必须与参数的使用顺序匹配。

2021-07-01