Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 05/08/2008, 11h26   #1 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut Problème de création de table à partir de fichier Excel

Bonjour à tous,
j'essaye désespérement de créer une table dans Access 2003...je suis débutant mais j'ai lu différents sujets (FAQ, tuto,....) sans trouver de réponse.

J'ai une base de données découpée en 30 fichiers Excel (récupérer à partir de fichier .txt) qui au total fait environ 40 colonnes sur environ 400000 lignes...j'aimerai donc avoir un seul fichier Access pour pouvoir tester certains paramètre de ma base.

Lorsque j'importe le premier fichier Excel pas de problème, mais impossible de mettre le deuxième.
J'y suis arrivé une fois : au total j'avais bien le même nombre de lignes que la somme des 2 fichiers Excel mais en regardant les 100 dernières lignes il m'en manquait un grand nombre (en recherchant les lignes manquantes, impossible de les retrouver)!!! Mystère!!!??
Je précise que je suis débutant en Access... merci pour votre aide....
Jb
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 11h36   #2 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Tes fichiers Excel ont-ils tous la même structure ou sont-ils différents ?
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 11h37   #3 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Ils ont tous la même structure (même noms de colonnes, même format de cellules...)
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 11h41   #4 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 941
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Si j'ai bien compris tu veux mettre tes fichiers les uns derrière les autres dans une table.

Est-ce que par hasard, lorsque tu importes ton premier fichier tu ne mettrais pas une colonne comme clé primaire ?

Starec
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 11h44   #5 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Tu as bien compris...je veux tout mes fichiers les uns à la suite des autres.
Au niveau de la clef primaire comme je suis débutant et que je ne sais pas encore à quoi ca correspond , je clique tjs sur suivant dans l'Assistant d'importation en ne modifiant rien sur ca!!!!
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 12h00   #6 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Citation:
Envoyé par Starec Voir le message
Est-ce que par hasard, lorsque tu importes ton premier fichier tu ne mettrais pas une colonne comme clé primaire ?
Ok je faisais ca...j'avais bien une première colonne avec mes numero de lignes. J'ai donc refais tout en ne mettant aucune clef primaire (j'ai lu des truc mais ca reste un peu flou pour moi cette histoire de clef!!!) et maintenant Access refuse d'importer mon deuxième fichier Excel...
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 12h47   #7 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par Jibi64 Voir le message
Access refuse d'importer mon deuxième fichier Excel...
Quel est le message d'erreur ?

Citation:
ca reste un peu flou pour moi cette histoire de clef!
Tu as besoin d'apprendre les concepts essentiels des bases de données. Voir les tutoriels de Développez.com. Notamment sur la méthode Merise.

En gros une clé primaire permet de donner un identifiant à chaque ligne de données, ce qui permet de faciliter les associations entre les tables par la suite et d'éviter des problèmes de redondances de données et potentiellement d'erreurs sur les données saisies.

Un exemple...
Une table de Personnes(Nom, Prenom, DateNaissance)
On veut utiliser cette table pour enregistrer les rendez-vous qu'on a eu avec certaines de ces personnes :
RendezVous(NomContact, PrenomContact, DateRendezVous)
Ce schéma fonctionne jusqu'au jour où :
- il y a un deuxième Jean Dupont - comment les différencier ?
- ou qu'un utilisateur saisit Dupond au lieu de Dupont dans la table des rendez-vous : il n'y a plus de correspondance entre les données.

On devrait avoir le schéma suivant :
Personnes -0,n----Fixer----0,1- RendezVous
Ce qui signifie qu'on peut fixer 0 à plusieurs rendez-vous à une personne mais qu'un rendez-vous n'est fixé qu'à une personne.
On a alors les tables :
Personnes(PersId, PersNom, PersPrenom, PersDateNaissance, ...)
RendezVous(RdVId, RdV_FK_IdPersonne, RdVDateRendezVous, ...)

PersId et RdVId sont les clés primaires des deux tables.

Dans la table RendezVous, la colonne RdV_FK_IdPersonne est une clé étrangère qui contient l'identifiant de la personne à laquelle on a fixé un rendez-vous. Comme ça pas d'erreur de saisie et s'il y a deux Jean Dupont, il est probable que d'autres données de la table Personnes permettront de les différencier, PersDateNaissance par exemple, ou l'adresse...

Pour en revenir à ton problème, je te recommande de réfléchir aux données que tu veux traiter, à leur structure, à leurs liens entre elles. Si tu utilises Access comme un Excel qui ne serait pas limité par les 36565 lignes, ce n'est peut-être pas une bonne idée.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.

Dernière modification par CinePhil ; 05/08/2008 à 13h02
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 13h27   #8 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Citation:
Envoyé par CinePhil Voir le message
Quel est le message d'erreur ?
Pour en revenir à ton problème, je te recommande de réfléchir aux données que tu veux traiter, à leur structure, à leurs liens entre elles. Si tu utilises Access comme un Excel qui ne serait pas limité par les 36565 lignes, ce n'est peut-être pas une bonne idée.
Le message est basique : "une erreur est survenue lors de l'imporation du fichier X. Le fichier n'a pas été importé"...bref ca n'apprend pas grand chose!!!

Sinon merci pour l'explication des clefs primaires...bcp mieux expliqué que tout ce que j'avais put lire.
Bref en gros je voulais faire ce que tu disais : "utiliser Access comme un Excel sans limite" de lignes... car je voulais juste vérifier que mes données dans ma base sont correctes et ainsi sortir des stat sur le nombre de "code postaux" erronnés par exemple. Bref si qq'un a des conseils ou une méthode je suis prenneur...
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 13h31   #9 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

1) Quelle est la structure de tes fichiers Excel ?
2) Dois-tu éliminer les doublons dans ta table Access ?
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 13h47   #10 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Citation:
Envoyé par CinePhil Voir le message
1) Quelle est la structure de tes fichiers Excel ?
2) Dois-tu éliminer les doublons dans ta table Access ?
1) Mes fichiers Excel sont issu d'un fichier .txt donc les cellules sont au format texte (si c'est ca que tu entends par structure!?). Les fichiers .txt sont généré par le système de gestion de ma boite (possibilité de les avoirs directement en .xls mais dans ce cas ca bug encore plus, du coup je les enregistre en .txt puis "ouvrir avec" Excel et enregistrement en .xls)
2) peut importe les doublons...si il y en a ca n'a aucune importance.
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 13h59   #11 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Quand je disais 'structure de tes fichiers Excel' je voulais dire 'nom des colonnes' avec éventuellement une explication sur leur contenu.
Mais vu ce que tu veux faire c'est pas grave.

Je viens de faire le test d'importer deux fois le même onglet Excel dans la même table Access (version 2003) et je n'ai pas rencontré de difficulté.
La seule précaution est qu'il faut choisir de ne pas créer de clé primaire. D'ailleurs dans ton utilisation, la clé primaire est à peu près inutile puisque tu ne feras pas d'association avec d'autres tables semble t-il.

Mais je persiste à penser qu'utiliser Access en tant que super Excel n'est peut-être pas une bonne idée.

Si tu nous disais plus précisément ce que tu as besoin de faire, on pourrait te guider vers une démarche plus rigoureuse en matière de base de données.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 14h10   #12 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Ce que je veux faire est assez simple: mes fichiers Excel comporte plusieurs colonnes de type "numero de dossier", "nom client", "adresse client", "code postal", "reference facture", etc... ces infos ont été entrée à la main années après années et donc il y en a un certain nombre qui ont été mal tapé (du type un code postal qui n'a que 4 chiffres, vérifier que la valeur des factures n'est pas inférieur à un certains montant,...). Je veux donc pouvoir quantifier le nombres d'erreurs en les détectant par rapport à des conditions (chose que je sais faire sous Excel mais la je voulais avoir tout dans un meme fichier Access plutot que 30 fichier Excel)...
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 14h43   #13 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par Jibi64 Voir le message
Ce que je veux faire est assez simple: mes fichiers Excel comporte plusieurs colonnes de type "numero de dossier", "nom client", "adresse client", "code postal", "reference facture", etc...
Comme tu as précédemment dit qu'il pouvait y avoir des doublons, j'en conclus qu'un client peut avoir plusieurs dossiers ?

Donc moi je vois au moins une entité Clients et une entité Dossiers avec le schéma :
Clients -0,n----Avoir----1,1- Dossiers
Et donc les tables :
Clients(CliId, CliNom, CliPrenom, CliAdresse...)
Dossiers(DosId, Dos_FK_IdClient, DosRefFacture, ...)

Peut-être aussi que pour un même dossier tu peux avoir plusieurs factures ?
Voilà le genre de réflexion qui te permettra de construire une base de données robuste.

Maintenant comment récupérer les données dans ce schéma ?
1) Importer les fichiers Excel dans une table Access. As-tu réessayé sans spécifier de clé primaire ?
2) Créer la structure de la table Clients
3) Chercher dans la table d'import quelles colonnes permettent d'identifier de manière unique un client (son numéro de client peut-être, ou l'ensemble [nom, prénom, adresse]...)
4) Faire une requête pour extraire les clients distincts de la table d'import. Par exemple si l'unicité d'un client est définie par le triplet (nom, prénom, adresse) :
Code :
SELECT DISTINCT nom, prenom, adresse
FROM tableimport
ORDER BY nom, prenom, adresse
Tu devrais déjà trouver à vue d'oeil quelques doublons mal écrits. Mais quoi choisir entre :
- 'Dupond' 'Jean' '3 rue Aristide Passerieu 31100 Toulouse'
- 'Dupont' 'Jean' '3 rue Ariste Passerieu 31000 Toulouse'
Dupond ou Dupont ? Ariste ou Aristide ? 31100 ou 31000 ?

Bref, sans numéro de client, tu es mal pour distinguer les clients. Et avec, quoi choisir comme info exacte ?
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 15h17   #14 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 17
Par défaut

Merci pour cette réponse précise,

je vais reflechir dans ce sens la, mais le gros problème reside dans le fait que le seul numero unique est le numero de prestation et que il y a plus de 40 champs pour détailler ce numero (client, adresse, code postal, facture,etc...) et il y a 4 champs d'adresse (je ne sais pas pourquoi...c'est vraiment idiot!!!) bref cette multiplication des données rend mon problème asez long à traiter et en moins d'une semaine ca me parrait juste!!!!
Je pense qu'une macro appliquée aux 30 fichiers excel serait plus simple pour mon problème (surtout qu'une fois les erreurs quantifiées = base à la poubelle!!!)

Dans tout les cas, merci pour votre aide...et pour la rapidité de réponse!!!
Jibi64 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/08/2008, 15h27   #15 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

N'est-ce pas plutôt l'extraction de données faite sur le système d'origine qui est mal faite ?
Parce que j'espère que celui-ci contient une base de clients à peu près fiable et que les coordonnées des clients ne sont pas répétées dans les tables de prestations sinon c'est ce vieux système mal foutu qu'il faut foutre à la poubelle !
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide