|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.09.2017, 01:56 | #1 |
Новичок
Джуниор
Регистрация: 25.02.2007
Сообщений: 1
|
Выбор таблицы при вводе данных в базу
База данных ACCESS.
Cхема на рисунке. imghttp://www.programmersforum.ru/attachment.php?attachmentid=89355&s tc=1&d=1504392726/img Таблицы: Наблюдатели, Птицы, Встречи, Поведение и 4-е таблицы вариантов поведения. Вообщем Наблюдатель встречает объект и по его поведению данные о нем заносятся в одну из четырех таблиц. Через таблицу Поведение - привязаны данные Встреч ко всем 4-м вариантам поведения по принципу многие-ко-многим. Никак не могу решить проблему: при вводе данных для одного варианта поведения - требуется ввод данных и для остальных 3-х. Как в ACCESS-е можно реализовать этот выбор - так чтобы вводить данные только для одной выбранной таблицы? Ниже код реализующий ввод данных с вариантом поведения - таблица Observations .. при котором вылетает ошибка: .. для обеспечения целостности данных необходимо наличие связанной записи в таблице Migrations. В примере подключены только 2-е из 4-х таблиц. Некоторые пояснения к коду: adotb1->Birds - Объекты adotb2->Watchers - Наблюдатели adotb3->Meets - Встречи adotb4->Behaviors - Поведение adotb5->Observations - ПростоеПоведение adotb6->Migrations - МиграционноеПоведение //---------------------кнопка Добавить----------------- void __fastcall TForm1::Button1Click(TObject *Sender) { adotb1->Append(); adotb2->Append(); adotb3->Append(); adotb4->Append(); adotb5->Append(); //adotb6->Append(); } //------------------------кнопкаПрименить--------------- void __fastcall TForm1::Button2Click(TObject *Sender) { TLocateOptions SearchOptions; if(adotb1->Locate("BName", DBComboBox1->Text, SearchOptions<<loPartialKey<<loCase Insensitive) == true) { adotb3->FieldByName("ID_bird")->AsInteger = adotb1->RecNo; }else { adotb1->FindLast(); adotb3->FieldByName("ID_bird")->AsInteger = adotb1->RecNo + 1; } if(adotb2->Locate("WName", DBComboBox2->Text, SearchOptions<<loPartialKey<<loCase Insensitive) == true) { adotb3->FieldByName("ID_watcher")->AsInteger = adotb2->RecNo; }else { adotb2->FindLast(); adotb3->FieldByName("ID_watcher")->AsInteger = adotb2->RecNo + 1; } if(adotb3->Modified == true) adotb3->Post(); if(adotb5->Modified == true) adotb5->Post(); adotb3->FindLast(); adotb4->FieldByName("ID_meet")->AsInteger = adotb3->RecNo; adotb5->FindLast(); adotb4->FieldByName("ID_observation")->AsInteger = adotb5->RecNo; //adotb4->FieldByName("ID_migration")->AsInteger = 0; if(adotb4->Modified == true) adotb4->Post(); |
10.04.2019, 14:48 | #2 |
Новичок
Джуниор
Регистрация: 10.04.2019
Сообщений: 1
|
ясно
Товары для дома и семьи
|
10.04.2019, 14:58 | #3 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,532
|
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматический выбор из списка значений combobox при ручном вводе с клавиатуры | Настя Белова | Microsoft Office Excel | 3 | 14.05.2014 17:35 |
Включить button при вводе данных | Damik | Общие вопросы Delphi | 4 | 11.02.2013 22:48 |
преобразование таблицы в базу данных | drollig | Microsoft Office Excel | 3 | 17.02.2012 04:01 |
Как включить выбор домена при вводе аккаунта? | Stilet | Операционные системы общие вопросы | 2 | 18.08.2008 08:40 |
преобразование массивов при вводе данных | greenkat | Microsoft Office Excel | 4 | 28.02.2008 19:21 |