Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
1

Ввод данных при отношении "многие-ко-многим"

16.06.2013, 21:40. Просмотров 3056. Ответов 31
Метки нет (Все метки)

Приветствую всех обитателей форума.
Здравствуйте, прошу направить на путь и подсказать.
Классическое "многие-ко-многим": первая форма "frmОбъект", вторая форма "frmКоординаты", и связующая кросс-форма "frmСубъект_данных". Форму "frmСубъект_данных" сделал подчиненной для "frmОбъект".

Мне требуется вводить большое количество точек с их координатами в "frmКоординаты" и сразу привязывать их к объекту в "frmОбъект" (т.е. по сути создавать точки внутри объекта).
Сейчас ввод данных выглядит так: из списка подстановки в подчиненной "frmСубъект_данных" пытаюсь найти еще не созданную точку, не нахожу, открывается форма для редактирования "frmКоординаты", создаю в ней запись новой точки с координатами, закрываю форму для редактирования и возвращаюсь к "frmСубъект_данных" и УРА ! - привязал точку, и так 1000 раз - ну и как это называется ?
Пожалуйста, помогите, где я не прав?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 21:40
Ответы с готовыми решениями:

Создание формы для ввода данных при отношении "многие-ко-многим"
Здравствуйте, уважаемые эксперты! Прошу Вас помочь новичку – изучаю Access, решил сделать базу...

Запрос из таблиц со связью "многие-ко-многим" с несколькими связями с промежуточной таблицей
Я разрабатываю БД для организации по продаже запчастей. Новые (ещё не выполненные) заказы хранят...

Реализация на форме отношения "многие-ко-многим"
Здравствуйте. Есть таблицы Рейсы, Туры Новые и их связывающая - Тур=рейсы. Реализуется связь...

Отношение "Многие-ко-многим"
Здравствуйте уважаемые форумчане. Посмотрите, пожалуйста, на рисунок. Проблема в том, что один...

связь "многие ко многим"
бд "Библиотека" тут получается,что многие читатели могут читать одну и ту же книгу, и так же одна...

31
mobile
Эксперт MS Access
23395 / 13189 / 2768
Регистрация: 28.04.2012
Сообщений: 14,450
16.06.2013, 22:04 2
Bars4, не описан существенный момент - может ли одна и та же точка принадлежать разным объектам?
И вообще, есть также вопросы по структуре данных, жаль, что вы рассказали только о интерфейсе и ничего о структуре. Опишите таблицы и поля в них. Пока что не ясно даже сколько таблиц в процессе, 2 или 3.

Хотел было рекомендовать иную, как мне кажется, более оптимальную систему ввода, но засомневался в структуре данных.
2
VinniPuh
6465 / 3771 / 399
Регистрация: 27.03.2013
Сообщений: 13,908
16.06.2013, 22:30 3
Поддерживаю вопрос - mobile - о структуре, сложно судить, в идеале нужна САМА БД
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.06.2013, 00:14  [ТС] 4
Спасибо за отзыв, базу в студию.
Там, действительно могут возникнуть вопросы.
Откройте, пожалуйста "frmАвтотрасса", в подчиненной форме в списке "Тип субъекта данных" выберите "СК_прямоугольная", и вот эти координаты...
Очень нуждаюсь в совете по вводу данных и критике
0
Вложения
Тип файла: rar ObjectEngineering_test.rar (176.7 Кб, 30 просмотров)
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.06.2013, 00:41  [ТС] 5
Да. Эти точки могут принадлежать и другим объектам. Стратегия проектируемой базы в том, что практически большая часть объектов БД могут принадлежать друг другу.
Кроме точек, объектам могут принадлежать и множество записей объектов другого класса - документы, события, люди и т.д., поэтому для всех форм объектов дочерней формой является пустая форма "frmСтруктурный_контейнер", а в зависимости от выбранного типа подчиненного объекта "frmСтруктурный_контейнер".SourceObject получает форму "frmСубъект_данных", при этом устанавливаются соответствующие связи с нужными полями и прогружаются списки подстановок. Связи хранятся в таблице tblСубъект_данных. Информация о классах объектов в "frmОбъект_типы"
Бррр.. накуевдал, блин.. Зато сам.

