Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Bases de données
Bases de données Vos questions concernant les bases de données (BDE, Access, SqlServer...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/11/2012, 19h11   #1
DAEM86
Invité de passage
 
Inscription : juillet 2012
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2012
Messages : 8
Points : 1
Points : 1
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
DAEM86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 21h09   #2
BuzzLeclaire
Membre Expert
 
Avatar de BuzzLeclaire
 
Homme
Dev/For/Vte/Ass
Inscription : août 2008
Messages : 1 499
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 499
Points : 1 059
Points : 1 059
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 ?
BuzzLeclaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 21h35   #3
DAEM86
Invité de passage
 
Inscription : juillet 2012
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2012
Messages : 8
Points : 1
Points : 1
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
DAEM86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2012, 23h40   #4
BuzzLeclaire
Membre Expert
 
Avatar de BuzzLeclaire
 
Homme
Dev/For/Vte/Ass
Inscription : août 2008
Messages : 1 499
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 499
Points : 1 059
Points : 1 059
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.
BuzzLeclaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 00h44   #5
DAEM86
Invité de passage
 
Inscription : juillet 2012
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2012
Messages : 8
Points : 1
Points : 1
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
DAEM86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 16h36   #6
BuzzLeclaire
Membre Expert
 
Avatar de BuzzLeclaire
 
Homme
Dev/For/Vte/Ass
Inscription : août 2008
Messages : 1 499
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 499
Points : 1 059
Points : 1 059
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 ?
BuzzLeclaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 17h03   #7
DAEM86
Invité de passage
 
Inscription : juillet 2012
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2012
Messages : 8
Points : 1
Points : 1
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 :
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
DAEM86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h47.


 
 
 
 
Partenaires

Hébergement Web