![]() |
|
Модераторы: Akina |
![]()
|
|
| kazus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
Имеется БД (Access 2003) состоящая из 3-х связанных (заполненных) таблиц. Каким образом в неё можно внасить новые записи? Как дополнять БД?
Заранее благодарю. |
|||
|
||||
| kazus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
Сделала Общую форму для добавления, добавляю след. новую запись, выдает ошибку: "Невозможно добавление или изменение запси. Для обеспечения целостности данных необходимо наличие связанной записи в таблице 2."
????? Помогите, пожалуйста, разобраться. |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Проблема в том, что на таблицы БД наложено ограничение ссылочной целостности. Ошибка типа "Violating of foreign key".
Сначала стоит узнать, что это такое. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Каскадное добавление всегда начинается с таблиц на стороне "один". Ты же пытаешься сразу добавить данные в таблицу на стороне "много".
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kazus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
Прошу прощения, за полное отсутствие знаний в этой области, только сегодня села за Access,действовала по рекомендациям из самоучителя- все получилось, кроме запроса на добавление (объединение таблиц)- ошибка: ...нарушение уникальности ключа;
и, совершенно не понятно, как добавлять новые данные в таблицу. Из комментариев выше - не ясно как делать надо?! Если не затруднит, опишите порядок действий для чайников. Чувствую, что просто должно быть... Очень благодарю. |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Сервис -> Схема данных
Посмотри с какой таблицей связана твоя, открой ту таблицу, посмотри значения и в свою таблицу в соответствующее поле (видно в схеме данных) вноси только те записи которые есть в той таблице. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Хорошо, но мало. Надо еще смотреть макет таблиц - там могут быть поля подстановки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kazus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
Общая форма для заполнения содержит все поля из первой и второй таблиц.
Например: "№ (ключ, типа- счетчик)", "ФИО", "группа" - поля Табл.1; "№ (ключ, типа- счетчик)", "адрес", "тел." - поля Табл.2; Связь- один к одному полей "№(ключ, типа- счетчик)" между Табл.1 и Табл.2; Пусть БД из этих двух таблиц состоит. Как новые данные туда внести???????????????? Кто-нибудь знает??? |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Такие таблицы ты никогда не свяжешь (вернее это реально, но это в корне не правильно). Почему? Потому что у тебя оба поля связи автоинкрементны. Во второй таблице создай некоторое поле Table1_Id. Потом создай внешний ключ и добавляй записи INSERTом. Сначала в главную таблицу, потом в подчиненную. В поле Table1_id добавляешь значение из № таблицы1.
|
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Anark1, очень сложно решение.
Дейстительно в таблицу необходимо добавить поле внешнего ключа Table1_Id - куда будут записываться коды из первичного ключа "№ (ключ, типа- счетчик)" из Таблицы 1. Дальше делаются две формы. Для таблицы1 и таблицы2 - форма1 и форма2. На форма2 будет подчиненной (надеюсь ты знаешь как добавлять подчиненные формы на форму). Далее в свойствах элемента увпраленя подчиненной формы на вкладке "Даные" необходимо указать отношения между полями. Подчиненные поля - Table1_Id, Основные поля - "№ (ключ, типа- счетчик)". Все пользователь со спокойной душой может добавить несколько записей. |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
bopoha,
в чем сложность ? |
|||
|
||||
| kazus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 2.9.2007 Репутация: нет Всего: нет |
bopoha, Anark1, спасибо!
|
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Anark1, сложность заключается в том, что записи нужно не только добавлять, но и удалять. Писать каждый раз (если принять этот метод для всех подобных случаев) подобный код утомительно (прикинь полей эдак 50-т INSERT-ом).
Можно воспользоваться стандартными возможностями. Быстрее, проще, работает! |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |