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

IHM Discussion :

[A-00] Remplissage automatique du premier enregistrement d'un sous-formulaire


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut [A-00] Remplissage automatique du premier enregistrement d'un sous-formulaire
    Bonjour,

    J'ai une table tbl_Contact (idccontact, nom, prenom, ...) accessible depuis un formulaire F_Contact_Tout. Depuis un bouton d'un formulaire externe, je voudrais qu'à la création d'un nouvel enregistrement de contact, créer un enregistrement du sous-formulaire lié à la table tbl_Evenement (ide, idecontact, date, evenement). La liaison parent se fait par idccontact(parent)/idecontact(fils).

    En gros à chaque création dans la table tbl_Contact, générer un enregistrement dans la table tbl_Evenement comme quoi la fiche du contact à été créée.

    Je n'y parviens pas. J'ai bien essayé des trucs comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DoCmd.OpenForm "F_Contact_Tout", acNormal, , , acFormAdd
    DoCmd.GoToRecord , , acNewRec
    Forms![F_Contact_Tout]![FS_Evenement].[FS_Evenement].Form![Date] = Date
    Forms![F_Contact_Tout]![FS_Evenement].[FS_Evenement].Form![Evenement] = "Création fiche"
    ...
    J'ai bien la création d'un nouvel évènement mais la liaison parent/enfant ne se passe pas bien car à la création de l'enregistrement, idccontact qui est une numérotation automatique n'aurait pas tout de suite une valeur.

    Je ne sais pas si j'ai été assez clair. Quelle serait la bonne pratique?

    Access 2000
    Ron

  2. #2
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Comme tu l'as détecté, tu fais ton insertion trop tôt.
    Il faudrait plutôt utiliser l'évènement de formulaire AfterInsert (après insertion) de ton contact pour mettre à jour ta table évènement.
    Au passage, je te suggère de faire ton insertion en utilisant le SQL (INSERT INTO...), ce qui t'éviterai d'avoir à passer par un formulaire pour remplir la table évènement.

    Yvan

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par ypicot Voir le message
    Il faudrait plutôt utiliser l'évènement de formulaire AfterInsert (après insertion) de ton contact pour mettre à jour ta table évènement.
    Yvan
    Je pensais bien qu'un truc comme cela devait exister mais je n'aurais jamais pensé que AfterInsert était l'évènement qu'il fallait.
    Merci.
    Ca fonctionne. Je passe toujours par un formulaire pour certaines raisons HS ici.

    Voici mon code de l'évènement AfterInsert du formulaire F_Contact_Tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_AfterInsert()
        Me.FS_Evenement.Form![Date] = Date
        Me.FS_Evenement.Form![Evenement] = "Création de la fiche"
    End Sub

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

Discussions similaires

  1. [AC-2007] remplissage automatique du champ fils d'un sous-formulaire
    Par eviews dans le forum IHM
    Réponses: 9
    Dernier message: 21/06/2015, 18h58
  2. Réponses: 9
    Dernier message: 19/01/2012, 13h30
  3. Réponses: 7
    Dernier message: 06/07/2009, 13h22
  4. Réponses: 2
    Dernier message: 02/02/2009, 13h53
  5. Réponses: 4
    Dernier message: 16/09/2005, 15h56

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