Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Связанные таблицы в Access   Найти похожие ветки 

 
Shamansky   (2005-02-20 21:24) [0]

Доброго времени суток, мастера подскажите решение проблемы: есть две связанные таблицы в одной базе, ключевые поля у одной ФИО и у другой ФИО связаны, как можно добавляя запись только в одну таблицу, добиться добавления записи в связанную с нец таблицу.
Целостность таблиц настроена, то есть изменяю поле ФИО в одной - оно автоматом изменяется в другой.


 
Desdechado ©   (2005-02-20 21:55) [1]

это не целостность...
и зачем дублировать фио в разных таблицах?


 
Shamansky   (2005-02-20 22:09) [2]

Ну насчет целостности я просто не дописал, в параметрах связи стоит обеспечение целостности данных.
ФИО можно не дублировать, просто чтобы одной записи из первой таблицы отвечала одна запись из другой. Я например знаю ФИО из первой таблицы, по этому ФИО необходимо изменить информацию во второй таблице.
Сейчас я делаю так: фильтрую вторую таблицу по значению ФИО, а потом редактирую, причем в первой таблице указатель стоит на нужной записи:
нельзя ли сделать запись такого типа: tablica1.tablica2.fieldbyname(..):=..


 
Anatoly Podgoretsky ©   (2005-02-20 23:37) [3]

Такого типа сделать нельзя, поскоьку это синтаксив функции, а не поля.


 
Shamansky   (2005-02-21 00:32) [4]

А обратиться к записи в связанной таблице через запись в главной таблице как-то можно?


 
Anatoly Podgoretsky ©   (2005-02-21 00:36) [5]

Расшифруй


 
Shamansky   (2005-02-21 00:52) [6]

У меня есть 2 таблицы, в каждой есть поле ФИО, причем каждая запись в первой таблице соответствует одной записи во второй. Так вот если я добавляю запись в первую таблицу мне нужно добавление одной записи во второй таблице и реализовать это примерно через такую запись
Table1.Append;
table1id.asstring:=string1;
table1fio.asstring:=string2;
Table1.post;
В первой таблице появится запись, необходимо чтобы появилась запись и во второй таблице, пустая или с данными все равно. Это как-то реализовуется через связанные таблицы, вопрос как?


 
Anatoly Podgoretsky ©   (2005-02-21 00:58) [7]

Никак, так как надо сначала данные записать в первую таблицу или наоборот во вторую, в зависимости от правил целостности. Только потом можно в другую. А в другую писать нет проблем.
table2fio.asstring:=table1fio.asstring;


 
Shamansky   (2005-02-21 01:06) [8]

Это понятно, а автоматом это никак не реализуется?
Что бы при добавлении записи в первую таблицу во второй появлялась запись с заполненным связанным полем, а остальные поля заполнялись "по умолчанию".
Может этого можно добиться средствами Access? Через запросы, например...


 
Desdechado ©   (2005-02-21 10:43) [9]

1. Вообще-то связи 1:1 обычно в одной таблице хранятся, а не в разных. Почитай про нормализацию данных.
2. Лучше оперируй не символьными ключами, а суррогатными числовыми - это удобнее и быстрее.
3. Для обработки связанных таблиц на клиенте проще использовать Query, а не Table


 
Erik1 ©   (2005-02-21 15:50) [10]

Для MsAccess Table быстрее.


 
Desdechado ©   (2005-02-21 16:33) [11]

кто тебе такое сказал?
если тебе надо 2 записи, ты всегда всю таблицу вынимаешь на кллиента?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.052 c
4-1107782020
grigory
2005-02-07 16:13
2005.03.20
Что делать если окно не успевает реагировать на сообщения??


1-1109911641
rosl
2005-03-04 07:47
2005.03.20
проверка папки


3-1108715065
Prohodil Mimo
2005-02-18 11:24
2005.03.20
Как в IB6 удалить FOREIGN KEY ?


3-1108301250
Дончанин
2005-02-13 16:27
2005.03.20
Распределенные базы данных


1-1109948969
Denya
2005-03-04 18:09
2005.03.20
TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский