{Access} lien entre 2 tables

Bonjour,
Le moteur de base de données Access ne peut pas trouver d'enregistrement dans la table << QUESTION1>> avec le champ << QUESTION2.fiche>> correspondant a la clé. Voici donc le message auquel je suis confronté.

Plusieurs étudiants ont répondu a un questionnaire. A cause du grand nombre de questions, j'ai divisé le questionnaire en 2 tables liés par le champ fiche dans une relation de un a un. Pour saisir les données, j'ai créé 2 formulaires (un pour chaque table). Après le formulaire 1, je passe au 2. Alors, quand il s'agit d'enregistrer les données, le message ci-dessus apparait.
Merci de bien vouloir m'aider

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour iroko45,

    Voici la syntaxe requise pour accéder au bon enregistrement dans le 2 ème formulaire.
    Attention ! l'appel de recherche sur le nom des étudiants est déconseillé. Des homonymes sont toujours possibles.

    Dim DocName As String
    Dim LinkCriteriA As String

    DocName = "<Nom du formulaire à ouvrir"
    LinkCriteriA = "[RéfTable_1]=" & Me![RéfTable_2]

    DoCmd.OpenForm DocName, , , LinkCriteriA

    Cordialement
    --
    La science ne fait que trouver ce qui existe depuis toujours.
    REEVES Hubert.
    1. Bonjour JJ,
      Merci pour ta réponse. En clickant sur Creer un code evenementiel, Voici ce que j'ai saisir

      Private Sub quesetu_2_Click()
      Dim DocName As String
      Dim LinkCriteriA As String

      DocName = "quesetu 2"
      LinkCriteriA = "[Reffiche]=" & Me![RéfTable_2]

      DoCmd.OpenForm DocName, , , LinkCriteriA

      End Sub

      Je constate que je n'arrive plus a ouvrir le second formulaire avec le bouton qui me permettait d'y accéder. Avant la syntaxe, j'avais la macro incorporée ouvrirformulaire.
      Merci de m'aider
      1. Re

        a) Dans la table liée, le champ s'appelle-t-il vraiment <RéfTable_2> ? Gros doute .....
        LinkCriteriA = "[Reffiche]=" & Me![RéfTable_2] ....

        b) La macro est inutile. Elle ne permet que l'ouverture et se positionne par défaut, suivant les cas, soit sur le premier enregistrement, soit sur le dernier. Ce n'est pas le bur recherché.

        A+
    2. Re

      J'ai la table QUESETU123 qui a pour formulaire quesetu1, la table QUESETU4 avec formulaire quesetu2. QUESETU4 est relie a QESETU123 par le champ reffiche.
      Voici la syntaxe

      Private Sub quesetu_2_Click()
      Dim DocName As String
      Dim LinkCriteriA As String

      DocName = "quesetu 2"
      LinkCriteriA = "[Reffiche]=" & Me![QUESETU4]

      DoCmd.OpenForm DocName, , , LinkCriteriA

      End Sub
      Je n'arrive pas encore a acceder au formulaire 2.
      Merci de m'aider
      1. Re, Re,

        a) Si j'ai bien compris, j'en conclus que :
        LinkCriteriA = "[Reffiche]=" & Me![Reffiche]
        A tester donc ...

        b) Pour des raisons d'organisation (tri) et de standardisation, je suggère de renommer les fichiers comme suit :

        T_Quesetu_123
        F_Quesetu_123

        T_Quesetu_4
        F_Quesetu_4

        Nota: Pour des raisons techniques, les noms discontinus sont à proscrire pour les tables/Formularies. C.à.d. qu'aucun espace n'est souhaitable dans la suite de caractères.

        A+
        1. Merci jj pour tout.

          voici avec la nouvelle syntaxe
          Private Sub quesetu_2_Click()
          Dim DocName As String
          Dim LinkCriteriA As String

          DocName = "quesetu 2"
          LinkCriteriA = "[Reffiche] =" & Me![Reffiche]

          DoCmd.OpenForm DocName, , , LinkCriteriA

          End Sub

          Je n'ai pas encore reussi.
          Merci de m'aider
          1. Re, re, re, iroko45,

            Déposez votre travail sur ce site SVP : www.cijoint.fr
            et communiquez_moi en retour l'adresse qui vous sera communiquée .....

            Je vais jeter un coup d'oeil sur ce qui ne va bien ou pas ....

            A+
        2. Ce sera difficile de pouvoir envoyer le fichier. Il dépasse largement les 8 MO.
          Si tu as d'autres recommandations ou conseils, je serais heureux de les recevoir. Je vais me débrouiller pour bricoler quelque chose.
          Je te remercie pour tout.
          A +
          1. iroko45,

            Faute de mieux, voici, via ci-joint, un petit fichier exemple qui pourrait vous donner des idées.
            Quand il sera ouvert, il faut activer le menu affichage pour que le contenu de la BDD s'affiche.
            Jetez un coup d'oeil au formulaire : consultation,
            En choisissant la fiche d'un client dans la liste, l'affichage se met à jour avec les données de son dossier.

            http://www.cijoint.fr/cjlink.php?file=cj200908/cijEn4GPkZ.zip

            A+
          2. @iroko45Il n'y a pas quoi,
            Je profite de l'opportunité pour transmettre une version plus propre que je viens de dépoussièrer et plus facile à consulter.

            http://www.cijoint.fr/cjlink.php?file=cj200908/cij2S6JLHc.zip

            Cordialement