Прочие БД - Добавление новых значений связанных полей в Access

Ответить
Аватара пользователя
Доярка

Прочие БД - Добавление новых значений связанных полей в Access

Сообщение Доярка »

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

Создаётся форма на основании подчинённой таблицы. Пусть требуется с помощью этой формы создать новую запись. Выбирается через раскрывающийся список соответствующее связанному полю ключевое поле главной таблицы, а нужного значения ключевого поля пока нет. Видится 2 способа его добавления.

1. Закрыть форму, открыть главную таблицу и в ней добавить недостающее значение ключевого поля, что представляется не совсем удобным.

2. Т.к. целостность данных не обеспечена, можно в форме самим вручную написать новое значение поля. Понятно, через копирование и вставку это значение можно впоследствии перенести и в главную таблицу, там его проверка на уникальность автоматически и произойдёт.

НО! Можно ли каким-либо образом сделать, чтобы это новое значение связанного поля, добавленное в форме, само подставилось именно в новую запись главной таблицы? Разумеется, если это значение ранее в ней не встречалось.

Заранее благодарю.
Аватара пользователя
Delirium

Re: Прочие БД - Добавление новых значений связанных полей в Access

Сообщение Delirium »

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

Re: Прочие БД - Добавление новых значений связанных полей в Access

Сообщение Доярка »

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

Re: Прочие БД - Добавление новых значений связанных полей в Access

Сообщение Delirium »

Цитата Доярка:



как навесить код на VBA.
Прочие БД - Добавление новых значений связанных полей в Access




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

Re: Прочие БД - Добавление новых значений связанных полей в Access

Сообщение Доярка »

Осталось бы знать, какой код. Алгоритм представляю.

Индикатор = ложь

Для всех записей в добавляемую таблицу:

Если значение ключевого поля = значению добавленного текстового поля, то:

Индикатор = истина

Выход из цикла

Конец условного оператора

Конец цикла

Если не(индикатор), то:

Добавить в таблицу запись

Значение ключевого поля = значение добавленного текстового поля

Конец условного оператора

***

Но не знаю, как бы это реализовать на VBA.
Ответить

Вернуться в «Программирование и базы данных»