IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

INNER JOIN avec cellules vides [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Oenologue
    Inscrit en
    Juin 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Oenologue
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2011
    Messages : 79
    Par défaut INNER JOIN avec cellules vides
    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 :
    Nom : screen01.jpg
Affichages : 417
Taille : 172,7 Ko
    Pour cela j'utilise la requête ci-dessous :
    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") & "';"
    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é !

    Donc j'obtiens ceci :
    Nom : screen02.jpg
Affichages : 376
Taille : 139,2 Ko
    Avec le code suivant :
    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") & "';"
    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.

    Si quelqu'un a compris mes explication je suis preneur pour une piste de solution. Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Oenologue
    Inscrit en
    Juin 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Oenologue
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2011
    Messages : 79
    Par défaut
    Bon et bien en fait, il fallait écrire :

    LEFT OUTER JOIN oenodoc.unite_mesure unite_mesure_0 ON methode_analyse_0.NUM_UNITE = unite_mesure_0.NUM_UNITE

    Jointure externe pour retourner tous les enregistrements de la table de gauche (methode_analyse_0.NUM_UNITE) même si la condition n’est pas vérifié dans l’autre table.
    J'avance lentement mais je progresse...

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonsoir,
    le outer est n'est pas utile mais tu t'ais souvenu du left je t'en avais parlé; bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. combobox sans doublon (colonne de reference avec cellule vide)
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/04/2008, 17h08
  2. Réponses: 7
    Dernier message: 13/12/2007, 13h32
  3. Problème de fonction avec cellule vide
    Par Samjeux dans le forum Excel
    Réponses: 4
    Dernier message: 14/06/2007, 08h45
  4. INNER JOIN avec des données de sélection
    Par EK1_ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2006, 18h40
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo