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 :

Chargement de fichier dans ACCESS


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Chargement de fichier dans ACCESS
    Bonjour à tous,

    Je dois réaliser des contrôles de comparaison entre plusieurs bases de données chargées dans ACCESS.
    Les fichiers sources sont sans entêtes de colonnes.
    Dans un premier temps j’ai réalisé des tables maquettes avec des entêtes de colonnes et les importés dans ACCESS.
    Avec mes codes VBA j’arrive à vider les tables maquettes en laissant que les entêtes de colonnes pou réimporter mes nouvelles tables de manière automatique.
    Pour le moment tout se passe très bien.
    Mais je me suis heurté à un problème de capacité d’Access, vu le nombre de tables à importer et la taille des fichiers à charger.
    Je n’arrive pas à tout importer en même temps dans ACCESS pour pouvoir réaliser mes requêtes de comparaison entre mes différentes tables.
    Je demande si il ya possibilité de réaliser la même chose avec des tables liées.
    Je suis capable de lier et délier parfaitement des tables avec des codes VBA.
    Je demande si c’est possible de vider les tables liées en laissant que les entêtes de colonnes, pour lier à nouveau les nouvelles tables sans entêtes de colonnes.
    Je sais ce que je demande c’est un peu bizarre, mais je me dis peut être que quelqu’un à une solution pour m’aider à résoudre mon problème.
    NB : les tables sources sont toujours livrées sans entêtes de colonnes (plus d’une soixantaine de tables.)
    L’objectif c’est de rendre outil ACCESS où on peut charger toutes les tables avec les entêtes de colonnes pour faire les requêtes et automatiser le chargement à chaque nouvelle livraison de tables.

    Code pour lier et délier mes tables


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'DoCmd.DeleteObject acTable, "GAB_RENTE"
     
     
    'DoCmd.TransferText acLinkDelim, "ModelTable3", "GAPP1", CHEMIN & T, True

    Merci par avance pour votre aide.

    Cordialement

  2. #2
    Modérateur

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

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

    Je ne saisi pas bien ta notion d'entête dans une table et ta volonté de la préserver.

    Une table est composée de champ. Si tu nomme un champ NomClient qu'il y ai des données ou pas, le champ reste nommé NomClient.

    Pour ce qui est des tables liées, oui tu peux avoir tes données dans des bases externes. La taille max d'une base Access est 2 Go mais tu peux avoir par exemple 3 x 2Go en mettant tes données dans 3 bases séparées.

    Attention la base qui fait le traitement ne doit pas excéder 2 Go en tout temps. Il faut surveiller car pendant le traitement elle a tendance à gonfler.

    Une autre possibilité est peut-être de ne pas charger tes données dans des tables en travaillant par code VBA directement sur tes données texte.
    Dépendamment de ce que tu dois faire tu n'as peut être pas besoin d'avoir toutes tes données simultanément.
    Évidement cela peut être plus de travail au niveau du code et de la conception de l'algorithme.

    Autre possibilité : injecter une entête dans tes fichiers sans entête. Tu pourrais ajuter une ligne d'entête au début de ton fichier texte avec la vielle instruction MS-DOS Copy.
    De mémoire c'est un truc du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Copy FichierEntete + FichieDonnees FichierResultat
    Enfin, migrer ton application vers une "grosse" BD du genre MS-SQL Server, Oracle ou DB2 pourrait s'avérer rentable.
    Ces BD sont prévues pour gérer des très gros volume de données sans contraintes à part l'espace disque.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Bonjour marot_r,

    Merci pour cet aide, oui je viens de les faire sur 2 bases séparées, puisque j'ai pas à ma disposition MS-SQL Server, Oracle.

    Pour les fichiers que je dois comparer avec ma base ACCESS je les lie directement et je fais mes requêtes de comparaison.


    Cordialement

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/10/2014, 11h29
  2. Chargement de fichier dans la base de données
    Par smirlou dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/02/2013, 14h24
  3. Réponses: 0
    Dernier message: 02/09/2010, 20h38
  4. Importer un fichier dans Access
    Par tomy29 dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/09/2007, 15h37
  5. Insertion fichier dans access
    Par auda17 dans le forum Access
    Réponses: 2
    Dernier message: 31/01/2007, 10h06

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