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 :

[Règles de l'art ?] Select Case.. sur 85 case..


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut [Règles de l'art ?] Select Case.. sur 85 case..
    Bonjour à toutes et tous !

    J'ai utlisé le tuto d'Argyronet sur la génération de graphique (Super ! Merci !!!!), et j'ai donc découvert la manipulation de chaine avec strSQL (par exemple) et le Select Case.

    Je dois afficher un graph par département ou par secteur.
    Pour les départements, pas de pb, il y en a 10, et j'ai donc utiliser le Select Case en mettant pour chaque la strSQL adéquate, mais pour mes 85 secteurs, cela risque d'être, d'une part fastidieux, et d'autre part peu pratique à modifier si besoin. 85 chaines SQL différentes...

    Y a-t-il une autre méthode plus adéquate ?

    Je précise que si je peux éviter les ADO, recordset et toutes ces notions qui sont encore bien obscure pour moi pour le moment, ce serai plus simple...

    Merci par avance pour vos idées et vos conseils,

    JMarc

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Je pense que pour t'aider il faudrait voir à quoi ressemble des chaînes SQL et savoir sous quelle forme sont disponibles les paramètres associés aux secteurs.

    A+

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Bonjour PGZ et merci !

    Effectivement, c'est une bonne idée...
    Voici un extrait de mon code sur les départements, en fait, dans la chaine personnalisée, ne change que "GXW" ou "GXB"...

    Peut-on faire une liste prédéfinie puis demander à VBA de prendre les préfixes (GXx) tour à tour et de générer chaque chaine SQL ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            Case "GXW"
                strSQL = strSQLCommun & "Sum([qry080Graph].GXWL) AS [GXW Créés], Sum([qry080Graph].GXWO) AS [GXW Ouverts], " & _
                "Sum([qry080Graph].GXWS) AS [GXW Soldés],Sum([qry080Graph].GXWECAM) AS [GXW Age moyen En cours], Sum([qry080Graph].GXWCMS) AS [GXW Cycle moyen des soldés] FROM qry080Graph GROUP BY [qry080Graph].Mois " & _
                strSQLHaving
     
                Graph1LOS.RowSource = strSQL
                Graph1LOS.Requery
     
            Case "GXB"
                strSQL = strSQLCommun & "Sum([qry080Graph].GXBL) AS [GXB Créés], Sum([qry080Graph].GXBO) AS [GXB Ouverts], " & _
                "Sum([qry080Graph].GXBS) AS [GXB Soldés], Sum([qry080Graph].GXBECAM) AS [GXB Age moyen En cours], Sum([qry080Graph].GXBCMS) AS [GXB Cycle moyen des soldés] FROM qry080Graph GROUP BY [qry080Graph].Mois " & _
                strSQLHaving
     
                Graph1LOS.RowSource = strSQL
                Graph1LOS.Requery
    Merci,

    JMarc

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 3 904
    Points : 6 670
    Points
    6 670
    Par défaut
    Hello,

    essaie de remplacer la partie qui change par une variable ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = strSQLCommun & "Sum([qry080Graph]." & TheCode & "L) AS ..."
    Il te suffira d'affecter la valeur de ton select case à TheCode ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Bonjour Cafeine, et merci pour ton conseil.

    J'y avais pensé, sans savoir comment faire...

    Donc, comment faire pour récupérer la valeur du Select Case ?

    Sinon, ne serait-il pas possible de faire une manip du genre :

    Prendre la valeur de la première ligne d'une table
    L'inclure dans la chaine SQl
    Ecrire le case et la requete
    Passer à la ligne suivante et recommencer jusqu'à la fin de la table ???

    JMarc

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    juin 2003
    Messages
    1 227
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : juin 2003
    Messages : 1 227
    Points : 1 550
    Points
    1 550
    Par défaut
    Un for Each ... In.... Quoi
    Amicalement

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 163
    Points : 166
    Points
    166
    Par défaut
    Bonjour et merci DMboup !

    Je ne connaissais pas, j'ai trouvé des exemples dans la FAQ, je vais tester cela.

    Je suis quand même preneur de la manière de récupèrer la valeur du Case, si quelqu'un a la solution.

    Merci, je vous tiens au courant !

    JMarc

Discussions similaires

  1. Select case sur une date
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/11/2013, 17h45
  2. Select case sur une partie d'une chaine de caractere
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2012, 16h16
  3. Probleme Select Case sur Double Condition
    Par Danyel dans le forum VB.NET
    Réponses: 2
    Dernier message: 15/04/2008, 00h37
  4. select multiple sur plusieurs tables
    Par syl2095 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/12/2004, 16h48
  5. [debutant] select-insert sur tables de bases differentes
    Par RedMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/10/2004, 19h59

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