2015-10-22 2 views
0

Моя задача - создать запрос, отфильтрованный по результатам списка с мультиселекцией. У меня есть таблица с именами контактов, у которой есть поле с именем «Источники». Это поле, которое отображается в моем списке. Я сортирую по значению «Источники»Сортировка запроса по Listbox с помощью multiselect?

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

Поэтому, мой вопрос: как я могу создать запрос, отсортированный по вкладке «Источники»? Я знаю, что мне нужна функция onclick, но я очень незнакома с VB. Любая помощь будет оценена!

ответ

1

Чтобы использовать свои управляющие имена, вы можете изменить следующее. Вы не указали, где/как ваш запрос создан, но вы можете объединить этот код с вашим ...

Private Sub cmdBuildWhere_Click() 
Dim varItem  As Variant 
Dim strWhere As String 

If Me.lstHierarchy.ListIndex < 1 And Me.lstHierarchy.ItemsSelected.Count = 0 Then ' No items selected 
    MsgBox "You did not select any sources. ", vbOKOnly, "Select Sources" 
    Exit Sub 
End If 

strWhere = "WHERE " 

For Each varItem In Me.lstHierarchy.ItemsSelected 
    strWhere = strWhere & "[Sources] = '" & Me.lstHierarchy.Column(0, varItem) & "' Or " 
Next varItem 

' remove final ' or ' and add Sort 
strWhere = Trim(left(strWhere, Len(strWhere) - 4)) & " Order By Sources;" 

Debug.Print strWhere 

End Sub 
Смежные вопросы