Запрос в нескольких таблицах одновременно!
Возможно ли с помощью одного запроса пройтись по нескольким таблицам Access сразу? Если возможно, то как это реализовать?
Все зависит от того, что Вы имеете ввиду под
Цитата:
пройтись по нескольким таблицам Access сразу
Например, если при запросе нужно вывести все поля то их не перечиляют через запятую, а просто пишут символ "*". Вот мне надо, чтобы можно было перебрать ВСЕ таблицы (у меня их очень много) из базы данных (.mdb) за один запрос. Я встречал запросы только с явным указанием имени одной таблицы. :confused:
Цитата: SPB-667
Например, если при запросе нужно вывести все поля то их не перечиляют через запятую, а просто пишут символ "*". Вот мне надо, чтобы можно было перебрать ВСЕ таблицы (у меня их очень много) из базы данных (.mdb) за один запрос. Я встречал запросы только с явным указанием имени одной таблицы. :confused:
Что-то сомнительна цель всего этого. Какой смысл выбирать поля всех таблиц сразу?
Ну если так уж нужно, то
select *
from table1, table2, ...
where ...
поскольку Access недо СУБД, то это может оказаться не простой задачей...
и навряд ли у вас получится за один запрос что то сделать со ВСЕМИ таблицами для этого нужны курсоры и хранимые процедуры а в Accese насколько я помню процедур нет вовсе, по поводу курсоров ничего сказать не смогу.
Код:
select * from table1, table2, ... where ...
неоптимальна т.к. у меня таблиц около тысячи :o
я понимаю если бы поля каждой таблицы отличались, но в том то и дело что во всех таблицах они одинаковы, т.е. каждая следующая таблица является продолжением предыдущей. а сводить их в единую таблицу не очень удобно и не очень наглядно выйдет... :(
Код:
Dim STR As String
For i = 1 To N
STR = STR & " UNION SELECT * FROM " & Table(i)
Next i
Data1.RecordSource = Mid(STR, 8)
Data1.Refresh
For i = 1 To N
STR = STR & " UNION SELECT * FROM " & Table(i)
Next i
Data1.RecordSource = Mid(STR, 8)
Data1.Refresh
Контрол Data1 необходим, чтобы отобразить результаты поиска в таблице другого элемента управления DBGrid.