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 :

Probleme Export Excel Recherche Loufab


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 35
    Points : 7
    Points
    7
    Par défaut Probleme Export Excel Recherche Loufab
    Bonjour à tous !

    Je tiens tout d'abord à remercier Loufab pour ces excellents tuto et ce partage de savoir qui m'a été et qui m'est encore très utile tous les jours.

    J'ai voulu voir et utiliser le module de recherche avancé qui marche à la perfection mise à part sur ce petit détail:
    L'export Excel ne fonctionne pas chez moi, sur seven, un petit rond se met pour bien montrer que sa réflechis mais sans plus
    et pareillement sous xp mais avec un sablier !

    J'ai testé avec la version 2007.

    J'ai ensuite essayé avec la 2000 qui est open, et une erreur s'affiche,
    "2302 MS Access ne peut enregister les résultats dans le fichier indiqué"
    puis erreur 91 qui me ramène lors du débug sur cette ligne:
    oExcel.Visible = True

    Auriez vous une solution ?

    edit: Après avoir cherché un long moment, je pense que cela vient du chemin indiqué, mais je n'arrive pas à comprendre pourquoi.

    J'ai essayé sur Window 7, et ce n'est plus la même erreur, j'ai un msgbox popup avec " 52 Nom ou numéro de fichier incorrect" puis re erreur d'execution 91

    Bien cordialement
    Trimatelo!

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 35
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Après une journée entière a essayer de debug sans y arriver,

    j'ai voulu tester voir si l'erreur se produisait sur les versions Non Open du module recherche de Loufab.

    Aucune erreur n'est constatée.

    Pourquoi n'utiliserais je pas les versions Non Open pour faire mon projet, simple, j'aimerais rajouter deux ou trois fonctions sur ce formulaire.

    Est-ce que quelqu'un aurait une idée, ou aurait déjà répertorier l'erreur de l'export excel sur le module de recherche (2000 ou 2007) de Loufab ?

    Merci d'avance à tous

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Je déterre ce topic, mais j'ai exactement la même erreur ..

    pour rappel le code :
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    Function lf_Export2EXCEL(strSQL, Optional strNameFile As String)
     
        On Error GoTo Err_lf_Export2EXCEL
     
        ' le sablier à On
        DoCmd.Hourglass True
     
        ' vérifie que le fichier xls n'existe pas dans le chemin
        If Len(strNameFile) = 0 Then strNameFile = "Export.xls"
     
        strNameFile = Environ("USERPROFILE") & "\Mes Documents\" & strNameFile
     
        If Len(Dir(strNameFile)) = 0 Then     ' teste si le fichier existe
     
            ' crée la requete Temp avec la SQL select
            CurrentDb.CreateQueryDef "Temp", strSQL
     
            '   Crée une sortie au format EXCEL
            DoCmd.OutputTo acOutputQuery, "Temp", acFormatXLS, strNameFile, True
            '   supprime la query Temp
            CurrentDb.QueryDefs.Delete "Temp"
     
        Else   ' le fichier existe on écrit à sa suite
     
            Dim oExcel As Excel.Application ' l'application (évite l'erreur 462)
            Dim oFeuille As Worksheet       ' la feuille
            Dim oWork As Workbook           ' le workbook
     
            Dim rst As Recordset            ' le recordset ACCESS
            Dim l As Long, i As Long, c As Long        ' pour les déplacements dans la feuille
            ' ouvre instance Excel
            Set oExcel = New Excel.Application
            ' feuille invisible
            oExcel.Visible = False
            ' ouvre le fichier
     
            Set oWork = oExcel.Workbooks.Open(strNameFile)
     
            ' active la 1ere feuille
            Set oFeuille = oExcel.ActiveSheet
     
            '   recupère le n° de la dernière ligne rempli + 1
            l = oFeuille.Cells.SpecialCells(xlCellTypeLastCell).Row
     
            '   ouvre la requete avec la SQL select
            Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot, dbForwardOnly)
     
            ' compte le nombre de champs à copier (initialise le compteur c )
            c = rst.Fields.Count
            ' rajoute 1
            If l > 1 Then l = l + 1
     
            If MsgBox("Souhaitez-vous nettoyer le fichier EXCEL ?", vbYesNo, "Export EXCEL") = vbYes Then
                ' option nettoyage de feuille ouverte
                oFeuille.Rows("1:65536").ClearContents
                oFeuille.Rows("1:65536").ClearFormats
                oFeuille.Rows("1:65536").Clear
                ' debut de fichier
                l = 1
            End If
     
            If MsgBox("Souhaitez-vous insérer les noms des champs ?", vbYesNo, "Export EXCEL") = vbYes Then
                '   copie le nom des champs sur la première ligne
                For i = 1 To c
                    oFeuille.Cells(l, i) = rst(i - 1).Properties("Caption")
                    oFeuille.Cells(l, i).Interior.Color = RGB(192, 192, 192) ' c'est le gris Excel
                Next i        '   traite chaque record
                ' ligne suivante
                l = l + 1
            End If
     
            ' copie le recordset
            oFeuille.Cells(l, 1).CopyFromRecordset rst
     
            '--------ACCESS-------------
            '   ferme le recordset libère l'objet
            rst.Close
            Set rst = Nothing
     
            '--------EXCEL--------------
            '   ajuste les cellules
            oFeuille.Rows.AutoFit
            '   rend la feuille visible
            oExcel.Application.Visible = True
            '   active la fenetre principale EXCEL
            oExcel.Windows(1).Visible = True
            '   sauve la feuille EXCEL
            oWork.Close (True)
            oExcel.Quit
            '   ferme l'objet xls
            Set oFeuille = Nothing
            Set oWork = Nothing
            Set oExcel = Nothing
        End If
     
    Exit_lf_Export2EXCEL:
    ' le sablier à off
        DoCmd.Hourglass False
        Exit Function
     
    Err_lf_Export2EXCEL:
        If Err.Number = 3012 Then
            CurrentDb.QueryDefs.Delete "Temp"
            Resume
        End If
        If Err.Number = 3270 Then  ' remplace le Caption par le Name
           oFeuille.Cells(l, i) = rst(i - 1).Properties("Name")
           Resume Next
        End If
        MsgBox Err.Number & " " & Err.Description, vbCritical, "Erreur"
        '------- EXCEL ---------
        oExcel.Visible = True
        Set oFeuille = Nothing
        Set oWork = Nothing
        Set oExcel = Nothing
        DoCmd.Hourglass False
     
    End Function
    avec une erreur sur je suis perdue les amis !
    Auriez-vous la possibilité de m'aider une dernière fois? (arrivée à la fin du tuto, je n'ai plus rien à vous demander après )

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    S'il vous plait, prenez la peine d'utiliser la recherche avancée du forum et vous trouverez pleins de discussions concernant les exports Excel à partir d'Access.
    Logiquement, vous devriez trouver votre bonheur.
    Si ce n'est la cas, alors nous viendrons vous aider sans aucun problème.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    justement c'est ce qui m'embête c'est que ca n'est pas le cas.
    La preuve de ma recherche est le fait que j'ai trouvé ce post qui pose les memes problématiques que les miennes.


    J'ai regardé au niveau de l'export, sur les fac, et il ne me semble pas ( à mon niveau) y avoir de probleme de syntaxe, meme si l'erreur 91 est dans ce sens.
    L'erreur avec le with est sans fondement puisqu'elle n'est pas utilisée à ma connaissance.

    J'ai essayé différentes approches qui ont marché dans les autres topics, mais je reste cramponnée à mon erreur 52 puis 91 ..

    bonne soirée !

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Plutôt que d'utiliser OutputTo, essaies ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "NomRequete", "CheminFichierXl"
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci de ton aide !

    Très intéressant, j'ai donc modifié la ligne par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, acFormatXLS, strNameFile
    pour reprendre les variables utilisées.

    J'ai désormais plus l'erreur 52, mais une erreur 3011 puis l'erreur 91.

    3011 : le moteur de base de donneés Microsoft access n'a pas pu trouver l'objet microsoft excel (*.xls). vérifiez qu'il existe et que vous avez correctement entré son nom et son chemin d'accès
    Si microsoft excel n'est pas un objet local, vérifiez la connexion réseau ou contactez l'administrateur.

    Puis :
    Erreur d'execution objet ou variable de bloc with non définie.


    En créant un fichier export.xls dans le repertoire tout s'arrange.

    C'est donc la fonction de création du fichier qui ne marche pas.

    MERCI MERCI MERCI de ton aide !

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Ton erreur est sans doute dûe à acFormatXLS.
    C'est le nom de ta requête ou deta table qu'il faut passer comme paramètre.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    hé bien mes amis, mea culpa, j'ai raté ces 2 discussions je m'en excuse auprès de mes lecteurs.

    Je plussois la réponse de Marsouin_89 , la syntaxe du TransfertSpreed est bien celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12,"nom de la table","chemin nom du fichier",...
    A noter que les versions de l'appli en téléchargement sont maintenant Open source. Ce code est déjà ancien et même si dans l'ensemble la logique et la plupart des instructions sont toujours fonctionnelles, il peut y avoir des modifications à y apporter.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Probleme Export Excel
    Par neacsuadri dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 24/05/2012, 16h49
  2. Probleme avec le formulaire de recherche (export excel)
    Par Legarraudien dans le forum IHM
    Réponses: 3
    Dernier message: 04/07/2008, 12h47
  3. probleme export EXCEL
    Par skanderb dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/10/2007, 16h18
  4. Probleme Exportation Excel
    Par maxtin dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/12/2006, 19h35
  5. Réponses: 7
    Dernier message: 22/12/2005, 09h56

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