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

Formatage du résultat d'une requête

4 réponses
Avatar
Davelop
Bonjour,

Je fais une requ=EAte sur 3 tables li=E9es entre elles :
select livre,auteur,motscle from Tlivres,Tauteur,Tmotscles=20
where...

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin motcle1
Livre1 machin motcle3
Livre1 truc motcle1
Livre1 truc motcle4
Livre2 bidule motcle3
Livre2 truc motcle4


Je voudrais avoir le resultats de cette requ=EAte sur 1=20
seule ligne par livre (les diff=E9rents auteurs et mots cl=E9s=20
s=E9par=E9s par un /)

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin/truc motcle1/motcle3/motcle4
Livre2 bidule/truc motcle3/motcle4

Ce resultat me servira pour un export du r=E9sultat dans un=20
fichier texte.

Je pense qu'il faut faire cela en Access basic mais je n'y=20
arrive pas

Pouvez vous m'aider ?
Merci d'avance

4 réponses

Avatar
Raymond [mvp]
Bonjour.

Le problème est sur la table motscles, comment est-elle structurée ?
un mot clé par enregistrement ou tous les mots clés dans un seul champ mémo
ou texte ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Davelop" a écrit dans le message de
news:c3cb01c489c4$2c11b5d0$
Bonjour,

Je fais une requête sur 3 tables liées entre elles :
select livre,auteur,motscle from Tlivres,Tauteur,Tmotscles
where...

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin motcle1
Livre1 machin motcle3
Livre1 truc motcle1
Livre1 truc motcle4
Livre2 bidule motcle3
Livre2 truc motcle4


Je voudrais avoir le resultats de cette requête sur 1
seule ligne par livre (les différents auteurs et mots clés
séparés par un /)

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin/truc motcle1/motcle3/motcle4
Livre2 bidule/truc motcle3/motcle4

Ce resultat me servira pour un export du résultat dans un
fichier texte.

Je pense qu'il faut faire cela en Access basic mais je n'y
arrive pas

Pouvez vous m'aider ?
Merci d'avance
Avatar
En fait un livre a de 1 à n motscles
la table motscles est structuré avec un champ id
(id_motscles) et un champ libellé (libel_motscles)
--> donc 1 mot clé par ennregistrement dans cette table

Une table intermédiaire donne les différents motscles pour
un livre. ex:

id_livre id_motscles
--------- -----------
1 2
1 5
2 1
2 6

La table auteurs est identique à motscles dans sa structure


-----Message d'origine-----
Bonjour.

Le problème est sur la table motscles, comment est-elle
structurée ?

un mot clé par enregistrement ou tous les mots clés dans
un seul champ mémo

ou texte ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Davelop" a écrit
dans le message de

news:c3cb01c489c4$2c11b5d0$
Bonjour,

Je fais une requête sur 3 tables liées entre elles :
select livre,auteur,motscle from Tlivres,Tauteur,Tmotscles
where...

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin motcle1
Livre1 machin motcle3
Livre1 truc motcle1
Livre1 truc motcle4
Livre2 bidule motcle3
Livre2 truc motcle4


Je voudrais avoir le resultats de cette requête sur 1
seule ligne par livre (les différents auteurs et mots clés
séparés par un /)

Livre auteurs motscles
--------------- -------------- --------------
Livre1 machin/truc motcle1/motcle3/motcle4
Livre2 bidule/truc motcle3/motcle4

Ce resultat me servira pour un export du résultat dans un
fichier texte.

Je pense qu'il faut faire cela en Access basic mais je n'y
arrive pas

Pouvez vous m'aider ?
Merci d'avance


.



Avatar
Raymond [mvp]
Ok.
pour éviter de tout recopier pour te faire un exemple vba, passe moi tes
tables avec quelques enregistrements seulement dans un fichier zip en
enlevant le xyz. de mon adresse.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de
news:c20c01c489ce$ecaa5270$
En fait un livre a de 1 à n motscles
la table motscles est structuré avec un champ id
(id_motscles) et un champ libellé (libel_motscles)
--> donc 1 mot clé par ennregistrement dans cette table

Une table intermédiaire donne les différents motscles pour
un livre. ex:

id_livre id_motscles
--------- -----------
1 2
1 5
2 1
2 6

La table auteurs est identique à motscles dans sa structure
Avatar
Raymond [mvp]
message par mail:

ci-joint une base 2000 avec un formulaire formulaire1 et une table
Doc_export qui sera la table à exporter.
lancer le formulaire et cliquer sur le bouton.
regarder la table.
code du formulaire:
Private Sub Commande0_Click()
On Error Resume Next
Dim Anc_livre As String
Dim Anc_Auteur As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Rs1 As DAO.Recordset
Anc_livre = ""
Anc_Auteur = ""
DoCmd.RunSQL "delete * from Doc_Export"
Dim StrSql As String
StrSql = "SELECT doc_livres.titre_livre, doc_auteurs.nom_auteur,
doc_motscles.nom_motscles " & _
"FROM doc_motscles " & _
"INNER JOIN (doc_auteurs " & _
"INNER JOIN ((doc_livres " & _
"INNER JOIN doc_livres_auteurs " & _
"ON doc_livres.num_livre=doc_livres_auteurs.num_livre) " & _
"INNER JOIN doc_livres_motscles " & _
"ON doc_livres.num_livre=doc_livres_motscles.num_livre) " & _
"ON doc_auteurs.num_auteur=doc_livres_auteurs.num_auteur) " & _
"ON doc_motscles.num_motscles=doc_livres_motscles.num_motscles " & _
"ORDER BY doc_livres.titre_livre, doc_auteurs.nom_auteur,
doc_motscles.nom_motscles;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
If Rs.BOF Then
GoTo Exit_Sub
End If
Set Rs1 = Db.OpenRecordset("Doc_Export")
Do Until Rs.EOF
If Rs!titre_livre <> Anc_livre Or Rs!nom_auteur <> Anc_Auteur Then
If Not IsNull(Rs1!titre_livre) Then
Rs1!nom_motscles = Mid(Rs1!nom_motscles, 2)
Rs1.Update
End If
Rs1.AddNew
Rs1!titre_livre = Rs!titre_livre
Rs1!nom_auteur = Rs!nom_auteur
Anc_livre = Rs!titre_livre
Anc_Auteur = Rs!nom_auteur
End If
Rs1!nom_motscles = Rs1!nom_motscles & "/" & Rs!nom_motscles
Rs.MoveNext
Loop
If Not IsNull(Rs1!titre_livre) Then
Rs1!nom_motscles = Mid(Rs1!nom_motscles, 2)
Rs1.Update
End If
Exit_Sub:
On Error Resume Next
Rs.Close
Rs1.Close
Set Db = Nothing
Set Rs = Nothing
Set Rs1 = Nothing
End Sub


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Raymond [mvp]" a écrit dans le message de
news:
Ok.
pour éviter de tout recopier pour te faire un exemple vba, passe moi tes
tables avec quelques enregistrements seulement dans un fichier zip en
enlevant le xyz. de mon adresse.