#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