Запустить запрос для каждого результата другого запроса - Доступ - PullRequest
0 голосов
/ 05 августа 2011

Я пытаюсь использовать результаты другого запроса в качестве критерия для другого.В моем конкретном примере у меня может быть четыре дома: «A», «B», «C», «D» (уникальные значения поля в таблице «Homes»).

Я хочуПройдите другой запрос и скажите для каждого типа дома, какой процент жителей (в таблице «Жители») состоят в браке, что я хочу сделать, используя Count () для подсчета числа для каждого Тип дома.*

Нужно ли просматривать результаты с помощью VBA?Если обратиться к более высокому уровню, есть ли способ использовать результаты запроса в качестве входных данных для другого - больше, чем просто ограничить результаты нового запроса результатами предыдущего запроса?

Редактировать:

В полупсевдокоде:

For each (result of previous query) Do
New query WHERE field1 = (row of previous query)
End Do

Что я пытаюсь спросить, есть ли способ сделать это в Access с использованием SQL?Или это то, что должно быть сделано в VBA?

Я знаю, что если это можно сделать на SQL, это будет наилучшим и эффективным способом, но я относительно неопытен в SQL, и онлайн-ресурсы не всегда полезны, потому что в Access есть свой особый видSQL.

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

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

VBA: Работа с RecordSets

Цикл по наборам записей

Код через все записи

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

Чтобы ответить на ваш общий вопрос, да, есть.Вы можете сделать вложенный запрос, т.е. выбрать столбец a из таблицы a, где column a = (выбрать столбец b из таблицы b, где столбец b = x)

Вы можете пройти столько уровней, сколько хотите, но предостережениеЭто вложенный запрос может вернуть только один столбец и с определенным набором ответов.Вы также можете использовать операторы select в качестве столбцов, например

select (выберите столбец b из таблицы b) col b из таблицы a ..... Не точный синтаксис, но мне пришлось бы выкопать некоторые примеры изстарый проект, чтобы найти это.

Вложенные запросы полезны, но для уровня точности, который вы ищете, хранимая процедура или представление, вероятно, является лучшим вариантом.Просто для простоты использования, я хотел бы взглянуть на создание представления данных, которые вы хотите, и затем запросить их, чтобы начать с.Более гибкий, чем вложенный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...