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 :

Petit probleme de débutant [AC-2007]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Petit probleme de débutant
    Bonjour a vous tous voici un petit problème de débutant:
    J'ai fait 3 tables:

    [Personnel] idpers, Nom, Prénom
    [Suivi] idSuivi, Nom,Formation
    [Formation] idFormation,Formation, Description

    Une relation entre Nom<>IdPers et une entre Formation<>IdFormation
    J'ai créer un formulaire formSuivi où les relation avec le nom et les formations fonctionne trés bien.
    Puis je voulais faire un état pour imprimer une liste des formation par nom des personnel.
    Je l'ai créer avec l'assistant et mon problème c'est qu'il créer un champ dans l'état ou s'affiche l'idPers au lieu du nom
    Par contre pour les formations il m'a créer une listbox où la il affiche bien la formation correctement.
    Comment faire SVP?
    Merci à vous

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour,

    Je te suggere la modification suivante :

    [Suivi] idSuivi, IdPers, idFormation

    Faire ta relation entre Personnel et Suivi sur IdPers.
    Faire ta relation entre Formation et Suivi sur IdFormation.

    Utiliser le nom de personne comme clef est generalement une mauvaise idee. Personnellement je connais environ 10 "Martin ROY" dans mon evironnement proche. Utiliser le Id evite les problemes d'homonymie.

    Pour la formation tu as moins de risque d'homonymie mais c'est pour etre coherent.

    Ce que je fais parfois c'est :

    MaTable
    NumSequence (clefPrimaire)
    Code
    Description

    et je fais mes relations sur le champ [Code]. Cela rend les donnees plus lisible pour un humain tout en gardant une independance vis-a-vis de la description que j'affiche a l'utilisateur.

    Pour ton probleme de rapport, pourrais-tu poster la requete que tu utilises comme source (soit une copie d'ecran em mode design, soit le SQL) ?

    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    En fait j'utilise bien un idPers comme clef primaire et non le nom :

    Nom : access.jpg
Affichages : 123
Taille : 54,1 Ko
    mais c'est l'id N°PERSONNEL qui s'affiche dans mon état au lieu du nom
    Merci de l'aide

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    OK, tu ne peux pas seulement changer le nom d'un champ pour que les donnees s'affichent.

    Et pour simplfier la maintenance je te recommande fortement de modifier ta table Suivi pour que les noms des champs qui servent aux relations portent le meme nom des deux bords de la relation. Ex : [Nom] devrait etre [NoPersonnel].

    Pour faire afficher il faut faire une requete avec une jointure entre Suivi et Personnel qui a partir du [NoPersonnel] de Suivi va trouver le nom dans Personnel.

    En SQL ca donne un truc qui ressemble a

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [Suivi].*, [Personnel].[Nom] from [Suivi] inner join [Personnel] on [Personnel].[NoPersonnel]=[Suivi].[NoPersonnel]

    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre réponce cela donne cela?
    Nom : access.jpg
Affichages : 78
Taille : 56,4 Ko
    Et la requette SQL je la met dans le champ de mon état?
    Merci

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Pour les tables c'est cela et je remplacerai le champ [PAR] par [NoPersonnel_Par] toujours par souci de cohérence.

    Pour la requête et l'état voilà comment je procedais généralement au début.

    1. Je lancais l'assitant de creation de requete.
    2. Je choisissais mes tables (ici Suivi, Personnel, Formation)
    3. Je chosissais mes champs, ex :
      [Suivi].[NoPersonnel]
      [Personnel].[Nom]
      [Suivi].[NoFormation]
      [Formation].[Description]¸
    4. Une fois que la requête affiche ce que je veux, je creais un rapport avec l'assitant de creation de rapport.


    C'est ce que je trouve de plus efficace quand on débute en Access.

    Et pour répondre à ta question, on ne met pas de SQL dans un champ. On peut le mettre dans la source de données du rapport ou dans une requête.

    Dans un champ de rapport tu peux mettre le nom d'un champ de la source de données (table ou requête) ou une fonction intégrée (ex : =Sin(3.14/2)), une fonction publque developpée par toi ou un calcul à partir des champs du rapport (ex : =[Prix]*[Qte]).

    A+

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Ok merci de m'avoir bien détailler je vais tester cela dés demain merci

  8. #8
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Je viens de comprendre ! merci de l'aide çà me retournais le cerveau ces requettes car je ne voyait pas à quoi cela servait merci


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit probleme de débutant avec excel et VB..
    Par cvuill dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/08/2007, 19h53
  2. Réponses: 1
    Dernier message: 15/03/2007, 20h16
  3. [Débutant] Petit probleme try catch
    Par Terminator dans le forum Langage
    Réponses: 16
    Dernier message: 30/06/2005, 13h21
  4. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51
  5. probleme de débutant avec D3DXVECTOR3
    Par airseb dans le forum DirectX
    Réponses: 6
    Dernier message: 16/08/2003, 21h03

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