Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Access > HELP |
Автор: IvanLis 20.6.2006, 11:59 |
При создании БД столкнулся с ограничением числа полей в таблице. Мне нужно сделать около 350 полей.... таблица будет содержать около 700 записей Посоветуйте, что можно сделать |
Автор: Akina 20.6.2006, 13:01 |
Наличие такого количества полей в таблице обычно говорит о неправильном проектировании базы. Экстенсивные методы обхода проблемы:
|
Автор: IvanLis 20.6.2006, 13:59 |
Для того, чтобы связать 1-1. Нужно опять таки сделать 350 полей.... Можно о структурах поподробнее.... |
Автор: skyboy 20.6.2006, 14:20 |
соотвественно, интеснивный метод решения проблемы - разделение на две таблицы со связями 1:N. Скажи пару слов о структуре. Сдаётся мне, что Akina прав и у тебя, IvanLis, проблемы со структурой |
Автор: IvanLis 20.6.2006, 14:37 |
А какое максимально кол-во полей можно сделать? а структура.... есть 30 групп людей в каждой из которых 10-30 человек каждый из них описывается 157 характеристиками (которые разбиты на 4 раздела) каждая характеристика имеет свой "вес"-коэф-т потом на основании этих характеристик и весов вычисляется обобщенная характеристика каждого человека и группы |
Автор: skyboy 20.6.2006, 15:00 |
IvanLis, проблема в чём? В создании таблицы с таким большим количеством полей? Или в сложности формирования запросов при такомколичестве полей? |
Автор: IvanLis 20.6.2006, 15:09 |
В создании таблицы.... и связи показателя с его весом |
Автор: skyboy 20.6.2006, 15:13 |
дык, вынеси все характеристики в отдельную таблицу: id_человека id_характеристики значение_характеристики и ещё таблица: id_характеристики вес_характеристики название_характеристики |
Автор: IvanLis 20.6.2006, 15:18 |
спасибо... попробую, сообщу результаты |
Автор: Akina 20.6.2006, 21:43 |
Типичная задача построения связи многие-ко-многим. Следовательно, промежуточная таблица. |
Автор: IvanLis 21.6.2006, 07:55 |
Все заработало.... СПАСИБО А подскажите еще.... задача Есть таблица 1... id_Группы Описание группы Есть таблица 2... id_Человека id_Группы Описание человека На форме id_Группы представлен как выпадающий список ??? как сделать, что бы в поле при смене id_Группы менялось ее описание??? ??? а потом вывести всех людей относящихся к этой группе в подчиненной форме в виде ленточного списка??? все это желательно чтоб работало на одной форме! это обязательно делать через подчиненные формы? делаю через запрос... запрос работает (когда в разных формах), а когда размещаю на одной.... обновления не происходит! |
Автор: Akina 21.6.2006, 09:13 |
Нет, можно и без подчиненных. Но через подчиненные проще. Кода создавать меньше. Правда, полученная конструкция более костна. Что касается остального - на форуме все это есть, и не по одному разу. Озаботьтесь поиском. |
Автор: IvanLis 23.6.2006, 08:20 |
Все получилось, чтолько возникла проблемма с построением запроса..... |
Автор: IvanLis 23.6.2006, 11:11 | ||
Со структурой разобрался, все работает! Теперь проблемма такова! Не получается сделать запос... Имеем таблицу Значения показателей в ней поля: id_показателя id_человека Значение показателя ??? Необходимо выбрать Значение показателя по id_показателя и id_человека и отобразить его в Поле изначально заложено, что такой показатель всего один! Для списка все работает....
Если делать запрос для Поля то пишет #Имя?... (но это и понятно почему) Что мне делать??? Зараннее СПАСИБО! |
Автор: skyboy 23.6.2006, 11:25 | ||||
не понял. если надо просто значения параметра, почему делать так
а не так:
|
Автор: IvanLis 23.6.2006, 12:09 | ||||
Этот код работает тоже только со списком.... А мне надо вернуть значение показателя в Поле Хотя и значение всего одно, но структура подразумевает несколько значений показателя.... Значит из всего списка, который является результатом запроса, надо взять одно значение. Я так пологаю... надо брать первое, только с First у меня ничего не получилось ??? Как это сделать? |
Автор: Akina 23.6.2006, 14:55 |
ну ты же понимаешь что нельзя затолкать в поле набор данных. Даже состоящий из одной записи шириной в одно поле. |
Автор: IvanLis 23.6.2006, 15:22 |
Но можно же из этого списка выдернуть значение.... В этом же запросе??? Тогда запрос будет возвращать ЗНАЧЕНИЕ а не СПИСОК! |
Автор: Akina 23.6.2006, 15:36 |
Запрос всегда возвращает набор записей. ВСЕГДА. Так что получи этот набор в рекордсет и оттуда уже тащи значения. |
Автор: IvanLis 23.6.2006, 16:00 |
А как это сделать? Напишите примерчик.... |
Автор: skyboy 23.6.2006, 16:53 | ||
Akina, это зависит от СУБД - "понимает" она, когда ей дают явное значение, или нет. Например, в MySQL проходит следующее:
Т.е. парсер по использованию min определяет, что запись только одна, и можно применять оператор сравнения "=", а не только вхождения "in". Может, такой оборот заработает и в Access? Жаль, нет под рукой, чтоб проверить. IvanLis, ты знаешь, где находятся персональные сообщения? |
Автор: Akina 25.6.2006, 15:14 |
Нет. |
Автор: IvanLis 2.7.2006, 02:43 |
Сделал, но не так как хотелось бы.... Все через ж.....! Если есть идеи подскажите. Еще один вопрос.... При смене значения СПИСКА.... приходиться нажимать F9 тогда при обновлении формы все работает.... ??? Как сделать, что бы обновление основной формы и всех подчиненных происходило при изменении положения в списке ??? |