Как получить Oldvalue столбца Combobox's (2)? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь закодировать что-то, что хранит изменения (старое и новое значение), которые были внесены в форму, над которой я работаю.Мой код работает нормально, но моя проблема с комбо-боксами и их ограничением.Например, у меня есть поле со списком Gender, его исходная таблица выглядит так: -

 ID    CODE    GENDER
 1     0       Male
 2     1       Female

, и он ограничен столбцом (1).Когда есть изменение, скажем, от мужчины к женщине, пол.OldValue будет равен 0, но я действительно хочу, чтобы OldValue мог перехватить соответствующее значение в столбце (2), то есть текст «мужчина», а не 0

приведенный ниже код - это то, что я попробовал без удачи.

Dim ctl As Access.Control
Dim old_val As String
Dim new_val As String
Dim fld_name As String
For Each ctl In Me.Controls
    If ctl <> ctl.OldValue Then
       fld_name = ctl.Name
       old_val = ctl.OldValue.Column(2) 'or ctl.Column(2).OldValue and both gives an error
       new_val = ctl.Column(2)
    End If
next ctl

Любая помощь будет оценена, спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Я бы сделал так, чтобы использовать несвязанное поле со списком и использовать VBA для изменения фактического значения поля с помощью DAO или SQL или даже со скрытым связанным элементом управления.

0 голосов
/ 25 января 2019

Для тех, кто сталкивается с той же дилеммой, единственный обходной путь, о котором я могу подумать, - это взять OldValue и запустить на нем функцию Dlookup для своей исходной таблицы.

0 голосов
/ 25 января 2019

Я не думаю, что вы можете ссылаться на что-либо, кроме связанного столбца, используя .Oldvalue. Combo.column (2) .OldValue никогда не сохраняется как таковой, поэтому вы можете ссылаться на него «вживую» как есть.

Поскольку это связанные данные, вы всегда можете просто посмотреть их, я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...