Après quelques heures de recherche, je pense avoir trouvé une solution
OFFICE 2010 est largement plus restrictif que les versions antérieurs pour l'interprétation des dates.
Le driver ODBC fourni par microsoft dans les versions précédentes de Microsoft Office n'utilise pas la même chaîne de connexion que les drivers ODBC fournis par Oracle.
Téléchargez les drivers fournis par Oracle (32 bits et 64 bits)
Rechercher Instant Client Donwload
Attention a bien prendre la version correspondant à votre système d'exploitation et à votre base de données Oracle.
Vous aurez besoins de deux fichiers
- Instant Client Package - Basic
- Instant Client Package - ODBC
Installez le driver fourni par oracle, selon la configuration de votre version d'office 32 bits ou 64 bits.
Dézippez les deux fichiers dans le même dossier. (ex : odbc )
Placez ce dossier dans un endroit sûr et qui n'est pas effacé régulièrement.
Si vous souhaitez installer les deux versions, 32 bits et 64 bits, installez les dans deux dossiers différents. (ex : odbc32 et odbc64)
Lancez l'utilitaire ligne de commande
Démarrer > Tous les programmes > Accessoires
Cliquez avec le bouton droit de vote souris sur "Invite de commandes" et choisissez "Exécuter en tant qu'administrateur"
Déplacez vous dans le dossier ou vous avez dézipper les drivers oracle. ( cd \monchemin\odbc32 )
Lancez odbc_install
Si tous se passe bien vous aurez confirmation de la bonne installation du driver.
Ajoutez dans les variables d'environnement la variable TNS_ADMIN qui pointera vers vos fichier TNSNAMES.ORA et SQLNET.ORA
(si vous ne savez pas où ils sont, consultez votre administrateur)
Configurez votre connexion ODBC
Depuis la ligne de commande ou la zone "Rechercher les programmes et fichiers " du menu de démarrage vous pouvez lancer la configuration odbc
32-bit ODBC saisir :
%WINDIR%\SysWOW64\odbcad32.exe
64-bit ODBC saisir :
%WINDIR%\System32\odbcad32.exe
Donner un nom DSN (Data Source Name) identique aux différents ordinateurs qui utiliseront les fichiers excel. (ex : mabase )
Info pour s"en sortir dans excel et microsoft query
Pour créer une requête avec Microsoft Query
Dans Office 2010 aller dans
Données > Données externes > Autres sources > Provenance : Assitant de connexion de données > DSN ODBC
Choisir la source créée précédemment (le nom du DSN - ex : mabase ).
pour la suite, c'est l'utilisation standard de microsoft query.
rappel : si vous voulez utiliser un paramètre placer son nom entre crochets [monparametre]
Si votre requêtes nécessite le passage d'une date en paramètre.
Dans la feuille excel
Attention à la saisie, excel transforme automatiquement la date en un nombre
(c'est caché, excel affiche un format d'affichage de date pour votre compréhension)
Afin que le driver odbc puisse utiliser la date, vous ne pourrez pas utiliser directement le champ de saisie.
Vous devrez transformer cette saisie en texte.
pour cela j'utilise une autre cellule de la feuille de calcul.
si la date est en A1 : 01/06/2016
placez dans une autre cellule (ex B1) la formule : =TEXTE(A1;"jj-mm-yyyy")
c'est cette cellule B1 qui devra être utilisée pour passer le paramètre à la requête.
Dans microsoft query
il est indispensable de bien passer le paramètre sous forme de date au driver ODBC, vous devrez donc utiliser la fonction to_date() d'oracle dans microsoft query
exemple :
to_date([monparametre];'dd-mm-yyyy')
bonus : pour une recherche entre deux dates vous pouvez saisir ceci dans microsoft query
>to_date([dtdb];'dd-mm-yyyy') Et <to_date([dtfn]||' 23:59:59';'dd-mm-yyyy HH24:MI:SS')
Et voilà.
Fin de ma recherche de solution pour pouvoir interroger Oracle depuis un excel 2010
Vous noterez que si le nom de DSN est identique, vous pouvez utiliser la requête sans aucun problème quelle que soit la version d'Office (32 bits ou 64 bits).
Confirmation dans quelques heures après test de différents fichiers excel.
Partager