[英]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.