![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Связанные таблицы в Access [D6, dBase, FoxPro, Paradox, Access]
Yuri Btr © (2002-07-19 12:11:00)Ув. мастера, у меня есть две связанные таблицы в Access базе:
Допустим поля первой таблицы (Table1)-
(1)"Номер"
(2)"Название устройства"
а поля второй таблицы (Table2)-
(1)"Номер"
(2)"Дата использования"
Таблицы связаны по "Номеру" в соотношении один - ко многим, т.е. Одному устройству может соответствовать несколько дат использования. Как мне из Дельфи, после вставки записи:
Table1.InsertRecord([Номер,Название устройства])
Добавить во вторую таблицу даты именно для этого номера устройства? Если мне не известен Номер, потому как поле Номер - автоинкрементное.
Table2.InsertRecord([Номер,Дата использования])
Наверное надо для начала настроить MasterSource для Table2 и связать их по Номеру?
Заранее спасибо.
Yuri Btr (2002-07-19 13:20:00) [1]Спасибо.
Я сделал так
Table1.Insert([nil,"Сервер"])
затем, когда курсор установится на новую запись,
Table2.Insert([Table1.FieldbyName("Номер").asInteger,"19.07.2002"])
(во второй таблице Номер - не автоинкрементное поле)
MsGuns (2002-07-19 12:59:00) [2]>Lola
Не понял !
Есть 2 таблицы
Master:
-------------
MainKey MPole1 MPole2 ...
+
Detail:
-------------
MainKey Key1 Key2 .. DPole1, DPole2,...
+ любое любое
Связь по MainKey
Его "Номер" - это Key1. Оно может быть ЛЮБОГО типа !
А вот MainKey = MainKey(Master)
Lola (2002-07-19 12:52:00) [3]Во второй таблице поле Номер должно быть не автоинкрементным, а Integer (автоинкрементное - это само собой, если нужно). Вот ему и присваиваешь значение автоинкрементнного поля из первой таблицы.
MsGuns (2002-07-19 12:19:00) [4]При связи Master-Detail в гриде детальной таблице вообще не надо держать колонку с ключом - при добавлении туда новой записи это поле заполнится автоматически. Но добавлять в детал надо ручками (в смысле программно сделать Insert (Append)