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 :

Relation 2 tables


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Relation 2 tables
    Bonjour!!
    Voilà mon problème, je suis toujours et encore débutant sur Access et j'aimerai faire si possible la chose suivante!
    J'ai une table "plainte" et une autre "action_history", dans chacune d'entre elles le champs "local reference" est en commun et donc une relation est créée à ce niveau!
    Donc le truc c''est que j'ai aussi le formulaire "plainte" et dedans j'aimerai faire un bouton qui ouvre le formulaire "action_history", jusque là pas de souci!! Le truc ce que qaudn ça ouvre le formulaire "action_hystory" je voudrai que le champs "local reference" se remplisse tout seul et en fonction de la plainte "ouverte"


    Concrètement :
    j'ai la plainte B01 ouverte, je clique sur le bouton HISTORY qui ouvre le formulaire "action_history" et dans ce formulaire le champs local reference se remplit automatiquement avec le valeur B01!

    Voilà j'espere avoir été clair!!
    Merci!!

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    une possibilité:
    Dans le code du bouton se trouvant dans le formulaire "plainte":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim strCrit As String
      strCrit = "[local reference]='" & Me.[local reference] & "'"
      DoCmd.OpenForm "action_hystory", , , strCrit   ' ouvre formulaire filtré sur local reference
      Forms!action_hystory![local reference].DefaultValue = Me.[local reference]
    La meilleure solution serait, a mon avis, d'avoir un autre formulaire ayant pour source la table plainte et ayant pour sous-formulaire le formulaire action_hystory, les deux étant liés par le champ [local reference].
    Ensuite ton bouton n'a plus qu'à ouvrir ce formulaire, filtré sur local reference.

    bon courage

  3. #3
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Une autre solution :

    Admettons que ton champ dans le premier formulaire se nomme : champ_01

    Sur l'évènement : Sur ouverture, ( du second formulaire )

    tu ajoute le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim str_NomFormulaire as string
     
    str_NomFormulaire = "LeNomDeTonFormulaireNumero1"
     
    Me.NomDuChampDuFormulaireNumero2.value = Forms(str_NomFormulaire)![champ_01].value

    attention si ton formulaire numéro 1 est fermé, cela ne fonctionnera pas ... il te faudra stocker la valeur dans une variable ou alors dans un champ invisible de ton formulaire numéro 2 ... ...

    PS : Le code n'a pas été testé ...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Presque!!
    Citation Envoyé par LedZeppII
    Bonjour,

    une possibilité:
    Dans le code du bouton se trouvant dans le formulaire "plainte":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim strCrit As String
      strCrit = "[local reference]='" & Me.[local reference] & "'"
      DoCmd.OpenForm "action_hystory", , , strCrit   ' ouvre formulaire filtré sur local reference
      Forms!action_hystory![local reference].DefaultValue = Me.[local reference]
    La meilleure solution serait, a mon avis, d'avoir un autre formulaire ayant pour source la table plainte et ayant pour sous-formulaire le formulaire action_hystory, les deux étant liés par le champ [local reference].
    Ensuite ton bouton n'a plus qu'à ouvrir ce formulaire, filtré sur local reference.

    bon courage
    Ok j'ai copié ce code, mais comme je suis débutant je ne comprend pas trop!! Quand je test, j'avais avan déjà enregistré des données dans ma table action_history et quand j'ouvre la plainte, le bouton m'ouvre bien les donnée en fonction de la "local reference". Seulement, c'est que je veux créer une nouvelle "action" à la place de recopier ma "local reference" il me met "#Nom ?" d'ou ca vient!!
    KESAKO???

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    [Local Reference] doit être de type texte et Access cherchait une fonction ou un contrôle ayant le même nom.
    Il faut ajouter des double quotes dans ce cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '  Forms!action_hystory![local reference].DefaultValue = Me.[local reference]
      Forms!action_hystory![local reference].DefaultValue = """" & Me.[local reference] & """"
    Une fois le formulaire action_hystory ouvert si tu affiche les propriétés du contrôle [Local reference] tu dois voir "B01" (si je reprends ton exemple du début) dans "Valeur par défaut"

    D'autre part dans l'évênement Sur Fermeture de action_hystory je remettrai "" ("""""" en vba) dans [local reference].DefaultValue pour être sûr de ne pas sauvegarder la valeur par défaut par mégarde.

    Bonne continuation.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut ABUSé Trop bon!!Merci
    Sérieusement, je ne sais pas quoi te dire tellement c'est bon ce que tu m'as fait!!!
    Sérieux merci pour tout!! Ca marche du feu de Dieu!!
    Meric encore!!
    ==

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

Discussions similaires

  1. Access me change mes relations entre tables
    Par karimspace dans le forum Access
    Réponses: 14
    Dernier message: 29/03/2006, 09h57
  2. Les relations entre tables
    Par sheira dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 20/03/2006, 15h03
  3. Récupération des relations entre tables
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h34
  4. relations entre tables
    Par ilyassou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2005, 07h48
  5. access2000, probleme creation relations de tables
    Par nono_60 dans le forum Access
    Réponses: 2
    Dernier message: 12/09/2005, 22h50

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