Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1829 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][SQL] Convertion de valeurs dans une requete SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][SQL] Convertion de valeurs dans une requete SQL

n°1227310
sLiZeR
Posté le 20-10-2005 à 17:22:49  profilanswer
 

Bonjour,  :hello:  
 
          J'ai un champ sous SQL nommé "Securite" qui est soit à 0 soit à -1.
Pour que ce soit moins dur à lire je convertis en Oui (-1) ou Non (0)
 
Je fait la convertion à chaque fois qu'il est necessaire mais j'ai une zone de liste ou je n'y arrive pas.
 
Me.lstNC.RowSource = "SELECT [N°], [Raison sociale], [CF], [Date évènement], [Secteur], [Type de NC], [Securite] FROM RS_CF, NC WHERE [CF] = [Code Fournisseur] ORDER BY [N°];"
 
Comment puis-je modifier ma requete pour qu'elle renvoie Oui ou Non à la zone de liste en fonction de la valeur du champ securite plz ? (plutot que 0 ou -1)
 
Si vous preferez aiguiller que donner la réponse je suis preneur d'information merci :)


Message édité par sLiZeR le 21-10-2005 à 13:56:51
mood
Publicité
Posté le 20-10-2005 à 17:22:49  profilanswer
 

n°1227323
sircam
I Like Trains
Posté le 20-10-2005 à 17:29:58  profilanswer
 

Tu devras faire appel à une fonction non standard, selon la dispo de ton DBMS, genre IF(...).
 
A éviter. Ce genre de conversion est mieux traitée par l'application par-dessus que par SQL lui-même.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1227329
sLiZeR
Posté le 20-10-2005 à 17:35:05  profilanswer
 

Désolé j'ai pas compris tes remarques ...
 Si tu peux eclaircir svp

n°1227345
sircam
I Like Trains
Posté le 20-10-2005 à 17:55:08  profilanswer
 

Jete un oeil sur la doc te ton DBMS, pour voir si il offre une fonction "IF".
 
Maintenant, même si c'est le cas, ce n'est pas standard et il y a fort à croire que tu ne présentes pas les résultats de tes queries tels quels, non ?
 
A la limite, si tu n'as pas d'appli par dessus, tu peux envisager cette solution. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1227780
sLiZeR
Posté le 21-10-2005 à 10:21:01  profilanswer
 

Si dans mon cas il faut que je procède comme cela.
 
Je vais tester si je trouve une fonction "IF"
 
à suivre...

n°1227782
sircam
I Like Trains
Posté le 21-10-2005 à 10:24:25  profilanswer
 

sLiZeR a écrit :

Si dans mon cas il faut que je procède comme cela.


Ah ouais ? [:dawa] Strofor sa !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1227989
sLiZeR
Posté le 21-10-2005 à 13:23:45  profilanswer
 

sircam a écrit :

Ah ouais ? [:dawa] Strofor sa !


 
ce qui est trop fort c'est l'ortographe utilisé par un soit disant  "Tueur de boulays illettrés"  
 
Bref je ne vois pas trop ta remarque, j'ai une zone de liste et il faut bien que je lui donne un contenu nan ? C'est pas judicieux d'utiliser une requete sql pour ça ?
 
Me.lstNC.RowSource = "SELECT [N°], [Raison sociale], [CF], [Date évènement], [Secteur], [Type de NC], [Securite] FROM RS_CF, NC WHERE [CF] = [Code Fournisseur] ORDER BY [N°];"  
 
je vois pas ou est le problème... Si ce n'est que mon champ sécurité (qui est un champ de type bit) n'est pas très lisible pour les utilisateurs... (cf 1er message)

n°1228012
Profil sup​primé
Posté le 21-10-2005 à 13:42:09  answer
 

IIf(TaZone = 0,"Non","Oui" )

n°1228020
sLiZeR
Posté le 21-10-2005 à 13:56:38  profilanswer
 

Super c'est parfait ça fonctionne.
 
N'empeche que j'avais pas vu ta fonction. J'était tomber sur IF(tazone=0, "non", "oui" ) mais SQL me disait qu'il ne connaissait pas. J'ai trouver cela dans l'aide d'Access. Quelle est la différence plz ?

n°1228025
Profil sup​primé
Posté le 21-10-2005 à 14:05:02  answer
 

