2016-05-30 71 views
0

我有一個列表框,其中有6個項目,我已編碼列表框下拉。我的問題是,如何在被選中後讓選定的項目在列表框中。以下是我在lostfocus事件中的代碼:在列表框中顯示選定的項目

'---------------------------------------------------------------- 
' Save selection for update query 
'---------------------------------------------------------------- 

Dim frm As Form, ctl As Control 
Dim varItm As Variant 
Set frm = Forms!loginForm 
Set ctl = frm!areaLB 
For Each varItm In ctl.ItemsSelected 
areaGbl = ctl.ItemData(varItm) 
Next varItm 
'---------------------------------------------------------------- 
' CHeck selection to load station dropdown 
'---------------------------------------------------------------- 
If areaGbl = "Batting Cages" Then 
Me.stationLB.RowSource = "cageTbl" 
Else 
Me.stationLB.RowSource = "RangeBays" 
End If 
Me.areaDsp = areaHld 
Me.areaLB.Height = 500 
+0

注意,我調整列表框,以適應只有一個條目。 Me.areaLB.Height = 500.我希望選中的項目出現在該列表框中。 – jpl458

+0

爲什麼不使用組合框代替? – LiamH

回答

0

什麼是areaLB列表框控件的rowsourcetype?

如果是值列表,只需刪除所有項目並從areaGbl變量中添加一個記錄/值。

For nIndex = 0 To areaLB.ListCount - 1 
    areaLB.RemoveItem nIndex 
Next nIndex 

areaLB.AddItem areaGBL

如果行來源是表/查詢行來源更改的查詢,如下所示

areaLB.rowsource = "Select <fieldName> from <table name> where  
<fieldname> in '" & areaGBL & "'" 
+0

有六個不同的列表框,其中一些列表值爲List,另一列列表查詢。在你的第一個例子中,我將不得不保存值列表並在列表框被清除後重新加載它。將不得不做類似的第二個例子,保存並重新加載原始查詢。讓我知道我的假設是否正確。 jpl458 – jpl458

+0

是的,當清除或重置爲原始。在值列表的情況下,您需要原始值列表。因此,在重置它們之前先聲明變量並獲取值列表,以便在清除後可以使用它們來獲取原始列表。它適用於值列表和查詢。在值列表的情況下,您可以使用數組對象使您的工作更輕鬆。 –

+0

我會試試看。我瞭解你的代碼,但它似乎應該有一種方法在vba中來做到這一點。謝謝您的幫助。 – jpl458