Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

AFFICHER LES CHAMPS D'UNE REQUETE HORIZONTALEMENT

2 réponses
Avatar
ralyka
On 7 mai, 09:08, ze Titi <ze_titi_enlever-c...@tiscali.fr> wrote:
> Helloralyka!
>
> Modifie ta requ=EAte pour y int=E9grer la fonction de Jessy propos=E9e ic=
i:http://access.fr.free.fr/articles.php?lng=3Dfr&pg=3D45
>
> En ce jour m=E9morable du dimanche 06/05/2007, tu as entrepris la lourde
> t=E2che de taper sur ton clavier :
>
>
>
>
>
> > Bonjours =E0 tous et =E0 toutes.
>
> > J'ai une base de donn=E9es de gestion d'une =E9cole.
>
> > J'ai un =E9tat de "bulletin de r=E9sultats" pour chaque =E9tudiant.
>
> > Tout marche bien sauf que:
>
> > Details:
> > [INTITULE DU COURS]
> > [ENSEIGNANT]
>
> > Si le cours a plusieurs diff=E9rents enseignants, mon etat affiche
> > CHAQUE enseignant sur une ligne ce qui rend mon =E9tat beucoup trop
> > grand.
>
> > Comment faire pour que chaque enseignant soit affich=E9 l'un =E0 cot=E9=
de
> > l'autre?
>
> > Merci infiniment!
>
> > Tr=E8s bon dimanche d'=E9l=E9ction =E0 vous tous.
>
> >Ralyka
>
> --
> Cordialement,
> Ze Titi
>
> Tout pour r=E9ussir avec Access :http://www.mpfa.info- Masquer le texte d=
es messages pr=E9c=E9dents -
>
> - Afficher le texte des messages pr=E9c=E9dents -

Bonjour Ze Titi,

Merci de ta r=E9ponse.

Je viens de passer la matin=E9e sur le probl=E8me et je n'ai pas r=E9ussi =
=E0
le r=E9soudre.... :-(

J'ai cr=E9e la r=EAquete:

SELECT R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS,
ConcatForQuery("ID_FORMATION_DETAILS",
[ID_FORMATION_DETAILS],"P_NOM","R_FORMATION_ENSEIGNANTS"," - ") AS
R=E9sultat
FROM R_FORMATION_ENSEIGNANTS
GROUP BY R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS;

J'ai cr=E9e le module:

Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String =3D "/") As String

'** Regroupement de donn=E9e sur le champ fldRegroup
'** et concat=E9nation sur le champ strConcat
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strResult As String
Dim strRst As String

