2010-05-25 106 views
1

如何顯示突出顯示的MS-Access列表框行?我正在使用MS-Access 2007.我希望多列列表框的第一行通過VBA顯示爲突出顯示。 我試過Me.LstSample.Selected(0) = True,但它不起作用。如何顯示突出顯示的MS-Access列表框行?

代碼:

Private Sub LstStation_AfterUpdate() 
With Me.LstSample 
    If IsNull(Me.LstStation) Then 
     .RowSource = "" 
    Else 
     .RowSource = _ 
      "SELECT * FROM Samples WHERE S='" & Me.LstStation.Value & "'" 
    End If 
    Call .Requery 
    If Not IsNull(Me.LstStation) Then 
     Me.LstSample.Selected(0) = True 
    End If 
End With 
End Sub 
+0

它應該工作。你在哪裏放行,什麼事件?你可以一步一步看看事件是否發生?請注意,不要使用表單打開事件,因爲控件不會被初始化。 – Fionnuala 2010-05-25 11:59:51

+0

我把它放在另一個列表框的AfterUpdate中。如果用戶在這個(第一個)列表框中選擇一行,那麼在AfterUpdate事件代碼中,我重置第二個列表框的'RowSource'屬性,執行'Requery'然後是我提到的代碼。 – waanders 2010-05-25 12:46:52

+0

編輯您的帖子以包含AfterUpdate事件代碼。你所描述的應該工作得很好,所以我猜想你有什麼東西可以拋棄,或者你的代碼有一個小錯誤。 – KevenDenen 2010-05-25 13:36:17

回答

1

我完全剝離了代碼並重置了控件的屬性,現在它工作正常!

我在搞清楚這些差異是什麼,並且會讓大家都知道。

+0

我終於找到它了。因爲我將ColumnHeads propery設置爲True,所以第一行包含標題,所以要突出顯示我要使用的第一個(數據)行LstSample.Selected(1)= True,而不是LstSample.Selected(0)= True – waanders 2010-05-27 13:44:28

0

嘗試和改變

Me.LstSample.Selected(0) = True 

Me.lstSample.SetFocus 
Me.lstSample.ListIndex = 0 

我不知道爲什麼原來的代碼不工作,但我傾向於使用ListIndex屬性而不是Selected屬性。

0

我總是設置列表框的值:

Me!lstMyListBox = Me!lstMyListBox.ItemData(0)