| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Как вносить новые данные в БД Access? |
| Автор: kazus 2.9.2007, 16:54 |
| Имеется БД (Access 2003) состоящая из 3-х связанных (заполненных) таблиц. Каким образом в неё можно внасить новые записи? Как дополнять БД? Заранее благодарю. |
| Автор: kazus 2.9.2007, 17:10 |
| Сделала Общую форму для добавления, добавляю след. новую запись, выдает ошибку: "Невозможно добавление или изменение запси. Для обеспечения целостности данных необходимо наличие связанной записи в таблице 2." ????? Помогите, пожалуйста, разобраться. |
| Автор: Anark1 2.9.2007, 17:26 |
| Проблема в том, что на таблицы БД наложено ограничение ссылочной целостности. Ошибка типа "Violating of foreign key". Сначала стоит узнать, что это такое. |
| Автор: Akina 2.9.2007, 19:12 |
| Каскадное добавление всегда начинается с таблиц на стороне "один". Ты же пытаешься сразу добавить данные в таблицу на стороне "много". |
| Автор: kazus 2.9.2007, 21:27 |
| Прошу прощения, за полное отсутствие знаний в этой области, только сегодня села за Access,действовала по рекомендациям из самоучителя- все получилось, кроме запроса на добавление (объединение таблиц)- ошибка: ...нарушение уникальности ключа; и, совершенно не понятно, как добавлять новые данные в таблицу. Из комментариев выше - не ясно как делать надо?! Если не затруднит, опишите порядок действий для чайников. Чувствую, что просто должно быть... Очень благодарю. |
| Автор: ТоляМБА 3.9.2007, 09:25 |
| Сервис -> Схема данных Посмотри с какой таблицей связана твоя, открой ту таблицу, посмотри значения и в свою таблицу в соответствующее поле (видно в схеме данных) вноси только те записи которые есть в той таблице. |
| Автор: Akina 3.9.2007, 18:41 |
Хорошо, но мало. Надо еще смотреть макет таблиц - там могут быть поля подстановки. |
| Автор: kazus 6.9.2007, 19:56 |
| Общая форма для заполнения содержит все поля из первой и второй таблиц. Например: "№ (ключ, типа- счетчик)", "ФИО", "группа" - поля Табл.1; "№ (ключ, типа- счетчик)", "адрес", "тел." - поля Табл.2; Связь- один к одному полей "№(ключ, типа- счетчик)" между Табл.1 и Табл.2; Пусть БД из этих двух таблиц состоит. Как новые данные туда внести???????????????? Кто-нибудь знает??? |
| Автор: Anark1 6.9.2007, 21:52 |
| Такие таблицы ты никогда не свяжешь (вернее это реально, но это в корне не правильно). Почему? Потому что у тебя оба поля связи автоинкрементны. Во второй таблице создай некоторое поле Table1_Id. Потом создай внешний ключ и добавляй записи INSERTом. Сначала в главную таблицу, потом в подчиненную. В поле Table1_id добавляешь значение из № таблицы1. |
| Автор: bopoha 7.9.2007, 23:47 |
| Anark1, очень сложно решение. Дейстительно в таблицу необходимо добавить поле внешнего ключа Table1_Id - куда будут записываться коды из первичного ключа "№ (ключ, типа- счетчик)" из Таблицы 1. Дальше делаются две формы. Для таблицы1 и таблицы2 - форма1 и форма2. На форма2 будет подчиненной (надеюсь ты знаешь как добавлять подчиненные формы на форму). Далее в свойствах элемента увпраленя подчиненной формы на вкладке "Даные" необходимо указать отношения между полями. Подчиненные поля - Table1_Id, Основные поля - "№ (ключ, типа- счетчик)". Все пользователь со спокойной душой может добавить несколько записей. |
| Автор: Anark1 8.9.2007, 15:21 |
| bopoha, в чем сложность ? |
| Автор: kazus 9.9.2007, 01:41 |
| bopoha, Anark1, спасибо! |
| Автор: bopoha 10.9.2007, 09:39 |
| Anark1, сложность заключается в том, что записи нужно не только добавлять, но и удалять. Писать каждый раз (если принять этот метод для всех подобных случаев) подобный код утомительно (прикинь полей эдак 50-т INSERT-ом). Можно воспользоваться стандартными возможностями. Быстрее, проще, работает! |