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 et répartir les données d'un fichier texte dans plusieurs tables liées


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Points : 27
    Points
    27
    Par défaut Importer et répartir les données d'un fichier texte dans plusieurs tables liées
    Bonjour tout le monde,

    Je travaille habituellement exclusivement sous Excel (avec VBA) pour gérer des données, mais, certains de mes projets commencent à prendre beaucoup de place et les macros deviennent très lentes dû à un grand nombre de lignes.

    D'où ma venue dans la partie "Access".

    Voilà mon premier projet :
    - Récupérer des données régulièrement via un fichier texte (issu d'une requête sous Oracle, données délimitées par des pour alimenter une base de donnée qui permettra à plusieurs utilisateurs de faire des recherches dessus.

    J'ai parcouru plusieurs "tuto" et je pense avoir compris comment créer mes tables ainsi que les relations (1 à n) entre elles.

    J'ai vu aussi comment importer un fichier texte dans une table.

    Ce que j'ignore au point où j'en suis, c'est comment importer un fichier texte pour répartir les données dans différentes tables liées entre elles.
    Faut-il importer le fichier dans une table temporaire pour répartir les données ensuite (mais dans ce cas, comment?) ou existe-t-il un moyen de le faire directement?

    Je dois préciser aussi que je n'ai qu'à peine jeter un œil au langage VBA pour access, qui me semble bien plus compliqué à appréhender que celui pour Excel (mais pas au point de me rebuter complètement).

    Bref, si vous avez des suggestions, je suis tout ouïe. Des suggestions qui peuvent concerner directement le projet ou de la lecture qui me permettrait de progresser rapidement.

    Merci d'avance à tous, et bon après-midi!

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Faut-il importer le fichier dans une table temporaire pour répartir les données ensuite
    la réponse est oui

    il n'y a pas forcément besoin de VBA
    - l'interface utilisateur Access te permet d'importer des fichiers, et même de sauvegarder l'import pour le réutiliser.
    - la répartition de l'information se fera ensuite avec des requêtes, en commençant par les tables principales, puis les tables dépendantes, la relation de dépendance devant être explicite dans le fichier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    Merci pour cette réponse.

    J'avais bien vu pour l'automatisation de l'importation dans une table temporaire.

    Je regarderai donc pour la suite, à savoir la répartition dans les tables à partir de la table temporaire.


  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    Bon... Après y avoir passé pas mal d'heures, j'avoue être un peu paumé pour le coup...

    Pour exemple, voici mes tables :
    Nom : Tables_Exemples.jpg
Affichages : 269
Taille : 86,0 Ko

    A l'aide de macros, j'arrive à créer la table "Table1" et à la remplir à partir du fichier texte.

    En testant, à partir de la table "Table1", je peux (toujours à l'aide de macros) compléter les tables "T_Clients", "T_Produits" et "T_Societe".

    Par contre, je ne vois pas comment compléter à partir de la table "Table1" la table "T_Factures" avec les dernières données non utilisées par les autres, tout en récupérant les "ID" correspondant aux autres tables...

    Auriez-vous un indice pour me mettre (ou me remettre) dans la bonne direction (faut pas hésiter à le dire si je me suis planté dès la création des tables)?

    Merci d'avance,

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    ton approche me semble correcte
    il faut s'assurer que
    - la table T_Client comprend un index unique pour les champs Nom+Prenom, le champ IDClient doit être Autonumber
    - la table T_Produits comprend un index unique sur le champ Reference, le champ IdProduit doit être Autonumber
    - la table T_Société comprend un index unique sur le champ Reference_Societe, , le champ IDSociete doit être Autonumber

    il te faut 3 requêtes de création pour les clients, produits, Société, à lancer à partir de Table1, il n'y aura pas de doublon grâce aux index

    et enfin il te faut une requête création de T_Facture dont la source est un query entre Table1, T_Client, (jointure nom=Nom_Client AND prenom=Prenom_Client), T_Produits (jointure Reference=Reference_Produit) et T_Societe (jointure Reference_Societe=Reference_Societe)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    Merci à nouveau, je vais tester de cette manière.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  2. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  3. charger les données d'un fichier .txt dans une table
    Par lemerite dans le forum Développement
    Réponses: 6
    Dernier message: 10/09/2008, 18h33
  4. Importer les données d'un fichier excel dans une table
    Par dams95190 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/12/2007, 10h35
  5. Réponses: 3
    Dernier message: 27/07/2007, 13h06

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