VBA sous access (pa rigolai!!!)

VBA sous access (pa rigolai!!!) - VB/VBA/VBS - Programmation

Marsh Posté le 15-05-2002 à 08:58:34    

bonjour
 
est ce possible avec une requete sql d'afficher un champ qui n'existe pas, et qui résulte d'un calcul à partir d'autres champs ?  
merci


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 08:58:34   

Reply

Marsh Posté le 15-05-2002 à 09:04:41    

ben oui, tu as les fonctions Sum, Avg, etc....
 
Ex de requete qui créé un champ "Somme" contenant la somme des valeurs contenues dans Champ1 et Champ2
 
SELECT Champ1, Champ2, Champ1+Champ2 AS Somme FROM Table


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-05-2002 à 09:13:01    

ok, mais c un peu plus compliqué, en fait faudrait presque redfaire une requete pour chaque enregistrement, pour obtenir ce nouveau champ...
 
??


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 09:17:14    

que veux tu faire exactement ? :heink:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-05-2002 à 09:21:12    

je t'explique
j'ai 9 champs dans une table, contenant ou non une valeur
 
lors de la requete que je crée, je souhaite inclure un champ qui affiche le libéllé du premier de ces 9 champs, s'il contient une valeur, sinon le 2e, sinon le 3e etc...
 
compris ou pas ? :D  
je sais c tordu


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 09:34:53    

up
c vraiment urgent, n'hésitez pas à me dire si je n'ai pas été clair !!


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 09:48:27    

putain y'a vraimenet personne qui peut m'aider ??
help vite, la survie de mon stage en dépend..  :cry:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 09:55:06    

tordu, c'est le mot...... :sarcastic:  
 
expose plutot le pb initial, y'a surement un moyen plus simple d'arriver au résultat que tu souhaites ! parce que la, ce que je comprends, c'est qu'il faudra créé des colonnes supplémentaires dans ta table si des champs contiennent une valeur (ALTER TABLE), et ça me semble assez space ....  :heink:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-05-2002 à 09:58:53    

SELECT iff( champ1 Is Null,iff(champ2 Is Null, iff(...), champ2),champ1) AS champ FROM table;
 
OK ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-05-2002 à 10:00:50    

Harkonnen a écrit a écrit :

tordu, c'est le mot...... :sarcastic:  
 
expose plutot le pb initial, y'a surement un moyen plus simple d'arriver au résultat que tu souhaites ! parce que la, ce que je comprends, c'est qu'il faudra créé des colonnes supplémentaires dans ta table si des champs contiennent une valeur (ALTER TABLE), et ça me semble assez space ....  :heink:  




 
 
 
certes  
je recommence
 
j'ai une table principale contenant une quinzaine de champs... parmi ces champs, 9 représentent un type d'incident (agression, vol...) . si un de ces champs contient une valeur, c'est que l'incident courant est de ce type. mais l'incident peut etre de plusieurs types (vol+agression par ex...)
comme les types d'incident apparaissent par ordre de gravité, j'aimerais savoir au final quel est le premier champ rempli.  
je veux donc afficher un état décrivant chaque incident (càd chaque entrée de ma table principale), avec un champ type d'incident indiquant quel est le premier type renseigné...
et on en revient à ce que j'expliquai tout à l'h !!
 
 
c mieux ??


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 10:00:50   

Reply

Marsh Posté le 15-05-2002 à 10:07:14    

Si y'a moyen de changer la structure de la BD, ce serait mieux, bikoze, là t'es limité à 9 niveaux de gravité.
 
Donc, tu fait une table des types d'incident avec :
 
ID (Identifiant du type)
LIB (Libellé)
 
Et une table de détail des type d'incident d'un incident :
 
ID_INCIDENT (de l'incident.)
ID_TYPE (Identifiant du niveau de gravité)
NIVEAU de gravité.
 
Ensuite, tu fait ta requête en indiquant NIVEAU=1 dans le WHERE !
 
OK ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-05-2002 à 10:11:07    

Mara's dad a écrit a écrit :

SELECT iff( champ1 Is Null,iff(champ2 Is Null, iff(...), champ2),champ1) AS champ FROM table;



 
C'est pas plutot "iif" ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-05-2002 à 10:12:42    

Mara's dad a écrit a écrit :

Si y'a moyen de changer la structure de la BD, ce serait mieux, bikoze, là t'es limité à 9 niveaux de gravité.
 
Donc, tu fait une table des types d'incident avec :
 
ID (Identifiant du type)
LIB (Libellé)
 
Et une table de détail des type d'incident d'un incident :
 
ID_INCIDENT (de l'incident.)
ID_TYPE (Identifiant du niveau de gravité)
NIVEAU de gravité.
 
Ensuite, tu fait ta requête en indiquant NIVEAU=1 dans le WHERE !
 
OK ?  




 
 
sauf que c beaucoup plus compliqué que cela
un type d'incident est encore divisé en catégories (vol est caractérisé par vol à main armée, vol àla tire, etc)
 
la structure de la base a été faite ainsi pour autoriser la multisélection d'un type d'incident
avant y'avait qu'un champ type d'incident, on ne pouvait en choisir qu'un maintenant c possible d'en choisir plusieurs...


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 10:25:11    

Harkonnen a écrit a écrit :

 
 
C'est pas plutot "iif" ?  




 
alors est ce iif ou iff ???


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 10:33:19    

c'est IFF !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-05-2002 à 10:34:56    

Mara's dad a écrit a écrit :

c'est IFF !  




 
ok thx je suis en train d'essayer ms ça ne marche pas trop
ms bon je dois etre faible


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 10:46:13    

voila ce que je tape
chaine = chaine & " AND TYPE_INCIDENT.typeIncident = (SELECT iff(INCIDENT.agression IS NULL;iff(INCIDENT.vol IS NULL;iff(INCIDENT.incendie IS NULL ; iff(INCIDENT.dégradation IS NULL;iff(INCIDENT.comportement IS NULL;iff(INCIDENT.problèmes IS NULL;iff(INCIDENT.regroupements IS NULL;iff(INCIDENT.éclairage IS NULL;'Divers';'Eclairage public';);'Regroupements';);'Problèmes sociaux';);'Trouble à l ordre public';);'Dégradation';);'Incendie de véhicule';);'Vol';);'Agression';) AS  type FROM TYPE_INCIDENT) "
 
et il me dit erreur de syntaxe...
 
me suis planté ??


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 11:13:39    

Y'A PLUS PERSONNE ???
 
 :??:   :cry:  :cry:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 11:41:58    

:bounce:  :bounce:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 13:45:48    

:bounce:  :bounce:  :bounce:  
p'tain c un bide !  
sauvez moi


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 14:12:10    

Il me semble que c'est des "," qu'il faut mettre, et pas des ";" !
 
Les ";", c'est quand tu fait ta requête dans l'assistant, sinon, en mode SQL, c'est des "," !
 
Vive PetitMou et sa logique à la CON !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-05-2002 à 14:19:11    

maintenant il me dit "iff, fonction non définie dans l'expression"...
 
lol ça n'arrete pas... :fou:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 14:31:50    

moi je suis sur que c'est iif...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-05-2002 à 14:33:25    

MARA's DAD !  
je confirme, c bien IIF, avec ça ça marche...   :sol:  
seul petit problème qui subsiste, g des enregistrements en trop, y'a des doublons, faut que je vérifie ma requête...


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 15-05-2002 à 14:50:41    

CA MARCHE !!!
ok, juste un ptit prob de nom de table et il m'affiche exactement ce qu'il faut  
 
merci à tous.....
 
 :sol:  :hello:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed