Access: liste de choix, plusieurs options

Fermé
ourse - 13 sept. 2008 à 09:47
 ourse - 18 sept. 2008 à 07:26
Bonjour,
dans une tentative de créer une base de données pour un refuge, j'ai le cas d'un champ "Liste de choix" et j'aimerais qu'on puisse choisir plusieurs options dans cette liste de choix. Mais je ne trouve pas comment faire? Merci

Windows XP et Access 2000

15 réponses

tenace Messages postés 828 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 25 juillet 2015 224
13 sept. 2008 à 09:49
Bonjour
tu dois d'abord créer une table avec tes différents choix, et ensuite l'inclure dans ta fonction liste de choix
Kev
0
Merci beaucoup. Cela ne fonctionne pas, mais je vais m'y prendre autrement ;-) Cela fait un bail que je n'ai plus utilisé microsoft access, il faut que je me replonge dans mes classeurs ;-)
0
tenace Messages postés 828 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 25 juillet 2015 224
14 sept. 2008 à 09:38
Bon courage
Kev
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
15 sept. 2008 à 22:18
Que veux tu ensuite faire de ces plusieurs valeurs sélectionnées???

Ce que tu demandes n'est pas très simple à réaliser, parce qu'un champ n'accepte qu'une seule valeur.

Il faut contourner la difficulté - c'est techniquement réalisable, mais un peu lourdingue donc je préfère être sûre que ça soit ABSOLUMENT nécessaire avant de me lancer dans des explications...
0

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

Posez votre question
mon souci est lui suivant: il s'agit donc pour un refuge. Dans le champ du comportement du chien - ou du chat - il faudrait qu'on puisse indiquer à la fois qu'il s'entend (ou non) avec les enfants, les autres chiens, les hommes, les chats, bref il y a plusieurs critères à mettre. Sur le site de heimatlos.tierschutz.ch cela se fait - j'y insère les animaux à adopter pour notre SPA et je peux cocher plusieurs critères, qui sont pris en compte lorsque quelqu'un lance une recherche. Evidemment ce n'est pas fait avec Access :-)
J'ai contourné la chose car j'ai trouvé un logiciel en allemand - qui ne va pas pour mes collègues germanophobes - on peut l'ouvrir avec Access et voir comment c'est fait et je m'en inspire. Eux, ils ont crée une table avec des codes, donc s'entend avec enfants = un code, s'entend avec chats = un code etc. Cela ne permet toujours pas la sélection multiple, je vais ma foi laisser introduire plusieurs codes dans le même champ; pour créer une requête qui permet de trouver p ex les chiens mâles de petite taille s'entendant avec chats je ne sais pas encore..
Au final cela ne fera sans doute pas avec Access, j'ai téléchargé hier Open Office, car au refuge ils ont pas Microsoft Access et comme la solution ne doit rien coûter, je ne peux pas dire: ma foi achetez Access... ;-) J'ai Access sur mon ordi et tâtonne pour déjà savoir comment construire le tout. P ex j'hésitais entre faire une seule table pour l'animal, incluant autant la taille, pelage, comportement, éducation, traitement médicaux etc ou bien faire une table pour l'animal puis une pour la taille une pour l'éducation etc - le logiciel en allemand fait bien des tables séparées, le pelage, la taille etc sont dans la table des codes.

Une solution MySQL/PHP n'est pas envisageable car je devrais leur mettre un serveur en local - pas de connexion Internet et, les connaissant, 9 x sur 10 elles réclameraient: ça ne va pas.. parceque quelqu'un aurait trouvé moyen d'arrêter le serveur. Et comme je ne travaille pas sur place, au refuge, je ne vais pas faire le helpdesk ;-)
0
oops je vois que je peux pas éditer - je voulais encore dire qu'en fait je suis restée bloquée avec ma question de bouton pour ouvrir un formulaire, postée ici
http://www.commentcamarche.net/forum/affich 8428098 microsoftaccess ouvrir un formulaire

Merci :-)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
16 sept. 2008 à 10:23
Si la base n'est pas encore construite, c'est effectivement le plus simple de mettre un champ par critère, de type Oui/Non. Ca sera également plus simple pour les sélections ensuite.

Pour ce qui est de faire tourner ça sans Access, le runtime 2007 est téléchargeable gratuitement pour faire tourner la base que tu auras développée.
0
J'avais souci que le formulaire de saisie deviendra trop lourd, si je mets trop de champs avec OUI/NON. C'est à essayer aussi.
Non la base n'est pas du tout faite, on fait du brainstorming, on est plusieurs bénévoles là-dessus, et une fois réuni les idées, on verra avec quoi on travaille finalement. On a encore le souci qu'un adoptant peut avoir plusieurs animaux, un chien et 2 chats p ex, et que si p ex j'ai la fiche du chien Boule et je vois il est chez l'adoptant Dupont, il faut que je puisse voir que ledit Dupont n'a pas slt Boule mais aussi le chat Rousse et la lapin Carotte, p ex...

Runtime? je connaissais pas, je viens de googler, c'est nickel et me fait pencher pour Access. A en croire le wiki
https://neowiki.neooffice.org/index.php/Fr:Cr%c3%a9er_une_Base_de_Donn%c3%a9es

