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 :

Automatisation de saisie de données


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Automatisation de saisie de données
    Bonjour,
    Je vous serai reconnaissant de m'aider à résoudre le problème suivant. Mais j'avais voulu épargner votre temps en cherchant, sans succès, une solution sur le forum en faisant une recherche à travers les anciennes publications. Je travaille avec Access 2010.

    Voici mon problème:
    1- J'ai des tables qui sont des sections d'un long questionnaire
    2- Chaque table dispose d'un formulaire de saisie
    3- J'ai une page de navigation qui me permet de parcourir, alternativement, sur une même page, les différents formulaires;
    4- Chaque table dispose d'une clé primaire qui est en même temps la clé primaire de toutes les autres tables. De façon précise, dans chacune des tables, le même identifiant se rapporte au même individu (répondant) de sorte que tbl1.ID1= tbl2.ID1 = tbl3.ID1.... = tbln.ID1.
    5- Pour ce faire, je suis obligé de répéter l'identifiant (clé primaire) à chaque formulaire.
    6- Ma question: Comment faire pour qu'en chargeant le formulaire 2, l'identifiant déjà saisie au niveau du formulaire 1 soit automatiquement copié au niveau du formulaire 2 pour m'éviter l'intervention manuelle, source d'erreur.


    Merci d'avoir pris le temps de me lire et de me répondre.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Bonjour.

    La bonne solution : Ne pas le faire.

    Quelque chose du type :

    tblQuestionnaire
    ClefQuestionnaire
    IdentifiantPersonne
    Autres infos relatives au questionnaire (ex : Date de reponse)

    tblQuestionnaireDetai01
    tblQuestionaireDetai01
    tblQuestionnaire
    Autres infos

    En relation avec tblQuestionnaire sur ClefQuestionnaire

    tblQuestionnaireDetai02
    tblQuestionaireDetai01
    tblQuestionnaire
    Autres infos

    En relation avec tblQuestionnaire sur ClefQuestionnaire

    En centralisant ton info commune dans tblQuestionaire tu evites le probleme.

    Pour ton fomrulaire de saisie tu crees un formulaire principal base sur tblQuestionnaier et des sous-formulaires bases sur chacune de tes tables (tu peux reutuiliser ceux que tu as deja).

    Bon sinon tu peux faire un peu de code VBA

    quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public sub ChangerPersonne(prmNomTableSource as string, prmAncienIndentifiant as long, prmNouvelIdentifiant as long)
       dim db as dao.database:set db=currentdb
       dim listeNomTable as variant: listeNomTable=array("Table1", "Table2", "Table3") 'Liste des tables a mettre a jour.
     
       dim r as dao.recordset
       dim critere as string
     
       dim nomTable as variant: for each nomTable in listeNomTable
           if nomTable <> prmNomTableSource then
               crietere="[IdentifiantPersonne]=" & prmAncienIndentifiant
               set r=db.openrecorset(nomTable, dbOpenDynaset)
               call r.findFisrt(critere)
               do while not r.nomatch
                   r.edit
                   r![IdentifiantPersonne]=prmNouvelIdentifiant 
                   r.update
               loop
               r.close: set r=nothing
           end if
       next nomTable
     
       db.close:set db=nothing
     
    end sub
    Le pont delicat va etre de recuperer la valeur d'origine.
    Je pense qu'il faut le faire sur Avant Mise a jour en recuperant .value pour la valeur d'origine en la stockant dans une variable de module.

    Bref c'est assez coplique pour pas grand chose.

    A+


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Bonjour Marot_r.

    Merci pour l'attention à moi accordée. Effectivement vu tout le temps que vous avez dépensé et toutes les ressources mises à ma disposition, je n'imaginais pas que ma demande allait vraiment mobiliser autant d'énergie. Au-delà du besoin ponctuel, j'y ai beaucoup appris. Je vais appliquer votre solution et vous revenir. Je vous prie de bien vouloir rester disponible pour la suite.

    Merci et bon après-midi.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/02/2018, 06h56
  2. saisie de données et génération automatique d'un classement
    Par kcizth dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/12/2005, 13h24
  3. automatiser l'insertion de données dans une bd
    Par matterazzo dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/10/2005, 01h06
  4. saisie de données dans formulaire
    Par philpaul dans le forum Access
    Réponses: 4
    Dernier message: 15/09/2005, 13h13
  5. Saisie de données dans une procédure stockée
    Par Hastaroth dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/10/2004, 09h54

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