Liste déroulante dans un formulaire Access
Résolu/Fermé
A voir également:
- Liste déroulante access formulaire
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Formulaire de réclamation facebook - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Réseaux sociaux
9 réponses
Utilisateur anonyme
10 juin 2004 à 15:55
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
kinder.surprise,
caractère banane
blux
Messages postés
26490
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 novembre 2024
3 316
5 mai 2006 à 11:18
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 :
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 SubLes chr(34) sont là pour insérer un ", sinon, c'est trop compliqué de les doubler/tripler...
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
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
merci
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
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
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
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?
N' y a t'il pas moyen d'utiliser une fonction DISTINCT ou un truc du genre comme en SQL?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
blux
Messages postés
26490
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 novembre 2024
3 316
5 mai 2006 à 13:17
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 :
Ca devrait aler mieux (j'ai testé !)
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é !)
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
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.
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.
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.
[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.
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
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
10 juin 2004 à 18:06