Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Добавление новых значений связанных полей в Access (http://forum.oszone.net/showthread.php?t=251663)

Доярка 17-01-2013 12:39 2068723

Добавление новых значений связанных полей в Access
 
Пусть в базе данных Access (располагаю версией 2007) ключевое поле главной таблицы (скажем, текстового типа) связано с неключевым полем подчинённой таблицы по типу «один-ко-многим». Связь осуществилась с помощью Мастера подстановок. При создании связи пусть указано, как по умолчанию: «Ограничиться списком?» -> «Нет», т.е. целостность данных сознательно не обеспечена.
Создаётся форма на основании подчинённой таблицы. Пусть требуется с помощью этой формы создать новую запись. Выбирается через раскрывающийся список соответствующее связанному полю ключевое поле главной таблицы, а нужного значения ключевого поля пока нет. Видится 2 способа его добавления.
1. Закрыть форму, открыть главную таблицу и в ней добавить недостающее значение ключевого поля, что представляется не совсем удобным.
2. Т.к. целостность данных не обеспечена, можно в форме самим вручную написать новое значение поля. Понятно, через копирование и вставку это значение можно впоследствии перенести и в главную таблицу, там его проверка на уникальность автоматически и произойдёт.
НО! Можно ли каким-либо образом сделать, чтобы это новое значение связанного поля, добавленное в форме, само подставилось именно в новую запись главной таблицы? Разумеется, если это значение ранее в ней не встречалось.
Заранее благодарю.

Delirium 18-01-2013 15:18 2069604

можно навесить код на VBA на SelectedIndexChanged. В коде проверить, есть ли в таблице выбранная запись. Если ее нет, то вызвать запрос с параметром(его написать заранее), который будет добавлять запись в таблицу.

Доярка 18-01-2013 15:21 2069607

Ну запрос с параметром - это понятно. Осталось узнать, как навесить код на VBA.

Delirium 21-01-2013 09:33 2071470

Цитата:

Цитата Доярка
как навесить код на VBA. »

Свойства текстового поля в режиме конструктора формы. Ищем нужное свойство. Прописываем туда код.

Доярка 21-01-2013 13:48 2071660

Осталось бы знать, какой код. Алгоритм представляю.
Индикатор = ложь
Для всех записей в добавляемую таблицу:
Если значение ключевого поля = значению добавленного текстового поля, то:
Индикатор = истина
Выход из цикла
Конец условного оператора
Конец цикла
Если не(индикатор), то:
Добавить в таблицу запись
Значение ключевого поля = значение добавленного текстового поля
Конец условного оператора
***
Но не знаю, как бы это реализовать на VBA.


Время: 07:13.

Время: 07:13.
© OSzone.net 2001-