Запрос MSQuery изменен в Excel - PullRequest
0 голосов
/ 05 августа 2010

У меня есть запрос, который выполняется в макросе Excel, который был изменен, и я не могу понять, как изменить код в макросе. Исходный запрос:

С ActiveSheet.QueryTables.Add (Connection: = Array (Array (_ "ODBC; DSN = база данных MS Access; DBQ =" & strpath & "; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout" _ ), Array ("= 5;")), Destination: = range ("A1")) .CommandText = Array (_ "SELECT 8MR Final .Plan, 8MR Final .Area, 8MR Final .Track, 8MR Final. 1 MR Report .Segment, 8MR Final. Seg Begin, 8MR Final. Seg End, 8MR Final. Track Category, 8MR Final .Компонент, 8" _ , _ "MR Final .ID, 8MR Final. Defect Desc, 8MR Final .Meas, 8MR Final. Def Begin Sta, 8MR Final. Def End Sta, 8MR Final. Рейка, 8MR Final. Стандарт, 8MR Final. Work Action, 8MR Final .Quanti "_ , _ "ty, 8MR Final .UM, 8MR Final. Unit Cost, 8MR Final. Ext Cost, 8MR Final .Comments" & Chr (13) & "" & Chr (10) & "FROM " & strpath & " . 8MR Final 8MR Final "_ )

Новый запрос содержит объединения и параметр. Можно ли запустить в макросе? Как мне поменять его для запуска в макросе. Новый запрос от доступа:

ВЫБРАТЬ [1 отчет МР] .План AS PlanDesc, [отчет 1 МР]. Область, [отчет 1 МР]. Отслеживать, [отчет 1 МР]. Сегмент, [отчет 1 МР]. [Начало сегмента], [ 1 Отчет MR]. [Конец сегмента], [Отчет 1 MR]. [Категория дорожки], [Отчет 1 MR]. Компонент, [7Meas] .ID, [Отчет 1 MR]. [Desfect Desc], [7Meas]. Показатель, [1 отчет MR]. [Def Begin Sta], [1 отчет MR]. [Def End Sta], [1 отчет MR]. Рейл, [1 отчет MR]. Стандарт, [1 отчет MR]. [Работа Действие], [1 отчет MR]. Количество, [1 отчет MR] .UM, [1 отчет MR]. [Стоимость единицы], [Отчет 1 MR]. [Ext Cost], [7Meas] .Comments ОТ [1 отчет MR] ВЛЕВО СОЕДИНЕНО 7Meas ON ([1 отчет MR] .Segment = [7Meas] .Segment) И ([1 отчет MR] .Defect = [7Meas] .Defect) И ([1 отчет MR]. Def Begin Sta] = [7Meas] .Loc) ГДЕ ((([1 MR Report] .Key) = [userplankey])) ORDER BY [1 отчет MR]. План, [1 отчет MR]. Область, [Отчет 1 MR]. Отслеживание, [Отчет 1 MR]. Сегмент, [Отчет 1 MR]. [Начало сегмента], [Отчет 1 MR] .Компонент, [7Meas] .ID, [Отчет 1 MR]. [Отчеты о дефектах], [Отчет 1 MR]. [Def Begin Sta], [Отчет 1 MR]. [Рабочее действие];

Я выяснил, как получить параметр из электронной таблицы и поместить его в глобальную переменную, но у меня возникают проблемы при преобразовании запроса. Мне нужно, чтобы он работал так же, если это возможно. Заранее благодарим за любую помощь и предложения.

Лора

1 Ответ

0 голосов
/ 05 августа 2010

Попробуйте сделать это по частям.

Начните с одного поля в предложении SELECT и предложении FROM.Посмотрим, сможешь ли ты заставить это работать.Если нет, уменьшите объединения в предложении FROM до тех пор, пока вы не сможете заставить его работать, а затем добавьте каждое объединение обратно по отдельности.

Затем добавьте каждое поле обратно в предложение SELECT, пока не получите все из них, затемдобавьте условия в предложение WHERE и оставьте предложение ORDER BY последним.

Кроме того, рассмотрите возможность наложения псевдонимов таблиц в предложении FROM, чтобы их было легче читать.

...