powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как объединить запросы в VBA ?
7 сообщений из 7, страница 1 из 1
Как объединить запросы в VBA ?
    #39444107
Истина где-то рядом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЭТО ЗАПРОС НА ОСНОВАНИИ КОТОРОГО ФОРМИРУЕТСЯ СПИСОК
Код: 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
Как объединить запросы в VBA ?
    #39444113
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Истина где-то рядомкак в строке запроса VBA объединить оба запроса?
Методика.

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

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

Прошу прощения, но у меня в Excel'e код VBA (
...
Рейтинг: 0 / 0
Как объединить запросы в VBA ?
    #39444159
Истина где-то рядом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результатом вложенного запроса является поле "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
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как объединить запросы в VBA ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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