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

Access Discussion :

Importer données dans nouvelle structure [AC-2007]


Sujet :

Access

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut Importer données dans nouvelle structure
    Bonjour à tous et à toutes,

    Dans une base gérant des adhérents d'une association, je travaillais jusqu'à présent à partir d'un table unique T Adhérents contenant un grand nombre de champs
    un certain nombre concernant les coordonnées
    d'autres gérant la présence aux AG (Ag83 à Ag35)
    d'autres relatifs aux cotisations à payer (C87 à C35)
    les derniers pour vérifier les cotisations encore dues (Du97 à Du35)

    Sous la pression (justifiée) de certains contributeurs de ce forum, je suis en train de revoir la structure de ma base pour la rendre encore plus Access compatible et me rapprocher au plus près des fondamentaux.
    Grâce à ces aides efficaces, j'avance à grand pas.

    Ainsi j'ai toujours ma table T Adhérents contenant toutes les données personnelles et la table T_Cotisation regroupant
    NUM_COTISATION_PK (N° enregistement cotisation)
    T_Adherent_FK (Identifiant Adhérent)
    Cotisation_An (Année)
    AG (correspond à Agxx...)
    Cotisation (correspond à Cyy...)
    Cotisation_Du (correspond à Duzz...)

    Elles sont liées par N°Adherent <--->T_Adherent_FK

    Il y a 2 ou 3 ans je m'étais penché sur le problème, mais j'avais du abandonner pour diverses raisons.
    Un contributeur m'avait lors proposé une solution pour insérer les champs Agxx, Cyy, Duzz de ma table T Adhérents dans ma table T_Cotisation
    Cela consistait en un formulaire F Mise à jour T_Cotisation déclenchant la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function fuAjout()
    J'ai essayé de l'adapter mais cela ne fonctionne pas.

    Ci joint une base exemple avec
    la table T Adhérents initiale
    la table T Adhérents1 simulant la toute dernière version de ce qui a été enregistré
    la table T_Cotisation
    le formulaire F mise à jour T_Cotisation
    le module moAjout

    La procédure telle que je la vois est de :
    supprimer les données de la T_Cotisation actuelle
    utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function fuAjout()
    pour insérer dans la T_Cotisation tout ce qui concerne les AG et Cotisations
    ne garder dans la table T Adhérents1 que les champs relatifs aux coordonnées (supprimer Agxx, Cyy, Duzz)
    supprimer la T Adhérents obsolète
    renommer T Adhérents1 en T Adhérents
    rétablir les relations entre T Adhérents et T_Cotisation

    Il y a manifestement une faille, voire une crevasse, dans mon raisonnement.

    Merci de votre aide.

    A+

    C15
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    C'est vrai qu'on a pas eu à contribuer sur ton projet mais pour ce nouveau post on a pas compris ce que tu veux. Quel est le problème?

  3. #3
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Mon problème, c'est que j'ai reconfiguré ma base sur une base essai (comme celle jointe).
    Or entre temps, le trésorier qui gère les adhérents au quotidien, continue à travailler sur la base ancienne version.
    Ce que je voudrais, c'est vérifier la procédure pour transférer les données de l'ancienne version vers la nouvelle afin de tout valider avant de déclarer cette nouvelle version opérationnelle.

    Le trésorier m'a transmis une base avec la T Adhérents (qui comprend en réalité 1294 adhérents) et dont j'ai extrait une version "allégée".
    Cette T Adhérents, je l'ai importée en tant que telle dans la nouvelle version ; elle a donc été renommée automatiquement T Adhérents1.

    Et donc mon but est de transférer les données correspondant à AGxx, Cyy et Duzz de T Adhérents1 vers T_Cotisation.
    A priori la fonction fuAjout() devrait m'y aider.

    Merci de ton aide

    A+

    C15

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Dans votre bdd zip quelles sont table finales ?

    De vous a moi, je ne vois l'intérêt de créer une Function_ajout() les req INSERT INTO et UPDATE devraient largement suffire.

    D'ailleurs il faudra m'expliquer pourquoi vous vous amusez à créer des lignes de cotisations de 2019 à 2035 alors que nous sommes en 2018. Pourquoi vous passez la cotisation à zéro, etc.

    Pour un id_cotisation, il y a un adhérent, une année, un montant de cotisation à devoir, réglé à une certain date et éventuellement une CàC. Donc tant qu'il n'y a pas de date de règlement de cotisation et que la CàC n'est pas cochée, la cotisation est à devoir

    La gestion des AG participation ou non aux assemblées générales n'a rien à voir avec la gestion des cotisations.

    Votre tbl Cotisationsdues est inutile à mon avis. Une req pourrait suffire pour vous permettre de savoir où en sont les adhérents avec le règlement de leurs cotisations respectives.

    Quand je suis confronté à ce genre d'usine à gaz qu'il faut re-concevoir, je copie tout sur Excel pour traiter toutes les données à plat. Et j'importe ensuite le tout dans les différentes tbl d'Access.

  5. #5
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour
    Quelques remarques et/ou réponses à tes observations.

    Mes 2 tables finales sont T Adhérents et T_ Cotisation
    Au final, l'importation des données dans T_Cotisation faite, dans T_Adhérent il n'y aura plus que ce qui est des coordonnées des adhérents.
    La table T Cotisationsdues est un reste d'une autre structure "intermédiaire" que j'avais essayée de mettre en place avant cette dernière structure que je suis en train de finaliser.

    Cette nouvelle structure m'a été proposée en tant que tel par un éminent contributeur à ce forum qui me reprochait dans ma structure initiale d'être plus proche d'Excel que d'Access.

    AG me permet de valider la présence aux Assemblées générales
    Cotisation permet de valider le paiement de la cotisation (alors cotisationDue passe à 0)
    CotisationDue pour vérifier ce qui est encore du.
    Ce mode de fonctionnement est nécessaire car tout le monde ne participe pas aux AG (at alors les courriers diffusés sont différents) et surtout l'on a un nombre non négligeable d'adhérents qui sont en retard de cotisation ; et alors la procédure à leur égard varie en fonction du temps, allant jusquu'à l'exclusion au bourt de 5 ans.
    La gestion des paiements est faite en dehors d'access

    Cette base, je l'ai récupérée en urgence il y a pas mal d'années et j'ai essayé de l'améliorer en partant des connaissances d'Access que j'avais alors.
    J'avais prévu jusqu'à 2035 pour faciliter la vie de celui qui me remplacera un jour

    Je ne vois pas trop comment avec une requête Insert to on peut mettre dans un champ de type AG tout ce qui existait auparavant dans les champs AG83 à Ag35 pour chacun des adhérents ; de même pour les cotisations et cotisations dues

    C15

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Bonjour,
    Avant d'aller plus dans l'analyse.
    La participation, par des adhérents de l'ensemble des adhérents, n'a pas de corrélation avec les cotisations ? Où me trompe-je ?!
    Si c'est le cas, vous devez créer un tbl pour gérer les cotisations et une autre pour la participation aux AG. Je suppose que dans une année civile, une voire plusieurs AG sont tenues. Donc à une date à préciser. La participation à une AG contribue-t-elle à une rémunération (prime) ?

  7. #7
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour
    La structure proposée me va très bien.

    Mes 2 formulaires principaux sont :
    0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG pour les données complètes de chaque adhérent avec le suivi de ses présences AG et cotisations
    et
    F_Cotisation_Reunion pour une saisie plus rapide des présences et cotisations (long travail fait par le trésorier suite à l'unique AG de l'association)

    cela fonctionne parfaitement.

    Pour rappeler mon souci actuel, il est de transférer toutes les données AG83 à Ag35, C87 à C35 et Du97 à Du35 de la table T Adhérents1 à la table T_Cotisation, respectivement vers les champs AG, Cotisation et CotisationDu et ce bien sur pour chaque adhérent

    Dans ma base jointe in lit dans T_Cotisation les données des adhérents N°1 à 10 de la table T Adhérents, je voudrais y voir maintenant les données des adhérents N°11 à 20 (de la table adhérents1)

    C15
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Après de nombreux essais et vérifications, je suis arrivé au résultat escompté.

    J'ai vidé ma table T_Cotisation
    J'ai supprimé la base T Adhérents
    J'ai renommé T Adhérents1 (base importée avec les toutes dernières données) en T Adhérents puis remis en place les relations
    J'ai corrigé la procédure :
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Function fuAjout()
     
        Dim db As DAO.Database: Set db = CurrentDb
        Dim rst As DAO.Recordset, rstNew As DAO.Recordset
        Dim fld As DAO.Field
        Dim strSQL As String, strField As String
        Dim loAn As Long, loNombre As Long
     
        strSQL = "SELECT [T Adhérents].* FROM [T Adhérents];"
        Set rst = db.OpenRecordset(strSQL)
        strSQL = "SELECT T_Cotisation.* FROM T_Cotisation;"
        Set rstNew = db.OpenRecordset(strSQL)
        strSQL = ""
    ...

    Exécuter cette procédure via le formulaire F mise à jour T Adhérents (qui doit être plutôt renommé F importation données dans T_Cotisation)
    J'ai eu alors un message m'indiquant un certain nombre d’importations réussies (concernant les 10 premiers des 695 adhérents)
    L'ouverture de la table T_Cotisation me confirme la bonne importation de toutes les données Agxx, Cyy, Dzz de TOUS les adhérents.

    L'affaire est donc résolue.

    Merci de ton aide.
    C15

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

Discussions similaires

  1. Comment importer données dans base en LATIN1
    Par mat_elot dans le forum Administration
    Réponses: 12
    Dernier message: 18/03/2010, 14h34
  2. Entrer des données dans une structure
    Par S0liman dans le forum Débuter
    Réponses: 4
    Dernier message: 05/01/2010, 16h03
  3. import données dans SQLSERVER en batch
    Par nanie_38 dans le forum Outils
    Réponses: 3
    Dernier message: 11/12/2009, 07h02
  4. Importer données dans une même feuille
    Par Eric26 dans le forum Excel
    Réponses: 19
    Dernier message: 30/10/2008, 10h09
  5. [SugarCRM] problème import données dans CRM
    Par lili1985 dans le forum SugarCRM
    Réponses: 0
    Dernier message: 21/07/2008, 16h50

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