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

Requêtes et SQL. Discussion :

Export requête vers excel [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut Export requête vers excel
    Bonjour à tous,
    J'essaye de me dépatouiller avec access, mais je bloque sur une requête. Je souhaite, via le bouton d'un formulaire, exporter les résultats d'une requête vers un fichier excel.
    En cherchant sur les forums, j'ai bien trouvé la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet([<TypeTransfert>], [<TypeFeuille>], <NomTable ou Nomrequête>, <NomFichier>])

    Le problème, c'est que j'ai besoin qu'une fois le transfert effectué (ou avant d'ailleurs...), l'utilisateur soit invité à choisir ou doit être enregistré le fichier excel (le chemin d'accès) + le nom du fichier excel à enregistrer.
    J'ai essayé pas mal de petites choses de mon côté, mais en vain n'ayant pas suffisamment de connaissances.

    Merci à ceux qui peuvent m'apporter un coup de main (en détaillant si c'est possible, sinon je risque de ne rien comprendre !).

    Merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Bonjour,

    Avec ceci tu devrais pouvoir récupérer le chemin du répertoire sélectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Option Compare Database
    Option Explicit
     
    ' code trouvé sur http://access.developpez.com/faq/?page=CheminsRep#select_rep
    ' OUverture d'une boite de dialogue pour la sélection d'un dossier
     
    ' Constante à ajouter pour permettre la création d'un nouveau dossier
    'Private Const BIF_NEWDIALOGSTYLE As Long = &H40
     
     
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
     
     
    Public Function SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BrowseInfo
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
    '   Sélection du dossier uniquement
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    '   Création d'un nouveau dosssier
    '    .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_NEWDIALOGSTYLE
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function
    Et à mon avis tu n'es pas dans le bon formum (plutôt du vba ou IHM)

    Cordialement

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Bonjour, et merci pour cette réponse, mais je n'ai aucune idée de où je dois insérer ce code....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Dans l'ordre :
    - Tu crée un module où tu colles le code
    - A partir d'un bouton d'un formulaire tu lances la recherche de répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim sRepertoire as string
    sRepertoire = SelectFolder("Mon Export", Me.hwnd)
    if len(sRepertoire) <> 0 then
       DoCmd.TransferSpreadsheet acExport, [<TypeFeuille>], <NomTable ou Nomrequête>, sRepertoire & "\tonfichier.xls"
    else
       MSgbox "Pas de bras pas de chocolat !" & chr(10) & "Pas de repertoire sélectionné, pas d'export !", vbinformation+vbokonly, "EXPORT EXCEL"
    end if

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci pour la réponse !

    Je l'ai vue tard, et un autre utilisateur m'avait proposé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Planning As Object
    Set Planning = CreateObject("Excel.Application")
    Query = Ta Query à exporter
    DoCmd.OutputTo acOutputQuery, Query, acFormatXLS, xls, 0
    Planning.Visible = True
    Planning.UserControl = True
    ce qui correspond bien à ce que je cherchais.

    En tout cas, merci beaucoup beaucoup beaucoup !

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

Discussions similaires

  1. [AC-2003] Export requête vers Excel avec choix du dossier
    Par jeanpierre78 dans le forum IHM
    Réponses: 4
    Dernier message: 09/07/2011, 19h11
  2. Export requète vers Excel via contrôlebouton
    Par benoitm35 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 06/12/2008, 23h35
  3. Exportation requête vers Excel dans un classeur ouvert
    Par sophiesallee dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/09/2007, 14h54
  4. [Excel] Exportation d'une requête vers Excel via PHP
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 17/05/2006, 16h46
  5. Réponses: 1
    Dernier message: 01/11/2005, 12h04

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