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

标签 sql ms-access excel vba

我正在使用 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,但这是为了方便起见,重要的是顺序,它必须与参数的使用顺序相匹配。

关于sql - Excel Vba - 在 sql 字符串中使用撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796973/

相关文章:

sql - 在同一查询中更改列和添加列的语法

mysql - 以 5 组返回特定​​ ID 的 SQL

ms-access - Microsoft Access VBA 中的记录已删除消息

c# - INSERT INTO 语句 ASP.Net C# 中的语法错误

c# - 下载生成的 OpenXML

php - MySQL - 如何连接加载数据语句?

c# - 在 con.Open() 之前测试数据库连接是否正常

java - 如何在多个 for 循环中执行 SQL 查询?

excel - Outlook 到 Excel 的超链接问题

vba - 按空行拆分数据,并按原始数据集中的单元格值重命名新工作表