Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.10;
Скачать: CL | DM;

Вниз

Сформировать запрос   Найти похожие ветки 

 
Tornado ©   (2008-02-27 14:43) [0]

Встала проблема формирования запроса. Задача такая: имеем 10 таблиц (структура одинакова) в БД Access. На форме имеем ListBox (с чекбоксами) в который выведен список этих десяти таблиц. Пользователь может выбрать одну или несколько таблиц из ListBox (отметив нужные таблицы флажками) и по нажатию кнопки должен сформироватся запрос. Но запрос должен формироваться только из тех таблиц которые отметил пользователь. Как правильно написать запрос, ведь если пользователь отметил одну таблицу, запрос прост: SELECT * FROM TABLE_NAME WHERE....(где TABLE_NAME - имя таблицы из списка), но если он отметит первую таблицу, пятую и допустим шестую как быть тогда?


 
Sergey13 ©   (2008-02-27 14:45) [1]

> [0] Tornado ©   (27.02.08 14:43)
> Задача такая: имеем 10 таблиц (структура одинакова) в БД Access.

Берем веревку, мыло и ищем крепкий сук в безлюдном месте. 8-)
Или объединяем все в одну таблицу с отдельным полем - признаком их разности.


 
Tornado ©   (2008-02-27 14:54) [2]

Sergey13 ©   (27.02.08 14:45) [1]

Вешацо рановато :)

По поводу объединения - наверно так и придется...


 
Tornado ©   (2008-02-27 14:55) [3]

Хотя все равно не доганяю как запрос написать...


 
Sergey13 ©   (2008-02-27 15:09) [4]

> [3] Tornado ©   (27.02.08 14:55)

С объединенной таблицей или в текущем варианте?
1. IN
2. UNION


 
Tornado ©   (2008-02-27 15:23) [5]

Sergey13 ©   (27.02.08 15:09) [4]

Я знаю как объединить таблицы с помощью UNION...тут в другом заковыка. Придется ведь писать кучу разных запросов (если текущий вариант), т.е.:
1 вариант. пользователь выбрал одну таблицу:
SELECT * FROM TABLE_NAME_1 WHERE....
2 вариант. пользователь выбрал две таблицы:
SELECT * FROM TABLE_NAME_1, TABLE_NAME_2 WHERE....
3 вариант. пользователь выбрал 5 таблиц:
SELECT * FROM TABLE_NAME_1,TABLE_NAME_2,TABLE_NAME_3,TABLE_NAME_4,TABLE_NAME_5  WHERE....
и т.д. получается для каждого варианта свой запрос писать?


 
Sergey13 ©   (2008-02-27 15:48) [6]

> [5] Tornado ©   (27.02.08 15:23)
> получается для каждого варианта свой запрос писать?

Т.е. ты желаешь потрахаться со своим вариантом прежде чем переделать на нормальную структуру? Дело твое конечно.
Тогда уж не

> SELECT * FROM TABLE_NAME_1,TABLE_NAME_2,TABLE_NAME_3,TABLE_NAME_4,
> TABLE_NAME_5  WHERE....

а

SELECT * FROM TABLE_NAME_1 WHERE....
UNION ALL
SELECT * FROM TABLE_NAME_2 WHERE....

ибо твой вариант запроса, ИМХО, вообще неработоспособен.

> Придется ведь писать кучу разных запросов

Ну и что? Контора пишет.
Решение я тебе уже сказал. Можно еще вьюху построить (вроде аксес позволяет это) и работать с ней, но скорее всего тормоза будут приличные.


 
www   (2008-02-27 15:58) [7]

небось, помесячная структура


 
Tornado ©   (2008-02-27 16:11) [8]

Sergey13 ©   (27.02.08 15:48) [6]

Спасиб. Будем реализовывать :)



Страницы: 1 вся ветка

Текущий архив: 2008.08.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
15-1213808280
TUser
2008-06-18 20:58
2008.08.10
Лекторий


15-1214233218
AEN
2008-06-23 19:00
2008.08.10
Если бесплатный хостинг


15-1214376055
denic
2008-06-25 10:40
2008.08.10
Nokia 6280


15-1214480023
No_Dead
2008-06-26 15:33
2008.08.10
Игральный кубик


15-1214400026
boriskb
2008-06-25 17:20
2008.08.10
Правда или очередной наезд Линуксоидов? :)