|
|
|
Слияние полей в Access
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста!!! Задача: нужно слить несколько полей из столбца в один через запятую. Я нашла статью Юрия Шермана о слиянии полей (работает, все замечательно), но проблема в том, что: 1. У меня база "Телефонный справочник", содержащая около 30000 записей. Сама база изначально построена неправильно (моя задача выжать из нее все, что можно). 2. Есть таблицы: "Адресная база" и "телефоны". В каждой из этих таблиц содержится куча разных полей (название, город, улица, дом, офис, виды деятельности и т.д., но телефоны отдельно: связь между таблицами - индетификатор). 3. Мне надо создать отчет: 1) Город (из "адресной базы") 2) Название фирмы и Виды деятельности (перечисление через запятую) (из "адресной базы") 3) Все телефоны (из таблицы "телефоны") 4. "Неправильность" базы заключается в том, что виды деятельности не подчиненная таблица, а дублировались записи; например: Фирма: Икс, ООО Город: Москва Улица: Иванова Дом: 6 Вид деятельности: продажа автомобилей Следом еще одна запись - новая: Фирма и все данные те же самые, но вид деятельности другой: ремонт автомобилей. 5. Как сделать из этой базы следующий отчет: Икс, ООО (продажа автомобилей, ремонт автомобилей) тел: 111-11-11 факс: 111-11-10 Умоляю, помогите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 14:36 |
|
||
|
Слияние полей в Access
|
|||
|---|---|---|---|
|
#18+
Привет! по-моему если попроще (не ручками), то можно сделать запрос, в котором будут только основные поля по предприятию, сгуппировать их, т.о. получится просто спикок предприятий, делаешь этот запрос основным, и выводишь нужные поля в заголовке отчета или формы, ниже делаешь подчиненную форму или отчет и по идентификатору подставляешь нужные подчиненные записи из основной таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 15:26 |
|
||
|
Слияние полей в Access
|
|||
|---|---|---|---|
|
#18+
Если подставляется индефикатор (связка между таблицами), то в поле, где я хочу, чтобы виды деятельности были через запятую, начинается "ерунда". Вот сколько у фирмы телефонов (от 1 и более 5 телефонов) сколько раз запрос выводит значения видов деятельности. Пример: вместо: Икс, ООО (продажа автомобилей, ремонт автомобилей) запрос выдает: Икс, ООО (продажа автомобилей, продажа автомобилей) ниже следующая строка: Икс, ООО (ремонт автомобилей, ремонт автомобилей) Как с этим бороться? Без индефикатора никак нельзя (иначе телефоны не подставляются)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 17:42 |
|
||
|
Слияние полей в Access
|
|||
|---|---|---|---|
|
#18+
запрос выдает: Икс, ООО (продажа автомобилей, продажа автомобилей) ниже следующая строка: Икс, ООО (ремонт автомобилей, ремонт автомобилей) Как с этим бороться? Сделай еще одну группировку... Сама база изначально построена неправильно И тебе кажется, что ты делаешь правильно? Мне кажется, логичнее эту базу разбить на несколько таблиц: Фирма: IdФирмы/НазваниеФирмы/ДругаяИнформация Вид деятельности: IdВидаДеятельности/НаименованиеВидаДеятельности Виды деятельности по фирмам: IdФирмы/IdВидаДеятельности Телефоны: IdФирмы/Строка-НомерТелефона и т.д. Насторить связи - и, при минимуме размеров, с такой базой можно делать все, что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 22:31 |
|
||
|
Слияние полей в Access
|
|||
|---|---|---|---|
|
#18+
По первой части виноват, невнимательно прочитал. С ходу подсказать не могу, статью не читал :( Посмотри поиском по форуму, здесь несколько раз обсуждалось подобные проблемы. Делать надо, мне кажется, через VBA, запросами такую петрушку, по-моему, не соберешь. Раз уж начал, примерно набросаю функцию: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это при условии, что ты пользуешься DAO. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 22:40 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32245588&tid=1679745]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 402ms |

| 0 / 0 |
