Se connecter avec
S'enregistrer | Connectez-vous

[Access 2007] croiser les BDD deux feuilles excel en utilisant Access

Dernière réponse : dans Programmation

Bonjour à tous!

Je voudrais croiser deux feuilles Excel en utilisant Access.

Certaines colonnes de ses deux fichiers sont rédondant.
Je voudrais grâce à une IHM que je créerai avec Access pouvoir faire des contrôles (par exemple vérifier que le Nom+Prénom+ date de naissance soit bien identiques).

Est ce possible? je pense que oui.

Y a t il une limite d'enregistrements sur Excel à traiter sachant que je vais gérer à peu près 50 000 individus.

Je vais créer également une colonne statut : "Traité" ou "Non Traité".
Ce qui me permettra de créer dans une troisiéme feuille excel tous les individus dont le statut sont Traités(sans purger la base initiale).

Je débute dans Excel et Access.
Vos suggestions sont les bienvenues.

Merci Otello.
Lassé par la pub ? Créez un compte

Fouyaya encore un usage d'excel comme base de donnée alors que c'est un tableur ... et que tu veux utiliser un moteur de base de donnée pour l'attaquer ...

Je verrais bien un transfert excel => bases access, travail sur les bases en natif, export vers excel si vraiment t'as pas le choix.

ACCESS.

J'ai créé plusieurs tables sous access(beneficiaire, enfants, conjoint, identité).
J'ai mon modèle de lettre qui correspond à un découpage de ma table. J'insère les champs de fusion de ma table bénéficiaire (Gâce à l'assistant fusion et au multipostage) qui met à jour mes champs concernant le bénéficiaire par contre pour les autres champs liés aux autres tables, il m'est impossible de les enrichir.

Expert Programmation

Tu devrais non pas utiliser un table, mais une requête, qui elle irait lire dans plusieurs tables en fonction de l'organisation de ta base.



(Attention à la loi si ta base de données est nominative !)
Expert Programmation

?

Entreprise -> 1 bénéficiaire
Bénéficiaire -> 1 entreprise


Ben alors :
Entreprise 1 <--> 1 Bénéficiaire


Ou alors ton modèle n'est pas bon et une seule table suffit.

Le document Word que je me base pour créer mes tables concerne un béneficiaire.

Ce beneficiaire a 1 seul conjoint.
Il a également 0 ou plusieurs enfants.
Il a un type de permis
Il a un revenu donc il est rattaché à une société. (et pas plusieurs)

J’ai créé 4 tables : Table « revenu », Table « Beneficiaire », Table « Conjoint », Table « Enfant »

Tu as surement raison, je devrais créer une table.

L’objectif est de pouvoir faire des statistiques par exemple :
- type de permis,
-les entreprises qui ont un certains type de permis traités (X nombre de permis G, Y nombre de permis B, …..)
- Nombre de permis traités dans le mois par filiale entreprise, puis par entreprise mère.
Ex : nombre total de permis chez Ikea 95, nombre de permis chez Ikea 91, nombre total de permis traites Chez Ikea en France.

Faut il que je prévois des regroupements croisés ?
Les bénéficiaires sont uniques et je prévois de faire faire une identification unique par Nom + prenom + date de naissance du bénéficiaire. Est-ce necessaire ?
Chaque bénéficiaire peut avoir de 0 à plusieurs enfants (au max j’ai eu à traiter 5 enfants).
Dois-je obligatoirement créé une table « enfants » pour eviter justement les doublons de nom bénéficiaire (redondance) ?
Expert Programmation

otello a dit :
Tu peux me donner ton e-mail que je t'envoie le modèle ainsi que le document word sur lequel je m'appuie pour créer mes tables.
merci
Non. Ou alors je te fais une propale. Mais je doute que je sois dans tes prix.

_________________________


Un bénéficiaire a forcément un conjoint ! Bizarre.
Un bénéficiaire a forcément un permis et un seul ! Bizarre.
Une entreprise n'a qu'un seul bénéficiaire ! Faux à mon avis. (=> X nombre de permis G, Y nombre de permis B, ..)
Quelles informations doit-on enregistrer sur les enfants ?

Trois entités

  • Entreprise
  • Filiere
  • Beneficiaire

    Champs pour chaque entité

    Entreprise
  • Raison sociale

    Filière
  • Raison sociale

    Bénéficiaire
  • Nom
  • Prénom
  • Date de naissance
  • Nombre d'enfants
  • Revenu
  • Type de permis

    Relations entre entité

    Entreprise (1,1) <-- (1,n) Filière
    Filière (1,1) <-- (1,n) Bénéficiaire

    Transformation en tables

    ENTREPRISE
  • ID_ENTR Numéro Auto
  • RAISOC Texte(50)

    FILIERE
  • ID_FILI Numéro Auto
  • RAISOC Texte(50)
  • ID_ENTR Numérique

    BENEFICIAIRE
  • ID_BENE Numéro Auto
  • NOM Texte(50)
  • PRENOM Texte(50)
  • DT_NAISS Date
  • NB_ENFANT Numérique
  • REVENU Monétaire
  • TYP_PERMIS Texte(1)
  • ID_FILI Numérique

    Je suis d'accord avec toi.
    Effectivement l'entreprise à plusieurs bénéficiaire.


    Un bénéficiaire a un conjoint ! --------> on se met dans la situation instant actuelle t.
    Ex : Le bénéficiaire, Paul Thomas est marié à son conjoint Isabelle Prol.
    Nom_Conjoint Prenom_Conjoint Sexe_Conjoint Date_Naissance_Conjoint
    Prol Isabelle M 18/04/1975



    Un bénéficiaire a un permis qui évolue au fil des traitements de son dossier. Il peut passer d'un statut L, statut G puis statut C.

    Au sujet des enfants.
    Le bénéficiaire en a 0 ou plusieurs.

    Paul Thomas a 4 enfants :

    Nom_Enfant Prenom_Enfant Sexe_Enfant Date_Naissance_Enfant
    Thomas nicole F 15/05/1998
    Thomas Frederic M 02/02/1999
    Thomas Karl M 05/08/2001
    Thomas Michelle F 12/02/2002

    J'ai besoin de traiter 500 bénéficiaire de cette façon.
    Expert Programmation

    Citation :
    Prol Isabelle M

    Elle va être contente, Isabelle !

    Et ben, j'espère qu'il est déclaré votre fichier, parce que c'est très personnel comme information !

    -------------------------------------------------------------------------------

    On recommence :

    Entités

  • Entreprise
  • Filière
  • Bénéficiaire
  • Conjoint
  • Enfant

    Champs pour chaque entité

    Entreprise
  • Raison sociale

    Filière
  • Raison sociale

    Bénéficiaire
  • Nom
  • Prénom
  • Sexe
  • Date de naissance
  • Revenu
  • Type de permis (L/G/C)

    Conjoint
  • Nom
  • Prénom
  • Sexe
  • Date de naissance

    Enfant
  • Nom
  • Prénom
  • Sexe (M/F)
  • Date de naissance

    Relations entre entité

    Entreprise (1,1) <-- (1,n) Filière
    Filière (1,1) <-- (1,n) Bénéficiaire
    Bénéficiaire (1,1) <-- (0,1) Conjoint
    Bénéficiaire (1,1) <-- (0,n) Enfant

    Enréfléchissant bien, on peut confondre les deux entités Conjoint et Enfant en une seule, qui pourrait être Membre de la famille :

    Famille
  • Nom
  • Prénom
  • Sexe (M/F)
  • Date de naissance
  • Type de membre (C/E)

    Bénéficiaire (1,1) <-- (0,n) Famille

    Transformation en tables

    ENTREPRISE
  • ID_ENTR Numéro Auto
  • RAISOC Texte(50)

    FILIERE
  • ID_FILI Numéro Auto
  • RAISOC Texte(50)
  • ID_ENTR Numérique

    BENEFICIAIRE
  • ID_BENE Numéro Auto
  • NOM Texte(50)
  • PRENOM Texte(50)
  • DT_NAISS Date
  • SEXE Texte(1)
  • REVENU Monétaire
  • TYP_PERMIS Texte(1)
  • ID_FILI Numérique

    FAMILLE
  • ID_FAMI Numéro Auto
  • NOM Texte(50)
  • PRENOM Texte(50)
  • DT_NAISS Date
  • SEXE Texte(1)
  • TYP_MEMBRE Texte(1)
  • ID_BENE Numérique


    La famille de Paul Atreide :

    1. SELECT *
    2. FROM FAMILLE
    3. WHERE ID_BENE = ( SELECT ID_BENE
    4. FROM BENEFICIAIRE
    5. WHERE NOM = 'ATREIDE'
    6. AND PRENOM = 'PAUL' );

    MERCI ZEB,

    Bonne idée pour le regroupement enfant-conjoint.

    Sur access comment on peut modifier la relation. je n'arrive pas à modifier les lien.
    Access 2007 me propose 1-------> infini, 1---------->1 . rien-------- rien
    Je t'avoue que je n'arrive pas à faire les liens dans le sens souhaité.

    Sous Access 2007 pour respecter les intégrités, faut-il que je repête mes champs clefs dans la table affilié.
    Pour être plus précis :

    Pour l'entité bénéficiaire qui a comme clé : nom + prenom + date naissance
    dois-je le répeter dans la table famille ?

    J'ai l'impression que l'outil access n'est pas maniable. Je n'ai pas l'impréssion d'avoir la main.
    Entreprise


    J'ai défini les clefs primaires suivantes pour chaque entités:
    ENTREPRISE


    ID_ENTR Numéro Auto
    RAISOC Texte(50)

    FILIERE


    ID_FILI Numéro Auto
    RAISOC Texte(50)
    ID_ENTR Numérique

    BENEFICIAIRE


    ID_BENE Numéro Auto
    NOM Texte(50)
    PRENOM Texte(50)
    DT_NAISS Date
    SEXE Texte(1)
    REVENU Monétaire
    TYP_PERMIS Texte(1)
    ID_FILI Numérique


    FAMILLE

    ID_FAMI Numéro Auto
    NOM Texte(50)
    PRENOM Texte(50)
    DT_NAISS Date
    SEXE Texte(1)
    TYP_MEMBRE Texte(1)
    ID_BENE Numérique



    Expert Programmation

    Citation :
    Access 2007 me propose 1-------> infini, 1---------->1 . rien-------- rien

    Bon, j'ai été trop théorique.
    (0,n), (1,n), (x,n) --> infini
    (0,1), (1,1) --> 1

    Citation :
    Pour l'entité bénéficiaire qui a comme clé : nom + prenom + date naissance

    Non, Non, Non, Non, Non, Non, Non, Non, Non, Non, Non, Non !

    La clef d'une table, c'est le champ neutre ID_TABLE en numérotation automatique. S'il faut que (Champ1,Champ2,Champ3) soit unique, il faut ajouter une contrainte, pas une clef primaire !!

    Citation :
    Je n'ai pas l'impréssion d'avoir la main.
    ACCESS est un outils bureautique, pas un vrai SGBD. Il peut être suffisant dans bien des cas simples. Et il inclue la base et la présentation des données dans un même produit.

    Pour info : La base la plus à la mode est mysql.
    Le langage de programmation pour afficher des pages dynamiques le plus à la mode est PHP.

    Merci Zeb. Je te remercie amicalement de ton implication dans mon projet.
    Encore merci du temps que tu me consacres.
    J'ai pu avancer et finaliser mon modèle de données.merci encore!!!

    Maintenant j'ai des de nouveaux défis comme par exemple créé une application de gestions de clients.
    Je ne sais pas sous quel forme créer cette application (IHM). Que me propose Access 2007?
    Quel est le langage que je dois utiliser? tu proposes PHP. Je veux bien m'initier si la formation n'est pas trop longue. J'ai des docs là dessus.
    Sachant que je débute sur cet outil.
    Je viens de prendre connaissance des formulaires, des requêtes mais ça nécessite d'ouvrir Access 2007.
    Je désire, si cela est possible, de créer des écrans, qui correspondent par des "boutons d'évenements". afin que cela soit facile d'utilisation.

    - Comme par exemple lister tous les bénéficiaires nés avant 1975.
    - Lister tous les bénéficiaires dont le code_statut sont à "L".

    Les langages ne me font pas peur......

    Merci par avance
    Otello
    Expert Programmation

    Tes remerciements me vont droit au coeur :) 
    Wahoo ! Je suscite des vocations. :D 

    --------------------

    Il faut d'abord que tu comprennes bien qu'il y a dans les applications deux parties : les données d'une part, leur saisie et leur restitution (c'est l'IHM) d'autre part.

  • Data
    Pour les données, il peut s'agir de simples fichiers, comme une collection de photos par exemple. Il peut s'agir d'informations hiérarchiques, organisées, avec des relations, etc. Par exemple, ta petite famille de bénéficiaires.

    Pour des données relatives, on utilise un SGBDR (système de gestion de base de données relationnelles). Un langage pour interroger ces données existe depuis bien longtemps : SQL. Indémodable, irremplaçable. L'apprendre est un très bon investissement pour le développeur en devenir.

    Le moteur SGBDR d'ACCESS s'appelle MSJet. Il est très primitif.

    Le Monde Libre offre MySQL, très bon, PostgreSQL très bon, très complet (qui a dit trop ?). Sous Windows, on trouve MSSQLServer, SybaseSQLServer, ORACLE. Tous très complets. Sous UNIX, encore Oracle, Informix, etc.

  • IHM : L'interface Homme-Machine
    Pour la saisie et la restitution, tous les langages de programmation dignes de ce nom possèdent une interface pour utiliser du SQL sur une base quelconque. Pas de problème donc, utilise ou apprends le langage que tu veux.

    Le succès d'ACCESS vient du fait qu'il est vendu (de force) avec Office et que le langage est du VB qui est facile à prendre ne main (Je rappelle quand même que VB signifie Visual Beginner's All-purpose Symbolic Instruction Code. Bref, c'est pour les débutants !) et que les requêtes se construisent graphiquement. (Si on veut se planter, il n'y a qu'à faire comme ça :pfff:  )

    Sinon, il convient juste d'utiliser une base de données, (n'importe laquelle) et un langage pour y accéder. Je signale simplement que PHP est à la mode et qu'il est donc facile de trouver des forums pour trouver de l'aide. Je ne le conseille pas plus qu'un autre, d'ailleurs, je ne programme pas en PHP. Le couple PHP/MySQL est plébiscité par la communauté des développeurs du Web. As-tu déjà rempli un formulaire sur le Web ? As-tu déjà affiché une liste d'articles sur ton navigateur ? Ben voilà, c'est ça la puissance de PHP/MySQL.
    Expert Programmation

    Citation :
    - Comme par exemple lister tous les bénéficiaires nés avant 1975.
    - Lister tous les bénéficiaires dont le code_statut sont à "L".
    Au fait comment je peux faire des statistiques au mois, à l'année, sur 5 ans
    de collaborateurs travaillant dont le statut_code est à "L"?


    Il faut apprendre le SQL :

    1. SELECT *
    2. FROM BENEFICIAIRE
    3. WHERE DATE_NAISS < #31/12/1975#;
    4. -- (Syntaxe Access)



    1. SELECT *
    2. FROM BENEFICIAIRE
    3. WHERE CODE_STATUT = 'L'

    oui je connais le SQL.
    Pour le moment je vais me limiter à Access.
    Entre les formulaires et les rêquètes. Je finirais par obtenir le résultats attendus.

    Au fait pour utiliser PHP, que dois-je installer sur mon poste?
    Expert Programmation

    Citation :
    oui je connais le SQL.

    La preuve que non :
    Citation :
    - Comme par exemple lister tous les bénéficiaires nés avant 1975.
    - Lister tous les bénéficiaires dont le code_statut sont à "L".
    Au fait comment je peux faire des statistiques au mois, à l'année, sur 5 ans
    de collaborateurs travaillant dont le statut_code est à "L"?

    :o 

    -------------------------

    Citation :
    Au fait pour utiliser PHP, que dois-je installer sur mon poste?

    ... :fou: 


    Expert Programmation

    Salut :hello: 

    Citation :
    les questions que j'ai posé se référe au graphiques.

    Base ton graphe sur une requête [:spamafote]
    ;) 

    Citation :
    Est il possible de récupérer des colonnes d'une feuille excel

    A faire une fois pour ne pas te cogner la saisie ou en général pour t'en servir régulièrement ?

    Vois du côté de "Importer..." et de "Lier les tables..." en choisissant Fichier *.xls
    Lassé par la pub ? Créez un compte