Bonjour,
Me revoilà avec mes problématiques. Après avoir solutionné une requête sql dans mon code vba (merci rdurupt) je me suis attaché à sa mise en forme....
La première capture d'écran montre le résultat que je souhaiterais obtenir tout en remplaçant les valeurs de la colonne D par les unités qui correspondent :
Pour cela j'utilise la requête ci-dessous :
En fait le champ NUM_UNITE de la table methode_analyse fait référence à une autre table unite_mesure dans laquelle est stockée le NUM_UNITE et le texte qui y correspond (DESIGNATION_UNITE) par exemple le NUM_UNITE 8 vaut % Vol. Le problème se corse car certaines methode_analyse_0.DESIGNATION_ANALYSE ne possèdent pas d'unité !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sql2 = "SELECT resultat_0.DATE_ANALYSE, CONCAT(IFNULL(echantillon_complet_0.DESIGNATION_ORIGINE,''), IFNULL(echantillon_complet_0.ORIGINE_LIBRE,'')), methode_analyse_0.DESIGNATION_ANALYSE, methode_analyse_0.NUM_UNITE, resultat_0.RESULTAT_ANALYSE_CORRIGE " Sql2 = Sql2 & "FROM oenodoc.client client_0 " Sql2 = Sql2 & "INNER JOIN oenodoc.echantillon_complet echantillon_complet_0 ON client_0.NUM_CLIENT = echantillon_complet_0.NUM_CLIENT " Sql2 = Sql2 & "INNER JOIN oenodoc.echantillon echantillon_0 ON echantillon_complet_0.CODE_RECEPTION = echantillon_0.CODE_RECEPTION " Sql2 = Sql2 & "INNER JOIN oenodoc.resultat resultat_0 ON echantillon_0.CODE_RECEPTION = resultat_0.CODE_RECEPTION " Sql2 = Sql2 & "INNER JOIN oenodoc.methode_analyse methode_analyse_0 ON resultat_0.NUM_ANALYSE = methode_analyse_0.NUM_ANALYSE "Sql2 = Sql2 & "WHERE client_0.CODE_CLIENT='" & Client & "' " Sql2 = Sql2 & "AND resultat_0.DATE_ANALYSE>='" & Format(DateDebut, "yyyy-mm-dd hh:mm:ss") & "' " Sql2 = Sql2 & "AND resultat_0.DATE_ANALYSE<='" & Format(DateFin, "yyyy-mm-dd hh:mm:ss") & "';"
Donc j'obtiens ceci :
Avec le code suivant :
On voit bien qu'il ma fait sauter les lignes pour lesquelles il n'y a pas d'unités en face d'un dosage ce qui est normal puisque je fait une jonction qui ne se révèle pas valide dans ce cas de figure ... Je pense donc que c'est l'INNER JOIN qui pose souci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sql2 = "SELECT resultat_0.DATE_ANALYSE, CONCAT(IFNULL(echantillon_complet_0.DESIGNATION_ORIGINE,''), IFNULL(echantillon_complet_0.ORIGINE_LIBRE,'')), methode_analyse_0.DESIGNATION_ANALYSE, unite_mesure_0.DESIGNATION_UNITE, resultat_0.RESULTAT_ANALYSE_CORRIGE " Sql2 = Sql2 & "FROM oenodoc.client client_0 " Sql2 = Sql2 & "INNER JOIN oenodoc.echantillon_complet echantillon_complet_0 ON client_0.NUM_CLIENT = echantillon_complet_0.NUM_CLIENT " Sql2 = Sql2 & "INNER JOIN oenodoc.echantillon echantillon_0 ON echantillon_complet_0.CODE_RECEPTION = echantillon_0.CODE_RECEPTION " Sql2 = Sql2 & "INNER JOIN oenodoc.resultat resultat_0 ON echantillon_0.CODE_RECEPTION = resultat_0.CODE_RECEPTION " Sql2 = Sql2 & "INNER JOIN oenodoc.methode_analyse methode_analyse_0 ON resultat_0.NUM_ANALYSE = methode_analyse_0.NUM_ANALYSE " Sql2 = Sql2 & "INNER JOIN oenodoc.unite_mesure unite_mesure_0 ON unite_mesure_0.NUM_UNITE = methode_analyse_0.NUM_UNITE " Sql2 = Sql2 & "WHERE client_0.CODE_CLIENT='" & Client & "' " Sql2 = Sql2 & "AND resultat_0.DATE_ANALYSE>='" & Format(DateDebut, "yyyy-mm-dd hh:mm:ss") & "' " Sql2 = Sql2 & "AND resultat_0.DATE_ANALYSE<='" & Format(DateFin, "yyyy-mm-dd hh:mm:ss") & "';"
Si quelqu'un a compris mes explication je suis preneur pour une piste de solution. Merci d'avance.
Partager