Access: liste de choix, plusieurs options

ourse -  
 ourse -
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
Configuration: Windows XP
Firefox 3.0.1

15 réponses

  1. tenace Messages postés 840 Statut Membre 224
     
    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
  2. ourse
     
    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
  3. tenace Messages postés 840 Statut Membre 224
     
    Bon courage
    Kev
    0
  4. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ourse
     
    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
  7. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
  8. ourse
     
    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
  9. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
    1. ourse
       
      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
  10. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
    1. ourse
       
      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
    2. ourse
       
      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
  11. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
  12. Archi-dessin Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   25
     
    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
  13. ourse
     
    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
    1. Archi-dessin Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   25
       
      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
    2. Archi-dessin Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   25
       
      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
  14. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  15. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    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
  16. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
    1. ourse
       
      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
    2. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
       
      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
      1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention  
         
        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
      2. ourse > blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention  
         
        @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