VBA Excel SQL INSERT запрос добавляет апостроф ко всем вставленным данным - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь использовать оператор INSERT для вставки данных из пользовательской формы в электронную таблицу Excel, но она добавляет апострофы к каждому вставленному значению, даже датам и числам.

Как сделать оператор вставки, который не будет вставлять апостроф для какого-либо значения?

Код, который я использую в настоящее время:

Sub Insert_data()
Dim con As Object
Dim vSQL1 As String
Dim dbpath As String

dbpath = myworkbookpath

Set con = CreateObject("ADODB.Connection")
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbpath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"";"
con.Open

'CancelledFeeEntryForm.LogDate.Value = Date
'CancelledFeeEntryForm.RecordAppNum.Value = 123456789

vSQL1 = "INSERT INTO [Sheet1$] ([Employee],[Date Of Call],[Application Number]) " & _
"VALUES('" & CancelledFeeEntryForm.Employee.Value & "'," & _
"#" & CancelledFeeEntryForm.LogDate.Value & "#," & _
CancelledFeeEntryForm.RecordAppNum.Value & ");"

con.Execute (vSQL1)
con.Close

End Sub

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Вы должны были отладить и посмотреть, что именно содержит vSQL1.

Глядя на это, вы увидите, как будет выглядеть ваша инструкция SQL:

... VALUES ('SomeStringValue',#SomeDateValue,123')

... ака, в конце числового значения есть апостроф ... но не в начале.

Если честно, я рад, что Excel VBA справляется с этим следующим образом,Потому что альтернативой было бы открытое отверстие в безопасности для атаки SQL-инъекцией (у меня было около 5 секунд до того, как я начал рассуждать о том, как вы никогда не должны делать такие SQL-операторы, пока я не заметил, что VBA защитил вас от серьезной ошибки безопасности.) * +1010 *

0 голосов
/ 10 апреля 2019

Обдумал обходной путь, хотя это и раздражает, но сейчас придется это сделать.

Как и во многих случаях с Excel, мне приходилось вводить фиктивные данные в строку 2 рабочей книги.Я вставляю данные в нужном мне формате.Затем, при использовании кода вставки SQL, он будет соответствовать существующим данным.

Если кто-нибудь знает, как это сделать с помощью кода, не стесняйтесь указывать. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...