ФОНMS Access - Написание SQL в VBA
Разработка модуля MS Access, который выполняет код SQL при OnClick() событие вызвало.
КОД
Dim sqlString As String
sqlString = "SELECT [Table - Summary - All Item Forecasts, Sales, and POs].[COMPANY ID], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[COMPANY NAME], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].ITEM, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].STYLE, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].DESCRIPTION, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[SALE PRICE], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[ON-HAND QTY], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[FORECAST QTY], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[MaxOfLATEST PO DATE] " _
& "FROM [Table - Active Product Catalog] " _
& "LEFT JOIN [Table - Summary - All Item Forecasts, Sales, and POs] " _
& "ON [Table - Active Product Catalog].STYLE = [Table - Summary - All Item Forecasts, Sales, and POs].STYLE " _
& "GROUP BY [Table - Summary - All Item Forecasts, Sales, and POs].[COMPANY ID], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[COMPANY NAME] , " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].Item, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].Style, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].Description, " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[SALE PRICE], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[ON-HAND QTY], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[FORECAST QTY], " _
& "[Table - Summary - All Item Forecasts, Sales, and POs].[MaxOfLATEST PO DATE]" _
& "HAVING ((([Table - Summary - All Item Forecasts, Sales, and POs].[COMPANY NAME]) Like ' * ' & [Enter Company Name:] & ' * '));"
DoCmd.RunSQL sqlString
ОШИБКА
Ошибка выполнения '2342': акция RunSQL требует аргумент, состоящий из инструкции SQL.
ВОПРОС (S)
- Я следовал следующий tutorial но получаю ошибку. Похоже, что команда RunSQL не распознает sqlString как команду SQL. Однако я уверен, что SQL-запрос корректно работает в MS Access. Есть идеи?
- В последней строке инструкции SQL у меня есть приглашение MsgBox («
[Enter Company Name:]
»). Я не совсем уверен, что это отбрасывает оператор SQL, но, как указывалось ранее, синтаксис выполняется в MS Access; даже если я заменю приглашение жестко закодированным значением, я получаю такое же сообщение об ошибке.
Примечание: Я, скорее всего, создать inputBox
, который просит для company name
, а затем поместить переменную в последней строке заявления SQL.
Смотрите здесь: http://stackoverflow.com/questions/27421873/select-query-does-not-work-when-converted-to-vba-invalid-sql-statement – OpiesDad
Рассмотрим используя псевдонимы таблиц в вашем SQL ('SELECT Summary. [ИДЕНТИФИКАТОР КОМПАНИИ] ИЗ [Таблица - Сводка - Все товарные прогнозы, продажи и ПО] Сводная информация»); это сделает ваши заявления как более короткими, так и более легкими для анализа. –