VBA: Comment sélectionner un élément à partir d'une zone de liste déroulante
J'ai Accès à 2010, qui est une zone de liste déroulante cmbSubTopic
qui répertorie deux colonnes (SubTopicID
et SubTopic
). La zone de liste modifiable est lié à un champ contenant SubTopicID
. Le SubTopicID
colonne dans la zone de liste modifiable est caché, il ne montre que la SubTopic
. Lorsque l'utilisateur sélectionne un SubTopic
à partir de la liste déroulante correspondante SubTopicID
est stocké dans la table. J'ai écrit du code VBA pour l'événement load du formulaire pour trouver le SubTopicID
dans le tableau et le correspondant SubTopic
est sélectionné dans la liste déroulante. Mon code actuel est quelque chose comme ceci:
Set rsST = dbs.OpenRecordset(strSqlst)
For i = 0 To Me.cmbSubTopic.ListCount - 1
If Me.cmbSubTopic.Column(0, i) = rsST.Fields("SubTopicID").Value Then
Me.cmbSubTopic.SetFocus
Me.cmbSubTopic.Selected(i) = True
Exit For
End If
Next i
Cela donne l'erreur disant:
Le texte que vous avez entré n'est pas un élément dans la liste
J'ai aussi essayé en utilisant ceci:
Me.cmbSubTopic = Me.cmbSubTopic.Selected(i)
Cette sélectionne l'élément dans la zone de liste déroulante, mais il a également écrit la valeur de I dans la ID
champ de la table que je ne veux pas.
Est il possible que je peux bloquer l'insertion de données dans la table dans l'événement OnLoad de la forme et de permettre ensuite de l'insérer sur l'événement AfterUpdate de la zone de liste déroulante.
OriginalL'auteur ksagar | 2013-11-20
Vous devez vous connecter pour publier un commentaire.
En supposant que le combo de la première colonne,
SubTopicID
, est aussi le combo est "lié " colonne" de la propriété, il est utilisé comme la colonne.Value
de la propriété. Cela signifie que vous avez seulement besoin d'assigner une valeur à.Value
afin de sélectionner le combo ligne.Que l'approche est simple, mais je ne suis pas certain si c'est la solution qui convient à votre situation. Nous ne savons rien au sujet de votre
rsST
jeu d'enregistrements --- je suppose que lesSubTopicID
champ dans le jeu d'enregistrements de la ligne actuelle est la valeur que vous souhaitez utiliser dans la liste déroulante. Si j'ai mal compris ce point, nous avons besoin de comprendre quelque chose de différent.Si le combo est lié à un champ dans la source d'enregistrement du formulaire, cette suggestion permettrait également de modifier la valeur stockée. Si vous ne voulez pas que, "délier" la combo --- en d'autres termes, de rendre sa Source de Contrôle propriété vide.
OriginalL'auteur HansUp