#excel #vba
Вопрос:
strQuery1 = "SELECT 'Health Start Lite' AS HSL_RAW_ProductName, Max(HSL_RAW.[DateCreated]) AS MaxOfDateCreated," amp; _
"HSL_RAW.[Premium], Last(HSL_RAW.[FirstName]) AS LastOfFirstName, HSL_RAW.[LastName]," amp; _
"HSL_RAW.[EmailAddress], HSL_RAW.[MobileNumber], HSL_RAW.[Partner], Last(HSL_RAW.[Stage]) AS LastOfStage" amp; _
"FROM ...
Комментарии:
1. Какая строка VBA выдает ошибку? Дело не в этом, это просто текст SQL, который вызывает ошибку. Кроме того, какую версию ADO, ODBC и SQL Server вы используете? Я подозреваю, что это
Last(..)
функция, которую ваш драйвер ODBC/ADO может не распознать. Вероятно, вам потребуется либо перевести ваше соединение в режим passthru, либо вместо этого использовать хранимую процедуру.2. ‘Откройте набор записей. rs.Откройте strQuery1, con
3. Хорошо, это определенно
Last(..)
функция, которая, по моему мнению, вообще недопустима в SQL Server. Вы можете попробоватьTOP (1)
или подзапрос/CTE, который использует ROW_NUMBER().4. Я попробую подождать. Спасибо 🙂
5. Попробуйте заменить его
LAST_VALUE(..) ORDER BY (..)
функцией.
Ответ №1:
Между и отсутствует пробел LastOfStage
FROM
. Должно быть:
"... AS LastOfStage" amp; _
" FROM ..."
Обратите внимание на пробел перед FROM
.
Комментарии:
1. Ничего себе, я этого не заметил! Большое вам спасибо 😀