Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HELP, Ограничение числа полей 
:(
    Опции темы
IvanLis
  Дата 20.6.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



При создании БД столкнулся с ограничением числа полей в таблице.
Мне нужно сделать около 350 полей....
таблица будет содержать около 700 записей

Посоветуйте, что можно сделать 
PM MAIL   Вверх
Akina
Дата 20.6.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Наличие такого количества полей в таблице обычно говорит о неправильном проектировании базы.

Экстенсивные методы обхода проблемы:
  • Разделение на несколько таблиц, связанных 1:1
  • Упаковка данных в структуры
 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 20.6.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Для того, чтобы связать 1-1.
Нужно опять таки сделать 350 полей....

Можно о структурах поподробнее.... 
PM MAIL   Вверх
skyboy
Дата 20.6.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(Akina @  20.6.2006,  13:01 Найти цитируемый пост)
Экстенсивные методы обхода проблемы:

соотвественно, интеснивный метод решения проблемы - разделение на две таблицы со связями 1:N.
Скажи пару слов о структуре. Сдаётся мне, что Akina прав и у тебя, IvanLis, проблемы со структурой  

Это сообщение отредактировал(а) skyboy - 20.6.2006, 14:21
PM MAIL   Вверх
IvanLis
Дата 20.6.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



А какое максимально кол-во полей можно сделать?

а структура....

есть 30 групп людей в каждой из которых 10-30 человек
каждый из них описывается 157 характеристиками (которые разбиты на 4 раздела)

каждая характеристика имеет свой "вес"-коэф-т

потом на основании этих характеристик и весов вычисляется обобщенная характеристика каждого человека и группы 
 

Это сообщение отредактировал(а) IvanLis - 20.6.2006, 14:43
PM MAIL   Вверх
skyboy
Дата 20.6.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



IvanLis, проблема в чём? В создании таблицы с таким большим количеством полей? Или в сложности формирования запросов при такомколичестве полей? 
PM MAIL   Вверх
IvanLis
Дата 20.6.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



В создании таблицы....
и связи показателя с его весом 
PM MAIL   Вверх
skyboy
Дата 20.6.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



дык, вынеси все характеристики в отдельную таблицу:
id_человека
id_характеристики
значение_характеристики
и ещё таблица:
id_характеристики
вес_характеристики
название_характеристики
 
PM MAIL   Вверх
IvanLis
Дата 20.6.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



спасибо...
попробую, сообщу результаты 
PM MAIL   Вверх
Akina
Дата 20.6.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Типичная задача построения связи многие-ко-многим. Следовательно, промежуточная таблица. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 21.6.2006, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Все заработало.... СПАСИБО

А подскажите еще....

задача 
Есть таблица 1...
id_Группы
Описание группы


Есть таблица 2...
id_Человека
id_Группы
Описание человека


На форме id_Группы  представлен как выпадающий список
??? как сделать, что бы в поле при смене id_Группы менялось ее описание???

??? а потом  вывести всех людей относящихся к этой группе в подчиненной форме в виде ленточного списка???

все это желательно чтоб работало на одной форме!
это обязательно делать через подчиненные формы?

делаю через запрос...
запрос работает (когда в разных формах), а когда размещаю на одной.... обновления не происходит!  

Это сообщение отредактировал(а) IvanLis - 21.6.2006, 08:04
PM MAIL   Вверх
Akina
Дата 21.6.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(IvanLis @  21.6.2006,  08:55 Найти цитируемый пост)
это обязательно делать через подчиненные формы?

Нет, можно и без подчиненных. Но через подчиненные проще. Кода создавать меньше. Правда, полученная конструкция более костна.

Что касается остального - на форуме все это есть, и не по одному разу. Озаботьтесь поиском. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 23.6.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Все получилось, чтолько возникла проблемма с построением запроса..... 

Это сообщение отредактировал(а) IvanLis - 23.6.2006, 11:16
PM MAIL   Вверх
IvanLis
Дата 23.6.2006, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Со структурой разобрался, все работает!
Теперь проблемма такова! Не получается сделать запос...

Имеем таблицу Значения показателей в ней поля:
id_показателя
id_человека
Значение показателя


??? Необходимо выбрать Значение показателя по id_показателя   и  id_человека и отобразить его в Поле изначально заложено, что такой показатель всего один!

Для списка все работает....

Код

SELECT [Значения показателей].[Значение показателя]
FROM ( SELECT [Значения показателей].[id_показателя], [Значения показателей].[id_человека], [Значения показателей].[Значение показателя]
FROM [Значения показателей]
WHERE ((([Значения показателей].[id_показателя])=выбор_показателя) AND (([Значения показателей].[id_человека])=выбор_человека)));


Если делать запрос для Поля то пишет #Имя?... (но это и понятно почему)

Что мне делать???
Зараннее СПАСИБО!  

Это сообщение отредактировал(а) IvanLis - 23.6.2006, 11:42
PM MAIL   Вверх
skyboy
Дата 23.6.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



не понял. если надо просто значения параметра, почему делать так
Код

SELECT [Значения показателей].[Значение показателя]
FROM ( SELECT [Значения показателей].[id_показателя], [Значения показателей].[id_человека], [Значения показателей].[Значение показателя]
FROM [Значения показателей]
WHERE ((([Значения показателей].[id_показателя])=выбор_показателя) AND (([Значения показателей].[id_человека])=выбор_человека)));

а не так:
Код

SELECT [Значения показателей].[Значение показателя]
FROM [Значения показателей]
WHERE (([Значения показателей].[id_показателя])=выбор_показателя) AND (([Значения показателей].[id_человека])=выбор_человека));

