Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как объединить запросы в VBA ? / 7 сообщений из 7, страница 1 из 1
25.04.2017, 14:18
    #39444107
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
ЭТО ЗАПРОС НА ОСНОВАНИИ КОТОРОГО ФОРМИРУЕТСЯ СПИСОК
Код: vbnet
1.
2.
3.
SELECT Сводка.КодТовара, Сводка.КодПодразделения, Сводка.Запрет, Сводка.СтопЛист
FROM Сводка
WHERE (((Сводка.КодПодразделения)=1) AND ((Сводка.Запрет)="no") AND ((Сводка.СтопЛист)="no"));


В ЭТОМ ЗАПРОСЕ ФОРМИРУЕТСЯ ВЫБОРКА НА ОСНОВАНИИ СПИСКА ПЕРВОГО ЗАПРОСА
Код: vbnet
1.
2.
3.
4.
5.
6.
TRANSFORM Sum(Сводка.Остаток) AS [Sum-Остаток]
SELECT Рабочий2.НаименованиеОтдела, Рабочий2.НаименованиеГруппы, Рабочий2.НаименованиеПодгруппы, Запрос2.КодТовара, Рабочий1.НаименованиеРабочее, Рабочий1.Поставщик
FROM Запрос2 INNER JOIN (Рабочий2 INNER JOIN (Рабочий1 INNER JOIN Сводка ON Рабочий1.КодТовара = Сводка.КодТовара) ON (Рабочий2.КодОтдела = Рабочий1.КодОтдела) AND (Рабочий2.КодГруппы = Рабочий1.КодГруппы) AND (Рабочий2.КодПодгруппы = Рабочий1.КодПодгруппы)) ON Запрос2.КодТовара = Рабочий1.КодТовара
WHERE (((Сводка.КодПодразделения)=1 Or (Сводка.КодПодразделения)=2 Or (Сводка.КодПодразделения)=3))
GROUP BY Рабочий2.НаименованиеОтдела, Рабочий2.НаименованиеГруппы, Рабочий2.НаименованиеПодгруппы, Запрос2.КодТовара, Рабочий1.НаименованиеРабочее, Рабочий1.Поставщик
PIVOT Сводка.КодПодразделения;




Подскажите как в строке запроса VBA объединить оба запроса?
С меня шоколадка ну или положительная Карма
...
Рейтинг: 0 / 0
25.04.2017, 14:24
    #39444113
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
Истина где-то рядомкак в строке запроса VBA объединить оба запроса?
Методика.

1) Из текста первого запроса удалить замыкающую точку с запятой
2) Добавить алиас имени таблицы (например, FROM Сводка AS Сводка1) и откорректировать соотв. образом все алиасы у полей.
3) В тексте второго запроса добавить алиас имени этой же таблицы (например, FROM Сводка AS Сводка2) и откорректировать соотв. образом все алиасы у полей.
4) В тексте второго запроса заменить FROM Запрос2 на FROM () AS Запрос2;
5) Внутрь скобок вставить откорректированный текст первого запроса.
...
Рейтинг: 0 / 0
25.04.2017, 14:25
    #39444115
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
С другой стороны никто не мешает создать или оставить первый запрос статическим, и ссылаться на него из текста второго запроса в VBA-коде как на обычную таблицу.
...
Рейтинг: 0 / 0
25.04.2017, 14:36
    #39444120
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
AkinaС другой стороны никто не мешает создать или оставить первый запрос статическим, и ссылаться на него из текста второго запроса в VBA-коде как на обычную таблицу.

Вот это я как раз и не знаю как делать, подскажите маленьким примером.
...
Рейтинг: 0 / 0
25.04.2017, 15:20
    #39444142
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
См.
tab - исходная таблица
que - запрос на основе tab с отбором
crs - перекрёстный запрос, использующий que как источник данных
module1 - выполнение того же перекрёстного запроса, но из VBA-кода (результат см. в Immediate Window)
...
Рейтинг: 0 / 0
25.04.2017, 15:25
    #39444146
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
Akina,

Прошу прощения, но у меня в Excel'e код VBA (
...
Рейтинг: 0 / 0
25.04.2017, 15:40
    #39444159
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить запросы в VBA ?
Результатом вложенного запроса является поле "Qty"
Но Access не выполняет этот код. Ругается на Qty - что еще надо дописать, чтобы заработало?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
TRANSFORM Sum(Сводка.Остаток) AS [Sum-Остаток]
SELECT Рабочий2.НаименованиеОтдела, Рабочий2.НаименованиеГруппы, Рабочий2.НаименованиеПодгруппы, 
(SELECT Сводка.КодТовара FROM Сводка WHERE (((Сводка.КодПодразделения)=1) AND ((Сводка.Запрет)="no") AND ((Сводка.СтопЛист)="no"))) as Qty, 
Рабочий1.НаименованиеРабочее, Рабочий1.Поставщик
FROM Рабочий2 INNER JOIN (Рабочий1 INNER JOIN Сводка ON Рабочий1.КодТовара = Qty) ON (Рабочий2.КодОтдела = Рабочий1.КодОтдела) AND (Рабочий2.КодГруппы = Рабочий1.КодГруппы) AND (Рабочий2.КодПодгруппы = Рабочий1.КодПодгруппы)
WHERE (((Сводка.КодПодразделения)=1 Or (Сводка.КодПодразделения)=2 Or (Сводка.КодПодразделения)=3))
GROUP BY Рабочий2.НаименованиеОтдела, Рабочий2.НаименованиеГруппы, Рабочий2.НаименованиеПодгруппы, Qty, Рабочий1.НаименованиеРабочее, Рабочий1.Поставщик
PIVOT Сводка.КодПодразделения;



Запросы строю в Access далее переношу на VBA Excel
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как объединить запросы в VBA ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]