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

Access Discussion :

Ajouter "Qq chose" en tête d'une liste modifiable.


Sujet :

Access

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut Ajouter "Qq chose" en tête d'une liste modifiable.
    Bonjour à tous.

    J'ai une liste modifiable qui a une requête comme RowSource. J'aimerais ajouter "Nouveau" en haut de cette liste.
    J'ai vu que la question était traitée dans la FAQ.
    La solution est de mettre ce type de requête en RowSource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT monChamp FROM (SELECT monChamp, 1 as Position FROM maTable UNION SELECT Top 1 "Nouveau", 0 FROM maTable) ORDER BY Position;
    Cette requête entrée dans Acces fonctionne, mais elle renvoie une erreur dans ma RowSource. Access me dit que "la source n'existe pas".
    J'ai tenté d'ajouter des parenthèses dans la sous-requête, mais une autre erreur est renvoyée : "erreur dans la clause JOIN".

    Si quelqu'un a une idée, ça m'aiderait bien.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut Petite précision.
    Je ne sais pas si ça a son importance, mais ma liste est "indépendante" (pas de source).
    Si ça peut aider pour le diagnostique...

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 263
    Points : 19 428
    Points
    19 428
    Billets dans le blog
    63
    Par défaut
    Salut,

    tu crée une requête union avec le générateur de requête en mode sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT monChamp, 1 as Position FROM maTable UNION SELECT Top 1 'Nouveau', 0 FROM maTable;
    puis tu enregistre ta requête que tu nommes: ma_sous_requete

    Ensuite tu mets dans la propriété RowSource de ta liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT monChamp FROM ma_sous_requete ORDER BY Position;

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    c'est normal que çà ne fonctionne pas car "nouveau" n'existe pas dans la table

    Il faut corriger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StrSql = SELECT monChamp, 1 as Position FROM maTable UNION SELECT  'Nouveau' as Nouv, 0 as Position FROM maTable 
    ORDER BY Position, monChamp;
    puis tu affecte la rowsource

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maListeModidiable.rowsource = strsql
    de cette façon le nouveau sera en haut

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Effectivement, je viens de remarquer que le UNION passe difficilement en RowSource.

    Ca passe nickel avec la sous_requête enregistrée.

    Merci beaucoup.
    A+

  6. #6
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Ce n'est pas UNION qui ne fonctionne pas en rowsource c'est qu'il y a erreur dans ton UNION.

    J'ai plusieurs liste qui fonctionnent très bien avec le rowsource et UNION et je n'ai pas de problème

    Il vaut parfois mieux chercher où est l'erreur et de la comprendre que de faire de prendre d'autre chemin

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Citation Envoyé par Alexandre
    Ce n'est pas UNION qui ne fonctionne pas en rowsource c'est qu'il y a erreur dans ton UNION.
    Tu as surement raison. La requête que j'ai testée était parfaitement exécutée par Access, mais posait problème en RowSource, mais j'avoue ne pas maîtriser toutes les subtilités du SQL, et notamment appliqué à Access.
    Je ne connaissais d'ailleurs pas le SELECT Top 1 "Qq Chose" ..., et je ne comprends pas vraiment comment ça fonctionne (je me documenterai ultérieurement). Bref, à part quelques bidouillages, je n'ai pas trop su quoi faire de cette requête.
    Le pire, comme souvent, c'est que la solution doit être évidente, mais je n'ai fais que passer à côté...

    Citation Envoyé par Alexandre a cité
    Il vaut parfois mieux chercher où est l'erreur et de la comprendre que de faire de prendre d'autre chemin.
    Bien d'accord, mais ça me joue régulièrement des tours : je peux passer des heures à m'acharner sur un problème alors que d'autres solutions me sont proposées, mais là, mon temps est vraiment précieux, et en plus, enregistrer la requête me simplifie la tâche pour d'autre choses.
    Mais si ça t'intéresse, voici ma requête, perso, je me repencherai peut-être dessus, mais plus tard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Identifiant from (
       SELECT ENTITE.Identifiant, 1 as pos from ENTITE INNER JOIN Sont_Lies 
            ON ENTITE.Identifiant=Sont_Lies.Id_Entite_Fils
       UNION
       SELECT Top 1 "Nouveau", 0 from ENTITE
    ) ORDER BY pos;
    En fait c'est vrai que je ne comprends pas pourquoi la réunion est passé en sous-requête et non pas en requête principale...

    Bon allez, je vous laisse tranquile. Après tout, j'ai une solution qui fonctionne très bien
    Encor merci.
    @+

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

Discussions similaires

  1. Ajouter du texte à une Liste modifiable
    Par alainGL dans le forum IHM
    Réponses: 2
    Dernier message: 04/09/2008, 11h38
  2. Ajout de Node a partir d'objet contenant une liste d'objet
    Par Al_Bundy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/08/2008, 14h35
  3. Réponses: 4
    Dernier message: 14/01/2008, 00h15
  4. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50

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