Set db =3D CurrentDb()
strRst =3D "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] =3D """ & fldRegroup & """;"

Set rst =3D db.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.MoveFirst
Do Until .EOF
If strResult =3D "" Then
strResult =3D .Fields(strConcat)
Else
strResult =3D strResult & strSep & .Fields(strConcat)
End If
.MoveNext
Loop
End If
End With
rst.Close: Set rst =3D Nothing
db.Close: Set db =3D Nothing
ConcatForQuery =3D strResult

End Function

Quand j'=E9x=E9cute ma r=EAquete il a le message d'erreur:

"types de donn=E9es incompatibles dans l'expression du crit=E8re"

sur la ligne:

Set rst =3D db.OpenRecordset(strRst, dbOpenDynaset)

Je vois bien que c'est parce que j'utilise un num=E9ro auto pour le
r=E9groupement mais il n'y a aucun autre champ o=F9 je puisse regrouper
car ID_FORMATION_DETAILS correspond au num=E9ro du cours qui pourrait
contenir plusieurs enseignants que j'aimerais regroupper sur une seule
ligne...

Peux-tu m'aider?

Merci!!!!!!!!!!!!

Ralyka

2 réponses

Avatar
Thierry (ze Titi)
Bonjour ralyka

Wahouu, ça date tout ça !

Je me suis permis (pardon à Jessy pour la liberté prise...) de modifier la fonction pour y inclure le fait que le critère de regroupement pouvait être une valeur numérique.
Il m'avait suffi de modifier légèrement la création de la requête intermédiaire:

strRst = "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] = " & IIf(IsNumeric(fldRegroup), fldRegroup, """ & fldRegroup & """) & ";"

Bien sûr, c'est à tester. Ca avait fonctionné chez moi, ça ne veut pas dire que ça soit parfait pour autant...

On 7 mai, 09:08, ze Titi wrote:
Helloralyka!

Modifie ta requête pour y intégrer la fonction de Jessy proposée
ici:http://access.fr.free.fr/articles.php?lng=fr&pgE

En ce jour mémorable du dimanche 06/05/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :





Bonjours à tous et à toutes.

J'ai une base de données de gestion d'une école.
J'ai un état de "bulletin de résultats" pour chaque étudiant.
Tout marche bien sauf que:

Details:
[INTITULE DU COURS]
[ENSEIGNANT]

Si le cours a plusieurs différents enseignants, mon etat affiche
CHAQUE enseignant sur une ligne ce qui rend mon état beucoup trop
grand.

Comment faire pour que chaque enseignant soit affiché l'un à coté de
l'autre?

Merci infiniment!

Très bon dimanche d'éléction à vous tous.
Ralyka


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :http://www.mpfa.info- Masquer le texte des
messages précédents -

- Afficher le texte des messages précédents -


Bonjour Ze Titi,

Merci de ta réponse.

Je viens de passer la matinée sur le problème et je n'ai pas réussi à
le résoudre.... :-(

J'ai crée la rêquete:

SELECT R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS,
ConcatForQuery("ID_FORMATION_DETAILS",
[ID_FORMATION_DETAILS],"P_NOM","R_FORMATION_ENSEIGNANTS"," - ") AS
Résultat
FROM R_FORMATION_ENSEIGNANTS
GROUP BY R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS;

J'ai crée le module:

Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String = "/") As String

'** Regroupement de donnée sur le champ fldRegroup
'** et concaténation sur le champ strConcat
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strResult As String
Dim strRst As String

Set db = CurrentDb()
strRst = "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] = """ & fldRegroup & """;"

Set rst = db.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.MoveFirst
Do Until .EOF
If strResult = "" Then
strResult = .Fields(strConcat)
Else
strResult = strResult & strSep & .Fields(strConcat)
End If
.MoveNext
Loop
End If
End With
rst.Close: Set rst = Nothing
db.Close: Set db = Nothing
ConcatForQuery = strResult

End Function

Quand j'éxécute ma rêquete il a le message d'erreur:

"types de données incompatibles dans l'expression du critère"

sur la ligne:

Set rst = db.OpenRecordset(strRst, dbOpenDynaset)

Je vois bien que c'est parce que j'utilise un numéro auto pour le
régroupement mais il n'y a aucun autre champ où je puisse regrouper
car ID_FORMATION_DETAILS correspond au numéro du cours qui pourrait
contenir plusieurs enseignants que j'aimerais regroupper sur une seule
ligne...

Peux-tu m'aider?

Merci!!!!!!!!!!!!

Ralyka


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info



Avatar
ralyka
On 9 juil, 13:57, Thierry (ze Titi)
wrote:
Bonjour ralyka

Wahouu, ça date tout ça !

Je me suis permis (pardon à Jessy pour la liberté prise...) de modifi er la fonction pour y inclure le fait que le critère de regroupement pouv ait être une valeur numérique.
Il m'avait suffi de modifier légèrement la création de la requête intermédiaire:

strRst = "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] = " & IIf(IsNumeric(fldRegroup), fldRegroup, """ & fldRegroup & """) & ";"

Bien sûr, c'est à tester. Ca avait fonctionné chez moi, ça ne veu t pas dire que ça soit parfait pour autant...






On 7 mai, 09:08, ze Titi wrote:
Helloralyka!

Modifie ta requête pour y intégrer la fonction de Jessy proposée
ici:http://access.fr.free.fr/articles.php?lng=fr&pgE

En ce jour mémorable du dimanche 06/05/2007, tu as entrepris la lour de
tâche de taper sur ton clavier :

Bonjours à tous et à toutes.

J'ai une base de données de gestion d'une école.
J'ai un état de "bulletin de résultats" pour chaque étudiant.
Tout marche bien sauf que:

Details:
[INTITULE DU COURS]
[ENSEIGNANT]

Si le cours a plusieurs différents enseignants, mon etat affiche
CHAQUE enseignant sur une ligne ce qui rend mon état beucoup trop
grand.

Comment faire pour que chaque enseignant soit affiché l'un à cot é de
l'autre?

Merci infiniment!

Très bon dimanche d'éléction à vous tous.
Ralyka


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :http://www.mpfa.info-Masquer le texte des
messages précédents -

- Afficher le texte des messages précédents -


Bonjour Ze Titi,

Merci de ta réponse.

Je viens de passer la matinée sur le problème et je n'ai pas réus si à
le résoudre.... :-(

J'ai crée la rêquete:

SELECT R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS,
ConcatForQuery("ID_FORMATION_DETAILS",
[ID_FORMATION_DETAILS],"P_NOM","R_FORMATION_ENSEIGNANTS"," - ") AS
Résultat
FROM R_FORMATION_ENSEIGNANTS
GROUP BY R_FORMATION_ENSEIGNANTS.ID_FORMATION_DETAILS;

J'ai crée le module:

Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
strConcat As String, strTable As String, _
Optional strSep As String = "/") As String

'** Regroupement de donnée sur le champ fldRegroup
'** et concaténation sur le champ strConcat
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strResult As String
Dim strRst As String

Set db = CurrentDb()
strRst = "Select * From [" & strTable & "] " _
& "Where [" & strRegroup & "] = """ & fldRegroup & """;"

Set rst = db.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.MoveFirst
Do Until .EOF
If strResult = "" Then
strResult = .Fields(strConcat)
Else
strResult = strResult & strSep & .Fields(strConcat)
End If
.MoveNext
Loop
End If
End With
rst.Close: Set rst = Nothing
db.Close: Set db = Nothing
ConcatForQuery = strResult

End Function

Quand j'éxécute ma rêquete il a le message d'erreur:

"types de données incompatibles dans l'expression du critère"

sur la ligne:

Set rst = db.OpenRecordset(strRst, dbOpenDynaset)

Je vois bien que c'est parce que j'utilise un numéro auto pour le
régroupement mais il n'y a aucun autre champ où je puisse regrouper
car ID_FORMATION_DETAILS correspond au numéro du cours qui pourrait
contenir plusieurs enseignants que j'aimerais regroupper sur une seule
ligne...

Peux-tu m'aider?

Merci!!!!!!!!!!!!

Ralyka


--
Cordialement,
Thierry

Tout pour réussir avec Access :http://www.mpfa.info- Masquer le texte d es messages précédents -

- Afficher le texte des messages précédents -


ça marche merveilleusement bien! Parfait! Grandieuse! Merci merci
merci!!!!!!!!!!!!!!!!!!!"
:-D