Главная страница
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.016 c
2-1215592078
Zhentos
2008-07-09 12:27
2008.08.10
Как вырезать фрагмент изображения при изменённом масштабе?


10-1148645234
AlexAlex
2006-05-26 16:07
2008.08.10
Передача файла DCom-серверу


15-1214478638
denic
2008-06-26 15:10
2008.08.10
Футбол на работе.


15-1214212505
Alien1769
2008-06-23 13:15
2008.08.10
Системы учета доступа


3-1203075136
Альберт
2008-02-15 14:32
2008.08.10
Нормализация информации