Open Office risque de ne pas nous donner toutes les options qu'il nous faudrait. Et en plus on doit apprendre à connaître un nouveau logiciel. Il y en a une qui travaille avec FileMaker, on va voir ce qu'elle arrive à faire, sinon ce sera Access et RunTime, merci mille fois de cette astuce :-)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
16 sept. 2008 à 15:37
Une autre "astuce":

Une table pour les adoptants, une pour les animaux, reliées entre elle par l'identifiant de l'adoptant, comme ça vous pourrez voir illico tous les animaux d'un adoptant (Valable aussi bien avec Access qu'avec OpenOffice, DBase ou FileMaker)
0
ah ça avance, avance :-) J'avais prévu deux tables, oui mais pensais les relier par ID Animal. D'après ce que je sais on peut mettre 2 liaisons (?), donc à la rigueur on essaiera relier avec ID Animal ET ID Adoptant... à essayer, toujours :-)
Merci de l'astuce :-)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
16 sept. 2008 à 15:50
Champs de la table Adoptants:
N°Adoptant
Nom
Prénom
Adresse
CP
Ville

Champs de la table Animaux:
N°Animal
Nom
Race
Sexe
N°Adoptant
DateAdoption
Etc...

Que voyais tu comme champs dans les tables???
0
Pour l'adoptant
IDAnimal
IDAdoptant
NomAdoptant
PrénomAdoptant
Titre
AdresseRue
AdresseNoMaison
AdresseNPA
Date naissance adoptant
EtatCivil
NoTel
Email
AutresAnimauxChezAdoptant
Commentaires

Pour les animaux:
IDAnimal
NomAnimal
GenreAnimal
Sexe
Taille
Pelage
Habitat
Socialisation
Education
Microchip
Poids
Date de naissance
Date Arrivée
MotifArrivée
Date de départ
MotifDepart
NomAdoptantAnimal
MaladiesAnimal
MédicamentsAnimal
Photo
Commentaires

Je pensais mettre des codes pour le genre - chat, chien, rongeur, des codes pour sexe = mâle ou femelle, castré, stérilisé, des codes pour la taille - grand, moyen. petit, très grand, très petit, des codes pour le pelage - long, court, ras - des codes pour habitat - cela concerne les chats, sortent ou chat d'appart - des codes pour la socialisation, chat peureux ou chat habitué aux chiens, chien habitué aux enfants, aux chats etc, des codes aussi pour l'éducation, le chien est bien éduqué, juste éduqué, pas éduqué... Ces codes je les mettrais dans une table, et depuis le formulaire de saisie des animaux des boutons pour ouvrir le formulaire des codes - au bout d'un moment on sait par coeur les plus courants - des boutons aussi pour ouvrir les autres formulaires (adoptants ainsi que la liste noire - ceux à qui on ne donne plus d'animal)

Notre refuge est en Suisse.
0
et puis encore... un animal peut être placé plusieurs fois, s'il a pas de chance... imaginons première arrivée, motif décès du maître, il trouve un adoptant, revient 2-3 ans plus tard, motif divorce, re-retrouve un adoptant, re-revient plus tard, motif bébé se pointe... On doit garder l'historique des placements. Donc je pense qu'il faut mettre les arrivées départs aussi dans une table séparée, liée à la table animal par ID Animal..
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
16 sept. 2008 à 19:40
Ok. Alors voilà les structures des tables:

Pour l'adoptant
IDAdoptant
NomAdoptant
PrénomAdoptant
Titre
AdresseRue
AdresseNoMaison
AdresseNPA
Date naissance adoptant
EtatCivil
NoTel
Email
AutresAnimauxChezAdoptant
Commentaires

Pour les animaux:
IDAnimal
NomAnimal
GenreAnimal
Sexe
Taille
Pelage
Habitat
Socialisation
Education
Microchip
Poids
Date de naissance
Date Arrivée
MotifArrivée
Date de départ
MotifDepart
MaladiesAnimal
MédicamentsAnimal
Photo
Commentaires

Et pour les adoptions:
IDAdoptant
IDAnimal
DateAdoption

DateRetour

