Access 2003 : liste déroulante non limitée

Résolu/Fermé
Nepenthes67 Messages postés 3 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 17 avril 2011 - Modifié par Nepenthes67 le 14/04/2011 à 12:49
Nepenthes67 Messages postés 3 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 17 avril 2011 - 17 avril 2011 à 15:59
Bonjour à tous,

Je débute avec Access et, après plusieurs jours de recherches sur Internet et d'essais infructueux, je me permet de vous demander de l'aide:

Est-il possible, pour un champ donné, d'obtenir une liste déroulante reprenant tous les enregistrements déjà présents dans le champ, permettant également de mettre un enregistrement qui ne s'y trouve pas encore et que ce dernier, une fois encodé, se retrouve également dans la liste déroulante ?

Exemple:

- J'ai un champ "Animal" avec chat, chien, poule déjà enregistrés.

- Pour l'enregistrement suivant j'aurais une liste déroulante reprenant chat, chien et poule.
Je pourrais donc choisir une de ces 3 possibilités ou d'en mettre une autre (lapin par exemple).

- Pour l'enregistrement suivant, j'aurais alors une liste déroulante me proposant chat, chien, lapin et poule...

J'ai essayé avec une liste de choix par requête de regroupement (avec une table séparée ne reprenant que le champ "Animal") cela fonctionne mais les nouvelles entrées (hors table séparée) ne sont pas proposées dans la liste déroulante lors des enregistrements suivants.

Bien à vous et merci d'avance pour votre aide.




4 réponses

Bonjour
J'avais un systeme pour ajouter un enregistrement dans une liste, il fallait cliquer 2 fois sur la liste. Cela ouvrez un formulaire issu de la table de la liste deroulante.
Tu pouvais ajouter un enregistrement dans ta liste.
Si cela t'interesse je fais une recherche dans mes bases données ou j'ai employé ce systeme.
1
Comment cela fonctionne:
Quand tu mets dans la liste un nom qui ne figure pas,un message te demande cliquer 2 fois sur le champ . Cela ouvre un formulaire issu de ta liste deroualante. Tu remplis le champavec le nouveau nom Celui ci ce retrouve dans la table, puis dans ta liste deroulante.

Voici les deux procedures a ajouter dans les propriétes de ta liste deroualntes.

Propriété absence dans la liste

Private Sub RéfTypeRessource_NotInList(NewData As String, Response As Integer)
MsgBox "Cliquez deux fois sur ce champ pour ajouter une entrée dans la liste."
Response = acDataErrContinue
End Sub

Propriété double clic

Private Sub RéfTypeRessource_DblClick(Cancel As Integer)
On Error GoTo Err_RéfTypeRessource_DblClick
Dim lngResourceTypeID As Long

If IsNull(Me![RéfTypeRessource]) Then
Me![RéfTypeRessource].Text = ""
Else
lngResourceTypeID = Me![RéfTypeRessource]
Me![RéfTypeRessource] = Null
End If
DoCmd.OpenForm "Types de ressources", , , , , acDialog, "GotoNew"
Me![RéfTypeRessource].Requery
If lngResourceTypeID <> 0 Then Me![RéfTypeRessource] = lngResourceTypeID

Exit_RéfTypeRessource_DblClick:
Exit Sub

Err_RéfTypeRessource_DblClick:
MsgBox Err.Description
Resume Exit_RéfTypeRessource_DblClick
End Sub
0
bonjour
Pour pouvoir ajouter des enregistrements dans une liste deroulante, il te faut regarder dans les propriétés de la liste et que la propriété LIMITE A LA LISTE soit déactivié.
0
Nepenthes67 Messages postés 3 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 17 avril 2011
16 avril 2011 à 10:40
Bonjour,

Merci pour votre réponse, j'ai déjà essayé ce système, mais les enregistrements (hors liste déroulante) ajoutés ne se retrouvent pas dans la liste déroulante pour les enregistrements suivants.
0
Nepenthes67 Messages postés 3 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 17 avril 2011
17 avril 2011 à 15:59
Bonjour,

Merci beaucoup pour ton aide castours.

Inspiré par ta solution, j'ai fait quelques autres recherches et j'ai trouvé ceci:

https://grenier.self-access.com/?post/2007/09/27/Ajouter-un-element-dans-une-liste-deroulante

C'est assez proche de ta solution en plus simple.
0