Как заполнить значение текстового поля на основе значения в поле со списком в MS Access 2007?

У меня есть поле со списком, которое имеет тип поиска, т. е. я выбрал для столбца из таблицы и сохранять выбранное значение в другой таблице. Таблица, которую я ищу, имеет другой столбец, и мне нужно, чтобы значение в этом столбце отображалось в текстовом поле, и каждый раз, когда я изменяю значение в поле со списком, мне нужно, чтобы соответствующее значение отображалось в текстовом поле. Как я могу это сделать? Что я сделал до сих пор, чтобы написать Select запрос, который выбирает соответствующего столбца на основе значения поля со списком. Есть более достойный способ сделать это? Пожалуйста, помогите мне!

3 ответов


сделайте источник поля со списком для ваших 2 полей, например SELECT id, name FROM Customers
Убедитесь, что для свойства Count столбца комбинации задано значение 2, соответственно.
Затем сделайте несвязанный источник текстового поля равным =MyCombo.Column(1) (из памяти этот столбец основан на нуле).
Вот и все, требуется нулевой код.


лучше использовать событие поля со списком, например onChange, поэтому при выборе событие устанавливает значение текстового поля.

me!txtTextBox1 = me!cboComboBox1.column(1)

таким образом, он будет работать каждый раз.

вы также можете использовать кнопку с onClick и т. д. но выбор за вами (и, как упоминалось в предыдущем посте, измените номер столбца на основе его источника строки с 0 первым.


после прочтения вопроса и ответов я попробовал следующее, И, похоже, работает хорошо (до сих пор):

чтобы отобразить более одного столбца выбора combobox, я прибегнул к следующему:

поместите текстовое поле над combobox, Размер его путем выборки других полей, так что он охватывает текстовый фрейм combobox. Я намеренно оставил небольшое пространство справа от поля, чтобы указать, что это Не является частью комбинированный список.

в источнике управления для текстового поля введите выражение ниже:

=[DefaultAcct].[Column](1) & "  " & [DefaultAcct].[Column](2)

затем в событии "onchange" combobox установите фокус на текстовое поле.

Private Sub DefaultAcct_Change()
    txtConcatenate1.SetFocus   
End Sub