J'ai tenté plusieurs solutions, date_format(date,'%T') ou encore CONCAT(HOUR(heure) ,"h" , MINUTE(heure)), toutes fonctionnes du coté phpMyAdmin mais pas coté Excel.
Dernière tentative essayée, j'ai envoyé mon fichier à un ami qui a une version moins récente de SQL et son résultat s'affiche bien dans la cellule Excel.
Nous avons tous les deux la version 2003 d' Excel.
J'ai la version du client MySQL: 4.1.20.
Re : Problème affichage resultat requete SQL dans cellule Excel
Bonjour Anthony,
J'ai récupéré la version 4.1.22 de MySQL (je crois que c'est la version la plus ancienne encore disponible sur le site internet de MySQL), puis j'ai éxécuté depuis Excel, une requête SQL similaire à la tienne. J'ai obtenu le même résultat que toi, c'est à dire aucun affichage dans Excel.
Il semblerait que le problème réside dans le fait que le résultat de la requête ne soit pas une chaîne de caractères, mais un tableau d'octets dont les valeurs sont les codes ASCI des caractères attendus (l'heure au format 00h00).
J'avais l'impression que c'était plutôt lié à la version du driver Connector/ODBC, mais j'ai essayé les deux versions disponibles sur le site de MySQL (3.51 et 5.1), et ça ne change rien. Peut-être que ton ami a une version encore plus ancienne ? ...
J'ai néanmoins pensé à deux "solutions".
Tu peux rajouter un forçage de type dans ta requête (fonction CAST):
Code:
SELECT CAST(IFNULL(DATE_FORMAT(do.do_datestatut,'%Hh%i'),'') AS CHAR(5)) FROM cli_dossier WHERE ...
Tu peux régler la chaîne de connection avec une option qui force la traduction des tableaux d'octets en chaînes de caractères (version 5.1 du driver ODBC pour MySQL):
Re : Problème affichage resultat requete SQL dans cellule Excel
Re-Bonjour Anthony,
Petites précisions :
Sans doute le sais tu déjà mais, par acquis de conscience, je précise que tableau d'octets qu'Excel renvoie suite à la requête SQL, est stocké en mémoire de la même manière que la chaîne de caractères correspondante. Donc, cette "erreur", ne porte en fait que sur la manière dont Excel va interpréter (Typer) cette zone mémoire. La différence n'est pas bien grande.
J'ai également essayé de changer la version (2.8, 2.7, 2.6, 2.5) d'objet ActiveX 'Base de Données' ADO référencée dans VBA, mais ça ne résout pas le problème.
Peut-être que ton ami a établi des paramètres de connection à sa base par défaut, dans un DSN, qui incluent l'option d'interprétation des tableaux d'octets comme des chaînes de caratères (l'option à laquelle je fais référence dans mon post précédent) ?