Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 11h41   #1
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Par défaut Switch fonction trop complexe

Bonjour,

J'ai un petit problème que je n'arrive pas à identifier, du moins à comprendre ce qui fait "foirer" ma requête.

Je suis sous ACCESS 2003, dans une mes requêtes j'utilise la fonction SWITCH pour coder différement certaines occurences.

Dès lors que je veux rajouter une nouvelle occurence dans la clause SWITCH ça ne passe pas, j'ai comme message : expression trop complexe.

Voilà, je ne comprends pourquoi ça marche pour 12 valeurs et pour 13 non.

Je mets la requête qui marche et celle qui plante, est ce que quelqu'un saurait comment rajouter de nouvelles possibilités dans le SWITCH ?

Merci.

Requête qui marche :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT [A02 004].PM, 
[A02 004].AN, 
 
Switch([COD] Like "OP*","ENRO",
[AN_ANACOD] Like "*_PO*","ENRO",
[AN_ANACOD] Like "RVES","ENRO",
[AN_ANACOD] Like "*-BE*","ENRO",
[AN_ANACOD] Like "BE","ENRO",
[AN_ANACOD] Like "*_BE*","ENRO",
[AN_ANALIB] Like "*OPER*","ENRO",
[AN_ANALIB] Like "*opér*","ENRO",
[AN_ANALIB] Like "*RESECTION*","ENRO",
[AN_ANACOD] Like "CR*","ENRO",
[AN_ANACOD] Like "*OP*","ENRO",
[AN_ANACOD] Like "CUR","ENRO",
[AN_ANACOD] Like "HYPOP","ENRO",True,Null) AS ACOD1I
 
FROM [A02 004];
Requête qui plante quand je rajoute une nouvelle occurence:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT [A02 004].PM, 
[A02 004].AN, 

Switch([COD] Like "OP*","ENRO",
[AN_ANACOD] Like "*_PO*","ENRO",
[AN_ANACOD] Like "RVES","ENRO",
[AN_ANACOD] Like "*-BE*","ENRO",
[AN_ANACOD] Like "BE","ENRO",
[AN_ANACOD] Like "*_BE*","ENRO",
[AN_ANALIB] Like "*OPER*","ENRO",
[AN_ANALIB] Like "*opér*","ENRO",
[AN_ANALIB] Like "*RESECTION*","ENRO",
[AN_ANACOD] Like "CR*","ENRO",
[AN_ANACOD] Like "*OP*","ENRO",
[AN_ANACOD] Like "CUR","ENRO",
[AN_ANACOD] Like "CURO","ENRO",
[AN_ANACOD] Like "HYPOP","ENRO",True,Null) AS ACOD1I

FROM [A02 004];
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 14h32   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
salut,
et au lieu de faire un switch, pourquoi ne pas partir sur table externe avec des jointures ?

Ca t'evite de modifier ta requete a chaque ajout de mapping.

Est-ce envisageable dans ton cas ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/03/2011, 08h47   #3
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Salut jpcheck,

J'avais justement pensé à faire comme tu me le conseil, le problème, c'est que la requête fais appel à des select imbriqués. Du coup je ne sais pas trop comment m'y prendre .
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h44.


 
 
 
 
Partenaires

Hébergement Web