Как работать с одинарной кавычкой в Word VBA SQL query?
Я получаю имя клиента из раскрывающегося списка и использую это значение для запроса электронной таблицы excel, однако имя может содержать одну цитату (пример: мясо Адама). Это нарушает мое приложение и как сделать запрос с переменной, содержащей одну кавычку?
Private Sub cboCompany_Change()
Dim customerName As String
customerName = cboCompany.Value
rsT.Open "SELECT Customer, Postcode, Address1, Address2, State, Country FROM Customers WHERE Customer = '" & customerName & "'", cn, adOpenStatic
2 ответов
где вы указываете две одинарные кавычки ''
, один будет избегать другого и приведет к синглу, попробуйте заменить его следующим образом:
customerName = Replace(customerName, "'", "''")
Это оставляет вас широко открытыми для атак путем внедрения кода SQL. Я бы рекомендовал изменить это на параметризованный запрос, подобный этому
Dim cmd as NEW ADODB.Command
With cmd
.CommandText=”SELECT foo from tblBar where foo=?”
.Parameters.Append .CreateParameter("@foo", adVarChar, adParamInput, 50, “What ever you want”)
.ActiveConnection=dbCon
.CommandType=adCmdText
End With
Set rst=cmd.execute