Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/64: Рейтинг темы: голосов - 64, средняя оценка - 4.89
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
1

Можно ли выбрать значение из combobox программно?

16.01.2013, 23:46. Показов 12187. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
никак не могу сообразить как это сделать на vba
причем известно СТРОКОВОЕ значение которое надо выбрать, не индекс.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2013, 23:46
Ответы с готовыми решениями:

Очистить текст comboBox, чтобы можно было выбрать значение заново
Здравствуйте, есть много текст боксов в проге и есть пару комбо боксов. Когда я их всех заполняю и...

Программно выбрать строку в ComboBox'e
Здравствуйте, есть чужая программа, в окне которой находится ComboBox, если мышкой выбрать строку...

Программно выбрать итем в ComboBox
Скажите - как должна выглядеть команда для выбора итема в ComboBox ? Аналог для CheckBox выглядит...

Программно установить значение ComboBox
Можно ли установить значение ComboBox как-то иначе чем через свойство SelectedIndex? Мне нужно...

13
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.01.2013, 00:05 2
Используйте свойство Column. Индексы в Column с 0. Например, значение первого левого столбца Column(0). Для текущей строки второй параметр метода не нужен.

Также, с помощью свойства Column можно находить не только текущие значения, но и любые, задавая второй параметр - строку
Visual Basic
1
d=Forms!МояФорма!МойКомбо!Column(1,4) 'находит значение в 4-й строке 2-го столбца поля со списком
1
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
17.01.2013, 00:24  [ТС] 3
у меня одномерный combobox, значит видимо Column(0)- получит первое значение списка. но как указать - какое долждно быть активным??? ну, аналог выбора самим пользователем!
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.01.2013, 00:30 4
Поправка.
Небольшая описка - нужна точка, а не восклицательный знак при записи свойства Column. Восклицательным знаком отделяют элементты пользовательских коллекций
Visual Basic
1
d=Forms!МояФорма!МойКомбо.Column(1,4) 'находит значение в 4-й строке 2-го столбца поля со списком
Добавлено через 6 минут
Цитата Сообщение от Анарион Посмотреть сообщение
у меня одномерный combobox, значит видимо Column(0)- получит первое значение списка. но как указать - какое долждно быть активным??? ну, аналог выбора самим пользователем!
Я же написал - выбор текущего значения НЕ требует второго параметра (номера строки).

Значение индекса 0 в Column даст первый слева столбец. Обычно, но не обязательно, он занят числовым кодом, а строковое значение во втором столбце слева. Тогда выражение такое (если код и комбо в одной форме)
Visual Basic
1
d=Me.МойКомбо.Column(1) 'В переменную d попадет текущее, выбранное значение второго столбца
1
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
17.01.2013, 00:39  [ТС] 5
да я понял прекрастно как ПОЛУЧИТЬ значение комбобокса. а как сэмулировать выбор определенного значения?
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.01.2013, 00:56 6
Цитата Сообщение от Анарион Посмотреть сообщение
а как сэмулировать выбор определенного значения?
Не совсем понимаю о чем речь.

Давайте определимся в терминологии. Значением комбобокса является значение столбца, для которого записан номер в свойстве BoundColumn (присоединенный столбец). Но, в отличие от Column, в BoundColumn номера начинаются с 1. Поэтому, когда в BoundColumn написано 1, то значением комбо будет Column(0). В этом случае записи d=Me.МойКомбо и d=Me.МойКомбо.Column(0) равнозначны

Можно в цикле обойти весь набор данных комбобокса, можно также в цикле обойти его рекордсет. Если поле со списком основано на таблице, то можно запросом, на основе какого-то фильтра, получить некоторое значение столбца BoundColumn и присвоить комбо его значение Me.МойКомбо=N
1
8 / 9 / 3
Регистрация: 18.11.2009
Сообщений: 676
17.01.2013, 11:02  [ТС] 7
вот у меня есть комбо бокс.
с строчками:
строка А
строка Б
строка С

пользователь может раскрыть комбо бокс и выбрать скажем - строку Б.
как это же сделать из программы. вот все что хочу узнать)

Добавлено через 9 часов 31 минуту
получилось вроде
0
8 / 8 / 0
Регистрация: 21.05.2016
Сообщений: 45
14.06.2016, 07:38 8
Добрый день.
Как можно выделить в комбобоксе нужную строку? Например, есть комбобокс с двумя столбцами (id и группа). Id скрыта, отображается только Группа. Список сортируется по возрастанию. Нужно выделить правильную строку по ее id.

Добавлено через 1 час 21 минуту
))) Пока ждал методом тыка нашел такое решение (наверняка корявое, но работает):
Visual Basic
1
2
3
4
5
6
7
8
Dim ctl As ListBox
    idpubgrup = 9 'id группы
    For item1 = Список1.ListCount - 1 To 0 Step -1
            If Список1.Column(0, item1) = idpubgrup Then
                Set ctl = Список1
                ctl = ctl.ItemData(item1)
            End If
        Next
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
14.06.2016, 07:42 9
Можно без цикла. Достаточно
Visual Basic
1
Me.Список1=Me.Список1.ItemData(idpubgrup)
0
8 / 8 / 0
Регистрация: 21.05.2016
Сообщений: 45
14.06.2016, 08:10 10
Цитата Сообщение от mobile Посмотреть сообщение
Можно без цикла. Достаточно
К сожалению без цикла не работает.
Циклом я вычисляю индекс записи, где указан нужный id группы, а потом выделяю строку с найденным индексом. По вашему коду индекс должен совпадать с id группы, но у меня не так.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
14.06.2016, 08:32 11
Ага. Неправильно понял вводную. Ну тогда еще проще
Visual Basic
1
Me.Список1=idpubgrup
1
8 / 8 / 0
Регистрация: 21.05.2016
Сообщений: 45
14.06.2016, 08:37 12
Цитата Сообщение от mobile Посмотреть сообщение
Ну тогда еще проще
Во блин))) действительно работает)
Объясните, пожалуйста: получается, что поиск ведется по всем столбцам (даже скрытым, с нулевой шириной)?
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
14.06.2016, 08:51 13
Это не поиск. Это присваивание. Присвоили полю значение и список по полю связи (Присоединенный столбец BoundColumn) немедленно отобразил содержимое остальных столбцов поля со списком (или списка без мультивыбора). Ваш скрытый столбец и есть поле связи, вот список и реагирует на изменение.
3
784 / 466 / 79
Регистрация: 18.05.2016
Сообщений: 1,244
Записей в блоге: 4
14.06.2016, 08:59 14
Хм. А просто .Value никто не пробовал менять?

Добавлено через 6 минут
А. mobile это и предложил в итоге
0
14.06.2016, 08:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2016, 08:59
Помогаю со студенческими работами здесь

Программно выбрать значение выпадающего списка
Есть выпадающий список в форме Поле "код" скрыто Но мне известен и код и строка Хочу програмно...

Выбрать в ComboBox нужное значение
В ComboBox хранятся элементы (заданы DisplayMember) и их значения (заданы ValueMember) Мне...

Можно ли средствами WinHttpRequest выбрать пункт в Combobox?
Добрый день. На этом сайте, в нескольких таблицах (например, Club America: combobox last results)...

ComboBox со стилем "csOwnerDrawVariable" как программно выбрать текст?
Всем привет, вроде все должно быть очень просто, но никак не могу ни сам срастить ни найти ответ. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru