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 :

Export d'une liste vers excel


Sujet :

Access

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut Export d'une liste vers excel,relire le debut
    Bonjour a tous,


    Dans un formulaire de recherche, j affiche le resultat dans un liste, comme indique ds un tutoriel.Mon formulaire marche a la perfection.

    Maintenant je desire exporter le resultat ds un fichier excel, sachant que la liste comporte plusieurs colonnes.

    Qqun a t il une idee?

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Par défaut
    La liste vient d'une requete? Dans ce cas il y a la commande directe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, , "NomRequete", "Cheminfichier.xls", True

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    Effectivement, ma liste depend d une requete. Le pb, c que dans ma requete figure les champs que je veux afficher, et ensuite avec du code vba, je filtre la requete avec les criteres du formulairew de recherche.

    En gros quand je clique droit sur ma liste (resultat de ma recherche sans aucun critere), l origine des données a cette expression:

    SELECT * FROM Suchen;

    Qd je rempli un critere (par ex Sekurit dans mon champs ScheibenHersteller, fabricant de parebrises en allemand ) et je clique sur mon bouton de recherche,l origine des données est maintenant:

    SELECT * FROM Suchen WHERE ScheibenHersteller="Sekurit"


    Autrement dit, la ligne que tu me recommandes, et qui marche, me sort dans excel ma requete, cad tous les elements. Mais sans le filtre.

    Je sais pas trop comment faire du coup.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Par défaut
    Salut,

    Tu peux aussi utiliser la propriété Recordset de l'objet zone de liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim Excel As Object
    Dim Rs As DAO.Recordset
    Set Excel = CreateObject("Excel.application").workbooks.Add
    Set Rs = Me.Liste0.Recordset
    Rs.MoveFirst
    Excel.windows(1).Visible = True
    Excel.sheets(1).cells(1, 1).copyfromrecordset Rs
     
    Excel.Application.Visible = True
    Set Rs = Nothing
    Set Excel = Nothing
    Ou tu peux (avec la même méthode) utiliser la fonction que je propose ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim Excl As Object
     
    Set Excl = fExportExcel("", Me.Liste0.Recordset, True, 1, 1, 1)
    If Excl.Name <> "" Then
        'Autres manipulation du classeur
        Excl.Application.Visible = True
        MsgBox "exportation réussie"
    Else
        MsgBox "pb lors de l'exportation"
    End If
    Set Excel = Nothing
    A+

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    salut,

    ta fonction marche bien qd je n ai aucun critere remplis. Des lors que je remplis un critere, que je recherche et que souhaite exporter le resultat, ce message d erreur s affichevoir image)

    Enfrancais ca signifie:L'objet est nul (sans valeur), ou n'est plus définie.

    Ensuite le debuggeur me surligne en jaune cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Excl As Object
    
    Set Excl = fExportExcel("", Me.Ergebnis.Recordset, True, 1, 1, 1)
    If Excl.Name <> "" Then
        'Autres manipulation du classeur
        Excl.Application.Visible = True
        MsgBox "exportation réussie"
    Else
        MsgBox "pb lors de l'exportation"
    End If
    Set Excl = Nothing

    as tu une idée?
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    plus exactement, ce qui est en cause est plus ca je crois
    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
    
    Private Sub Befehl107_Click()
    DoCmd.TransferSpreadsheet acExport, , "Suchen", "Suchen.xls", True
    Dim Excl As Object
    
    Set Excl = fExportExcel("", Me.Ergebnis.Recordset, True, 1, 1, 1)
    If Excl.Name <> "" Then
        'Autres manipulation du classeur
        Excl.Application.Visible = True
        MsgBox "exportation réussie"
    Else
        MsgBox "pb lors de l'exportation"
    End If
    Set Excl = Nothing
    
    End Sub

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    en fait ca fonctionne pas tjs. Parfois qd je change mes criteres, ca marche, et ensuite je les rechange et ca marche plus.

    Je suis un peu perdu j avoue

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Par défaut
    Re,

    Et avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Dim Excel As Object
    Dim Rs As DAO.Recordset
    Set Excel = CreateObject("Excel.application").workbooks.Add
    Set Rs = Me.Liste0.Recordset
    Rs.MoveFirst
    Excel.windows(1).Visible = True
    Excel.sheets(1).cells(1, 1).copyfromrecordset Rs
     
    Excel.Application.Visible = True
    Set Rs = Nothing
    Set Excel = Nothing
    ça donne quoi ?

    A+

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    salut,

    le probleme est le meme, apres avoir fait un premier export d un resultat, je change un critere de ma recherche, je clique sur "rechercher" et j exporte. Le meme message d erreur apparait avec cette fois cette ligne surlignée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Excel As Object
    Dim Rs As DAO.Recordset
    Set Excel = CreateObject("Excel.application").workbooks.Add
    Set Rs = Me.Liste0.Recordset
    Rs.MoveFirst
    Excel.windows(1).Visible = True
    Excel.sheets(1).cells(1, 1).copyfromrecordset Rs
    
    Excel.Application.Visible = True
    Set Rs = Nothing
    Set Excel = Nothing
    J ai de plud un autre probleme.Dans ma requete, il y a un champs heure que j ai separe de la date.Dans le resultat de ma recherche j ai le bon format affiché (ex:11:00:00), mais quand j exporte ds excel, j ai "00.01.1900 11:00:00" au lieu d avoir juste "11:00:00".

    Merci encore pour ton aide

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Par défaut
    Re,

    Tu peux en dire plus sur comment tu change les données de ta liste quand tu chage tes critères ? (modif du sql de liste.rowsource, la liste est liée à une table ...)

    Si tu utilise le rowsource test comme ça :
    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
     
     
     
     
    Dim Excel As Object
    Dim Rs As DAO.Recordset
    Set Excel = CreateObject("Excel.application").workbooks.Add
    Set Rs = CurrentDb.OpenRecordset(Me.Liste0.RowSource, dbOpenSnapshot)
    Rs.MoveFirst
    Excel.windows(1).Visible = True
    Excel.sheets(1).cells(1, 1).copyfromrecordset Rs
     
    Excel.Application.Visible = True
     
    Set Excel = Nothing
    ca donne quoi ?



    A+

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    j ai tjs le meme, ds tous les cas ca ne marche jamais a tous les coups. De plus j ai essaye d envoye ma base par mail, mais elle est tropo grosse ou en tous cas ne passe pas.

    Si qqun a le courage de ts relire depuis le debut ce serait super sympa.

  12. #12
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Salut,
    stp pourrais-tu me dire ce qu'est
    Et surtout Es-ce le Resultat de la Requete ou alors ton Unterformular
    La je verrais ou se trouve le probleme

  13. #13
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    C est pas Liste0, ca c etait ds l exemple, mais Ergebnis.

    Ergebnis est une zone de liste dans mon formulaire. C est dans cette liste que le resultat de ma recherche s affiche.

  14. #14
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Donc ton Unterformular???

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    non plutot le resultat de ma requete filtrée par les criteres de recherches. La liste sert juste a l affichage.(c est une liste simple).

    J ai essaye de faire l export a partir de ma requete avec le filtre (voir plus haut) et ss succes.

    PS: Pourquoi tu parles de Unterformular(et pas de sous-formulaire), tu travailles en aleemagne ou avec access en allemand? Car moi oui...

  16. #16
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    OUi,C'est la raison pour laquelle j'ai souvent des difficultes a m'exprimer correctement sur le Forum.
    Je Programme avec Access en Allemand.
    Donc tu peux m'expliquer en allemand,cela me serait plus facile de te comprendre

  17. #17
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    je pourrai pas mieux t expliquer en allemand.en gros qd le resultat change, la fonction fexport ne rend rien, comme si la liste se mettait pas a jour... Enfin jsui perdu quoi...

  18. #18
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Essaie ce Code.Jpense que cela doit aller
    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
     
    ' ===================================
    ' Verweis auf Microsoft DAO setzen
    ' ===================================
    Const ExcelDateiName = "C:\tar\mytest.xls" ' zu erzeugende Exceldatei
    Const tmpAbfrage = "qrytemp" ' Abfrage wird automatisch erzeugt und gelöscht
     
    Dim sSQL As String
    Dim qdf As DAO.QueryDef
        sSQL = "SELECT * " & _
               "FROM " & Me.RecordSource & _
               " WHERE " & Me.Filter
        MsgBox sSQL
        Debug.Print sSQL
     
        ' evtl. alte Abfrage löschen
        On Error Resume Next
        DoCmd.DeleteObject acQuery, tmpAbfrage
        On Error GoTo 0
        Set qdf = CurrentDb.CreateQueryDef(tmpAbfrage, sSQL)
        'Set qdf = CurrentDb.CreateQueryDef(tmpAbfrage, sSQL)
        DoCmd.TransferSpreadsheet acExport, 8, tmpAbfrage, ExcelDateiName, True
         DoCmd.DeleteObject acQuery, "tmpAbfrage"
    Bien des Choses

  19. #19
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 189
    Par défaut
    Honnetement je pense ne pas pouvoir utiliser cette construction pour sSQL car je construis le filtre provisoirement dans la fonction de recherche, et non d export.

    C est pour cela que je fait l export diurectement a partir de la liste qui affiche le résultat.

  20. #20
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Sur quoi est base ton suchformular.Utilises-tu les Textfeld ou les Kombinationsfeld.Quel est le Verknüpfung entre ton Formular et ton Unterformular.
    Je pose cette question parce que je comprends pas pourquoi tu n'utilises pas le Kode que je t'ai envoye

Discussions similaires

  1. [A-00] exporter une liste vers excel
    Par Slici dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/03/2009, 14h49
  2. Exporter automatiquement une requête vers Excel
    Par cofi30 dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/05/2008, 16h09
  3. [Automation]Export d'une table vers excel : Erreur
    Par DamKre dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/04/2007, 10h38
  4. Réponses: 4
    Dernier message: 13/09/2006, 16h53
  5. [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

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