2010-05-25 5 views
1

Comment afficher une ligne de liste déroulante MS-Access en surbrillance? J'utilise MS-Access 2007. Je veux que la première ligne d'une liste multiple soit affichée en surbrillance via VBA. J'ai essayé Me.LstSample.Selected(0) = True, mais cela ne fonctionne pas.Comment afficher une ligne de liste déroulante MS-Access en surbrillance?

Le code:

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

Il devrait fonctionner. Où avez-vous mis la ligne, quel événement? Pouvez-vous intervenir pour voir si l'événement se déclenche? En guise de note, n'utilisez pas le formulaire Open event, car les contrôles n'auront pas été initialisés. – Fionnuala

+0

Je l'ai mis dans le AfterUpdate d'une autre zone de liste. Si l'utilisateur sélectionne une ligne dans cette (première) zone de liste, alors dans le code de l'événement AfterUpdate, je réinitialise la propriété 'RowSource' de la deuxième zone de liste, faire un 'Requery' puis le code que j'ai mentionné. – waanders

+0

Modifiez votre message pour inclure le code d'événement AfterUpdate. Ce que vous décrivez devrait fonctionner correctement, alors je suppose qu'il y a quelque chose que vous oubliez ou qu'il y a une petite erreur dans votre code. – KevenDenen

Répondre

1

Je ai totalement dépouillé le code et remis à zéro les propriétés des contrôles et maintenant ça fonctionne bien!

Je suis en train de déterminer quelles sont les différences et je vous le ferai savoir.

+0

Je l'ai finalement trouvé. Étant donné que j'ai défini la propriété ColumnHeads sur True, la première ligne contient les en-têtes, donc pour mettre en surbrillance la première ligne (données), je dois utiliser LstSample.Selected (1) = True au lieu de LstSample.Selected (0) = True – waanders

0

essayer de changer la

Me.LstSample.Selected(0) = True 

à

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

Je ne sais pas pourquoi le code d'origine ne fonctionne pas, mais je tends utiliser la propriété ListIndex au lieu de la propriété Selected.

0

je toujours la valeur de la zone de liste:

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