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 :

Export fichier XLS sans requête


Sujet :

VBA Access

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut Export fichier XLS sans requête
    Bonjour,

    Je cherche à créer un export au format XLS. Bien sûr, je peux disposer de la commande DoCmd.OutputTo et utiliser une requête. Mais je voudrais savoir s'il existe une solution pour ne pas utiliser une requête enregistrée mais directement depuis le code en utilisant la requête SQL.

    Ci-dessous ce qui fonctionne... mais en utilisant une requête enregistrée et la requête déclarée sSQL que je voudrais pourvoir utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub cmdExportXLS_Click()
        'Exporter vers un fichier au format XLS
        Dim sFichier As String
    '    Dim sSQL As String
    '    sSQL = "SELECT tblCTL.ctlcasid, tblCTL.ctlid, tblELE.eleref, tblELE.elelib, tblTYP.typlib, tblVER.verlib, tblCTL.ctlnot, tblCTL.ctlobs " & _
    '        "FROM (tblTYP INNER JOIN tblVER ON tblTYP.typid = tblVER.vertypid) INNER JOIN ((tblELE INNER JOIN tblMOD ON tblELE.eleid = tblMOD.modeleid) INNER JOIN tblCTL ON tblMOD.modid = tblCTL.ctlmodid) ON tblVER.verid = tblMOD.modverid " & _
    '        "WHERE (((tblCTL.ctlcasid) = " & Me.casid & ")) " & _
    '        "ORDER BY tblELE.eleref, tblTYP.typlib, tblVER.verlib;"
        sFichier = CurrentProject.Path & "\VS" & Format(Me.casdat, "yyyymmdd") & "_" & Me.sitlib & ".xls"
        DoCmd.OutputTo acOutputQuery, "qryExportXLS", acFormatXLS, sFichier
    End Sub
    Une idée ?

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Re,

    J'ai trouvé cette méthode, elle fonctionne mais je pensais qu'il devait y avoir quelque chose de plus direct, sans passer par une requête enregistrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub cmdExportXLS_Click()
        'Exporter vers un fichier au format XLS
        Dim sFichier As String
        Dim sSQL As String
        sSQL = "SELECT tblCTL.ctlcasid, tblCTL.ctlid, tblELE.eleref, tblELE.elelib, tblTYP.typlib, tblVER.verlib, tblCTL.ctlnot, tblCTL.ctlobs " & _
            "FROM (tblTYP INNER JOIN tblVER ON tblTYP.typid = tblVER.vertypid) INNER JOIN ((tblELE INNER JOIN tblMOD ON tblELE.eleid = tblMOD.modeleid) INNER JOIN tblCTL ON tblMOD.modid = tblCTL.ctlmodid) ON tblVER.verid = tblMOD.modverid " & _
            "WHERE (((tblCTL.ctlcasid) = " & Me.casid & ")) " & _
            "ORDER BY tblELE.eleref, tblTYP.typlib, tblVER.verlib;"
        sFichier = CurrentProject.Path & "\VS" & Format(Me.casdat, "yyyymmdd") & "_" & Me.sitlib & ".xls"
        CurrentDb.CreateQueryDef "MaRequete", sSQL
        DoCmd.OutputTo acOutputQuery, "MaRequete", acFormatXLS, sFichier
        CurrentDb.QueryDefs.Delete "MaRequete"
    End Sub
    Si quelqu'un a une meilleure idée, je suis toujours preneur...

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Ici une solution ?

  4. #4
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Heureux-oli et merci de t'être penché sur mon problème,

    J'avais parcouru le tutoriel Communication entre Access et Excel et je n'y avais pas trouvé la solution "sans passer par une requête enregistrée".

    Je pense que pour l'instant, je vais conserver ma solution. Le but de cette partie de traitement est de proposer à des contrôleurs un fichier de vérifications que je réintègrerai un fois qu'ils l'auront complété (ils n'ont pas accès au réseau).

    Un export en premier lieu, puis un import (mise à jour) en vérifiant (ce qui ne va pas être le plus simple) que le fichier n'a pas été altéré.... du boulot sur la planche (surtout pour un autodidacte complet).

    Encore merci de ton aide

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Tu peux le faire avec une requête non enregistrée, mais en passant par du DAO.

    Et avec le DAO, tu peux le faire dans les deux sens, partir d'Access vers Excel et de Excel vers Access.

    Peut-être une autre lien ici

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une petit piste en complément des liens d'Heureux-Oli, l'utilisation de la méthode CopyFromRecordset de l'objet Range d'Excel grâce au lien qui t'a été donné sur DAO.

    Il te faut donc piloter Excel. Tu trouveras des exemples de pilotage dans la

    Starec

  7. #7
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Merci pour vos bons conseils Heureux-oli et Starec.

    Il ne me reste plus qu'à plancher...


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

Discussions similaires

  1. Lire une fichier XLS sans excel
    Par petitcoucou31 dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 06/10/2008, 16h03
  2. exporter dans le même fichier xls deux requêtes
    Par schwarzy2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/08/2007, 12h38
  3. Réponses: 2
    Dernier message: 15/05/2006, 09h46
  4. Enregistrer fichier .xls sans macro ni code vb
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/11/2005, 18h48
  5. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 18h07

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