Base Oracle et requêtes SQL sous VBA

Fermé
Crysta17 Messages postés 19 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014 - Modifié par Crysta17 le 8/04/2014 à 10:16
Crysta17 Messages postés 19 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014 - 9 avril 2014 à 09:46
Bonjour tout le monde,

Je poste ce message dans l'espoir que quelqu'un puisse m'éclairer.

J'explique ma situation. Je dispose d'une base Oracle. J'ai importé une table de cette base sous Excel pour pouvoir y appliquer des requêtes. Seulement peut-on exécuter des ordres SQL en VBA si la table est affichée sous forme de tableau dans Excel et n'est donc pas dans une base de données ?

De plus, lors de mon importation de la base via Excel/Données externes, le bouton : "Ne rien importer et ne créer que la connexion" était grisé. Cela veut-il dire que je vais devoir importer toutes mes tables une à une sur plusieurs onglets ??

En fait, j'ai besoin d'exécuter des requêtes SQL sur cette base et de mettre les résultats sous des tableaux Excel afin d'en faire des graphiques. Est-ce possible ? Si oui, comment ?

Je connais le langage SQL mais je débute en VBA, et je ne m'en sors pas ! J'ai fais de nombreuses recherches mais toutes parlent d'Acess, or je ne le possède pas.. C'est pourquoi je vous remercie de vos réponses.

Crysta
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 8/04/2014 à 11:52
Bonjour

Pour utiliser SQL avec une liste de données Excel, un exemple basique utilisant ADO

https://www.cjoint.com/?3DilGJ3PxhD
attention: le nombre de recordset est limité lors de la m^me connexion (nbre très variable)
voir
https://support.microsoft.com/fr-fr/help/319998

Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 avril 2014 à 12:37
Pour ton souci:
je vais devoir importer toutes mes tables une à une sur plusieurs onglets ??

Ce serait possible mais en utilisant ADO (voir mon code -exemple) et en te connectant non pas par données mais par un string de connexion à oracle; voir
https://www.connectionstrings.com/
une fois connecté, on pourrait avoir la liste des tables oracle et de boucler sur cette liste en effectuant une requete du style "Select * from latable" envoyé dans les feuilles excel

Tout ça au conditionnel car je ne connais pas Oracle (Oracle acceptera t 'il que VBA vient fouiller dans ses affaires) et question VBA, bien que pas trop compliqué, cela reste délicat si tu débutes en VBA, sans compter les problèmes de maintenance futurs

Toutefois, il faudrait que tu vois avec ton boulot s'il tu peux de ne pas créer des tables Excel mais d'interroger Oracle avec des requ^tes VBA personnalisées (on peut très bien écrire du SQL avec des jointures entre plusieurs tables) renvoyées sur Excel...;
0
Crysta17 Messages postés 19 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014
Modifié par Crysta17 le 8/04/2014 à 14:40
Merci de vos réponses !

Oui bien sûr, ils préféreraient même que je puisse interroger Oracle avec des requêtes VBA que je pourrais ensuite renvoyer dans Excel. Seulement je n'arrive pas à créer la connexion entre Excel et ma base Oracle... Des messages d'erreurs interviennent sans cesse.

J'imagine qu'il n'y a pas d'autres moyens ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 avril 2014 à 16:20
quel script de connexion as tu choisi ?
Microsoft OLEDB provider for Oracle ?
0
Crysta17 Messages postés 19 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 14 avril 2014
Modifié par Crysta17 le 8/04/2014 à 16:56
J'ai copié collé un programme réalisé par un internaute et j'ai tenté de l'adapter à ma base, en changeant les noms, mots de passe etc.

Seulement lorsque que je vais dans le pilote ODBCde windows, je n'ai que SQL Server et non Oracle. Je pense que le problème doit venir de là.

Il me semble que c'est Ora.OLEDB !
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 avril 2014 à 21:32
Microsoft n'accepte plus les pilotes ODBC à partir des versions >=office 2007! il faut utiliser OLE.DB ....( mon meesage de 16:20h
va voir dans le site "connection.string que je t'ai indiqué Plus haut à 12:37h

au passage :o)
'ai copié collé un programme réalisé par un internaute et j'ai tenté de l'adapter à ma base, en changeant les noms, mots de passe etc.
Très casse-G....!
0