Добавлено через 13 минут
Код, устанавливающий дочерний объект находится в "frmСубъект_данных" и выполняется по событию списка типа дочернего объекта "AfterUpdate".
0
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.06.2013, 15:18  [ТС] 6
А вот сама схема данных
0
Миниатюры
Ввод данных при отношении "многие-ко-многим"  
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.06.2013, 15:33  [ТС] 7
Вот схема данных.
0
Миниатюры
Ввод данных при отношении "многие-ко-многим"  
mobile
Эксперт MS Access
23395 / 13189 / 2768
Регистрация: 28.04.2012
Сообщений: 14,450
17.06.2013, 19:40 8
Bars4, такой сложный и запутанный интерфейс, что не знаю даже, что и предложить. Я просто многого не понимаю в программе. Единственно, что просится (применительно к теме топика) это, при отсутствии необходимых данных, не вызывать еще одну сложную форму, а запросами на добавление сразу заполнять соотвествущую таблицу. Тем самым вы избавитесь от самого неприятного во вводе - заполнения второй формы. И можно будет заполнять в режиме "конвейера".
Не уверен, правда, в реализуемости предложения, поскольку так и не сумел проследить необходимые связи.
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.06.2013, 21:18  [ТС] 9
mobile, спасибо за отзыв. Конструкции в программе, действительно, перегружены.
Цитата Сообщение от mobile Посмотреть сообщение
Хотел было рекомендовать иную, как мне кажется, более оптимальную систему ввода
mobile, это представляет для меня интерес. Нельзя ли немного осветить (или выложить пример), как мог бы выглядеть "правильный" способ в случае множественного ввода для "многие-ко-многим" на одной из форм. Возможно и структуру данных смогу улучшить и упростить.
Я до сих пор вспоминаю добрым словом подсказанный вами метод фильтрации в спиках подстановки через 'LIKE'. Лучшего ничего не нашел и он выручает. Ибо в access очень слабые элементы управления.
0
mobile
Эксперт MS Access
23395 / 13189 / 2768
Регистрация: 28.04.2012
Сообщений: 14,450
17.06.2013, 21:50 10
Bars4, это чисто практический прием когда надо заполнять большой массив данных. Создаю спец.таблицу со всеми нужными полями и форму для нее. В форме задаю значение по умолчанию как последнее введенное значение. И заполняю таблицу. Потом инсертами разгоняю по нужным таблицам.
1
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
18.06.2013, 01:11 11
mobile, Bars4, Часто использую Exel как промежуточную таблицу. Потом банальное копи пасте или запросом. Иногда получается очень эффективно.
1
alvk
Эксперт MS Access
5786 / 3669 / 200
Регистрация: 12.08.2011
Сообщений: 9,639
18.06.2013, 03:47 12
Цитата Сообщение от GenaY Посмотреть сообщение
Часто использую Exel как промежуточную таблицу.
Ничего, это пройдёт.
Цитата Сообщение от Bars4 Посмотреть сообщение
А вот сама схема данных
Почему у вас единицы измерения на верху пирамиды? Одни координаты в километрах, другие в ярдах?
0
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.06.2013, 10:26  [ТС] 13
Цитата Сообщение от GenaY Посмотреть сообщение
Часто использую Exel как промежуточную таблицу. Потом банальное копи пасте или запросом
Плохо представляю как это выглядит ? Вы имеете ввиду капипэйст с запросом на добавление в кросс-таблицу по событию AfterInsert?
0
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.06.2013, 10:48  [ТС] 14
Цитата Сообщение от alvk Посмотреть сообщение
Почему у вас единицы измерения на верху пирамиды?
Какой вы наблюдательный. Там связь системы_единиц отвалилась от системы_координат.
Спасибо.
0
Миниатюры
Ввод данных при отношении "многие-ко-многим"  
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.06.2013, 11:11  [ТС] 15
Цитата Сообщение от mobile Посмотреть сообщение
самого неприятного во вводе - заполнения второй формы
Две операции в разных таблицах для ввода одной единицы данных - это действительно очень неприятно. Еще неприятнее делать это поштучно.
Цитата Сообщение от mobile Посмотреть сообщение
запросами на добавление сразу заполнять соотвествущую таблицу
Я вижу в этом рацзерно. В моем случае, видимо, единственное.
Цитата Сообщение от mobile Посмотреть сообщение
Создаю спец.таблицу со всеми нужными полями и форму для нее
А это не понял, т.к. формы для заполнения уже существуют.
0
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
18.06.2013, 13:16 16
Цитата Сообщение от Bars4 Посмотреть сообщение
Плохо представляю как это выглядит ? Вы имеете ввиду капипэйст с запросом на добавление в кросс-таблицу по событию AfterInsert?
Нет, я имею ввиду, что скопированные в экселе данные можно вставить в напрямую в таблицу аксес методов капипэйст. Предварительно убедившись, что колонки и тип данных подходят. Также можно вставлять в запрос и в форму которая в режиме таблицы.
Может показаться, что это слишком по ламерски и очевидно. Но часто этот не "програмистский" прием значительно сокращает (у меня по крайней мере) наполнение первоначальных данных базы, а интерфейс ввода в базе оптимизирую уже под редкое добавление и правку.

