[Access]Formulaire d'ajout à deux tables liée
elieom82
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
OlivrT Messages postés 323 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ma base de données est très simple, elle contient deux tables :
Individus(ID_individu, Nom, Prénom, # ID_civilité)
Civilité(ID_civilité, civilité)
Civilité correspond à Monsieur, Madame, ou Mademoiselle .
J'essaye de faire un formulaire grâce qui remplirait la table Individus avec 3 zones de testes à remplir : Civilité , Nom et Prenom.
Comment pourrait je m'y prendre ?
J'ai tout essayé mais ça ne marche pas .
J'ai souvent ce message d'erreur lorsque j'essaye de saisir le nom et le prénom :
Impossible d'ajouter des enregistrements. La clef de la table "individus" n'apparait pas dans l'ensemble des enregistrements.
Ma base de données est très simple, elle contient deux tables :
Individus(ID_individu, Nom, Prénom, # ID_civilité)
Civilité(ID_civilité, civilité)
Civilité correspond à Monsieur, Madame, ou Mademoiselle .
J'essaye de faire un formulaire grâce qui remplirait la table Individus avec 3 zones de testes à remplir : Civilité , Nom et Prenom.
Comment pourrait je m'y prendre ?
J'ai tout essayé mais ça ne marche pas .
J'ai souvent ce message d'erreur lorsque j'essaye de saisir le nom et le prénom :
Impossible d'ajouter des enregistrements. La clef de la table "individus" n'apparait pas dans l'ensemble des enregistrements.
A voir également:
- [Access]Formulaire d'ajout à deux tables liée
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Formulaire de reclamation instagram - Guide
10 réponses
Bonjour,
vous devez utilisez une liste déroulante (ComboBox).
1) Ajouter la liste déroulante
2) Définissez sa source de donnéess (Data Source) : SELECT IDCivilite, Civilite FROM Civilites
3) Définissez où doit être stocké la valeur sélectionnée (Control Source), donc IDCivilité, qui est la source des données de votre formulaire.
4) Ajouter un nouveau record, sélectionnez la civilité dans la liste et sauvez.
5) Passez à l'enregistrement précédent, revenez sur le record où vous avez définit la civilité et vous verrez la civilité liée à votre individu.
bye
vous devez utilisez une liste déroulante (ComboBox).
1) Ajouter la liste déroulante
2) Définissez sa source de donnéess (Data Source) : SELECT IDCivilite, Civilite FROM Civilites
3) Définissez où doit être stocké la valeur sélectionnée (Control Source), donc IDCivilité, qui est la source des données de votre formulaire.
4) Ajouter un nouveau record, sélectionnez la civilité dans la liste et sauvez.
5) Passez à l'enregistrement précédent, revenez sur le record où vous avez définit la civilité et vous verrez la civilité liée à votre individu.
bye
Je ne sais pas si vous avez bien saisi le sens de ma question, mais j'aimerais grâce au formulaire pouvoir ajouter des individus dans la table individus avec leur nom, prénom et ID civilité en ayant rentré dans le formulaire le Nom, le Prénom et la civilité.
Merci d'avance
Merci d'avance
Et bien oui, j'ai bien compris, me semble-t-il votre question.
Dans votre formulaire, quand vous encodez un individu vous désirez sauvez en même temps l'identifiant de la civilité de cette personne.
Cela est possible via une liste déroulante dans laquelle apparaitra "Monsieur, Madame, ..."
1ère étape : Ajouter une liste déroulante (ComboBox)
Si vous utilisez le Wizard d'Access c'est encore plus simple car il vous demande où sont les données et où voulez-vous sauver votre identifiant.
2ème étape : mettez votre formulaire en action. Dès lors vous voyez apparaitre le premier enregistrement de votre table d'individu. Et, la liste reste vide, car vous n'avez pas encore définit à quelle civilité appartient cet individu. Sélectionnez dans la liste une civilité, sauvez, passez à l'enregistrement suivant qui lui aussi la liste sera vide, mais quand vous revenez sur l'enregistrement pour lequel vous avez définit une civilité, celle-ci est affichée.
C'est plus long à répondre à que le faire :-)
Dans votre formulaire, quand vous encodez un individu vous désirez sauvez en même temps l'identifiant de la civilité de cette personne.
Cela est possible via une liste déroulante dans laquelle apparaitra "Monsieur, Madame, ..."
1ère étape : Ajouter une liste déroulante (ComboBox)
Si vous utilisez le Wizard d'Access c'est encore plus simple car il vous demande où sont les données et où voulez-vous sauver votre identifiant.
2ème étape : mettez votre formulaire en action. Dès lors vous voyez apparaitre le premier enregistrement de votre table d'individu. Et, la liste reste vide, car vous n'avez pas encore définit à quelle civilité appartient cet individu. Sélectionnez dans la liste une civilité, sauvez, passez à l'enregistrement suivant qui lui aussi la liste sera vide, mais quand vous revenez sur l'enregistrement pour lequel vous avez définit une civilité, celle-ci est affichée.
C'est plus long à répondre à que le faire :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lorsque je veut sélectionner la civilité dans la liste déroulante, un message d'erreur apparaît : " Le contrôle ne peut être modifié; il est lié à l'expression '[ID_civilité]'.
Quelle version d'Access utilisez-vous ?
Donnez-moi votre adresse e-mail, je vous envoie une base Access avec votre formulaire. Je reprendrai les mêmes champs.
Donnez-moi votre adresse e-mail, je vous envoie une base Access avec votre formulaire. Je reprendrai les mêmes champs.
Bonjour OlvrT
J'aurai besoin d'un conseil et d'une aide.Comment imprimer un état en le selectionnant dans une liste déroulante située sur un formulaire.
Sans un evenement, a partir de la liste deroulante.
Je vous remercie de votre aide .
Guy
J'aurai besoin d'un conseil et d'une aide.Comment imprimer un état en le selectionnant dans une liste déroulante située sur un formulaire.
Sans un evenement, a partir de la liste deroulante.
Je vous remercie de votre aide .
Guy
Bonjour Guy,
sans passer pas du VBA ce n'est pas possible hélas.
Et c'est logique, puisque Access ne peut savoir à l'avance quel état sera choisit par l'utilisateur dans la liste !
Vous devez passer par l'évènement On_Click :
sans passer pas du VBA ce n'est pas possible hélas.
Et c'est logique, puisque Access ne peut savoir à l'avance quel état sera choisit par l'utilisateur dans la liste !
Vous devez passer par l'évènement On_Click :
Private Sub MaListe0_Click() 'Je ne sais pas dans quelle colonne vous avez placé le nom des rapports, je suppose que cet en deuxième place en partant de la gauche dans votre requête, donc l'index 1 de la liste : DoCmd.OpenReport Me.MaListe0.Column(1), acNormal End Sub
Bonjour
Je te remercie de ton aide.
Dans mon message de demande d'aide, j'ai oublié un mot qui change la tournure de la phrase. Il fallait lire: " Sans doute sur un événement"
Sur la ligne de code il y a MaListe0 qui sera remplacé par le nom de ma liste. Mais que signifie le 0. Je suppose que c'est ton exemple de nom de liste qui est numéroté et n'a rien a voire avec le mien. qui peut être ListEtat.
Je te remercie de ton aide.
Dans mon message de demande d'aide, j'ai oublié un mot qui change la tournure de la phrase. Il fallait lire: " Sans doute sur un événement"
Sur la ligne de code il y a MaListe0 qui sera remplacé par le nom de ma liste. Mais que signifie le 0. Je suppose que c'est ton exemple de nom de liste qui est numéroté et n'a rien a voire avec le mien. qui peut être ListEtat.
Tu as bien compris, Access indexe les contrôles au fur et à mesure lors de l'ajout.
Je me rends compte que j'ai oublié un petit détail mais je suis perfectionniste :-)
Ajoute ceci :
Ainsi, on s'assure bien qu'un élément est choisit dans la liste.
Tu as remarqué qu'ici c'est l'élément 0 qui est vérifié ...
Car cet élément, que tu as certainement caché, ne sera pas Null si un élément est vraiment sélectionné. Car on pourrait taper du texte dans une liste déroulante mais pour autant que cet élément soit vraiment dans la liste !
Je me rends compte que j'ai oublié un petit détail mais je suis perfectionniste :-)
Ajoute ceci :
If Not IsNull(Me.ListEtat.Column(0)) Then DoCmd.OpenReport Me.MaListe0.Column(1), acNormal End If
Ainsi, on s'assure bien qu'un élément est choisit dans la liste.
Tu as remarqué qu'ici c'est l'élément 0 qui est vérifié ...
Car cet élément, que tu as certainement caché, ne sera pas Null si un élément est vraiment sélectionné. Car on pourrait taper du texte dans une liste déroulante mais pour autant que cet élément soit vraiment dans la liste !