Возможен ли этот метод поиска в Access VBA? - PullRequest
1 голос
/ 22 апреля 2009

Я использую Access 2007 для подключения к базе данных MS SQL через ODBC. У меня есть таблица под названием «Базы», ​​она выглядит так:

Name     ID     Site
--------------------
Home      1      111
Work      2      111
Car       3      111
Castle    4      111
Store     1      222
Rest      2      222

Теперь сложная часть состоит в том, что единственная часть этой таблицы, которая будет знать, это Site.
Я знаю, что могу сделать DLookup и получить первую запись (Home, 1) и сохранить ее в переменных.
НО мне нужно каким-то образом получить следующую запись (Работа, 2) и сохранить ее в других переменных, а затем зациклить таблицу, пока у меня не будет каждой записи, пока Сайт 111 не будет храниться в переменных.
Есть идеи? Цель этого состоит в том, чтобы сохранить эти возвращенные значения в виде строк и в конечном итоге поместить их в сложный запрос.

Ответы [ 2 ]

4 голосов
/ 22 апреля 2009

Я немного заржавел, но вы должны быть в состоянии сделать запрос как.

SELECT * FROM Bases WHERE Site = 111

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

Если вы не знакомы с наборами записей, посмотрите на эту статью .

0 голосов
/ 03 мая 2009

Как сказал onedaywhen передо мной, циклический просмотр набора результатов для создания второго запроса не является оптимальным решением.

Я не знаю, как выглядит второй (сложный) запрос, но разве вы не можете сделать что-то подобное?

select * from OtherTable 
where Name in 
(
    select Name from Bases where Site = 111
)
...