Здравствуйте уважаемые формучане, в файле примера, при его запуске вылезает форма, которая позволяет выбрать месяц и год и на основе этих данных получить отчет на листе эксель, но при работе выдает ошибку "1004 синтаксическая ошибка sql" и ругается на строчку .refresh backgroundquery:=false. Кто может подсказать в чем может быть проблема, и может быть в принципе мой способ получение sql запроса не оптимальный.
перепроверьте текст запроса, который получается (вместо обновления сделайте debug.print) и посчитайте количество открывающих и закрывающих скобок в выражении WHERE. Их мало того что как то дофига там лишних, так еще и разное количество. Да и кроме скобок там много ошибок...
Плюс у вас каждый раз создается новое подключение и вставляется таблица в ячейку B5
Код
With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("B5"))
.CommandText = SQLDB491Received104
.Name = "DB491Received104"
.Refresh BackgroundQuery:=False
End With
Может конечно в этом есть тайный смысл, но мне кажется - нет.
"SELECT Count([Тип]) AS [Count] FROM DB491 WHERE [Тип]='ЭК-104' AND [Серийный]='Да' AND Month([Дата поступления])='" & m & "' AND Year([Дата поступления])='" & g & "'"
StepanWolkoff, К сожалению этот код не является полностью моим полностью магию как происходит подключение я не понял, но вставлять в ячейку результат надо ибо в последствии будет много разных запросов с одним числом из разных БД. Просто париться с аксесовскими отчетами откровенно говоря не хотелось, они реально ужасны.