En gras, ce sont les clés.
(J'ai mis la clé sur tois champs au cas - peu probable mais pas impossible - où un adoptant ramènerait un animal pour cause de problèmes divers, puis le réadopterait une fois ses problèmes solutionnés...)
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
17 sept. 2008 à 02:23
salut,
dans la propiété " Style" d'une listeBox tu choisi "1- CheckBox" apès dans la zone code et plus pécisement dans form_load() on ecrit le programme qui affect le champ de la table vers le nom de la listeBox on utilisant la propriété additem
0
Voilà je n'arrive pas à faire afficher la suite des messages. Pour la sélection multiple on me donne l'astuce:

dans la propiété " Style" d'une listeBox tu choisi "1- CheckBox" apès dans la zone code et plus pécisement dans form_load() on ecrit le programme qui affect le champ de la table vers le nom de la listeBox on utilisant la propriété additem

J'ai également reçu la structure des tables. Merci à vous tous - avec les éléments réunis on va se mettre au travail un peu plus concrètement :-)
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
18 sept. 2008 à 05:41
salut,
Public CNN_BASE As New ADODB.Connection
dim ors1 as As New ADODB.Recordset


CNN_BASE.Provider = "Microsoft.jet.oledb.4.0"
CNN_BASE.ConnectionString = (App.Path & "\" & "<Nom de la base")
CNN_BASE.Open

set ors1 =CNN_BASE.Execute _
("select <Champ1from <Table> order by <Champ1>i")
ors1.movefirst
do while not ors1.eof()
ZLIST_MATIER.AddItem ors1.Fields.Item("Champ1").Value
ors1.moveNext
loop
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
18 sept. 2008 à 05:41
salut,
Public CNN_BASE As New ADODB.Connection
dim ors1 as As New ADODB.Recordset


CNN_BASE.Provider = "Microsoft.jet.oledb.4.0"
CNN_BASE.ConnectionString = (App.Path & "\" & "<Nom de la base")
CNN_BASE.Open

set ors1 =CNN_BASE.Execute _
("select <Champ1from <Table> order by <Champ1>i")
ors1.movefirst
do while not ors1.eof()
ZLIST_MATIER.AddItem ors1.Fields.Item("Champ1").Value
ors1.moveNext
loop
0
blux Messages postés 26017 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 1 mai 2024 3 289
17 sept. 2008 à 09:00
Salut,

pour répondre à la question initiale, l'objet "zone de liste déroulante" n'accepte qu'une seule sélection (à cause de sa manipulation à la souris).

Par contre, l'objet "zone de liste" permet les choix multiples (mais occupe plus de place dans le formulaire).
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
17 sept. 2008 à 09:25
Salut Blux,

je vais passer pour une andouille, mais comment fais tu un choix multiple dans une zone de liste? (Si elle est basée sur un champ, que deviennent les plusieurs valeurs choisies???)
J'ai essayé Ctrl, Shift, Alt, AltGr, à la sourirs, au clavier...?
0
blux Messages postés 26017 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 1 mai 2024 3 289
17 sept. 2008 à 09:30
je vais passer pour une andouille
Quand on ne sait pas, y'a pas trop de risques :-)

Il faut que ta liste soit paramétrée en 'sélection multiple'. Onglet 'autres', zone 'sélection multiple' dans les propriétés de l'objet.

Par défaut, c'est 'aucun', les autres choix sont 'simple' (sélections multiples avec la souris ou barre d'espace) ou 'étendu', on peut alors faire de la multi-sélection (de plages de choix) avec CTRL, MAJ.

Ensuite, tu claques une boucle 'for each' avec 'itemselected'...
0
merci de ce complément d'info, je m'étonnais autant que LatelyGeek :-) j'en suis plutôt au niveau débutant avec Access - et c'est la toute première fois que je suis sur un truc d'une telle envergure avec, heureusement, le concours de ce forum ainsi que les idées/apports des autres bénévoles. Il y en a une qui avance assez vite avec Filemaker Pro 5.5. sur mac - j'ai la 5.0 sur windows - par contre si au refuge ils ont VISTA cela risque de ne pas être compatible - je me lance dans une recherche à ce sujet...je pourrais leur céder mon filemaker que je n'utilise plus du tout...
0
ourse > ourse
17 sept. 2008 à 10:53
pour FM j'ai trouvé http://www.commentcamarche.net/forum/affich 7046889 file maker pro 5 donc si on choisit finalement FM ce sera bon :-)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
17 sept. 2008 à 15:51
Ben ça alors!!! Jamais vu ça. Jamais eu besoin non plus, remarque... Merci à toi.
----

Cela dit, je viens de tester, effectivement on ne peut pas l'utiliser "toute crue", en fait Access ne tient pas compte de la valeur brute, même si on n'en sélectionne qu'une.

J'ai créé une zone de liste multi-choix pour la civilité (Bien qu'il y ait peu de chance qu'on soit à la fois Monsieur et Madame) et sans VB non seulement il n'enregistre pas la valeur sélectionnée sur un nouvel enregistrement mais il ne sait même pas afficher celle des anciens, ou bien ai-je merdoyé quelque part???

Le contrôle Liste est bien sûr basé sur le champ Civilité, mais je suppose que ça ne sert à rien, il faut exploiter les items sélectionnés pour alimenter le champ...
0
blux Messages postés 26017 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 1 mai 2024 3 289 > LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023
17 sept. 2008 à 16:07
généralement, on utilise ce type d'objet pour des choix qui peuvent être multiples (bien évidemment), donc mettre la source en tant que champ d'une table ne sert à rien, puisque par définition un champ contient une seule valeur...

mais ça existe, et c'est des fois très utile :-)
0
ourse > blux Messages postés 26017 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 1 mai 2024
18 sept. 2008 à 07:26
@Archidessin: merci pour le bout de code pour le "loop" :-)
Pour l'heure il semble que nous ferons la base avec Filemaker, c'était néanmoins l'occasion de rafraichir un peu ma mémoire pour l'utilisation de Access :-)
0