Liste déroulante dans un formulaire Access

Résolu/Fermé
assyleri - 8 juin 2004 à 18:11
 Acasanva - 24 janv. 2012 à 18:03
Bonjour, je voudrais créer une zone de liste modifiable dans un formulaire Access telle que lorsqu'on entre une valeur n'appartenant pas à la table associée, celle-ci s'y ajoute automatiquement après avoir demandé de renseigner les autres attributs cette table.
Merci beaucoup si vous avez la solution !

9 réponses

Utilisateur anonyme
10 juin 2004 à 15:55
ben tu as des choses comme ça, en particulier comme celle-là d'ailleurs, illustrées dans la ou les bases de données exemple livrées avec Access. Personne ne pourra expliquer mieux que ces exemples :-/

kinder.surprise,
caractère banane
2
Je vais regarder, merci !
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
5 mai 2006 à 11:18
Salut,

les valeurs possibles sont stockées dans la propriété rowsource de la liste.

Elles sont séparées par des ; et (souvent) mises entre double-quotes : "

Il suffit donc de récupérer la nouvelle valeur et de mettre à jour la propriété. Le code est à placer dans l'évènement Aprsè Maj et non dans "sur absence liste"

Ca peut donner ça :
Private Sub liste1_AfterUpdate()
liste1.RowSource = liste1.RowSource + ";" + Chr(34) + liste1.Value + Chr(34)
End Sub
Les chr(34) sont là pour insérer un ", sinon, c'est trop compliqué de les doubler/tripler...
2
Super!! Merci beacoupp, ca fais 1 heure que je cherche.
0
rodrigue62 Messages postés 190 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 10 janvier 2011 30
5 mai 2006 à 09:50
Et si c'est une liste deroulante qui ne fait pas appel a une table existante (creer a partir de l'assistant). On a donc des champs deja dans la liste, mais je voudrais que lorsque l'on en ajoute un nouveau, celui fasse ensuite partit de la liste de choix.
merci
0
bonjour j ai le meme bleme ke toi et j aimerai ke tu me donne un coup d emain stp

voilà mon probleme: je veux dans une liste deroulante ajouter des machine et de numero machine sans faire appel a koi ki se sois cad ds un table . je m explique je veux ke kant un technicien veux creer une AMDEC d abord il regarde sur la liste deroulante si la machine existe deja sino il ajoute en tapant diectement ds la liste deroulante le nom de la machine et apres il retrouve ds sa liste.
deuximement je veux par exemple un message ki m avertit si le nom de la machine ajouter existe deja si oui voir vers... sino ajouter
merci
0
rodrigue62 Messages postés 190 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 10 janvier 2011 30
5 mai 2006 à 11:35
Merci en plus tes explications sont claires j'ai compris comment ca fonctionne, le seul petit probleme a cette commande est que chaque fois il me rajoute la valeur, donc quand j'en selectionne une deja presente dans la liste il me la rajoute quand meme ce qui fait qu'au bout d'un momment je me retrouve avec plusieurs fois la meme valeur
N' y a t'il pas moyen d'utiliser une fonction DISTINCT ou un truc du genre comme en SQL?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
5 mai 2006 à 13:17
Ben voui, t'as raison, j'l'avais pas vu...

Faut dire que d'habitude, je fais autrement...

On met les choix dans une table.

Tu crées une table nommée "T_Liste" avec un champ nommé 'cle' qui est la clé primaire.

Tu tapes ensuite ce code pour l'évènement "après maj" de ta liste déroulante :
Private Sub liste1_AfterUpdate()
Dim Str As String
Dim Rs As QueryDef
Str = "INSERT INTO T_Liste (cle) VALUES ('" + liste1.Value + "');"
Set Rs = CurrentDb.CreateQueryDef("", Str)
On Error Resume Next
Rs.Execute dbFailOnError
liste1.Requery
End Sub

Ca devrait aler mieux (j'ai testé !)
0
jean-phi972 Messages postés 2 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 23 février 2007
19 févr. 2007 à 22:10
Bonsoir à tous,
j'ai créé une base de données et tout fonctionne (tables et requêtes).
Voici m'a question :
dans un formulaire, j'aimerais avoir deux ou plusieurs listes déroulantes sachant qu'en affichant les données dans une liste, puis une autre et ainsi de suite et en cliquant sur un bouton du style 'OK" la macro ainsi définie affiche le résultat.
Exemple :
1ère liste: les professions (médecins, véto, labo....).
2ème liste: les villes d'un département.
le bouton de commande affiche tous les docteurs qui habitent la ville X....
Mon autre souci, c'est que je n'y connais RIEN en langage (VBA ou autre).
Merci à qui me comprendra et bonne soirée à vous.
0
Bonjour,

[ACCES2003]
J'ai un sous_formulaire en mode continu, avec les 3 premiers champs liste déroulantes avec les valeurs par défaut issues d'une autre table (MOBILIER)
Clé primaire : CodeObjet Index principal aucun doublons autorisés
autres champs : Pièce ; Libéllé ; Volume

En cours de saisie ligne par ligne de chaque enregistrements dans le sous formulaire [InventaireV1], je selectionne grâce aux liste déroulante la localisation du mobilier, sa catégorie et le libéllé exacte de l'objet, mais ce que je voudrais obtenir, c'est que dés que j'ai sélectionné la liste déroulante "Libelle" avec CodeObjet en 1er colonne cachée et Libéllé inseré dans le champs en cours..., mes deux autres champs [CodeObjet] et [Volume] vide au départ, puisse contenir la valeur du CodeObjet et surtout le Vollume pour l'objet selectionné, en vu d'un calcul en fiin de saisie du formulaire parent.

J'espère avoir été clair dans mes explication, et merci par avance pour votre solution.
0
Bonjour,

Dans l'évènement "sur abscence dans la liste " associer ce code
Private Sub Modifiable39_NotInList(NewData As String, Response As Integer)
' Ajoute une nouvelle catégorie en entrant un nom
' dans la zone de liste modifiable [Code catégorie].

Dim entNouvCatégorie As Integer, chTitre As String, entmsgDialogue As Integer

' Affiche une boîte de message demandant si l'utilisateur veut
' ajouter une nouvelle catégorie.
chTitre = "Application absente de la liste"
entmsgDialogue = vbYesNo + vbQuestion + vbDefaultButton1
entNouvCatégorie = MsgBox("Voulez-vous ajouter une nouvelle application?", entmsgDialogue, chTitre)

If entNouvCatégorie = vbYes Then
' Enlève le nouveau nom de la zone de liste modifiable Code catégorie
' de sorte que le contrôle puisse être actualisé lorsque l'utilisateur
' revient au formulaire.
DoCmd.RunCommand acCmdUndo

' Affiche la boîte de message et ajuste la longueur de la chaîne
' entrée dans la zone de liste modifiable.

' Ouvre le formulaire Ajouter une catégorie.
DoCmd.OpenForm "T-affaire", acNormal, , , acAdd, acDialog, NewData

' Continue sans afficher le message d'erreur par défaut.
Response = acDataErrAdded
End If
End Sub
-1
Personne n'a donc la solution ? Sniff
-2
donne moi ton adresse demain matin je te renvois la reponse ok
0