SQL-запрос не работает в VBA. бросая ошибка автоматизации - PullRequest
0 голосов
/ 06 ноября 2018

Может ли кто-нибудь посмотреть и сказать мне, что не так в следующем коде VB

mssql1 = "select TOP 1 [Test Date]from [AllSamples].[dbo].[Results](select TOP 2[Test Date] from [AllSamples].[dbo].[Results] where ([Sample ID] = '" & Split(Sheet1.Cells(i, 6), "-")(0) & "' And [Sample No.] = '" & Split(Sheet1.Cells(i, 6), "-")(1) & "') Order BY [Test Date] DESC) Order BY [Test Date] ASC"

Он берет номер тега и разбивает его соответственно на идентификатор выборки и номер выборки. пожалуйста, исправьте запрос

1 Ответ

0 голосов
/ 06 ноября 2018

В вашем SQL вы пропускаете список полей после TOP 1, а затем до подзапроса и псевдоним для подзапроса. Это должно быть что-то вроде:

mssql1 = "select TOP 1 * from " & _ 
" (select TOP 2 [Test Date] from [AllSamples].[dbo].[Results] " & _
" ... Order BY [Test Date] DESC) tmp Order BY [Test Date] ASC"

И, не забудьте использовать параметры вместо этих конкатенаций строк, чтобы предотвратить атаку SQL-инъекцией и другие проблемы со строкой.

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