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 :

Pb table liée sur elle même


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut Pb table liée sur elle même
    Bonjour, j'ai un autre problème qui me tracasse depuis un bon moment déja, je vous explique.

    J'ai une table ARTICLE, composée notamment d'un CodeArt, et d'autres champs, puis une autre table STRUCTURE composeé de 2 Codes d'articles, Compose et Composant. Je vous met un petit schéma pour être plus clair :

    article_1 étant un alias de article, qui est une table unique, donc les choix de compose/composant sont les codes d'article dont le type correspond...

    Donc j'ai beaucoup de mal à créer un fomulaire qui serve à la fois pour les modifications de mes structures et à l'ajout de nouvelles. Si quelqu'un a une idée, je pense que c'est un cas assez typique en BD (ou alors mes relations sont mal foutues).

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Je ne comprend pas la question. Le formulaire pour les structures sera basé sur la table structure avec deux zone de liste déroulantes dont la source sera la liste des articles, une de ces zones pointe vers le champ compose et l'autre vers composant

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    oue, mais non en fait, au niveau de la clarté, afficher chaque ligne avec compose/composant, c'est pas terrible, en fait, j'avais oublié de préciser, mais j'aimerais regrouper les structures par compose, j'ai essayé plusieurs méthodes avec sous-formulaires, mais aucune ne convient réellement. Avec en plus (si possible), une liste déroulante de recherche en en-tête du formulaire (pour les modifs).

    En fait le fait de faire un formulaire en 2 parties avec des champs obligatoires, ça lui plait pas trop à Access, j'ai souvent un message du genre, "structure.composant -> null interdit" au pire, je peux virer cette propriété, mais l'utilisateur saisit n'importe quoi, ça risque d'être bizarre.

  4. #4
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Bonjour,

    Je ne comprends pas pourquoi tu veux utiliser un structure pour la table article. J'ai eu le même problème pour créer des associations dans une liste d'adresse.

    tu dois faire un formulaire basé sur ta table Article.

    Puis tu fais un sous formulaire basé sur la table structure. Tu auras tes 2 champs. Le 1er "composé" est lié en père-fils avec la table article.

    puis tu fais une liste déroulante liée sur le champs "composant" et qui contient les articles.
    tu peux ainsi remplir ta table "structure" sans problème

    A+

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Moué, ça marche, mais c'est pas top. Le truc c'est que on peut pas faire d'ajout avec le bouton ">*",mais en fait c'est normal. Ensuite, il faut mettre le champ CodeArt du formulaire principal en indépendant, et la source de la liste déroulante ne concerne que les articles de type "Compose". Donc je pense que je vais garder cette méthode là en attendant d'en trouver une autre mieux.
    Voilà. Merci à vous. Je le met pas résolu quelques jours, au cas où quelqu'un trouve mieux d'ici là.

  6. #6
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    attention
    Le formulaire principal n'a pas du tout besoin d'être en indépendant. Tu peux très bien le faire en formulaire normal avec une liste déroulante pour la recherche. Puis tu peux mettre les boutons ajouter >*


    Avec un peu de vba tu peux même faire un bouton pour ajouter des composés aux articles et que le sous formulaire ne s'affiche pas s'il n'y en a pas. Il n'y a pratiquement pas de limite pour ta créativité

    il ne faut pas baisser les bras trop vite moué!!!!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    En fait le problème, c'est que si on le met pas en indépendant, le code d'article est liée à la table article, et non sur la structure, donc les ajouts se feront sur l'article avant tout. L'avantage c'est que je peux créer un article et faire sa composition en même tps, mais c'est pas tellement ce que je veux faire, donc je ce que je vais surement faire c'est lors de la création d'un article composé, provoquer l'ouverture du formulaire de composition en passant le code de l'article en paramètre.
    A ce propos, vous savez comment faire ça ? Ouvrir un formulaire avec un champs rempli directement ?

    PS: J'ai le droit de changer le titre du post pour étendre mon problème ? Ou faut créer un nouveau post ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Ce que tu peux faire, c'est:

    un formulaire basé sur les articles avec un bouton pour ouvrir ton formulaire "F_ArticleCompose" basé sur la table structure par exemple
    Dans ton formulaire tu as 2 champs
    composé qui est invisible
    et composant qui est en fait une zone de liste basée sur article

    Ce formulaire tu peux le faire en Pop (fenêtre modale)

    tu l'ouvre de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        DoCmd.OpenForm , "F_ArticleCompose", , "Compose=" & me!codeArt, , , codeart
    Puis à l'ouverture de ton formulaire composé

    tu mets le code suivant pour le composé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ' met la valeur de l'article pour le compose
    ' le champs compose n'est bien sûr pas visible
    me!Compose.defaultvalue= me.openargs
    De cette manière tu pourras mettre les composants de ton article

    en allant ensuite plus loin tu peux aussi changer la couleur du bouton sur ton formulaire article pour indiqué que c'est un article avec composant
    A+

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Intéressante ta technique, à part une tite erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm "Ajouter Structure", , , , , , Forms![Ajouter Article].CodeArt
    les 2 premiers arguments sont inversés.

    Je l'ai pas faite exactement comme tu m'as dit, je l'ai adapté un peu, j'ai pas mis de condition, paske j'arrivais pas bien à la faire marcher, et que c'est pas très utile.

    Par contre j'ai rencontré un petit problème en testant un peu n'importe quoi :

    quand je rentre par exemple 007, le formulaire il prend 7, du coup quand je met un composant, il me dit que le compose n'existe pas. C'est bizarre, il a l'air de le considérer comme un nombre, plutot qu'une chaine, qu'est-ce que vous en pensez ?

    C'est un problème minime, mais tout de même, j'aimerais bien trouver une solution, si quelqu'un sait ...

  10. #10
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    c'est assez normal car il existe une différence fondamentale entre les nombre et le texte

    si tu veux que la variable soit de format texte il faut passer l'argument en texte par une variable de type string

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    ça marche pas, j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim intReponse As String
    Dim CA as string
    CA = Forms![Ajouter Article].CodeArt.Value
    If CodeType = "PF" Then
    intReponse = MsgBox("Vous avez ajouté un article de type ""Produit Fini""," & vbCrLf & 
    "Voulez-vous définir sa composition maintenant ?", vbQuestion + vbYesNo, "BD HEMODIA-COFAT")
    If intReponse = vbYes Then
    DoCmd.OpenForm "Ajouter Structure", , , , , , CA
     
    End If
     
    End If
    mais tjrs pareil, le deuxieme formulaire s'ouvre avec 7 au lieu de 007, y a peut-être autre chose à ajouter non ?

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    J'ai trouvé le problème... mais pas la solution, en fait c'est pas au niveau de la transmission de données que ça coince, quand j'affiche le openArgs ça marche, mais c'est le defaultValue qui considère le paramètre comme un nombre, j'essaie de changer le format, mais je trouve pas comment faire.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    tin chuis con, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.CodeArt = Me.OpenArgs
    Là il le voit comme une chaine. Ouf, je crois que c'est bon j'ai fini la première version fonctionnelle de ma BD, c'est super !

    Je dois avouer que c'est pas aussi facile que j'aurais cru, il doit me rester pas mal de bugs à résoudre, mais qd même, je vous remercie tous de m'avoir aidé, c'est une super idée ce forum d'entraide.

Discussions similaires

  1. Relation d'une table sur elle-même ?
    Par TallyHo dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/10/2007, 00h14
  2. Table liée avec elle même
    Par jozzz dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 11h53
  3. Probleme jointure d'une table sur elle même
    Par fred64 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/05/2006, 15h01
  4. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 16h28
  5. TABLE pointant sur elle-même, requete de selection recursive
    Par Mike@Nestor dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/07/2005, 14h50

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