2014-10-17 3 views
1

Итак, я извлекаю данные из базы данных, чтобы заполнить выпадающий список. Каждое значение как идентификатор, связанный с ним, и я использую этот идентификатор в качестве индекса в поле со списком для значения. Поэтому, если идентификатор равен 2, я помещаю его в индекс 2. Первая проблема заключается в том, что если я не заполняю поле чем-то, я использую пробелы, это не позволит мне использовать индекс. Поэтому, если я не заполнил не менее 10 пробелов, я не могу придерживаться значения с идентификатором 10 с индексом 10. Другая проблема заключается в том, что есть пробелы. Поэтому, если я вкладываю в значения с индексами 2,3,5,7,8,10, то есть пробелы при 0,1,4,6,9. Есть ли способ избавиться от пробелов, но сохранить индексы? Любая помощь приветствуется. Благодарю.Удалите пробелы из combobox в excel vba, но сохраните индексы

вот как я помещаю значения в поле со списком. Я использую DEPOT_ID как индекс.

ComboBox1.AddItem rs![DEPOT_NAME], rs![DEPOT_ID] 
+0

Вы можете прочитать, что вы написали еще раз, и попытаться сделать это с точки зрения читателей, которые не * абсолютно никакой информации * о том, что вы пытаетесь сделать. Если бы вы были одним из нас и ничего не знали о проекте в этом вопросе, могли бы вы выяснить, что здесь задают? Я, конечно, не могу. –

+0

Я не думаю, что его можно иметь индекс с пробелами. Вам нужно будет иметь массив или что-то за кулисами, чтобы сопоставить ваши индексы с массивом combobox. – NickSlash

ответ

0

Вам необходимо будет использовать временную структуру для работы в качестве карты или словаря.

Создайте массив в VBA, а затем, когда вы назначаете элементы вашей записи combobox истинным индексом с индексом combobox. Затем, когда он выбран, вы можете вывести индекс из массива.

Его долгое время с тех пор, как я написал vba, так что это, вероятно, ужасно.

например.

Dim ComboBoxIndexs(100) As Integer 
Dim ArrayIndex as Integer 
Dim SelectedIndex as Integer 
Dim SelectedDepotID as Integer 

'for each combo box item (I can't remember loops in vba) 
'allocating to each item 
ComboBox1.AddItem rs![DEPOT_NAME], rs![DEPOT_ID] 

ComboBoxIndexs(ArrayIndex) = rs![DEPOT_ID] 
ArrayIndex = ArrayIndex +1; 

'end of for loop. 

'When you select an item and want to read it. 


SelectedIndex = Combobox1.Value 

'now get your depot id from array 
SelectedDepotID = ComboBoxIndexs(SelectedIndex) 
Смежные вопросы