簡體   English   中英

使用VBA插入帶有撇號的語句?

[英]Insert into statement with an apostophe using VBA?

我有一個帶有文本框的表單。 我將用戶在文本框中輸入的內容插入到表格中。 如果用戶在標記為“Me.ProjectName”的文本框中輸入撇號,我會收到錯誤消息。 我的代碼是:

   CurrentDb.Execute "INSERT INTO Table1(ProjectNumber, Title) " & _
        " VALUES('" & ProjectNumber & "','" & Me.ProjectName & "')"

不應根據用戶輸入構造和執行動態 SQL 您應該使用參數化查詢,例如:

Dim cdb As DAO.Database
Set cdb = CurrentDb
Dim qdf As DAO.QueryDef
Set qdf = cdb.CreateQueryDef("", _
        "INSERT INTO Table1 (ProjectNumber, Title) VALUES (@prjnum, @title)")
qdf.Parameters("@prjnum").Value = ProjectNumber
qdf.Parameters("@title").Value = me.ProjectName
qdf.Execute

您應該通過用 2 個引號替換引號來轉義可能包含引號的字符串:

  Dim SQL As String

  SQL = "INSERT INTO Table1(ProjectNumber, Title) " & _
    " VALUES('" & ProjectNumber & "','" & Replace(Me.ProjectName, "'", "''")  & "')"

  CurrentDb.Execute SQL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM