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 :

Attribution d'une valeur à un champ sur un enregistrement en cours, formulaire lié [AC-2010]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Attribution d'une valeur à un champ sur un enregistrement en cours, formulaire lié
    Bonjour à tous, je sollicite encore une fois votre aidé précieuse.

    J'ai un formulaire (visite_médicale) qui affiche toutes les lignes pour une personne (ID_personne) donnée. La clé primaire de cette table est ID_visite je l'ai mise en NuméroAuto pour faciliter mes insertions (je sais ce n'est pas le mieux je ne l'ai pa fait ailleurs ^^).
    Je voudrais que quand on clic sur la dernière ligne pour créer un nouvel enregistrement, on seulement le numéroAuto s'écrit directement, mais par du code VBA je voudrais que le champs correspondant à l'ID_personne se remplisse en fonction de l'ID que j'ai passé en paramètre à l'ouverture du formulaire.

    Je m'explique : J'ouvre le formulaire Visite de la personne 1, et donc tous les enregistrements ou ID_personne=1. Quand je crée un nouvel enregistrement je voudrais attribuer 1 au champs ID_personne également.

    J'ai testé avec les Recordset.AsbolutePosition ou Me.Recordset.ID_visite etc. mais cela ne prend pas en compte l'enregistrement en cours, donc je n'arrive pas à récupérer le numéroAuto qui vient d'etre généré pour faire ma requete sql derrière...

    Pourriez vous m'indiquer une piste de recherche, car je ne sais pas comment résoudre mon problème..

    Merciii d'avance !!

  2. #2
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut
    Je voudrais que quand on clic sur la dernière ligne pour créer un nouvel enregistrement, on seulement le numéroAuto s'écrit directement, mais par du code VBA je voudrais que le champs correspondant à l'ID_personne se remplisse en fonction de l'ID que j'ai passé en paramètre à l'ouverture du formulaire.
    Si je comprends bien, tu travailles directement sur les tables? Si c'est le cas, tu demandes alors l'exécution d'un code VBA après ajout d'une valeur (donc modification de la table). Dans ce cas je crois qu' une macro de données pourra t'aider (Acc 2010 et +). Si tu n'as pas ces versions d'access, tu devras alors créer un formulaire et programmer tes évènements à partir du formulaire.
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  3. #3
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour meli14,

    mais par du code VBA je voudrais que le champs correspondant à l'ID_personne se remplisse en fonction de l'ID que j'ai passé en paramètre à l'ouverture du formulaire.
    Je suppose que tu as passé le numéro avec le OpenArgs du DoCmd. Si c'est le cas, sur l'événement After Update de ton formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsNull Me.Id_Personne then
       Me.Id_Personne = Me.OpenArgs
    End if
    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    - kkm90, j'aurais été tout à fait pour faire une macro si cela marche bien mais je ne sait malheureusement pas m'en servir, bien que j'ai regardé pas mal de projets qui en contenait je ne comprend tjs pas comment ca marche.

    - Robert1957 : je crois avoir trouvé la solution (ca marche pour l'instant ^^). Je passe à la fois une clause where dans mon ouverture (3ème élmt je crois) + le meme ID dans l'OpenArgs, car comme ca je gère le fait qu'il y ait déja ou non des enregistrements dans la base pour cette personne. Je ne sais pas si c'est très "propre" de faire ca mais au moins ca marche. Je mets mes 2 paramètres dans 2 champs texte idépendants. Et lors de l'insertion si la Zone texte de la clause where ne contient rien cela veut dire qu'il n'y a pas de ligne, donc je me sert de l'OpenArgs pour mettre mon ID_personne.
    C'est bien comme tu me l'avais dit, c'est sur le AfterUpdate().

    Pensez vous que cela est correct, ca marche sur mes essais mais est_ce vraiment acceptable ?

    Je vous remercie de votre aide

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour meli14,

    Le Where clause du DoCmd te permet de filtrer pour avoir seulement les enregistrements pour un Id voulu. Le OpenArgs te permet d'ajouter le Id voulu pour un nouvel enregistrement.

    Je ne vois pas le besoin de 2 zones de texte. Une manière simple et efficace est d'avoir une zone de texte lié au champ concerné dans la table (Id_Personne). Tu inscrits la valeur par défaut de cette zone de texte en VBA au chargement du formulaire. exp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Load()
     
        Me.LaZoneTexte.DefaultValue = Me.OpenArgs
     
    End Sub
    Le code de mon autre post est lui aussi bon, juste différent et s'applique sur le After Update du formulaire. Question de choix, un ou l'autre fera l'affaire.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Oui c'est parfait ! ca marche impeccable.

    Merci pour ton aide Robert1957, je m'étais un petit peu embrouillée.

    Et merci à tout le monde ce forum m'est vraiment d'un grande aide !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/03/2014, 11h46
  2. Réponses: 6
    Dernier message: 24/11/2008, 14h01
  3. Réponses: 2
    Dernier message: 23/07/2006, 22h11
  4. Trier sur une valeur de champs et non sur le nom du champs
    Par kamalkam dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/05/2006, 17h41

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