2009-06-19 12 views
1

Mon objectif:ComboBox modifiable et modifiable (?) Dans MS Access

Un champ de formulaire (dans MS Access) disposant de certains choix déroulants. Si la valeur voulue ne se trouve pas dans la table de recherche, l'utilisateur devrait pouvoir l'ajouter en la tapant.

Supposons que la table de correspondance comporte des lignes: A, B, C, D. L'utilisateur veut "E "qui n'existe pas encore. Idéalement, ils "surchargent" et tapent "E", qui sera ensuite ajouté à la table de recherche pour les futures entrées.

Mon google-fu a échoué à ce sujet. Y a-t-il un terme pour cela que je devrais utiliser? Quelles sont les bonnes approches? (J'ai joué avec combo-box et son assistant jusqu'à présent).

Merci pour vos suggestions!

Répondre

3

Aha, résolu mon propre ici:

http://allenbrowne.com/ser-27-01.html

Access 2007

Pour utiliser les nouvelles propriétés dans Access 2007:

  1. Ouvrez votre formulaire en mode design .
  2. Cliquez avec le bouton droit sur la liste déroulante, puis choisissez Propriétés.
  3. Dans l'onglet Données de la boîte de dialogue Propriétés, définir l'option Autoriser la liste de valeurs à Edits Oui, et la liste des articles Modifier formulaire au nom du formulaire à utiliser pour ajouter des éléments à la liste.

Lorsque vous utilisez ce formulaire, vous pouvez maintenant le bouton droit sur le combo, et choisissez Modifier la liste des articles .

Il existe également des conseils pour les anciennes versions d'Access.

+0

Vous pouvez également utiliser la même table que vous les insérez en tant que table de recherche. Ainsi, tout ce qui est nouveau est automatiquement ajouté à la liste des options valides. – BIBD

+0

Si vous avez un moyen de le faire, peut-être le mettre comme une réponse séparée et complète? Mes compétences Access sont faibles :) –

1

Vous pouvez essayer le code suivant:

Private Sub Combo33_NotInList(NewData As String, Response As Integer) 

    Dim strSql  As String 
    If MsgBox(NewData & " not in list, add?", _ 
     vbYesNo + vbQuestion) = vbYes Then 
     strSql = "insert into tblStudents (name) values(" & NewData & ")" 
     CurrentDb.Execute strSql 
     Response = acDataErrAdded 
    End If 

End Sub 

Remarque J'ai utilisé un nom de la table des étudiants et le nom de domaine de Sname. Donc, juste changer le nom de la table, et le champ à tout ce que vous avez utilisé.

Questions connexes