В экселе иногда проще собирать данные из разных источников и приводить их к единому виду, чем в таблицах аксес.
Так же таблица ексель может быть подключена как внешняя к базе или импортирована.

Поводом написания всего этого послужила фраза
Цитата Сообщение от mobile Посмотреть сообщение
...Создаю спец.таблицу со всеми нужными полями и форму для нее....
PS: Базу вашу смотрел не достаточно, что бы понять задачу, но старался.
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.06.2013, 15:53  [ТС] 17
GenaY, как эти вводимые данные динамически установить в качестве субъекта данных для другого объекта ? Поштучно для каждого или возможно группой? Как для классического примера с таблицами "Авторы", "Книги" "Авторство" (кросс-таблицы "многие-ко-многим" для связи авторов с книгами), если требуется динамически устанавливать Автору запись в таблице "Авторство" при создании записи о новой книге.
0
alvk
Эксперт MS Access
5786 / 3669 / 200
Регистрация: 12.08.2011
Сообщений: 9,639
18.06.2013, 16:02 18
Цитата Сообщение от GenaY Посмотреть сообщение
Но часто этот не "програмистский" прием значительно сокращает (у меня по крайней мере) наполнение первоначальных данных базы
То есть в таблице фактов внешних ключей у нас нет?
1
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
18.06.2013, 21:42 19
Bars4,
Готовлю нормализованную таблицу в екселе. База была уже готова раньше.
1. Открываю оба файла.
2. В екселе выделяю колонку Автор, Копирую
3. Открываю Таблицу Авторы, Вставляю. Предупреждения о повторяющихся записях игнорирую.
Вставились уникальные Авторы.
4. В екселе выделяю колонку Названия, Копирую.
5. Открываю Таблицу Книги, Вставляю. Так же, предупреждения о повторяющихся записях игнорирую.
6. В екселе выделяю уже обе колонки Автор и названия, Копирую
7. Открываю Таблицу Книги, Вставляю одновременно уже две колонки.

Я конечно же не точен был выше (за один проход несколько таблиц). Без полей со с писком этого бы не получилось. Но попробуйте уловить суть, которую я пытался донести (признаю первая попытка была не удачной). Наполнение данными разбить на несколько этапов. Заполнить справочники, затем связи между ними. А написанный интерфейс позволит поддерживать базу в актуальном состоянии.
mobile предлагал то же, через доп таблицы.
Я могу все это проделать в VBA без проблем. Могу копипастить, в зависимости от задачи и сроков. (не вашу базу имею ввиду, вашу пока боюсь) Но никогда я не буду заносить 2000 записи по одной. Ленив я для этого.
1
Вложения
Тип файла: rar Пример.rar (12.2 Кб, 27 просмотров)
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
18.06.2013, 21:44 20
Цитата Сообщение от alvk Посмотреть сообщение
То есть в таблице фактов внешних ключей у нас нет?
Поле со списком у меня лучший друг.
2
18.06.2013, 21:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 21:44

Связь "многие-ко-многим"
Доброго времени суток. У меня следующая проблема. Есть 3 таблицы: фильм, персона (имя человека),...

Множественное "многие-ко-многим"
Здравствуйте! Прошу помощи с реализацией архитектуры БД: В БазеДанных любой объект (т.е....

Связь "многие-ко-многим"
Я делаю сначала БД в Access'e. |Название фильма(EN)|Название фильма(RU)|Жанры|Страны|Год...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru