0 / 0 / 1
Регистрация: 28.12.2018
Сообщений: 21
1

Добавление нового значения в зависимое поле со списком

03.03.2020, 14:50. Показов 1980. Ответов 5

Всем добрый день, возникла небольшая проблемка с добавлением нового значения в поле со списком в форме. Прописал уже готовую функцию для добавления в независимую ячейку от других новые значения вот так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Вид_NotInList(NewData As String, Response As Integer)
Dim strMsg As String
Dim rst As DAO.Recordset
Dim db As DAO.Database
strMsg = """" & NewData & """ нет в поле со списком. Вы хотите добавить это значение?"
If MsgBox(strMsg, vbYesNo + vbQuestion, "Новый вид") = vbNo Then
Response = acDataErrDisplay
Else
Set db = CurrentDb()
Set rst = db.OpenRecordset("ВИД")
rst.AddNew
    rst("Вид экспертизы") = NewData
rst.Update
Response = acDataErrAdded
rst.Close
End If
End Sub
Но дальше есть таблица "Специальность", которая зависит от таблицы "Вид", в которой хранится её внешний ключ.
Добавление нового значения в зависимое поле со списком
Добавление нового значения в зависимое поле со списком

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

Что нужно дописать в вышеуказанный код, чтобы он помимо новой записи привязывал ключ, который выбрали в форме?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2020, 14:50
Ответы с готовыми решениями:

Добавление нового значения в поле со списком
Простейший случай! Есть две таблицы, одна "заказы", в которой через подстановку выбираются значения...

Автоматически обновить поле в форме при добавлении нового значения в поле со списком
помогите плииииз, у меня форма в ней поля: код(счетчик); фамилия(текст); профессия(подстановка из...

Зависимое поле со списком в подчиненной форме
Есть 4 таблицы: Виды ОС (КодВидаОС, Название) Основные средства (КодОС, КодВидаОС,...

Как лучше оформить/создать добавление нового значения в зависимые поля со списком?
Всем доброго дня! Делаю СУБД на основе access. Первоначально создал БД в самом access'e и там же...

5
8484 / 5267 / 560
Регистрация: 27.03.2013
Сообщений: 18,495
03.03.2020, 15:12 2
Цитата Сообщение от Comrade-Archer Посмотреть сообщение
... Чтобы он помимо новой записи привязывал ключ, который выбрали в форме?
Я обычно после обновления главенствующего поля, изнасильно-принудительно указываю, что нужно - ОБНОВИТЬ подчиненно-Зависимое - Поле со списком, типа если процедурой, то так
Visual Basic
1
2
3
4
5
Private Sub ВыборГруппыКонтакта_AfterUpdate()
  Me.[ПоискОрганизации].Requery
  Me.[ПоискОрганизации].SetFocus
  Me.[ПоискОрганизации].Dropdown
End Sub
Это при условии, чо я вас правильно понял и у зависимого списка прописано условие отбора по главенствующему полю со списком.
Реальный пример, который можно ручками пощюпать, можно потыкать вот в тут - Про приёмную комиссию
При выборе Факультета, можно выбрать только те специальности, что заранее указаны для данного факультета.
Ну типа в блоке - Поиск.
Сам принцип действия даже я когда то понял.
0
Эксперт MS Access
6902 / 4415 / 286
Регистрация: 12.08.2011
Сообщений: 13,214
04.03.2020, 02:12 3
Цитата Сообщение от Comrade-Archer Посмотреть сообщение
Прописал уже готовую функцию для добавления в независимую ячейку
Нет ячеек в Акцессе, не выдумывайте.
У вас форма основана на таблице Специальность? Тогда не понимаю в чём проблема, ключ автоматически устанавливается в поле со списком. Или вы там что-то намудрили? Присоединенный столбец с ключём?
0
0 / 0 / 1
Регистрация: 28.12.2018
Сообщений: 21
04.03.2020, 07:06  [ТС] 4
Лучший ответ Сообщение было отмечено mobile как решение

Решение

Форма основана на таблице "Наименование". В ней внешние ключи остальных таблиц. Зависимости вводимых данных я уже настроил, т.е. если изменить "вид", то поменяются и специальность и задачи.
Добавление нового значения в зависимое поле со списком
Добавление нового значения в зависимое поле со списком

Дело в том, что когда я ввожу новые данные, которых нет в таблице в помощью кода, указанного в первом посте, он создаёт новую строку в столбце, но не привязывает этот столбец к внешнему ключу, и поэтому и возникает ошибка, потому что без привязки внешнего ключа, он не видит эту новую запись.
Добавление нового значения в зависимое поле со списком
0
Эксперт MS Access
16460 / 6875 / 1520
Регистрация: 21.06.2012
Сообщений: 12,764
04.03.2020, 07:22 5
Лучший ответ Сообщение было отмечено Comrade-Archer как решение

Решение

Если Код_Вида поле формы и уже введено, то попробуйте задать его при вводе новой специальности в Вашей процедуре
Visual Basic
1
2
3
4
5
6
7
 
    ...
    rst.AddNew
        rst("Код вида") = Me.Код_Вида
    rst("Срециальность") = NewData
    rst.Update
    ...
1
0 / 0 / 1
Регистрация: 28.12.2018
Сообщений: 21
04.03.2020, 08:13  [ТС] 6
Добавление нового значения в зависимое поле со списком

Только там
Не
Visual Basic
1
rst("Код вида") = Me.Код_Вида
А
Visual Basic
1
rst("Код вида") = Me.Вид
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2020, 08:13
Помогаю со студенческими работами здесь

Добавление в поле со списком произвольной строки
Добрый день! :) Поле со списком на форме заполняется из таблицы. Поля списка: Код, НомерАМ,...

Добавление новых элементов в поле со списком
Добрый день,уважаемые коллеги! В ходе обработки базы данных у меня возник следующие вопросы: 1)Я...

Как на форме при выборе значения из Поля со списком сделать автоматическое выведение значения в другое Поле?
Вечер добрый, господа. :curtsy: Требуется помощь ваша в MS Access, ибо самостоятельное изучение...

Добавление записи в таблицу через поле со списком
Добрый день, возможно ли добавить данные в таблицу через поле со списком? Имею само поле со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru