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 :

Trier une table après une requête d’ajout


Sujet :

Access

  1. #1
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut Trier une table après une requête d’ajout
    Bonjour

    Je voudrais appendre le contenu d’une table temporaire à une autre, et trier le résultat:

    table1
    taille / statut

    1 / ancien
    12 / ancien
    5 / ancien
    2 / ancien
    9 / ancien
    6 / ancien

    table2
    taille / statut

    3 / nouveau
    7 / nouveau
    11 / nouveau

    Je voudrais obtenir :
    table1
    taille / statut

    1 / ancien
    2 / ancien
    3 / nouveau
    5 / ancien
    6 / ancien
    7 / nouveau
    9 / ancien
    11 / nouveau
    12 / ancien


    Mais “INSERT INTO Table1 SELECT * FROM table2 ORDER BY taille” donne simplement:
    taille / statut
    1 / ancien
    12 / ancien
    5 / ancien
    2 / ancien
    9 / ancien
    6 / ancien
    3 / nouveau
    7 / nouveau
    11 / nouveau

    Si c’est impossible je pourrai toujours utiliser une requête union plutôt qu’ajout (je vois que l’association UNION...ORDER BY a fait couler beaucoup d’encre sur ce forum), mais quand même ça serait frustrant !

    Question subsidiaire: Peut-on changer l’ordre de tri d’une table en VBA ?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 168
    Points : 196
    Points
    196
    Par défaut
    Salut, si ton champs de tri est de type texte il est normal que ton tri te retourne les resultats dans le desordre.
    Utilise un champ numerique pour avoir le resultat que tu cherches.
    Sinon tu peux utiliser Asc ou Desc pour difinir le sens de ton tri

    Voilou a++
    Sur terre il y a 10 types de personnes, celles qui comprennent le binaire et les autres...

  3. #3
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Je ne suis pas un grand partisan du tri "physique", et j'ai l'impression que c'est ce que tu veux faire. Tu ne peux jamais garantir que tes données seront triées à l'écran si elles sont triées dans ta BD, en faisant simplement un SELECT.

    A mon avis, tu devrais faire ta requete INSERT INTO, ET PUIS si tu veux afficher, un SELECT...ORDER BY...

    Maintenant, comme l'a dit Fablondon, trier un colonne texte qui contient 1 2 3 ... 10 11 12 va te donner 1 10 11 12 2 3

    Mais à mon avis ce sont 2 problèmes différents, et honnêtement je ne comprends pas la démarche du INSERT INTO... ORDER BY... (mais il y a peut-être un sens, auquel cas tu peux nous l'expliquer!)
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    et si au lieu de 1 tu met 01 sa donne quoi?
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  5. #5
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Merci de votre aide.


    Ma table finale Table1 doit être exportée dans Excel, avec

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Table1", SpreadsheetPath

    C’est pour ça que j’ai besoin de la trier directement. Ma première idée était de faire un tri "physique" en me disant que ça risquait moins de poser problème.

    Je veux bien aussi essayer de trier la table a posteriori, comme on fait en cliquant sur l’icône AZ, mais je ne sais pas faire ça en VBA.


    Le tri alphabétique/numérique n’est pas le problème ici (même si ça m’a déjà fait le coup en d’autres occasions, c’est vrai que c’est traître !)


    Je cherche une solution peu gourmande de ressources parce que ça doit tourner sur une machine très lente qui prend les données sur un serveur encore plus lent (la table que j’ai mise dans ma question est une simplification). Donc je voudrais éviter de faire plusieurs tris sucessifs par exemple.

  6. #6
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Je ne connais pas du tout la gourmandise de Access, mais au niveau simplicité, je reste convaincu que le mieux est de faire une table, puis dessus une requete triée, et d'exporter la requete au lieu de la table.

    Donc tu fais ton INSERT INTO, tu crées ta requête avec un ORDER BY, et tu exportes le résultat de la requête au lieu de la table elle-même. Je ne pense pas que cette étape en plus soit très lourde.

    Tiens-moi au courant!
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

  7. #7
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Merci Kirgan, j’ai fait comme tu as dit. En fait je n’avais pas réalisé qu’on pouvait utiliser TransferSpreadsheet directement avec une requête.

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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