Posez votre question Signaler

Liste déroulante dans un formulaire Access [Résolu]

assyleri - Dernière réponse le 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 !
Lire la suite 
Réponse
+3
moins plus
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
assyleri- 10 juin 2004 à 18:06
Je vais regarder, merci !
Répondre
Ajouter un commentaire
Réponse
+2
moins plus
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...
Acasanva- 24 janv. 2012 à 18:03
Super!! Merci beacoupp, ca fais 1 heure que je cherche.
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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
vakov- 27 juin 2008 à 13:54
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
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
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é !)
Ajouter un commentaire
Réponse
+0
moins plus
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.

Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-2
moins plus
Personne n'a donc la solution ? Sniff
nehla- 10 juin 2004 à 19:22
donne moi ton adresse demain matin je te renvois la reponse ok
Répondre
Ajouter un commentaire
Ce document intitulé «  Liste déroulante dans un formulaire Access  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.