{Access}
Résolu
Geoff04
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Geoff04 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Geoff04 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici les données que j'ai dans ma table;
REF ---- Colonne1 ---- Colonne2 ---- Colonne3
123 ---- 1 ----------------- 1 ----------------- 1
456 ---- 0 ----------------- 1 ----------------- 1
789 ---- 0 ----------------- 0 ----------------- 1
Voici le résultat que je voudrais obtenir;
REF ------ ColonneX
123 ---------- p
456 ---------- m
789 ---------- g
Je cherche a faire; mais je ne trouve pas le moyen ?
si colonne1 =1 et colonne2 = 1 et colonne3 = 1 alors ColonneX = p
si colonne1 =0 et colonne2 = 1 et colonne3 = 1 alors ColonneX = m
si colonne1 =0 et colonne2 = 0 et colonne3 = 1 alors ColonneX = g
Qqun peut-il m'aider svp ?
Merci d'avance
Voici les données que j'ai dans ma table;
REF ---- Colonne1 ---- Colonne2 ---- Colonne3
123 ---- 1 ----------------- 1 ----------------- 1
456 ---- 0 ----------------- 1 ----------------- 1
789 ---- 0 ----------------- 0 ----------------- 1
Voici le résultat que je voudrais obtenir;
REF ------ ColonneX
123 ---------- p
456 ---------- m
789 ---------- g
Je cherche a faire; mais je ne trouve pas le moyen ?
si colonne1 =1 et colonne2 = 1 et colonne3 = 1 alors ColonneX = p
si colonne1 =0 et colonne2 = 1 et colonne3 = 1 alors ColonneX = m
si colonne1 =0 et colonne2 = 0 et colonne3 = 1 alors ColonneX = g
Qqun peut-il m'aider svp ?
Merci d'avance
7 réponses
Oui je peux ajouter une nouvelle colonne... (en fait la colonneX est déjà un rajout qui existe pas dans ma table d'origine)
re
donc je serais toi je ferais un petit bouton avec une procedure derriere :
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb
Set rs = db.OpenRecordset("ta_table")
With rs
If Not .EOF Then
Do Until .EOF
If !colonne1 = 1 And !colonne2 = 1 and !colonne3 = 1 Then
.Edit
!colonnex = "p"
.Update
End If
If !colonne1 = 0 And !colonne2 = 1 and !colonne3 = 1 Then
.Edit
!colonnex = "m"
.Update
End If
If !colonne1 = 0 And !colonne2 = 0 and !colonne3 = 1 Then
.Edit
!colonnex = "g"
.Update
End If
.MoveNext
Loop
End If
End With
rs.Close
End Sub
N'oublie pas les ! devant chaque champ
voila si besoin hesite pas
donc je serais toi je ferais un petit bouton avec une procedure derriere :
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb
Set rs = db.OpenRecordset("ta_table")
With rs
If Not .EOF Then
Do Until .EOF
If !colonne1 = 1 And !colonne2 = 1 and !colonne3 = 1 Then
.Edit
!colonnex = "p"
.Update
End If
If !colonne1 = 0 And !colonne2 = 1 and !colonne3 = 1 Then
.Edit
!colonnex = "m"
.Update
End If
If !colonne1 = 0 And !colonne2 = 0 and !colonne3 = 1 Then
.Edit
!colonnex = "g"
.Update
End If
.MoveNext
Loop
End If
End With
rs.Close
End Sub
N'oublie pas les ! devant chaque champ
voila si besoin hesite pas
Merci beaucoup...
Mais j'ai du mal m'exprimer... En fait je veux simplement faire une requête SQL, dans le menu requête d'access.
Ce n'est pas pour mettre dans un formulaire.
Dans mon select j'avais essayé ça, sans succès...
Select... iif (colonne1=1 and iif (colonne2=1 and iif (colonne3=1, 'P',''))) as ColonneX
Merci bcp pour ton coup de main
Mais j'ai du mal m'exprimer... En fait je veux simplement faire une requête SQL, dans le menu requête d'access.
Ce n'est pas pour mettre dans un formulaire.
Dans mon select j'avais essayé ça, sans succès...
Select... iif (colonne1=1 and iif (colonne2=1 and iif (colonne3=1, 'P',''))) as ColonneX
Merci bcp pour ton coup de main
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut
si tu es sûr de n'avoir que les combinaisons 1-1-1, 0-1-1 & 0-0-1
tu peux essayer select CAR(70 + colonne1 * 3 + colonne2 * 6 + colonne3) qui te donnera 'P', 'M' ou 'G' ; si tu veux p, m ou g en minuscules, remplace le 70 par 102
si tu n'as pas que ces combinaisons mais que tu ne veuilles qu'elles il faut rajouter dans le where
(colonne1 <= colonne2 and colonne2 <= colonne3 and colonne3 <= 1)
si tu es sûr de n'avoir que les combinaisons 1-1-1, 0-1-1 & 0-0-1
tu peux essayer select CAR(70 + colonne1 * 3 + colonne2 * 6 + colonne3) qui te donnera 'P', 'M' ou 'G' ; si tu veux p, m ou g en minuscules, remplace le 70 par 102
si tu n'as pas que ces combinaisons mais que tu ne veuilles qu'elles il faut rajouter dans le where
(colonne1 <= colonne2 and colonne2 <= colonne3 and colonne3 <= 1)
re
je ne connais pas le select car mais a ma connaissance impossible de mettre a jour une colonne en fonction des autre en 1 seul requete
je ne connais pas le select car mais a ma connaissance impossible de mettre a jour une colonne en fonction des autre en 1 seul requete
En fait je ne voulais pas mettre à jour, juste lors de la visualisation afficher soit P soit M soit G au lieu de 111 ou 011 ou 001.
@ fiu, j'ai essayé ta solution, mais j'avais encore un petit message d'erreur. A mon avis du au restant de ma requête. Mais finalement j'ai trouvé une solution autre que de faire une requête pour afficher P M ou G. J'ai fait une modification lors de l'implémentation de ma DB qui résout le problème.
Mais un tout grand en tout cas pour vos aides..
Première fois que je poste un message, mais certainement pas la dernière ;)
@ fiu, j'ai essayé ta solution, mais j'avais encore un petit message d'erreur. A mon avis du au restant de ma requête. Mais finalement j'ai trouvé une solution autre que de faire une requête pour afficher P M ou G. J'ai fait une modification lors de l'implémentation de ma DB qui résout le problème.
Mais un tout grand en tout cas pour vos aides..
Première fois que je poste un message, mais certainement pas la dernière ;)