[Access]Formulaire d'ajout à deux tables liée

Fermé
elieom82 Messages postés 4 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 6 avril 2012 - 5 avril 2012 à 11:11
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 15 avril 2012 à 21:31
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.


10 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
6 avril 2012 à 09:16
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

0
elieom82 Messages postés 4 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 6 avril 2012
6 avril 2012 à 09:25
Merci bien OlivrT, je vais essayer ça
0
elieom82 Messages postés 4 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 6 avril 2012
6 avril 2012 à 09:50
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
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
6 avril 2012 à 10:32
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 :-)


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elieom82 Messages postés 4 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 6 avril 2012
6 avril 2012 à 11:28
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é]'.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
6 avril 2012 à 12:26
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.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
6 avril 2012 à 13:09
Voilà, c'est près, ça m'a prit 3 min, j'attends votre adresse e-mail et je vous l'envoie.
0
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
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
14 avril 2012 à 21:59
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 :

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

0
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.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
15 avril 2012 à 21:31
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 :
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 !
0

Discussions similaires