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

Access Discussion :

Demande d'un avis sur requête


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut Demande d'un avis sur requête
    Bonjour

    Bon voila alors je travail pour ma société sur un outil de gestion des planning des formateurs de ma société.

    J'ai besoin d'un vais, ou d'un conseil sur la construction de mon application Access.

    Pour faire simple pour moi la programmation d'une formation répond à deux choses:

    -Un formateur compétent
    -Une salle équipée

    J'ai donc dans ma base Access:
    -une table "formateurs" avec leur nom, prénom, etc...
    -une table "salles" avec leur identifiant mais aussi leur équipement (TV, DVD, rétro projecteur,... ) et leur capacité d'accueil (50 places par exemple).
    -une table "code de formation" qui reprend tout le catalogue des formations que nous proposons avec les "équipements nécessaires"
    -une table habilitation qui décris les compétences des formateurs qui sur deux colonnes donne pour chaque code le matricule du formateur. Donc si un formateur est habilité son matricule figure à coté du code de la formation.



    Alors voilà ma question :

    Si je veux que mon application prenne en compte leur du choix de la salle pour la formation celle qui correspond à tout les critères d'équipements, comment dois je construire ma requete ??

    Faut il que je fasse un lien entre tout les critères d'équipement du code stage et de ceux de la salle ???


    Par exemple un stage nécessite à la fois 1 TV, 1 lecteur DVD et un rétroprojecteur. Tout ces équipements apparaissent dans la liste des équipements nécessaires dans le catalogue des stages.

    Comment faire le liens avec ma base de salles ???


    Je pense qu'une simple explication suffit mais si vous voulez plus d'infos.... mais mon problème grossièrement est juste comment marche les requetes et les liens entre bases !!


    Merci et désolé pour la prise de tête un jeudi après midi !!

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,


    tu dis
    une table "salles" avec leur identifiant mais aussi leur équipement (TV, DVD, rétro projecteur,... )
    J'en déduis donc que tu as prévu un champ booléen pour chaque équipement (ce qui suppose une structure assez figée de ton équipement).
    De même dans ta table de code Formation .

    Le problème est qu'il faut que tu mettes en relation uniquement les champs des équipements obligatoires pour la formation sélectionnée (par une jointure ou via un critère).

    Pour faire cela, plusieurs approches sont envisageables et cela dépend de quelle manière tu définis la formation .... En supposant qu'il s'agisse d'une liste déroulante dans un formulaire, tu peux mettre dans ta requête qq chose du genre:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ... FROM salles , [Code de formation] as CodeForm
    WHERE CodeForm.ID =  Forms!MonForm!MalisteDéroulante
    AND (Salles.TV OR  Not CodeForm.TV)
    AND (Salles.DVD OR Not CodeForm.DVDRequis)
    ...
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je te conseille de lire cela : http://jeannot45.developpez.com/arti...stionplanning/

    Starec

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    J'en déduis donc que tu as prévu un champ booléen pour chaque équipement (ce qui suppose une structure assez figée de ton équipement).
    De même dans ta table de code Formation .
    Exactement, dan smes tables c'est simplement du OUI/NON

    Si il y a une télé j'indique OUI ou NON.

    J'ai deja lu le liens sur la gestion d'un plannig mais par rapport à mon cas il est plus simple. Il ne gère pas vraiment autant d'équipement même si effectivement je viens de penser que la partie sur les compétences des formateurs dans cet exemple peut être appliquer à mon cas !!

    Après reflexion je pense que ce dont j'ai besoin c'est d'un bon tuto sur les requetes en fait

    Bon je re regarde l'exemple du planning mais si vous avez d'autre approches possibles je veux bien !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    J'ai bien lu plusieurs tuto et le guide de création du planning de jeannot45 et j'en arrive à affiner mes problèmes.


    Le problème est qu'il faut que tu mettes en relation uniquement les champs des équipements obligatoires pour la formation sélectionnée (par une jointure ou via un critère).

    Je bloque justement sur ce point. J'ai bien ma table salle et ma table code de formation.

    Dans les deux tables je détermine quels sont les équipements disponibles (table salles) et nécessaires (table code de formation).

    Maintenant je bloque sur comment faire le lien entre les deux tables, je bloque sur la requete elle même. le problème c'est que la liste d'équipement fait une dizaine de champ

    Dans ma requete j'ai donc mes deux tables, je veux faire apparaitre le numéro de la salle (option affcihé selection), le code de formation (affiché) mais comment lui dire de m'afficher celles dont les équipements disponibles correspondent aux équipements nécessaires ??

    Un texte à écrire dans la ligne critères ??

    Merci

    EDIT: Une description de mes deux tables :

    table_salle
    numéro de salle (texte)
    capacité d'accueil (numérique)
    TV (oui/non )
    DVD (oui/non )
    Dual screen (oui/non)
    Internet (oui/non)
    Outil Microsoft Office (oui/non)


    table_codeformation
    code formation (numérique)
    capacité maximale (numérique)
    TV (oui/non )
    DVD (oui/non )
    Dual screen (oui/non)
    Internet (oui/non)
    Outil Microsoft Office (oui/non)


    Je vous le fais version simple avec la moitié des équipements normaux mais le reste après c'est juste une liste de logiciels.

    Est ce suffisant ??

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Comme je te le proposais dans mon précédent message, tu peux faire qq chose du genre:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT [numéro de salle], code formation FROM table_salle as tS, table_codeformation as tCF
    WHERE
    (tS.[capacité d'accueil] >= tCF.[capacité maximale]) AND
    (ts.[TV (oui/non )] OR NOT tCF.[TV (oui/non )]) AND
    (ts.[DVD (oui/non )] OR NOT tCF.[DVD (oui/non )]) AND
    (ts.[Dual screen (oui/non )] OR NOT tCF.[Dual screen (oui/non )]) AND
    ...


    Personnellement, j'aurai sans doute procédé autrement mais cette approche a l'avantage de tout formuler en SQL.

    PS: Ne confond pas le nom d'un champ avec son libellé. Les espaces, apostrophes et autres commentaires tels que (Oui/non ) sont à mettre le cas échéant dans l'étiquette d'un champ sur un formulaire, voire dans la propriété Légende du champ...
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    Ok pas de soucis pour le oui/non

    Sinon juste pour savoir comment aurais tu procédé toi ?

    Je pensais sinon à faire:
    -Une table salle avec les identifiant
    -Une table code avec la descritpion de la formation
    -Une table equipement des salles avec une liaison par le numéro de la salle ou avec la clé primaire de la table salle
    -Une table équipement code exactement comme la précédente mais pour les codes de formation.

    En gros séparé les codes et les salles des équipements nécessaire ou disponibles. Mais comme je n'ai pas vu d'intéret (avec mon niveau de visibilité et maitrise d'Access) j'ai laissé les équipements dans les mêmes tables de description.

    Sinon entre tes deux messages j'ai un peu regardé aussi la SQL et je comprend un peu la logique donc je vais essayer avec le code que tu as donner et je fais un feedback ici dans quelques minutes !!

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    Super ça marche !

    Une question pour etre chiant !

    Le code que tu m'as donné fonctionne mais parcontre il ne selectionne pas les salles qui pourraient répondre à mes besoins !

    exemple :

    Code Alpha : TV et DVD


    Salle 22: TV et DVD
    Salle 23: TV, DVD "et" rétro projecteur

    Avec ce code la salle 23 n'est pas selectionné alors que même si elle à un équipement qui n'est pas nécessaire elle peut servir pour ce stage !!


    Il y a t-il un truc à modifier dans le code ???


    Merci pour votre aide !

  9. #9
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par Aeltith Voir le message
    Super ça marche !

    Une question pour etre chiant !

    Le code que tu m'as donné fonctionne mais parcontre il ne selectionne pas les salles qui pourraient répondre à mes besoins !

    exemple :

    Code Alpha : TV et DVD


    Salle 22: TV et DVD
    Salle 23: TV, DVD "et" rétro projecteur

    Avec ce code la salle 23 n'est pas selectionné alors que même si elle à un équipement qui n'est pas nécessaire elle peut servir pour ce stage !!


    Il y a t-il un truc à modifier dans le code ???


    Merci pour votre aide !

    Normalement (si je n'ai pas dit des âneries ) cela devrait fonctionner, y compris pour ton cas de la salle 23
    ... montres nous ton code SQL.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    Non je sais pourquoi ça marche pas c'est bête et logique ! (après une bonne nuit de sommeil)

    En fait sur ma table code de formation je dis par exemple que pour le rétro projecteur c'est la valeur "non" !

    Or pour ma salle la valeur est sur "oui" donc normale que avec le code que j'ai elle ne soit pas selectionné.

    Faut que je mette la valeur sur "null" ou quelque chose comme ça surma table code de formation au lieu de "non" sinon de fait cela va m'écarter les salles susceptibles d'être utilisées !

    Bon reste à trouver comme mettre une valeur "null" et pas non mais je crois savoir comment on fait.

    EDIT: Ouai bon finalement non je sais pas

  11. #11
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    ...
    ... montres nous ton code SQL.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  12. #12
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut mout1234, Starec et Aeltith,

    Citation Envoyé par Aeltith
    Je pensais sinon à faire:
    -Une table salle avec les identifiant
    -Une table code avec la descritpion de la formation
    -Une table equipement des salles avec une liaison par le numéro de la salle ou avec la clé primaire de la table salle
    -Une table équipement code exactement comme la précédente mais pour les codes de formation.

    En gros séparé les codes et les salles des équipements nécessaire ou disponibles. Mais comme je n'ai pas vu d'intéret (avec mon niveau de visibilité et maitrise d'Access) j'ai laissé les équipements dans les mêmes tables de description.
    j'aurais fait ce choix.
    en ajoutant en plus une table équipements.

    l'intérêt est que cela permet de rajouter ou de supprimer de nouveau équipement de façon plus dynamique sans toucher au sql.
    avec la structure que tu as actuellement si par exemple tu devais rajouter un "flash ball" (pour éveiller l'attention des dormeurs ) dans les équipements dispo(salle)/requis(formation).
    tu devras rajouter au sql:
    "... AND (ts.[Flash Ball (oui/non )] OR NOT tCF.[Flash Ball (oui/non )])..."
    et ceci à chaque fois que tu voudras intégrer de nouveaux équipements.

    si tu mettais en clef primaire pour les équipements <NumEquipement> les nombres:
    1, 2, 4, 8, 16, 32, 64,....
    tu pourrais utiliser une requete avec un champ calculé sum(NumEquipement) pour la salle et une autre pour la formation.
    une simple comparaison binaire "AND" sur les sommations te donnerait les compatibilités.



    ps: il te manque dans ta conception la disponibilité des salles.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 57
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par vodiem Voir le message

    ps: il te manque dans ta conception la disponibilité des salles.
    ainsi que le nombre de place dispo par salle, l'overbooking c'est mal !

Discussions similaires

  1. Avis sur requête
    Par Invité dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/01/2013, 21h20
  2. Demande d'avis sur tutoriel tuning de requêtes
    Par jeepnc dans le forum Contribuez
    Réponses: 27
    Dernier message: 04/12/2009, 10h43
  3. Demande d'avis sur une requête
    Par minnemo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/05/2009, 16h08
  4. avis sur requête
    Par julien1451 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/01/2009, 18h05

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