|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.10.2010, 00:24 | #1 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 20
|
связи между таблицами
Здраствуйте.
Пример: В базе данных имеется 2 таблицы. Пусть на школьников. Причем в обеих первым столбцом идет номер ученика. И данные разделены на 2 таблицы лишь для наглядности. Имеется форма для ввода данных в обе таблицы. Вводим первого ученика - заполняем все поля. Они автоматически оказываются в обеих таблицах под номером 1. Заводим второго ученика, но заполняем лишь поля, соответствующие первой таблице. Третий ученик. Опять заполняем все поля. Во второй таблице он оказывается под номером 2. Как этом можно исправить? Спасибо. |
04.10.2010, 11:10 | #2 |
Пользователь
Регистрация: 14.09.2010
Сообщений: 68
|
Доброго времени суток!
А связь между таблицами по ключевым полям установлена? Здесь, по идее, классическая связь между таблицами "один-к-одному" по ключевому полю - номер ученика. Есть ли она на схеме данных? |
04.10.2010, 11:31 | #3 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 20
|
Да, в обеих таблицах ключевое поле - номер ученика. Связь между ними -- один-к-одному, галочка в "обеспечение целостности данных".
|
04.10.2010, 12:10 | #4 |
Пользователь
Регистрация: 14.09.2010
Сообщений: 68
|
Доброго времени суток!
Тогда надо проверить тип ключевого поля - для второй таблицы оно не должно быть счетчиком (надо - длинное целое, например). Именно в случае, если во второй таблице поле кода - счетчик, и возникает "провал" номера |
04.10.2010, 20:15 | #5 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 20
|
Здраствуйте!
Теперь другая проблема. В обеих таблицах теперь номера совпадают. Только если не ввожу данные на допустим 5-го ученика во вторую таблицу, то в ней не отображаются пустые поля - вместо этого сразу после 4-го ученика идет 6-ой. И при этом, если я потом открываю форму - она не показывает мне этого 5 -го ученика. Опять же - только 4-го и 6-го, только тех на кого хотябы частично заполнены обе таблицы. |
05.10.2010, 11:33 | #6 |
Пользователь
Регистрация: 14.09.2010
Сообщений: 68
|
Доброго времени суток!
С таблицами все правильно - если не вводить данные во вторую таблицу, то и записи об ученике там не будет, пока через форму не введем. А по поводу формы -нужно в источнике данных изменить связь между таблицами - отобразить все записи из первой таблицы и только те записи из второй, которые совпадают с первой. Тогда все появится. |
05.10.2010, 17:51 | #7 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 20
|
А как это можно сделать?
|
06.10.2010, 11:47 | #8 |
Пользователь
Регистрация: 14.09.2010
Сообщений: 68
|
Доброго времени суток!
В режиме коструктора у формы есть окно "Свойства", в нем параметр "Источник данных". Нужно его открыть на изменение - там будут две таблицы, связанные "один-к-одному". Правой кнопкой клик на связи - из меню выбрать "Изменить связь" и там установить тип связи, про который я писал раньше |
06.10.2010, 12:13 | #9 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 20
|
Работает. Спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка связи между таблицами | insense | БД в Delphi | 7 | 01.07.2010 15:11 |
Связь между таблицами | Hottabych | БД в Delphi | 2 | 15.11.2009 22:09 |
БД в DELPHI. Связи между таблицами. | DENCREAT | Помощь студентам | 3 | 24.03.2009 10:55 |
Удаление связи между таблицами в Access | sashaslam | БД в Delphi | 3 | 23.07.2008 09:44 |
Связи между таблицами! | Alexij | БД в Delphi | 1 | 10.06.2008 18:11 |