IIF ( Condition, ValeurRetournéeSiVrai, ValeurRetournéeSiFaux)
> IIf est donc une fonction qui renvoit une valeur
> Par contre a utiliser avec modération, car les deux valeurs sont évaluées..
Par exemple  
x = 0
IIf(x>0, 1/X, 1)  
> la valeur 1/X est evaluée et donc cause une erreur (division par zero)
 
 

mood
Publicité
Posté le 21-10-2005 à 14:05:02  profilanswer
 

n°1228031
sLiZeR
Posté le 21-10-2005 à 14:10:47  profilanswer
 

oki

n°1228043
sLiZeR
Posté le 21-10-2005 à 14:27:55  profilanswer
 

Si je pe me permettre une pitite correction.
 
Je parle pour les zones de liste.
 
ça ne fonctionne que si c'est inscrit comme cela  
 
SELECT ...., IFF([securite]=0, "Non", "Oui" ) AS Securite2 ....  
 
Par exemple.  
Voila

n°1228051
Profil sup​primé
Posté le 21-10-2005 à 14:31:34  answer
 

Oui c'est exact il le faut le nommer, comme par exemple pour AVG() etc..
 
 
EDIT : mais pourquoi n'as tu pas déclaré cette variable en booleen?
 
EDIT 2 : si jamais tu appelle cette requête à partir d'un programme (ce que je doute), evite d'utiliser cette fonction, et gère cela plutot dans ton programme lorsque tu affiche cette valeur.


Message édité par Profil supprimé le 21-10-2005 à 14:40:39
n°1228083
sircam
I Like Trains
Posté le 21-10-2005 à 14:49:03  profilanswer
 

sLiZeR a écrit :

ce qui est trop fort c'est l'ortographe utilisé par un soit disant  "Tueur de boulays illettrés"


Mais je peux me le permettre. [:itm]
 
Si tu passais plus souvent, tu comprendrais... [:fitterashes]
 
Parfois, j'essaye de me mettre au niveau de la masse.  [:airforceone]
 
Pour ton pb, on vient de te donner la solution toute faite, mais je persiste à me demander si c'est bien judicieux. Les rares fois où, dans ma folle jeunesse, j'ai utilisé de tels artifices, et l'expérience m'a appris que ce n'était pas la bonne façon de faire.
 
Mais si tu es convaincu du contraire, tant mieux pour toi. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1228158
sLiZeR
Posté le 21-10-2005 à 15:52:16  profilanswer
 

Je n'en suis pas convaincu mais je ne vois pas comment faire autrement. Je vous expose le contexte si vous voyez d'autre moyen dites moi.
 
Mon programme démarre, présence de 4 onglets, contenant chaqun une zone de liste pour tout simplement afficher des valeurs contenu dans mes tables.
 
au lancement du formulaire  principal, j'ai mis une fonction init_lst qui comme son nom l'indique initialise mes 4 zone de liste. Pour cela j'utilise la commande suivante :
Me.la_liste_concernée.rowsource = "La requete SQL qui me renvoie mes informations."
 
Sur ce topic j'ai présenter une de mes listes qui devait afficher une information binaire.
 
Comment puis-je eviter d'utiliser cette fonction si ce n'est pas judicieux merci.

n°1228169
sircam
I Like Trains
Posté le 21-10-2005 à 15:58:57  profilanswer
 

Comme on te l'as dit plusieurs fois : c'est à l'application à mettre en page les données et de décider, p.e., de remplacer "1" par "oui". Pas vraiment à ton query SQL de le faire. Imagine p.e. que ton appli soit multilingue : comment ferais-tu pour gérer ça au niveau SQL ?
 
Maintenant, avec ces trucs RAD 4GL à dix sous ou le GUI fait office de data access layer et de persistence layer, on s'expose à des difficultés.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1228273
sLiZeR
Posté le 21-10-2005 à 17:24:54  profilanswer
 

ok j'ai compris je vais voir ce que je peux faire merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][SQL] Convertion de valeurs dans une requete SQL

 

Sujets relatifs
[Résolu] Insertion de CheckBox automatique[SQL/Access] Problème de rafraichissement de zone de liste
requete d'ajout qui ne fait rienSQL Transac Optimisation
[résolu] erreur javascript sous IE (FireFox et Opera ok)Exécuter une chaîne de caractère en PL/SQL
pb résolu: utiliser un modéle pour faire plusieurs copies(RESOLU) : Comment ajouter un message d'erreur?
Z-index et objet flash [Résolu]Résolu : Recherche des doublons dans la base.
Plus de sujets relatifs à : [Résolu][SQL] Convertion de valeurs dans une requete SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR