Bonjour à tous, et merci de votre aide
voila mon problème
La requête suivante :
SELECT Ligne, Min(PK_deb) AS MinDePK_deb, Max(PK_fin) AS MaxDePK_fin, ELECT
FROM Dec_ligne
GROUP BY Ligne, ELECT
HAVING Ligne="930000";
Me donne ce résultat
Ligne MinDePK_deb MaxDePK_fin ELECT
930000 0 259,155 1500V
930000 5,448 257,475 25000V
Moi je cherche à obtenir ceci
Ligne MinDePK_deb MaxDePK_fin ELECT
930000 0 5,448 1500V
930000 5,448 257,475 25000V
930000 257,475 259,155 1500V
Je pense qu'il est necessaire de programmer un peu... non?
Je ne pense pas réaliser cela en une seule requête .... si?
Alors comment faire? puis-je avoir de l'aide?
merci
Il est normal que cette requête te retourne ce résultat : la notion GROUP BY te dit "1 ligne par élément du GROUP BY", donc une ligne par Ligne, ELECT. Il faudrait définir une clé de regroupement différente pour les 1er couples Ligne, ELECT et les 2ème couples Ligne, ELECT. Par exemple, s'il s'agit d'un groupe de mesure :
Car, à priori, le système n'a aucune raison de considérer le 2ème 930000 1500V différent du 1er. Ensuite : GROUP BY Ligne, Seq, ELECT
J'espère avoir été clair. Bon courage, Richard.
"Papilou" a écrit dans le message de news: 446f07eb$0$12786$
Bonjour à tous, et merci de votre aide voila mon problème La requête suivante : SELECT Ligne, Min(PK_deb) AS MinDePK_deb, Max(PK_fin) AS MaxDePK_fin, ELECT FROM Dec_ligne GROUP BY Ligne, ELECT HAVING Ligne="930000";
Me donne ce résultat Ligne MinDePK_deb MaxDePK_fin ELECT 930000 0 259,155 1500V 930000 5,448 257,475 25000V
Moi je cherche à obtenir ceci Ligne MinDePK_deb MaxDePK_fin ELECT 930000 0 5,448 1500V 930000 5,448 257,475 25000V 930000 257,475 259,155 1500V
Je pense qu'il est necessaire de programmer un peu... non? Je ne pense pas réaliser cela en une seule requête .... si? Alors comment faire? puis-je avoir de l'aide? merci
Bonjour,
Il est normal que cette requête te retourne ce résultat : la notion
GROUP BY te dit "1 ligne par élément du GROUP BY", donc une ligne par Ligne,
ELECT.
Il faudrait définir une clé de regroupement différente pour les 1er
couples Ligne, ELECT et les 2ème couples Ligne, ELECT.
Par exemple, s'il s'agit d'un groupe de mesure :
Car, à priori, le système n'a aucune raison de considérer le 2ème 930000
1500V différent du 1er.
Ensuite : GROUP BY Ligne, Seq, ELECT
J'espère avoir été clair.
Bon courage,
Richard.
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news:
446f07eb$0$12786$636a55ce@news.free.fr...
Bonjour à tous, et merci de votre aide
voila mon problème
La requête suivante :
SELECT Ligne, Min(PK_deb) AS MinDePK_deb, Max(PK_fin) AS MaxDePK_fin,
ELECT
FROM Dec_ligne
GROUP BY Ligne, ELECT
HAVING Ligne="930000";
Me donne ce résultat
Ligne MinDePK_deb MaxDePK_fin ELECT
930000 0 259,155 1500V
930000 5,448 257,475 25000V
Moi je cherche à obtenir ceci
Ligne MinDePK_deb MaxDePK_fin ELECT
930000 0 5,448 1500V
930000 5,448 257,475 25000V
930000 257,475 259,155 1500V
Je pense qu'il est necessaire de programmer un peu... non?
Je ne pense pas réaliser cela en une seule requête .... si?
Alors comment faire? puis-je avoir de l'aide?
merci
Il est normal que cette requête te retourne ce résultat : la notion GROUP BY te dit "1 ligne par élément du GROUP BY", donc une ligne par Ligne, ELECT. Il faudrait définir une clé de regroupement différente pour les 1er couples Ligne, ELECT et les 2ème couples Ligne, ELECT. Par exemple, s'il s'agit d'un groupe de mesure :
Car, à priori, le système n'a aucune raison de considérer le 2ème 930000 1500V différent du 1er. Ensuite : GROUP BY Ligne, Seq, ELECT
J'espère avoir été clair. Bon courage, Richard.
"Papilou" a écrit dans le message de news: 446f07eb$0$12786$
Bonjour à tous, et merci de votre aide voila mon problème La requête suivante : SELECT Ligne, Min(PK_deb) AS MinDePK_deb, Max(PK_fin) AS MaxDePK_fin, ELECT FROM Dec_ligne GROUP BY Ligne, ELECT HAVING Ligne="930000";
Me donne ce résultat Ligne MinDePK_deb MaxDePK_fin ELECT 930000 0 259,155 1500V 930000 5,448 257,475 25000V
Moi je cherche à obtenir ceci Ligne MinDePK_deb MaxDePK_fin ELECT 930000 0 5,448 1500V 930000 5,448 257,475 25000V 930000 257,475 259,155 1500V
Je pense qu'il est necessaire de programmer un peu... non? Je ne pense pas réaliser cela en une seule requête .... si? Alors comment faire? puis-je avoir de l'aide? merci
Papilou
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
Merci de ta réponse.
J'ai parfaitement compris ta solution.
Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir
aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment
faire? c'est ca la question.
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
J-Pierre
Bonjour,
En fait, tu n'as pas dit ce que tu voulais, tu donnes un exemple et nous devons en déduire que..... Je pense avoir aussi compris, mais je préfèrerais que tu le dises toi-même :-) Oublie la programmation, et essaie de dire en français ce que tu veux. Après, il sera facile de traduire en VBA
A+ J-Pierre
"Papilou" a écrit dans le message de news: 446f13b0$0$12814$
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
Bonjour,
En fait, tu n'as pas dit ce que tu voulais, tu donnes un exemple et nous devons en déduire que..... Je pense avoir aussi
compris, mais je préfèrerais que tu le dises toi-même :-)
Oublie la programmation, et essaie de dire en français ce que tu veux. Après, il sera facile de traduire en VBA
A+
J-Pierre
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news: 446f13b0$0$12814$636a55ce@news.free.fr...
Merci de ta réponse.
J'ai parfaitement compris ta solution.
Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne
supplémentaire, oui, mais comment faire? c'est ca la question.
En fait, tu n'as pas dit ce que tu voulais, tu donnes un exemple et nous devons en déduire que..... Je pense avoir aussi compris, mais je préfèrerais que tu le dises toi-même :-) Oublie la programmation, et essaie de dire en français ce que tu veux. Après, il sera facile de traduire en VBA
A+ J-Pierre
"Papilou" a écrit dans le message de news: 446f13b0$0$12814$
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
Richard_35
Alors, qu'est-ce qui fait la différence entre les groupes ? La position dans le fichier ?
"Papilou" a écrit dans le message de news: 446f13b0$0$12814$
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
Alors, qu'est-ce qui fait la différence entre les groupes ?
La position dans le fichier ?
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news:
446f13b0$0$12814$636a55ce@news.free.fr...
Merci de ta réponse.
J'ai parfaitement compris ta solution.
Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir
aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment
faire? c'est ca la question.
Alors, qu'est-ce qui fait la différence entre les groupes ? La position dans le fichier ?
"Papilou" a écrit dans le message de news: 446f13b0$0$12814$
Merci de ta réponse. J'ai parfaitement compris ta solution. Sauf que je ne peux pas changer la table d'origine, il faut donc pouvoir aller mettre les 1, et 2 de ta colonne supplémentaire, oui, mais comment faire? c'est ca la question.
Papilou
Avec mes excuses, mais je pensais avoir été clair. Je n'ai pas la solution. première question est-ce possible en SQL. (personnellement je ne pense pas il n'y a pas de moyen de changer la table de départ. Donc pas de colonne supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais pas faire. Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire : En pseudo VBA et francais :
Dim db As Database Dim reponse As Recordset Dim sql As String Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE '930000';" Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1 L=ligne de enregistrement1 PD=PK_deb de enregidtrement 1 PF=PK_fin de l'enregistrement 1 E=ELECT de l'enregistrement 1
While Not reponse.EOF je prends l'enregistrement suivant Si PK_deb<PD je met PK_deb dans PD Si PK_fin >PF je met PK_fin dans PF Si ELECT =E je conserve les champs ligne, ELECT dans des variables L,E Sinon j'affiche la ligne L,PD,PF,E fin de Si Wend
reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
Avec mes excuses, mais je pensais avoir été clair.
Je n'ai pas la solution.
première question est-ce possible en SQL. (personnellement je ne pense pas
il n'y a pas de moyen de changer la table de départ. Donc pas de colonne
supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais pas
faire.
Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire :
En pseudo VBA et francais :
Dim db As Database
Dim reponse As Recordset
Dim sql As String
Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE
'930000';"
Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1
L=ligne de enregistrement1
PD=PK_deb de enregidtrement 1
PF=PK_fin de l'enregistrement 1
E=ELECT de l'enregistrement 1
While Not reponse.EOF
je prends l'enregistrement suivant
Si PK_deb<PD je met PK_deb dans PD
Si PK_fin >PF je met PK_fin dans PF
Si ELECT =E
je conserve les champs ligne, ELECT dans des variables L,E
Sinon
j'affiche la ligne L,PD,PF,E
fin de Si
Wend
reponse.Close: Set reponse = Nothing
db.Close: Set db = Nothing
Avec mes excuses, mais je pensais avoir été clair. Je n'ai pas la solution. première question est-ce possible en SQL. (personnellement je ne pense pas il n'y a pas de moyen de changer la table de départ. Donc pas de colonne supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais pas faire. Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire : En pseudo VBA et francais :
Dim db As Database Dim reponse As Recordset Dim sql As String Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE '930000';" Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1 L=ligne de enregistrement1 PD=PK_deb de enregidtrement 1 PF=PK_fin de l'enregistrement 1 E=ELECT de l'enregistrement 1
While Not reponse.EOF je prends l'enregistrement suivant Si PK_deb<PD je met PK_deb dans PD Si PK_fin >PF je met PK_fin dans PF Si ELECT =E je conserve les champs ligne, ELECT dans des variables L,E Sinon j'affiche la ligne L,PD,PF,E fin de Si Wend
reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
Papilou
Ben il n'y en a pas, c'est le problème que j'ai à résoudre. Merci de tes efforts, pour me comprendre.
Ben il n'y en a pas, c'est le problème que j'ai à résoudre.
Merci de tes efforts, pour me comprendre.
Ben il n'y en a pas, c'est le problème que j'ai à résoudre. Merci de tes efforts, pour me comprendre.
J-Pierre
Papilou,
Tu recommences à aligner du code VBA..... Si tu n'es pas capable d'exprimer clairement en français ce que tu veux faire, il me parait difficile de te proposer une solution :-) Je ne te demande pas du VBA en franglais, mais une phrase....sans VBA du tout
J-Pierre
Papilou,
Tu recommences à aligner du code VBA..... Si tu n'es pas capable d'exprimer clairement en français ce que tu veux faire, il me
parait difficile de te proposer une solution :-) Je ne te demande pas du VBA en franglais, mais une phrase....sans VBA du tout
Tu recommences à aligner du code VBA..... Si tu n'es pas capable d'exprimer clairement en français ce que tu veux faire, il me parait difficile de te proposer une solution :-) Je ne te demande pas du VBA en franglais, mais une phrase....sans VBA du tout
J-Pierre
Richard_35
Excuses-moi, mais là, tu te retrouveras avec le résultat de la requête SQL dont tu parlais au début et qui ne te convient pas !
"Papilou" a écrit dans le message de news: 446f2e73$0$9008$
Avec mes excuses, mais je pensais avoir été clair. Je n'ai pas la solution. première question est-ce possible en SQL. (personnellement je ne pense pas il n'y a pas de moyen de changer la table de départ. Donc pas de colonne supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais pas faire. Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire : En pseudo VBA et francais :
Dim db As Database Dim reponse As Recordset Dim sql As String Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE '930000';" Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1 L=ligne de enregistrement1 PD=PK_deb de enregidtrement 1 PF=PK_fin de l'enregistrement 1 E=ELECT de l'enregistrement 1
While Not reponse.EOF je prends l'enregistrement suivant Si PK_deb<PD je met PK_deb dans PD Si PK_fin >PF je met PK_fin dans PF Si ELECT =E je conserve les champs ligne, ELECT dans des variables L,E Sinon j'affiche la ligne L,PD,PF,E fin de Si Wend
reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
Excuses-moi, mais là, tu te retrouveras avec le résultat de la requête SQL
dont tu parlais au début et qui ne te convient pas !
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news:
446f2e73$0$9008$636a55ce@news.free.fr...
Avec mes excuses, mais je pensais avoir été clair.
Je n'ai pas la solution.
première question est-ce possible en SQL. (personnellement je ne pense pas
il n'y a pas de moyen de changer la table de départ. Donc pas de colonne
supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais
pas faire.
Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire :
En pseudo VBA et francais :
Dim db As Database
Dim reponse As Recordset
Dim sql As String
Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE
'930000';"
Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1
L=ligne de enregistrement1
PD=PK_deb de enregidtrement 1
PF=PK_fin de l'enregistrement 1
E=ELECT de l'enregistrement 1
While Not reponse.EOF
je prends l'enregistrement suivant
Si PK_deb<PD je met PK_deb dans PD
Si PK_fin >PF je met PK_fin dans PF
Si ELECT =E
je conserve les champs ligne, ELECT dans des variables L,E
Sinon
j'affiche la ligne L,PD,PF,E
fin de Si
Wend
reponse.Close: Set reponse = Nothing
db.Close: Set db = Nothing
Excuses-moi, mais là, tu te retrouveras avec le résultat de la requête SQL dont tu parlais au début et qui ne te convient pas !
"Papilou" a écrit dans le message de news: 446f2e73$0$9008$
Avec mes excuses, mais je pensais avoir été clair. Je n'ai pas la solution. première question est-ce possible en SQL. (personnellement je ne pense pas il n'y a pas de moyen de changer la table de départ. Donc pas de colonne supplémentaire.
Seconde question est-ce possible en VBA ? oui je pense, mais je ne sais pas faire. Je ne sais pas ou mettre le programme, comment le lancer, etc etc ....
Voila ce que je pense qu'il faudrait faire : En pseudo VBA et francais :
Dim db As Database Dim reponse As Recordset Dim sql As String Set db = CurrentDb()
sql = "SELECT Ligne, PK_deb, PK_fin, ELECT FROM Dec_ligne WHERE Ligne LIKE '930000';" Set reponse = db.OpenRecordset(strRst, dbOpenDynaset)
Eregistrement = 1 L=ligne de enregistrement1 PD=PK_deb de enregidtrement 1 PF=PK_fin de l'enregistrement 1 E=ELECT de l'enregistrement 1
While Not reponse.EOF je prends l'enregistrement suivant Si PK_deb<PD je met PK_deb dans PD Si PK_fin >PF je met PK_fin dans PF Si ELECT =E je conserve les champs ligne, ELECT dans des variables L,E Sinon j'affiche la ligne L,PD,PF,E fin de Si Wend
reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
Richard_35
Il n'y en a pas, dans le fichier, mais qu'est-ce qui te fait dire, à toi (et en français) que le groupe change ?
"Papilou" a écrit dans le message de news: 446f2ed2$0$12806$
Ben il n'y en a pas, c'est le problème que j'ai à résoudre. Merci de tes efforts, pour me comprendre.
Il n'y en a pas, dans le fichier, mais qu'est-ce qui te fait dire, à toi (et
en français) que le groupe change ?
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news:
446f2ed2$0$12806$636a55ce@news.free.fr...
Ben il n'y en a pas, c'est le problème que j'ai à résoudre.
Merci de tes efforts, pour me comprendre.
Il n'y en a pas, dans le fichier, mais qu'est-ce qui te fait dire, à toi (et en français) que le groupe change ?
"Papilou" a écrit dans le message de news: 446f2ed2$0$12806$
Ben il n'y en a pas, c'est le problème que j'ai à résoudre. Merci de tes efforts, pour me comprendre.
Papilou
sur la premiere ligne je trouve 1500V tant que je ne change pas je suis sur le premier groupe puis je trouve 25000V je suis sur le second groupe puis je retrouve 1500V je suis sur le troisieme groupe
Une requete ne suffit pas, j'en suis convaincu, mais je n'ai pas la solution.
sur la premiere ligne je trouve 1500V
tant que je ne change pas je suis sur le premier groupe
puis je trouve 25000V je suis sur le second groupe
puis je retrouve 1500V je suis sur le troisieme groupe
Une requete ne suffit pas, j'en suis convaincu, mais je n'ai pas la
solution.
sur la premiere ligne je trouve 1500V tant que je ne change pas je suis sur le premier groupe puis je trouve 25000V je suis sur le second groupe puis je retrouve 1500V je suis sur le troisieme groupe
Une requete ne suffit pas, j'en suis convaincu, mais je n'ai pas la solution.