cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006
-
8 sept. 2006 à 09:22
cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006
-
8 sept. 2006 à 11:25
Bonjour à tous,
mon problème est le suivant: je souhaiterais utiliser sous Excel une requête SQL exécutée sous Access.
Sous Access, la requête fonctionne normalement et me renvoie un tableau d'environ 18000 lignes.
Sous Excel, en VBA, j'ouvre avec succès la connexion avec la base de données, je réussis à ouvrir un Recordset en utilisant la même requête SQL que sous Access, mais malheureusement, le Recordset sous Excel est vide (propriété .RecordCount = 0)!
Y a-t-il une différence de langages entre les requêtes SQL sous Access et celles sous Excel ???
Quelles pourraient être les sources d'erreurs ?
Merci d'avance pour toutes vos suggestions/solutions.
cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006 8 sept. 2006 à 11:25
Re-Bonjour,
Merci à tous.
Je viens en fait de découvrir mes erreurs: la même requête SQL sous Access et sous Excel est écrite selon des syntaxes légères différentes. Ces différences passent a priori inapercues, même pour la machine, mais font planter la macro. Par exemple, dans une requête SQL sous Access, les chaînes de caractères sont écrites entre " " , alors que sous Excel, cela doit être entre ' '. De même, pour préciser la fin indéfinie d'une chaîne de caractère sous Access, on utilise * (ex: tous les noms commencant par mi: mi*), alors que sous Excel, cela devient: % (donc, dans mon exemple: mi%).
Ces petites différences, imperceptibles pour une machine, peuvent parfois engendrer des grandes prises de têtes!!!
Molenn: Merci encore pour cette solution. Je ne savais pas qu'une fois exportées d'Access, les valeurs dans Excel pouvaient être actualisées. Je voulais travailler directement dans Excel, pusique je devais ensuite à partir de ces données faire des calculs (statistiques,..) et les représenter graphiquement, ce qui est moins pratique sous Access, à moins de bien gérer les formulaires...
BasicInstinct, tbbuim1 : j'ouvrais bien mon Recordset de la manière dont BasicInstinct l'a décrit. Donc il fonctionnait correctement, et sa propriété .RecordCount aussi.: c'était simplement la requête SQL qui n'était pas correctement formulée. Donc il ne trouvait rien et me renvoyait un Recordset vide. Voilà.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 8 sept. 2006 à 09:42
Petite question qui ne t'apportera pas de réponse, mais qui pourra peut être t'aider : Pourquoi sous EXCEL, tu t'embêtes à recréer ta requête ?
Si ta requête SQL est crée sous ACCESS et fonctionne, il te suffit de l'importer directement dans EXCEL (Menu Données\Données externes\Importer un fichier). Tu vas chercher ta base ACCESS et le nom de la requête.
Une liaison sera crée et si tu modifiées la base de données, il te suffira d'actualiser les données dans EXCEL pour récupérer les infos.