VBA, MS Access — Установить текстовое поле для запроса

#sql #vba #ms-access #querying

#sql #vba #ms-access #выполнение запроса

Вопрос:

У меня есть форма, поле со списком (выпадающее меню) и текстовое поле.

Когда выбрано определенное значение из выпадающего списка, я хочу, чтобы текстовое поле запрашивало значения в таблице.

Это моя идея, но она не работает:

 Private Sub Combobox1_Click()
If Me.Combobox1.Value = "London" Then

    Dim SQL As String

    SQL = "SELECT tabel_prices.[London]" _
        amp; "FROM tabel_prices "

    Me.TextBox1.Value = SQL

End If
End Sub
  

Комментарии:

1. Что вы хотите сделать, это просто поместит SQL в текстовое поле. Для получения результатов требуется немного больше, если это то, что вам нужно? Кроме того, это связано с событием click, а не с событием change, не уверен, что это намеренно.

2. Следует использовать событие AfterUpdate из Combobox1. Тогда вам также действительно нужен «каскадный» выпадающий список для хранения соответствующих цен fmsinc.com/MicrosoftAccess/Forms/combo-boxes/cascading.html

3. Вы также могли бы посмотреть на построение sql подобным образом SQL = "SELECT table_prices.[" amp; me.combobox1.value amp; "]" amp; " FROM tabel_prices " . Может быть, также помогло бы listbox с набором SQL, а затем использовать combobox и .requery ?

4. Если у вас есть поле для каждого города, то table_prices не нормализован. У вас действительно есть таблица, записываемая как tabel?

5. Хорошо, текстовое поле может быть заполнено ценами путем повторения набора записей в блоке цикла VBA и объединения значений. Однако результатом является просто строка символов, а не список выбираемых элементов. Это то, чего вы хотите? Обзор allenbrowne.com/func-concat.html