2014-07-08 93 views
0

我在窗體中有一個列表框。點擊它會導致表單跳轉到另一條記錄。它應該突出顯示一個項目並跳轉到正確的記錄。相反,它會突出顯示並立即清除選擇,儘管它仍會跳轉到記錄中。當我使用標準記錄選擇按鈕時,項目被正確突出顯示。列表框項目在點擊時沒有突出顯示

我從.ListIndex屬性讀取所選項目的索引,因爲當我測試選擇哪個項目時,Selected()在單選模式下不起作用。但是,.ListIndex是隻讀屬性,我使用.Selected()突出顯示該項目。

乾杯!

編輯:下面的代碼:

Option Compare Database 
Option Explicit 

Private Sub Form_Current() 
    Call highlightListBox 
End Sub 

Private Sub lbListBox_Click() 
    Dim rs As DAO.Recordset 
    Dim indx As Long 

    Set rs = Me.RecordsetClone 
    If Not rs.BOF And Not rs.EOF Then 
     rs.MoveFirst 
     rs.FindFirst "[ID]=" & CStr(Me.lbListBox.ItemData(Me.lbListBox.ListIndex)) 
     If Not rs.NoMatch Then 
      Me.Bookmark = rs.Bookmark 
     End If 
    End If 

    rs.Close 
    Set rs = Nothing 
End Sub 

Private Sub highlightListBox() 
    Dim lngIndx As Long 
    Dim lngI As Long 
    Dim bNoMatch As Boolean 
    lngIndx = 0 
    bNoMatch = True 
    If Me.NewRecord <> 0 Or IsNull(Me!ID) Then 
     For lngI = 0 To Me.lbListBox.ListCount - 1 
      Me.lbListBox.Selected(lngI) = False 
     Next lngI 
    Else 
     Do 
      lngIndx = lngIndx + 1 
      If CLng(Me.lbListBox.ItemData(lngIndx - 1)) = Me!ID Then 
       bNoMatch = False 
      End If 
     Loop Until CLng(Me.lbListBox.ItemData(lngIndx - 1)) = Me!ID Or lngIndx = Me.lbListBox.ListCount 
    End If 
    If Not bNoMatch Then 
     Me.lbListBox.Selected(lngIndx - 1) = True 
    End If 
End Sub 
+0

a會發現一個SSCCE有用... –

+0

我只是試圖解釋這個問題。希望這看起來更好 – Celdor

回答

0

我一直在考慮一個建議關於略有不同的問題here但由於Remou我整理了這一點。

新的代碼如下:

Option Compare Database 
Option Explicit 

Private Sub Form_Current() 
    Me.lbListBox = Me!ID 
End Sub 

Private Sub lbListBox_Click() 
    Dim rs As DAO.Recordset 
    Dim indx As Long 

    Set rs = Me.RecordsetClone 
    If Not rs.BOF And Not rs.EOF Then 
     rs.MoveFirst 
     rs.FindFirst "[ID]=" & CStr(Me.lbListBox.ItemData(Me.lbListBox.ListIndex)) 
     If Not rs.NoMatch Then 
      Me.Bookmark = rs.Bookmark 
     End If 
    End If 
    Me.lbListBox = Me!ID 

    rs.Close 
    Set rs = Nothing 
End Sub 

我沒有意識到我其實可以設置一個值來使用綁定列的列表框。通過這樣做,高亮和聚焦都被設定。我不知道,但我認爲,多選,必須設置爲0。在我的情況下,線

Me.lbListBox = Me!ID 

不工作:)

我希望這個答案可以幫助別人:)

相關問題