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 :

[Debutant] Appel d'enregistrement issu d'une autre table


Sujet :

Access

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut [Debutant] Appel d'enregistrement issu d'une autre table
    Bonjour le Forum,

    Je travaille une fiche d'indicateurs (table Indicateur) lié à une table Site contenant différents sites industriels.
    Sur mon formulaire indicateur (attaché à la table Indicateur), j'aimerai pouvoir appeler des enregistrments contenus dans ma table Site.
    "=[Site]![Numindic]" ne fonctionne pas, est ce normal? Les tables Indicateur et Site étant bien entendu liées!!

    D'autre part j'aimerai lors de la création d'une nouvelle fiche indicateur appelé les enregistrements de l'année précédente (AnneeFiche est contenu dans la table Indicateur).
    Ex: quantité de métal recyclé (par défaut)= quantité de métal recyclé (AnneeFiche-1).

    J'espère avoir été assez clair.
    Merci pour votre aide
    Grasdus

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    salut,

    malheureusement pour moi, non tu n'as pas été assez clair, a vrai dire j'ai meme rien compris, j'aurai bien aimé t'aider avec ton pb, mais la c'est pas clair...il faut toujours essayer de resumer son problème en se mettant à la place de la personne en face qui va le lire et qui n'est pas du tout au courant de ce que tu fais
    C'est pas facile, mais essaye d'exprimer ton pb plus clairement, avec des images si nécessaire

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut + clair
    Merci de t'y intéresser!

    J'ai deux Tables:
    -Indicateur (NumFicheIndicateur, NumSite, AnneeFiche, Quantite_Metal,...)
    -Site (NumSite, NomSite)

    1.A partir d'un formulaire lié à la table Indicateur, j'ai besoin d'apeller le nom du site (NomSite) contenu dans la table Site.

    2.Lorsque je crée un nouvel enregistrement, j'aimerai mettre comme valeur par défaut de Quantite_Metal la valeur de l'année précédente (AnneeFiche-1).

    Grasdus

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    si je comprend bien, prenons un exemple :

    dans indicateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NumFicheIndicateur     NumSite     AnneeFiche     Quantite_Metal
           0                 15           2000              500
           1                 42           1998              100
           2                 21           2000              200
    dans Site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NumSite            NomSite
        15              blabla
        21              toto
        42              titi
    Et tu voudrais que dans ton formulaire lié a indicateur, le nom du site apparaise c'est ca? ou ca ? en texte ? dans une zone de texte ? ....
    te sers tu de visual ou pas ?

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Oui, j'aimerai dans une zone de texte faire apparaitre le nom du site!

    Et as tu une réponse pour faire apparaitre la valeur par défaut dont j'ai parlé:
    Ex: NumFicheIndicateur NumSite AnneeFiche QuantiteMetal
    1 1 2004 120
    2 2 2004 210
    3 1 2005 150
    4 2 2005 160

    Je crée une nouvelle fiche (NumFicheIndicateur=5) pour le NumSite=1, AnneeFiche=2006 et j'aimerai que par défaut il fait référence à la quantité de métal saisie l'année dernière (QuantiteMetal=150)

    Je ne me sers pas de Visual mais je peux...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Bon alors va falloir mettre les mains dans visual, je ne sais pas si tu l'a deja utilisé ou pas...Pour le nom du site :
    * crée une zone de texte qu'on appellera ici : nomDeMonSite
    * crée une zone de texte qui contient le numero du site : numDeMonSite
    * il faut que tu mettent le code au lancement de ton formulaire, c'est a dire dans le OnLoad()...
    * tu fais une requete qui te récupére le nom du site a partir de son numéro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    req="select nomSite from Site where numSite=me.numDeMonSite.value"
    set result=dbs.openRecordset(req)
    * ensuite tu attribue le nom du site a la zone de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.nomDeMonSite.value=result.fields(0)
    Voila pour ta première question, je ne sais pas si tu comprend tout, je ne connais pas du tout ton niveau

    Ensuite pour ton truc par défaut, il faut que tu mette du code sur l'événement 'APRES MAJ' de ta zone de texte 'année'...
    Comme ca, tu remplis le numero de ton site, l'année, et quand ces deux paramétres sont inscrits, il va calculer la quantité par défaut de l'an précédent...
    Essaye deja de faire la première étape que je t'ai dit au dessus, si tu y arrive, alors la deuxième ne sera pas dure...
    Hésite pas a demander des précisions

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Merci
    Je n'ai pas de OnLoad() mais un Load(), peut-être parce que j'ai Access97,non? Mais je pense que c'est la même chose...

    J'ai recopié ton code mais apparemment il ne reconnait pas "req", dois je le définir avant?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par grasduslip
    Merci
    Je n'ai pas de OnLoad() mais un Load(), peut-être parce que j'ai Access97,non? Mais je pense que c'est la même chose...

    J'ai recopié ton code mais apparemment il ne reconnait pas "req", dois je le définir avant?
    C'est bien dans load oui...arg je pensais que tu connaisais un peu, j'avais marqué que le principal...bon alors je vais écrire tout Je te commente mon code, n'hésite pas a lire pour comprendre comment tout marche
    Cependant il faut que tes deux zones de textes soient crée ans ton formulaire, qu'elles s'appellent comme je te l'ai marqué et qu'elle marche...C'est a dire qu'il faut que dans la zone de texte numDeMonSite apparaisent automatiquement le numéro du site quand tu te proméne entre les différents enregistrements

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        'initialisation des variables
        Dim dbs As Database 
        Dim req As String
        Dim result as recordset
     
        Set dbs = CurrentDb() 'la base de donnée courante, sur laquelle tu travaille
     
        req = "select nomSite from Site where numSite=me.numDeMonSite.value"
        set result=dbs.openRecordset(req)
        me.nomDeMonSite.value=result.fields(0)
     
        dbs.close 'on ferme le flux

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Ok,
    Un message d'erreur apparait:
    "Trop peu de paramètres. 1 attendu."

    Et il me souligne en jaune la ligne:
    set result=dbs.openRecordset(req)

    Je n'ai rempli que le nom des deux zones de texte crées, et la source du contrôle numDeMonSite et le numéro apparait bien.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Quand ca bug et que ca t'affiche la ligne qui bug en jaune, passe ta souris sur "me.numDeMonSite.value"...normalement le numéro du site courant devrait apparaitre...
    Est-ce qu'il apparait ?

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Non, il n'apparait pas par contre il apparait sur
    Me.Nomdemonsite.Value et il marque =Null

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Ok donc il ne trouve pas les zones de textes...
    es-tu sur que tu est dans le LOAD du formulaire sur lequel se trouvent tes zones de texte?
    es-tu sur que tes zones de texte s'appellent exactement pareil que dans le code ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    OUPPPPSSSSS....
    bon vérifie ce que j'ai marqué au dessus...
    Désolé j'ai fait une erreur dans mon code c'est pour ca je recommence...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        'initialisation des variables
        Dim dbs As Database 
        Dim req As String
        Dim result as recordset
    
        Set dbs = CurrentDb() 'la base de donnée courante, sur laquelle tu travaille
        
        req = "select nomSite from Site where numSite=" & me.numDeMonSite.value
        set result=dbs.openRecordset(req)
        me.nomDeMonSite.value=result.fields(0)
    
        dbs.close 'on ferme le flux

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Je ne sais pas trop!

    car ma fonction commence par "Private Sub Form_Load()"
    et lorsque je change par "Private Sub Form_F_INDICATEURS_Load()" (F_INDICATEURS étant le nom de mon formulaire) il ne me met pas de message d'erreur mais il ne me remplit pas mon champ nomDeMonSite!

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Points : 113
    Points
    113
    Par défaut
    Quand ton formulaire est lancé,
    clique sur affichage -> création
    la tout en jaut a gauche il y a un petit carée noir, c'est les propriètès de ton formulaire, clik droit dessus -> créer code événement
    et la tu es au bon endroit !!

    Je pars en weekend, j'éspére que ca marche maintenant, au moins pour le nom du site...
    Quelqu'un t'expliquera comment faire pour tes quantités c'est vraiment pas dur
    Bon courage

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Ca marche!!!
    Merci beaucoup
    Passe un bon we!

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

Discussions similaires

  1. mapping: valeur issu d'une autre table
    Par gojira dans le forum Hibernate
    Réponses: 5
    Dernier message: 25/11/2009, 16h09
  2. [AC-2003] Exclure les enregistrements présent dans une autre table
    Par ajor dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 07/06/2009, 22h01
  3. retirer les enregistrements présents dans une autre table
    Par Didine1801 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/10/2007, 16h07
  4. Réponses: 7
    Dernier message: 17/10/2006, 16h32
  5. Réponses: 2
    Dernier message: 23/06/2006, 14h36

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