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

Bases de données Delphi Discussion :

Importation données de Excel vers Access (ADO)


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Importation données de Excel vers Access (ADO)
    Bonsoir,

    voila, j'explique mon probème:

    dans une form j'ai:

    - une adoconnection connectée a une base Access 2007, (en utilisant le provider Microsoft.ACE.OLEDB.12.0)
    - une Adotable liée a adoconnection1 avec tableName=Table1,
    - une Adoquery avec le code SQL suivant:
    Insert into [Table1]
    select *
    from [feuil1$]
    in 'C:\test.xlsx'

    - un bouton avec le code suivant :
    adoconnection1.Connected:=true;
    adotable1.Active:=true;
    adoquery1.ExecSQL;

    vous l'aurez compris, mon but est d'importer les données contenues dans le fichier excel sur ma table Access (créé auparavant en utilisant l'outil 'Données Externes'/'Excel'). les données sont toutes de type 'Texte' que ce soit sur Access ou Excel.
    Alors quand je suis sur mon pc au bureau cette méthode marche très bien et je n'ai aucun soucis lors de l'éxecution, par contre sur mon pc perso... j'ai un message d'erreur lorsque j'appuye sur le bouton pour lancer la requête : "Format de base de données (C:\test.xlsx) non reconnu"

    quelqu'un aurait une idée pour régler ce problème ? d'ou ca pourrait venir ? je désespère, je trouve rien sur le net concernant cette méthode et cette erreur.

    Remarque importante: quand j'essaye de me connecter via Adoconnection directement sur la table Excel (en utilisant Microsoft.ACE.OLEDB.12.0 et Extended properties=Excel 8.0 bien sûr) la connection réussit et il reconnait le format. c'est ce qui est encore plus bizarre je trouve.!!

    Merci d'avance.

    Cordialement.
    Daem

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par DAEM86 Voir le message
    "Format de base de données (C:\test.xlsx) non reconnu"
    Si ton PC de chez toi est un Seven ou Vista, il pourrait peut-être s'agir d'un problème d' UAC.

    As-tu essayé de placer ton test.xlsx ailleurs ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    bonsoir Buzz,

    En effet mon pc perso est un Seven, mais j'ai déja essayé de mettre le fichier ailleurs que sur le C:\ et ça ne marche pas non plus

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    As-tu vérifié la version entre tes deux ACE.OLEDB, n'y aurai-t-il pas de différence ?

    Parce que le message format non reconnu est généralement lié à une différence entre ce que la version d'Odbc doit lire et ce qu'il s’apprête à lire.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    hmmm, je sais que normalement pour se connecter à des bases Office 2007 ou inférieur, il faut utiliser le provider Microsoft.ACE.OLEDB.12.0, et c'est ce que j'ai fait.
    la je viens d'essayer avec Microsoft.Jet.OLEDB.4.0, ca me donne exactement la même erreur

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par DAEM86 Voir le message
    la je viens d'essayer avec Microsoft.Jet.OLEDB.4.0, ca me donne exactement la même erreur
    La c'est normale puisque le driver ODBC JET 4.0 ne reconnait pas les fichiers xlsx et encore moins les accdb.
    D'où ma remarque si tu tombe sur cette erreur des différences doivent exister entre l'ODBC ACE d'un poste à l'autre !

    Le plus étranger tu dis pouvoir ouvrir le fichier manuellement... peux-tu mettre ici ta procédure ADOconnection ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    Le plus étranger tu dis pouvoir ouvrir le fichier manuellement... peux-tu mettre ici ta procédure ADOconnection ?
    tu parles bien de l' Adoconnection que je réussis sur le fichier Excel ?
    si oui c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    adotable2.ConnectionString:= 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\test.xlsx;Extended Properties=excel 12.0;Persist Security Info=False';
    adotable2.TableName:='[feuil1$]';
    adotable2.Active:=true;
    datasource2.DataSet:= adotable2;
    dbgrid2.DataSource:= datasource2;
    end;
    la connection vers le fichier Excel marche sans problème de cette façon. je n'ai aucune erreur.

    mais quand je le fais comme expliqué sur le premier post... ça marche pas

Discussions similaires

  1. importer des données d'excel vers access
    Par nicolille dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/02/2009, 18h41
  2. Import de données de Excel vers Access
    Par kdestine dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2007, 11h48
  3. Importer les données Excel vers Access
    Par accessmounir313 dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/08/2007, 16h05
  4. Importation de données d'Excel vers Access
    Par jolemoine dans le forum Access
    Réponses: 9
    Dernier message: 13/07/2007, 14h56
  5. [VBA-E]Exporter des données d'Excel vers Access
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2006, 15h57

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