Excel Vba-在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后的’导致错误,我不确定如何解决。我不能只是告诉用户不要输入撇号。我该如何解决?
谢谢
-
您可以使用参数(推荐)或使用“替换”来更正此问题。
& 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,但重要的是顺序,该顺序必须与参数的使用顺序匹配。