Пишу программу на VB6.0 для работы с БД в формате Access 2002.
Для доступа к базе использую элемент управления ADO Data.
В базе имеется несколько таблиц, и одна из них ("Пациенты") использует данные из других - например, "Диагнозы", "Отделение"
Для связывания таблиц из базы использую элемент управления DataList.
' Main - главная форма, на которой находятся ADO Data
' PatADO - таблица "Пациенты"
' DiaADO - таблица "Диагнозы
' список диагнозов
Set DiaList.DataSource = Main.PatADO
Set DiaList.RowSource = Main.DiaADO
' список отделений
Set DevList.DataSource = Main.PatADO
Set DevList.RowSource = Main.DevADO
Свойства BoundColumn, DataField, ListField указанны в свойствах DataList'ов на этапе разработки
Предполагается, что пользователь выбирает диагноз или отделение из списка, а в таблицу "Пациенты" заносится идентификатор диагноза или отделения соответственно. Никаких откровений, как видите.
Если хочу добавить запись все работает и сохраняется.
Если хочу отредактировать существующую запись, используя DataList (выбираю диагноз или отделение), ничего не происходит: новые данные не сохраняются, никаких ошибок не выдается. При этом, текстовые поля (фамилия, имя и т.д.), привязанные к ADO Data, работают исправно: сохраняют и обновляют базу , как и было задумано.
Для сохранения использую такой код:
Main.PatADO.Recordset.Update
Main.PatADO.Refresh
Подскажите, что я делаю не так, пожалуйста