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

Langage SQL Discussion :

[Access 2003] Tri sur champ vide


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut [Access 2003] Tri sur champ vide
    Bonjour à tous !
    Voilà mon problème est simple mais cependant je patine sec..
    J'ai une table TClient Access 2003.
    J'ai 2 champs dans la table pour faire simple (en plus de l'id bien entendu) : NomHomme et NomFemme.
    Je dois afficher le listing client par ordre alphabétique.
    Je fait donc la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TClient ORDER BY NomHomme
    Ca fonctionne bien quand NomHomme est renseigné. Mais pour plusieurs fiches, j'ai un nom de femme et pas d'homme.
    Ca m'affiche donc d'abord tous les "NomHomme" qui sont en blancs (mais où le tri sur NomFemme est fait n'importe comment) et ensuite les "NomHomme" par ordre alphabétique.
    Je souhaiterais donc faire le tri suivant :
    SELECT * FROM TClient ORDER BY NomHomme ET SI NomHomme='', ALORS TRI SUR NomFemme
    Mais je ne connais pas la syntaxe SQL pour cela...
    J'ai regardé sur sqlpro.developpez.com mais je n'ai pas bien regardé à mon avis car je n'ai rien vu dans ce site très complet pourtant.
    Avez-vous une idée? Merci d'avance,

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM TClient 
    ORDER BY NZ(NomHomme,NomFemme)
    Il remplace les null de NomHomme par NomFemme pour le tri

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Merci pour votre réponse !
    Dans Access 2003, ça fonctionne sans problème.
    Maintenant je suis sous Borland C++ Builder et là il plante en me disant :

    Fonction 'NZ' non définie dans l'expression
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ImprimeListeClients->Query1->SQL->Clear();
            ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient ORDER BY NZ(NomHomme,NomFemme)");
            ImprimeListeClients->Query1->Open();
    un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient ORDER BY NomHomme");
    fonctionne parfaitement lui...
    Mais peut-être devrai-je m'adresse au forum BCB ?

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pourquoi ne pas enregistrer la requête dans Access et appeler cette requête ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    En fait, ça fonctionne en faisant simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ImprimeListeClients->Query1->SQL->Clear();
            ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient ORDER BY (NomHomme,NomFemme)");
            ImprimeListeClients->Query1->Open();
    Merci !

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

Discussions similaires

  1. ACCESS 2003 : TRI sur le mois
    Par Eric26 dans le forum Access
    Réponses: 3
    Dernier message: 10/06/2006, 21h17
  2. [CR]tri sur champ formule
    Par planetevoyage dans le forum Formules
    Réponses: 6
    Dernier message: 31/08/2005, 14h31
  3. Requete sur champ vide
    Par Eltaz dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2005, 13h36
  4. tri sur champ texte
    Par ridan dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/08/2004, 16h28
  5. Pb de tri avec champs vide
    Par nesbla dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2004, 17h42

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