IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

création DB bouquinerie


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut création DB bouquinerie
    Bonjour à tous!
    Je m'essaie à la création d'une DB pour une bouquinerie et je bloque à l'étape du formulaire d'édition...
    J'ai fait une requête avec toutes les tables affichées sauf t_exemplaire puis une requête unique avec cette dernière. Je mixe, je fais un formulaire et mon formulaire est ... blanc. J'imagine qu'il y a conflit...
    Y aurait-il une bonne âme qui pourrait déceler le grain de sable?
    merci!!!!!

    JackNom : relations.png
Affichages : 139
Taille : 40,3 Ko

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 338
    Points : 23 797
    Points
    23 797
    Par défaut
    Bonjour.

    Ton modèle semble correct même si je recommanderai de ne pas utilise les champs multivalués mais des tables d'association.
    Les champs multivalués sont un peu plus compliqué dans les requêtes.

    À part cela ton problème doit venir de ta requête. Probablement qu'aucune données ne valide toutes les jointures.
    Si tu ne vois pas d'où cela vient, crée une nouvelle requête basée sur ta table principale, valide si tu as des résultats. Si oui, ajoute une table en jointure, valide si tu as des résultats et recommence jusqu'à ce que tu n'ai plus de données. Tu auras trouvé ta jointure "coupable" :-).
    Après tu peux
    * Décider de te passer de cette jointure.
    * Revoir ta jointure par exemple en utilisant une jointure à gauche (présents dans la table principale, peut-être absents dans la table secondaire) à la place d'une jointure stricte (enregistrements présents dans les 2 tables)
    * Remplacer la jointure par un appel à la fonction DFirst()

    Si tu ne t'en sors pas, poste le SQL de ta requête actuelle pour qu'on puisse savoir ce qu'elle fait.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Ton modèle semble correct même si je recommanderai de ne pas utilise les champs multivalués mais des tables d'association.
    Les champs multivalués sont un peu plus compliqué dans les requêtes.

    À part cela ton problème doit venir de ta requête. Probablement qu'aucune données ne valide toutes les jointures.
    Si tu ne vois pas d'où cela vient, crée une nouvelle requête basée sur ta table principale, valide si tu as des résultats. Si oui, ajoute une table en jointure, valide si tu as des résultats et recommence jusqu'à ce que tu n'ai plus de données. Tu auras trouvé ta jointure "coupable" :-).
    Après tu peux
    * Décider de te passer de cette jointure.
    * Revoir ta jointure par exemple en utilisant une jointure à gauche (présents dans la table principale, peut-être absents dans la table secondaire) à la place d'une jointure stricte (enregistrements présents dans les 2 tables)
    * Remplacer la jointure par un appel à la fonction DFirst()

    Si tu ne t'en sors pas, poste le SQL de ta requête actuelle pour qu'on puisse savoir ce qu'elle fait.

    A+
    Merci beaucoup pour le temps pris à répondre!
    Je vais tenter ta proposition tantôt mais en attendant, je n'ai pas trouvé de tuto sur des associations de tables avec relations plusieurs à plusieurs...
    a+

  4. #4
    Candidat au Club
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour à tous,
    Bonjour marot_r,

    Comme tu l'as suggéré, j'ai recommencé une requête step by step:
    - table titre: ok
    - ajout table type: ok

    Avant de m'attaquer aux champs multi-valués, j'ai ajouté dans la requête la table liée auteur et la table de relation (N à N) auteur <-> titre, c'est là que ça part en sucette... Je joins ici un screen pour que vous puissiez m'aider à déceler le bug...
    Merci déjà!!!!Nom : requete test.png
Affichages : 83
Taille : 32,9 Ko

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 338
    Points : 23 797
    Points
    23 797
    Par défaut
    Bonjour zed1936.

    Étonnant que tu n'ai aucune données, cela veut dire que d'après la BD tu n'as aucun livre pour lequel TOUS les renseignements sont complets.
    Le problème vient que tu as fait des jointures striques, c-à-d que tu dois avoir des données dans la table A et dans la table B qui matchent pour que la requête te retourne des valeurs.
    La solution est de faire ce qu'on appelle une jointure à gauche : tous les éléments de la table A et seulement ceux qui matchent dans la table B.

    Dans ta situation cela se traduit par :

    1. Ajouter la table t_titre et la table t_rel_auteur.
    2. Access va par défaut te proposer la jointure stricte sur titre_id.
    3. Le plus simple, selon moi, est de cliquer sur la jointure et de la supprimer puis de la recréer en partant de t_titre vers t_rel_auteur.
    4. Lors de la création Access va te proposer de définir la jointure : Tous ceux de t_titre et seulement ceux de t_rel_auteur qui correspondent (de mémoire choix 2).
    5. Quand tu a fais ce choix Access va matérialiser la jointure sous la forme d'une flèche allant de t_titre à t_rel_auteur
    6. Valider que tu as des données.
    7. Recommencer avec les autres tables impliqués dans la requête.


    En passant, dans ta table d'association t_rel_auteur (qui semble très bien) je recommande nommer les champs quelque chose comme titre_titre_id et auteur_auteur_id ou titre_id et auteur_id.
    Cela permet facilement de savoir sur quel champ la jointure est faite ce qui rend la maintenance plus facile en nommant tout ce qui est "identique" de la même façon ou d'une façon intuitivement proche.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 299
    Points : 19 510
    Points
    19 510
    Billets dans le blog
    64
    Par défaut En complément
    Bonjour,

    Citation Envoyé par zed1936 Voir le message
    Merci beaucoup pour le temps pris à répondre!
    Je vais tenter ta proposition tantôt mais en attendant, je n'ai pas trouvé de tuto sur des associations de tables avec relations plusieurs à plusieurs...
    a+
    Pour compléter les réponses bien détaillées de marot-r voici un lien vers un tuto sur les relations plusieurs-à-plusieurs :

    relation-plusieurs-a-plusieurs

    Et des discussions sur le même sujet :

    https://www.developpez.net/forums/d2...-dispositif-d/
    https://www.developpez.net/forums/d2...-d-meme-table/

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Candidat au Club
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut done!
    Merci les amis, vous m'avez bien aidé, je crois que je suis lancé pour le reste... merci beaucoup marot_r pour tes explications claires et le temps pris à répondre
    1000 mercis!
    A+

  8. #8
    Candidat au Club
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut recherche multicritères
    Bonsoir à tous,
    J'ai réouvert mon post plutôt qu d'ouvrir une énième discussion, et parce que marot_r, ça m'a fait marré de voir que tu luttes contre les champs multivalués depuis des années

    Ici j'essaie de créer un module de recherche. Comme vous pouvez le constater, tout va bien pour tous mes champs SAUF pour les multivalués (tu m'avais prévenu)...
    Nom : liens recherche.png
Affichages : 27
Taille : 27,7 Ko

    Dans mon module de recherche, je m'étonne de voir une multiplication d'occurences 'Roman' pour le champ 'Genre':
    Nom : liens recherche2.png
Affichages : 25
Taille : 8,0 Ko

    Mais je pige pourquoi! c'est parce que mon champ 'Tags' est un champ multivalué! (voir ici le résultat de ma requête):
    Il renvoie autant de 'Roman' que d'occurences de tags...
    Nom : liens recherche3.png
Affichages : 26
Taille : 43,3 Ko

    Auriez-vous une solution pour moi?
    Merci beaucoup!!

    Jacques

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 338
    Points : 23 797
    Points
    23 797
    Par défaut
    Bonjour.

    Il n'est pas étonnant que tu ais autant de lignes que de valeurs dans le champ multivalué, techniquement parlant c'est comme si tu avais inclus les valeurs de la table d'association.
    Tu as d'ailleurs autant de titre aussi que de tags et "roman" vient de la table t_titre donc il est normal qu'il soit répété.
    Ce que tu pourrais faire c'est tirer avantage de la façon dont les champs multivalués sont stockés en interne et afficher ce champ plutôt que la .value.
    En interne un champ multivalué c'est un champ texte et des données du genre : val1;val2;val3.
    Et tu pourrais quand même faire ton filtre sur les tags tel que tu l'as fait.

    Et je ne lutte pas contre, je pense juste qu'ils ne devraient pas exister car ils ne s'intègrent vraiment pas bien avec le reste des objets Access.
    Et en plus je pense que les performances quand on les utilisent doivent être moins bonnes ... même si sur les machines modernes cela ne doit pas être significatif.
    Je reconnais par contre qu'ils offrent une interface utilisateur vraiment sympa, cette liste déroulante avec des cases à cocher, vraiment cool.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. bouquinerie pour rails 2
    Par Chasseur d'étoiles dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 13/02/2008, 10h10
  2. Vs C++ 2005 Express - Cration de Variables globales
    Par Thonm dans le forum VC++ .NET
    Réponses: 13
    Dernier message: 28/07/2007, 22h34
  3. cration d'une subform
    Par jamjam19 dans le forum Oracle
    Réponses: 1
    Dernier message: 29/06/2006, 13h27
  4. probleme de cration de dossier
    Par la-breche dans le forum Windows XP
    Réponses: 2
    Dernier message: 26/05/2006, 17h05
  5. Cration d'un module de recherche
    Par cyberbiker dans le forum Access
    Réponses: 1
    Dernier message: 16/03/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo