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

VBA Access Discussion :

Extraction d'une requête access au format CSV, divisé en plusieurs fichiers. [AC-365]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut Extraction d'une requête access au format CSV, divisé en plusieurs fichiers.
    Bonjour,

    J'ai développé une requête access avec une macro VBA pour extraire cette requête automatiquement au format CSV.
    L'extraction du fichier CSV fonctionne bien , le soucis c'est que le fichier contient 1.5 millions de lignes et j'aimerais pouvoir découper l'extraction en plusieurs fichiers au moment de l'extraction.
    J'utilise actuellement ce code pour extraire le fichier en un seul fichier CSV.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Export()
    Fic_Export = CurrentProject.Path & "\Export\" & "EXPED_Finale.csv"
    Spec_Export = "EXPED_Finale Spécification d'exportation"
     
    table_Source_Name = "00_DEB_Exped"
     
    MsgBox "vous allez exporter le fichier final" & Fic_Export
     
     
    DoCmd.TransferText acExportDelim, SpecificationName:=Spec_Export, Tablename:=table_Source_Name, FileName:=Fic_Export, HasFieldNames:=True
     
    MsgBox "Export DEB terminé"
     
    End Sub
    Ma question : Est il possible d'adapter ce code pour découper l'extraction en plusieurs fichiers CSV ( ex : nombre de ligne max par fichier )

    Merci pour votre aide

    Bonne journée

    Shaka

  2. #2
    Modérateur

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

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

    La réponse courte est "non".

    La réponse un peu plus constructive est :
    • Peux-tu partitionner tes données selon un critères, ex : Numéros de compte dans par tranche, département, type de produits ?
      L'idée est alors de faire plusieurs extractions en passant des paramètres à la requête pour réduire le nombre d'enregistrements.
    • L'autre idée est de faire l'extraction et surtout l'écriture des données via du code VBA qui va lire les enregistrements un à la fois et les écrire dans le fichier de sortie.
      Une fois un nombre d'enregistrement atteint, tu fermes le fichier et tu en réouvres un nouveau.
      Attention généralement l'option VBA est plus lente.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut
    Merci Marot pour ta réponse.

    Je vais voir pour intégrer des paramètres pour pouvoir réduire le nombre de ligne.
    L'écriture en VBA directement je pense que ca va être beaucoup trop long pour le traitement ( je vais quand même faire un test )

    Bonne journée

    Shaka

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Si ta table dispose d'un identifiant unique, il est possible de faire un Select top 100 via une requête de non concordance avec une table temporaire qui elle devait identifier les ID déjà transféré !
    Spec_Export = "select top 100 Spec_Export.* Fromm EXPED_Finale left join temp on temp.id= WHERE temp.id IS null"

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

Discussions similaires

  1. [Oracle] Extraction d'une requête SQL en php vers un csv et nombre de résultats incohérent
    Par Atori dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/04/2018, 11h21
  2. [AC-2007] Calculer le nombre de jours d'extraction dans une requête access.
    Par shakapouet dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/04/2014, 11h15
  3. Résultat d'une requête SQL en format CSV
    Par annabella12 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/04/2013, 17h26
  4. Problème format date dans une requête access
    Par helprojet dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/02/2009, 03h09
  5. dump sur une base access au format CSV
    Par Mumak dans le forum Access
    Réponses: 1
    Dernier message: 07/03/2008, 18h58

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