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 :

Import d'une table Excel dans Access en erreur [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Import d'une table Excel dans Access en erreur
    Bonjour,
    Je fais un traitement par Automator sur un fichier Excel, et ensuite je veux intégrer ce fichier .xls dans Access.
    Mais j'ai toujours le message d'erreur suivant :

    La table externe n'est pas dans le format attendu
    J'utilise le code ci-dessous pour fermer l'Automator et ouvrir le fichier .xls mais j'obtiens le message ci-dessus.
    Avez vous des idées pour que je parvienne ensuite à intégrer ce fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    oAppExcel.DisplayAlerts = False
           oAppExcel.ActiveWorkbook.Save
           oAppExcel.ActiveWorkbook.Close
     
           Set oAppExcel = Nothing
     
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "importTable", Chemin_Enreg & "\Copie_Octave.xls", False

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Essaye en omettant acSpreadsheetTypeExcel9.
    Essaye en avec d'autres valeurs pour ce paramètre.

    Ici les valeurs possibles :

    AcSpreadSheetType Enumeration (Access)
    https://msdn.microsoft.com/en-us/lib.../ff196017.aspx

    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 éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour,
    J'obtiens le même message d'erreur qu'il y ait ou pas une des valeurs de la liste
    AcSpreadSheetType Enumeration
    J'ai fais un certain type de filtrage sur l'Excel via l'automator, est ce que ca peut venir de là ?
    Est ce que je ne ferme pas bien l'AppExcel ? (pourtant je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     oAppExcel.ActiveWorkbook.Close
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oAppExcel = Nothing
    )
    Merci de vos idées.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Je ne pense pas que les filtres posent un problème. Au pire ils seront ignorés.

    Essaye de faire l'import manuellement.

    Vérifie que les colonnes de la table de destination correspondent à celle du Excel.

    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.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    En fait l'import à la main ne marche pas. J'ai ce message :
    l'assistant ne peut accéder aux informations du fichier "C:\...xls." Veuillez vérifier que le fichier existe et que son format est correct.
    Au départ j'ai un fichier Texte que je modifie dans Excel via l'automator, et j'ouvre ce fichier texte grace à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oAppExcel.Workbooks.OpenText Filename:=chemin_fichier, Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=(liste des champs)
    Quelles modifs devrais je faire pour pouvoir intégrer ce fichier sans soucis ?

    Merci d'avance de vos idées.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Je ne vois pas.

    Je fais cela régulièrement et cela fonctionne généralement bien.

    Essaye d'ouvrir avec Excel le fichier Excel intermédiaire (celui obtenu à partir du fichier texte). Qu'Est-ce que cela donne ?

    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.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub ImportXls()
    CurrentDb.Execute "SELECT [MaFeuExcel$].* INTO toto FROM [MaFeuExcel$] IN 'C:\MonRep\MonClasseur.xlsx' [Excel 12.0;HDR=YES;];"
     
    CurrentDb.Execute "SELECT [MaFeuExcel$].* INTO titi FROM [MaFeuExcel$] IN 'C:\MonRep\MonClasseur.xls' [Excel 8.0;HDR=YES;];"
    End Su
    Dernière modification par Invité ; 09/03/2017 à 17h00.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Merci dysorthographie pour cette méthode pour faire un import depuis Excel que je ne connaissait pas.
    Malheureusement il semble qu'il y ai un problème de format de fichier Excel.

    J'enregistre au format XLS toujours via Access automator
    C'est quoi automator ? Je connais Automation qui permet de manipuler d'autres programmes office avec Access mais pas Automator ?

    Et je pense que tu n'enregistres pas comme tu le croie au format XLS.
    Si tu peux pointer l'instruction dans ton code qui fait cela, ça aiderai.

    Le format XLSX est juste plus moderne mais cela devrait fonctionner de la même façon avec un XLS.

    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.

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Ooops je me suis trompé c'est bien d'Automation dont je parle, je crois que j'ai fais la confusion avec l'outils de scriptage sur Mac. (qui s'appel peut etre bien Automator)

    C'est quoi automator ? Je connais Automation qui permet de manipuler d'autres programmes office avec Access mais pas Automator ?

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    OK, pas de souci cela aurait pu être un outil externe ou un truc que je ne connaissait pas.

    Et à propos de cela :

    Et je pense que tu n'enregistres pas comme tu le croie au format XLS.
    Si tu peux pointer l'instruction dans ton code qui fait cela, ça aiderai.
    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.

  11. #11
    Invité
    Invité(e)
    Par défaut
    je fais un test ce soir!

  12. #12
    Invité
    Invité(e)
    Par défaut
    ça fonctionne avec XLSX et XLS!
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 09/03/2017 à 21h03.

  13. #13
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour, j'ai le meme probleme avec l'ouverture par requete sur le classeur fermé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "SELECT [MaFeuExcel$].* INTO titi FROM [MaFeuExcel$] IN 'C:\MonRep\MonClasseur.xls' [Excel 8.0;HDR=YES;];"

    En fait je suis certain que le probleme vient du fait que j'ouvre le fichier initial texte via la fonction ci-dessous.


    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
    Function ouvrir_Fichier_Octave(oAppExcel As Excel.Application, chemin_fichier As String, Nom_fichier As String) As Workbook
    Dim le_workbook As Workbook
     
     
     
     oAppExcel.Workbooks.OpenText Filename:=chemin_fichier, Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
            Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), _
            Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15 _
            , 2), Array(16, 2), Array(17, 2), Array(18, 2), Array(19, 2), Array(20, 2), Array(21, 2), _
            Array(22, 2), Array(23, 2), Array(24, 2), Array(25, 2), Array(26, 2), Array(27, 2), Array( _
            28, 2), Array(29, 2), Array(30, 2), Array(31, 2), Array(32, 2), Array(33, 2), Array(34, 2), _
            Array(35, 2), Array(36, 2), Array(37, 2), Array(38, 2), Array(39, 2), Array(40, 2), Array( _
            41, 2), Array(42, 2), Array(43, 2), Array(44, 2), Array(45, 2), Array(46, 2), Array(47, 2)) _
            , TrailingMinusNumbers:=True
     
     
    nom_onglet = Left(Nom_fichier, Len(Nom_fichier) - 4)
    Set ouvrir_Fichier_Octave = oAppExcel.ActiveWorkbook
     
     
    End Function
    et que je l'enregistre ensuite sous xls de la facon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set oclasseur = ouvrir_Fichier_Octave(oAppExcel, le_Chemin, tableau_chemin(i))
     oclasseur.SaveAs (Chemin_Enreg & "\Copie_Octave.xls")

  14. #14
    Invité
    Invité(e)
    Par défaut
    mais là on parle plus plus fichier xls mais d'un txt là c'est pas a même chose!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *  FROM [text;HDR=yes;FMT=TabDelimiter;DATABASE=C:\MyRepertoire;].[aa#csv];
    si tu enregistres un xlsx avec l’extension XLS ça peut pas marcher!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     oclasseur.SaveAs Chemin_Enreg & "\Copie_Octave.xls",FileFormat:=xlExcel8

  15. #15
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Le probleme vient surement du fait que je ne précisais pas le FileFormat. Comme tu le proposes ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     oclasseur.SaveAs Chemin_Enreg & "\Copie_Octave.xls",FileFormat:=xlExcel8

    Dés que j'ai du temps je teste. Merci bien.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/10/2016, 18h53
  2. [AC-2013] Importer une feuille Excel dans access avec des acces concourants
    Par anikeh dans le forum Access
    Réponses: 4
    Dernier message: 07/06/2016, 18h03
  3. [AC-2013] Importer une feuille Excel dans Access
    Par rag83 dans le forum Modélisation
    Réponses: 11
    Dernier message: 18/01/2015, 12h38
  4. importer une table excel dans phpmyadmin
    Par Ben2903 dans le forum Administration
    Réponses: 4
    Dernier message: 24/07/2012, 23h16
  5. VBA lier une table Excel dans Access
    Par darkspoilt dans le forum VBA Access
    Réponses: 10
    Dernier message: 21/05/2007, 15h33

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