У меня возникла проблема с SQL запросом я пытаюсь сохранить файл в базе данных access но получаю ошибку времени выполнения
Ошибка времени выполнения '- 2147217900(80040e14)': синтаксическая ошибка (отсутствует оператор) в выражении запроса я получаю эту ошибку
Что я уже пробовал:
Это то, что я пробовал, и я получаю ошибку в запросе INSERT
Dim fd As FileDialog Dim SelectFile As Variant Dim cnn As ADODB.Connection Set cnn = New ADODB.Connection Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset Set fd = Application.FileDialog(msoFileDialogOpen) With fd .AllowMultiSelect = False .Title = "Please select file to attach" If .Show = True Then SelectFile = .SelectedItems(1) Else Exit Sub End If End With Set fd = Nothing cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\SaveFile.accdb;Persist Security Info=False;" cnn.Open Set rst = cnn.Execute("INSERT INTO Table1 (AddFiles) VALUES (" & SelectFile & ")") ' rst.AddNew rst.Fields(1).Value = "AddFiles" rst.Update rst.Close cnn.Close
Richard Deeming
Не делай этого так!
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Использование параметров в ADODB не так просто, как ADO.NET-но это все еще вполне возможно.