Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Извращение с запросом для ListBox-а / 21 сообщений из 21, страница 1 из 1
06.08.2004, 13:08:31
    #32638505
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Помогите извратиться, пожалуйста.
Представим ситуацию:
есть 2 таблицы: "сотрудники" и "клиенты"
Связь 1:М, т.е. каждому клиенту соответствует один сотрудник.
Нужно получить запрос, который будет основой для списка(ListBoxa) на форме. И иметь он должен следующий вид (не хочу TreeView использовать)
...
Рейтинг: 0 / 0
06.08.2004, 13:12:08
    #32638516
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
А по каким полям надо сортировать? Достаточно по id или есть другое требование?
...
Рейтинг: 0 / 0
06.08.2004, 13:13:00
    #32638518
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Только ID сотрудника
...
Рейтинг: 0 / 0
06.08.2004, 13:13:45
    #32638521
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
А клиентов внутри сотрудника?
...
Рейтинг: 0 / 0
06.08.2004, 13:16:08
    #32638529
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
ага:
Иванов работает с этими....
Кудрин - с этими..

И т.д.
...
Рейтинг: 0 / 0
06.08.2004, 13:16:59
    #32638533
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
select workername,workerid,1 as tablename from workers
union all
select "---" & clientname,workerid,2 from clients
order by workerid,tablename

- это если без сортировки клиентов внутри сотрудника.
...
Рейтинг: 0 / 0
06.08.2004, 13:17:02
    #32638534
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
select [КодСотрудника] As [Ключ], [ФИОсотрудника] as fs, [КодСотрудника], 0 as fs1, [ФИОсотрудника]
from [Сотрудники]

union

select [КодКлиента], [ФИОсотрудника], [Клиенты].[КодСотрудника], 1, "---- " & [НаимКлиента]
from [Клиенты] inner join [Сотрудники] on [Клиенты].[КодСотрудника]=[Сотрудники].[КодСотрудника]

order by fs, [КодСотрудника], fs1, [ФИОсотрудника]

(не проверял)
...
Рейтинг: 0 / 0
06.08.2004, 13:17:29
    #32638537
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
S. Fedorenkoага:
Иванов работает с этими....
Кудрин - с этими..

И т.д.
Не "ага", а по какому полю их сортировать?
...
Рейтинг: 0 / 0
06.08.2004, 13:17:35
    #32638538
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Опоздал. :)
...
Рейтинг: 0 / 0
06.08.2004, 13:18:08
    #32638539
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
2 Geo:

Этот тот редкий случай, когда я могу с гордостью крикнуть, что у меня короче.
...
Рейтинг: 0 / 0
06.08.2004, 13:19:29
    #32638543
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
2ВС
Зато у меня по алфавиту работники сортируются, а внутри них по алфавиту клиенты ;))
...
Рейтинг: 0 / 0
06.08.2004, 13:20:58
    #32638548
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Сейчас у меня тоже будут по алфавиту.

select workername,workerid,1 as tablename from workers
union all
select "---" & clientname,workerid,2 from clients
order by workerid,tablename,clientname
...
Рейтинг: 0 / 0
06.08.2004, 13:21:37
    #32638552
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Э... Нет, сотрудники у меня не по алфавиту. Но вроде так и надо.
...
Рейтинг: 0 / 0
06.08.2004, 13:40:26
    #32638598
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Владимир Саныч.
Огромное спасибо за помощь. Все работает.
Далее я уже и сам соображу
...
Рейтинг: 0 / 0
06.08.2004, 13:43:36
    #32638607
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
По алфавиту мне не надо. У меня задача другая и таблицы другие, и поля там вычисляемые. А клиентов и сотрудников я в пример привел, чтобы основу (UNION) понять я всё остальное я сам сделаю.

Спасибо.
...
Рейтинг: 0 / 0
06.08.2004, 13:44:11
    #32638610
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Владимир СанычСейчас у меня тоже будут по алфавиту.

select workername,workerid,1 as tablename from workers
union all
select "---" & clientname,workerid,2 from clients
order by workerid,tablename,clientname
У меня тут ошибка. Красное надо заменить на ,workername.
...
Рейтинг: 0 / 0
06.08.2004, 13:49:28
    #32638629
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Вот только тут одна проблема.
Выводятся все струдники.
Представьте, что какой-то сотрудник не имеет клиентов. Как его не показывать в списке?
...
Рейтинг: 0 / 0
06.08.2004, 13:52:43
    #32638640
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
авторУ меня тут ошибка. Красное надо заменить на ...
Саныч, а я уже хотел начинать возмущаться. :)
P.S И все-таки для таких задач лучше использовать TreeView или ListView
...
Рейтинг: 0 / 0
06.08.2004, 13:55:45
    #32638647
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
S. FedorenkoВот только тут одна проблема.
Выводятся все струдники.
Представьте, что какой-то сотрудник не имеет клиентов. Как его не показывать в списке?
Что-нибудь такое: вместо

select workername,workerid,1 as tablename from workers

так:

select workername,workerid,1 as tablename from workers where workerid in (select workerid from clients)
...
Рейтинг: 0 / 0
06.08.2004, 14:02:40
    #32638669
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
Код: plaintext
1.
2.
3.
4.
select distinct workername,workers.workerid, 1  as tablename from workers inner join clients
on workers.workerid=clients.workerid
union all
select "---" & clientname,workerid, 2  from clients
order by workerid,tablename,workername
...
Рейтинг: 0 / 0
06.08.2004, 14:25:46
    #32638751
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращение с запросом для ListBox-а
авторИ все-таки для таких задач лучше использовать TreeView или ListView
Так ведь этот вариант всяко быстрее работать будет.
И, как оказалось, создать запрос легче, чем написать функцию для заполнения treeview. Я как-то делал через treeview, слишком муторно.

to (c)VIG :
И тебе спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Извращение с запросом для ListBox-а / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]