PM MAIL   Вверх
IvanLis
Дата 23.6.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Цитата(skyboy @ 23.6.2006,  11:25)
не понял. если надо просто значения параметра, почему делать так, а не так:
Код

SELECT [Значения показателей].[Значение показателя]
FROM [Значения показателей]
WHERE (([Значения показателей].[id_показателя])=выбор_показателя) AND (([Значения показателей].[id_человека])=выбор_человека));
?

Этот код работает тоже только со списком....
А мне надо вернуть значение показателя в Поле

Хотя и значение всего одно, но структура подразумевает несколько значений показателя....
Значит из всего списка, который является результатом запроса, надо взять одно значение.
Я так пологаю... надо брать первое, только с First у меня ничего не получилось

??? Как это сделать? 
PM MAIL   Вверх
Akina
Дата 23.6.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(IvanLis @  23.6.2006,  13:09 Найти цитируемый пост)
мне надо вернуть значение показателя в Поле

ну ты же понимаешь что нельзя затолкать в поле набор данных. Даже состоящий из одной записи шириной в одно поле. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 23.6.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Но можно же из этого списка выдернуть значение....
В этом же запросе???

Тогда запрос будет возвращать ЗНАЧЕНИЕ а не СПИСОК! 
PM MAIL   Вверх
Akina
Дата 23.6.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(IvanLis @  23.6.2006,  16:22 Найти цитируемый пост)
Тогда запрос будет возвращать ЗНАЧЕНИЕ а не СПИСОК!  

Запрос всегда возвращает набор записей. ВСЕГДА. Так что получи этот набор в рекордсет и оттуда уже тащи значения. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 23.6.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



А как это сделать?
Напишите примерчик.... 
PM MAIL   Вверх
skyboy
Дата 23.6.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Akina, это зависит от СУБД - "понимает" она, когда ей дают явное значение, или нет. Например, в MySQL проходит следующее:
Код

SELECT * FROM table1 WHERE somefield= (SELECT min(somefield) FROM table2)

Т.е. парсер по использованию min определяет, что запись только одна, и можно применять оператор сравнения "=", а не только вхождения "in". Может, такой оборот заработает и в Access? Жаль, нет под рукой, чтоб проверить.

IvanLis, ты знаешь, где находятся персональные сообщения?
 
PM MAIL   Вверх
Akina
Дата 25.6.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(skyboy @  23.6.2006,  17:53 Найти цитируемый пост)
Может, такой оборот заработает и в Access? 

Нет. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IvanLis
Дата 2.7.2006, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 13
Регистрация: 7.6.2006

Репутация: нет
Всего: нет



Сделал, но не так как хотелось бы....
Все через ж.....!
Если есть идеи подскажите.

Еще один вопрос....
При смене значения СПИСКА.... приходиться нажимать F9
тогда при обновлении формы все работает....
??? Как сделать, что бы обновление основной формы и всех подчиненных происходило при изменении положения в списке ???
 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.1553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.