Création basede données access: problèmes!
soleilanna
-
technique1322 Messages postés 5 Statut Membre -
technique1322 Messages postés 5 Statut Membre -
Bonjour à tous,
je construit actuellement une base de données Access (sous access 97).
Ma base regroupe des individus caractérisés par pleins de critères (par exemple couleur des yeux, taille...). J'aimerais qu'access me sélectionne les ind dont les critères correspondent au choix que je lui aurais indiqué par le biais de cases à cocher.
Lors de la création d'une telle case, je ne peux cependant pas choisir la table contenant la liste de mes valeurs (access rappelle automatiquement la table qui a servi à créer le formulaire!) = premier hic!
deuxième hic, j'aimerais non seulement qu'il me trouve les ind qui correspondent aux critères, mais qu'il me les stocke dans une table.
En fait j'ai l'impression qu'il faudrait que je coche les 3 options proposées avec le bouton "Zone de liste déroulante " de la boite à outils.
Avez-vous une idée sur la façon de procédé?!
un grand merci à vous!
soleilanna
je construit actuellement une base de données Access (sous access 97).
Ma base regroupe des individus caractérisés par pleins de critères (par exemple couleur des yeux, taille...). J'aimerais qu'access me sélectionne les ind dont les critères correspondent au choix que je lui aurais indiqué par le biais de cases à cocher.
Lors de la création d'une telle case, je ne peux cependant pas choisir la table contenant la liste de mes valeurs (access rappelle automatiquement la table qui a servi à créer le formulaire!) = premier hic!
deuxième hic, j'aimerais non seulement qu'il me trouve les ind qui correspondent aux critères, mais qu'il me les stocke dans une table.
En fait j'ai l'impression qu'il faudrait que je coche les 3 options proposées avec le bouton "Zone de liste déroulante " de la boite à outils.
Avez-vous une idée sur la façon de procédé?!
un grand merci à vous!
soleilanna
A voir également:
- Création basede données access: problèmes!
- Fuite données maif - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
20 réponses
Les cases à cocher ne conviennent à mon avis bien qu'à des valeurs oui/non ou renvoient des valeurs numériques lorsqu'elles sont groupées. Cela t'obligerait à écrire du code pour filter les enregistrements. La méthode est peu "transparente" (si tu veux modifier ou ajouter des critères, tu dois réécrire le code).
J'imagine que tes critères sont groupés par catégories dans des champs différents.
Tu pourrais créer des listes de choix fondées sur des requêtes qui extraieraient les données de ces champs puis exécuter une requête qui combinerait ces critères.
pour créer les listes de choix, tu peux utiliser l'assistant: choisis la première option: je veux que la zone... recherche dans table.
Sélectionne le champ que tu veux trier et clique "suivant jusqu'à la fin.
Ensuite, dans les propriétés de la zone de liste, sous "contenu" tu vois le code SQL. Si tu cliques à droite sur les trois petits points, tu ouvres l'assistant.
Là tu cliques dans la barre d'outils sur le bouton "sigma" qui ajoute la ligne "opérations". Dans cette dernière tu choisis "compte" pour la clé primaire. Puis tu trie la colonne qui contient ton critère par ordre croissant.
Tu obtiens une zone de liste qui trie toutes les valeurs présentes dans ta table pour le critère choisi.
Tu peux répéter l'opération pour les autres critères.
Ensuite, par le biais d'un bouton de commande, tu peux combiner les valeurs renvoyées par ces listes dans une requête.
Il est possible de créer une nouvelle table sur la base de cette requête mais cela me semble inutile puisque toutes les données sont déjà présentes dans la base.
J'imagine que tes critères sont groupés par catégories dans des champs différents.
Tu pourrais créer des listes de choix fondées sur des requêtes qui extraieraient les données de ces champs puis exécuter une requête qui combinerait ces critères.
pour créer les listes de choix, tu peux utiliser l'assistant: choisis la première option: je veux que la zone... recherche dans table.
Sélectionne le champ que tu veux trier et clique "suivant jusqu'à la fin.
Ensuite, dans les propriétés de la zone de liste, sous "contenu" tu vois le code SQL. Si tu cliques à droite sur les trois petits points, tu ouvres l'assistant.
Là tu cliques dans la barre d'outils sur le bouton "sigma" qui ajoute la ligne "opérations". Dans cette dernière tu choisis "compte" pour la clé primaire. Puis tu trie la colonne qui contient ton critère par ordre croissant.
Tu obtiens une zone de liste qui trie toutes les valeurs présentes dans ta table pour le critère choisi.
Tu peux répéter l'opération pour les autres critères.
Ensuite, par le biais d'un bouton de commande, tu peux combiner les valeurs renvoyées par ces listes dans une requête.
Il est possible de créer une nouvelle table sur la base de cette requête mais cela me semble inutile puisque toutes les données sont déjà présentes dans la base.
Bonjour soleilanna,
Voici une idée :
Vous contruisez un formulaire de type indépendant et ensuite vous ajoutez les champs suivant :
1.- listbox (affichage des résultats selon vos choix)
Votre champ doit être de type « Zone de liste », la propriété « Aligner barre défilement » sur Système. De cette façon, si le nombre ligne trouvé est plus grand que la fenêtre disponible, la barre de défilement vertical s’affiche (à utiliser pour voir le tout).
2.- rajouter un choix dans le formulaire (1 pour chaque choix sésiré).
Dans le formulaire vous ajouter :
---le premier champ « Case à cocher » nommer « chk***** » et sous propriété Evénement : Sur clic créer une [Procédure événementielle] , lorsque vous cliquez sur créer (petit carré avec 3 point) vous serez dans l’éditeur VBA et vous avez « Private Sub chk*****_Click() » et en dessous « End Sub ». il s’agit de recopier le code et de remplacer « Type » par le nom de votre case à cocher (*****) sans le chk bien sur.
If Me.chkType Then
Me.cmbRechType.Visible = False
Else
Me.cmbRechType.Visible = True
End If
RefreshQuery
---le deuxième champ « Zone de liste déroulante » nommer « cmdRech***** » et sous ropriété Evénement : Avant MAJ créer une [Procédure événementielle], clic sur Créer et sous VBA vous avez :
Private Sub cmbRech*****_BeforeUpdate(Cancel As Integer)
End Sub
Vous introduisez « RefreshQuery » entre Priva… et End S…
Maintenant il faut ajouter un instruction dans la procédure « Private Sub RefreshQuery () »
A rajouter sous le dernier « End If » (pas oublier de remplacer les 5 points par le nom adéquat)
If Not Me.chk***** Then
SQL = SQL & "And Medias!***** = '" & Me.cmbRech***** & "' "
End If
Et voilà.
C’est peut être un brin compliqué comme explication mais cela marche à merveille.
Si vous le désirez je peux vous envoyez un exemple…..
Bonne semaine.
Salutations
Jean-Pierre
Voici une idée :
Vous contruisez un formulaire de type indépendant et ensuite vous ajoutez les champs suivant :
1.- listbox (affichage des résultats selon vos choix)
Votre champ doit être de type « Zone de liste », la propriété « Aligner barre défilement » sur Système. De cette façon, si le nombre ligne trouvé est plus grand que la fenêtre disponible, la barre de défilement vertical s’affiche (à utiliser pour voir le tout).
2.- rajouter un choix dans le formulaire (1 pour chaque choix sésiré).
Dans le formulaire vous ajouter :
---le premier champ « Case à cocher » nommer « chk***** » et sous propriété Evénement : Sur clic créer une [Procédure événementielle] , lorsque vous cliquez sur créer (petit carré avec 3 point) vous serez dans l’éditeur VBA et vous avez « Private Sub chk*****_Click() » et en dessous « End Sub ». il s’agit de recopier le code et de remplacer « Type » par le nom de votre case à cocher (*****) sans le chk bien sur.
If Me.chkType Then
Me.cmbRechType.Visible = False
Else
Me.cmbRechType.Visible = True
End If
RefreshQuery
---le deuxième champ « Zone de liste déroulante » nommer « cmdRech***** » et sous ropriété Evénement : Avant MAJ créer une [Procédure événementielle], clic sur Créer et sous VBA vous avez :
Private Sub cmbRech*****_BeforeUpdate(Cancel As Integer)
End Sub
Vous introduisez « RefreshQuery » entre Priva… et End S…
Maintenant il faut ajouter un instruction dans la procédure « Private Sub RefreshQuery () »
A rajouter sous le dernier « End If » (pas oublier de remplacer les 5 points par le nom adéquat)
If Not Me.chk***** Then
SQL = SQL & "And Medias!***** = '" & Me.cmbRech***** & "' "
End If
Et voilà.
C’est peut être un brin compliqué comme explication mais cela marche à merveille.
Si vous le désirez je peux vous envoyez un exemple…..
Bonne semaine.
Salutations
Jean-Pierre
Bonjour Jean-Pierre,
merci tout d'abord de vous être penché sur mon problème! c'est vraiment sympa!
j'ai peut-être oublié de signaler une chose importante dans mon message, qui excusera sans doute mon ignorance: je ne me suis mise à access que depuis 3 semaines. Du coup, votre réponse ressemble un peu à du chinois, bien que je ne doute de son efficacité. Je vais donc bucher sur le problème avec vos solutions sous le nez, si vous pouviez cependant m'envoyer l'exemple que vous me proposiez, je pense qu'il me sera très utile en tant que support.
en vous remerciant sincèrement!
anna
merci tout d'abord de vous être penché sur mon problème! c'est vraiment sympa!
j'ai peut-être oublié de signaler une chose importante dans mon message, qui excusera sans doute mon ignorance: je ne me suis mise à access que depuis 3 semaines. Du coup, votre réponse ressemble un peu à du chinois, bien que je ne doute de son efficacité. Je vais donc bucher sur le problème avec vos solutions sous le nez, si vous pouviez cependant m'envoyer l'exemple que vous me proposiez, je pense qu'il me sera très utile en tant que support.
en vous remerciant sincèrement!
anna
Bonjour soleilanna,
Pour l'envoi c'est oui, mais de grâce quelle adresse, la transmission de pensée, je ne connais pas....
Salutations
Jean-Pierre
Pour l'envoi c'est oui, mais de grâce quelle adresse, la transmission de pensée, je ne connais pas....
Salutations
Jean-Pierre
Bonjour soleilanna,
Voila expédition terminée.
Regardez sous se lien, cela peut vous rendre service:
http://mypage.bluewin.ch/w.stucki/astuces.htm
Bonne semaine et bonne chance.
Salutations
Jean-Pierre
Voila expédition terminée.
Regardez sous se lien, cela peut vous rendre service:
http://mypage.bluewin.ch/w.stucki/astuces.htm
Bonne semaine et bonne chance.
Salutations
Jean-Pierre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est une réponse à une question posée par Julie
http://www.commentcamarche.net/forum/affich-1142021-Image-suiveuse-de-souris
J'espère que vous ne m'en voudrez pas...
Joli, sinon, le calendrier volant...
A bientôt!
http://www.commentcamarche.net/forum/affich-1142021-Image-suiveuse-de-souris
J'espère que vous ne m'en voudrez pas...
Joli, sinon, le calendrier volant...
A bientôt!
Va voir sur ce lien...
Mais c'est ddracoon qu'il faut remercier...
http://www.commentcamarche.net/forum/affich-1018977-runtime-access-en-fran%E7ais
Mais c'est ddracoon qu'il faut remercier...
http://www.commentcamarche.net/forum/affich-1018977-runtime-access-en-fran%E7ais
Bonjour mohammed,
Il serait bien de votre part que vous fassiez un nouveau poste pour votre problème, se serait plus clair pour tout le monde, en effet à la base il s'agit de la demande de soleilanna qui est résolue et de plus n'est pas le même que vous.
Merci de votre compréhension.
Salutations
Jean-Pierre
Il serait bien de votre part que vous fassiez un nouveau poste pour votre problème, se serait plus clair pour tout le monde, en effet à la base il s'agit de la demande de soleilanna qui est résolue et de plus n'est pas le même que vous.
Merci de votre compréhension.
Salutations
Jean-Pierre
salut Jean-Pierre,
pour moi auccun pblème seulement les jurées vont me demandé de voir le résultat de mon projet sans voir avec quel logiciel j'ai travaillé (interface access) bon il y a une possibilitée qui consiste à renouvlée ma barre des taches mais je ne l'ai pas apprissier mais pour le runtime j'ai entendue que l'application pourrai être executer même si elle est installer sur un ord qui ne comporte pas access.
j'ai suivi le lien http://rbaudry.free.fr/arbemat.php3
j'ai télécharger le runtime et quan je clique dessus il m'affiche "erreur sur la mémoire ..." et je ne peur rien faire avec.
mes salutation les plus profondes à tous les responsables et abbonnées de se site.
Merci
pour moi auccun pblème seulement les jurées vont me demandé de voir le résultat de mon projet sans voir avec quel logiciel j'ai travaillé (interface access) bon il y a une possibilitée qui consiste à renouvlée ma barre des taches mais je ne l'ai pas apprissier mais pour le runtime j'ai entendue que l'application pourrai être executer même si elle est installer sur un ord qui ne comporte pas access.
j'ai suivi le lien http://rbaudry.free.fr/arbemat.php3
j'ai télécharger le runtime et quan je clique dessus il m'affiche "erreur sur la mémoire ..." et je ne peur rien faire avec.
mes salutation les plus profondes à tous les responsables et abbonnées de se site.
Merci
Salut j'ai trouver un autre lien
http://ors1.chez.tiscali.fr/a2krt/
je vais le tester pour demain hereusement que je télécharge dans un cyber.
Merci
http://ors1.chez.tiscali.fr/a2krt/
je vais le tester pour demain hereusement que je télécharge dans un cyber.
Merci
Bonjour mohammed,
Vous êtes toujours sur le même poste (demande de soleianna), je suis sincérement désolé de ne pouvoir vous aidez pour votre cas.
Salutations
Jean-Pierre
Vous êtes toujours sur le même poste (demande de soleianna), je suis sincérement désolé de ne pouvoir vous aidez pour votre cas.
Salutations
Jean-Pierre
Rebonjour à tous!
J'ai passé quelques bells journées à travailler sur ma base et vos conseils ont été très utiles, surtout les vôtres Jean-Pierre. Merci encore!
Magré moi je me suis mise au langage VBA et le résultat est exactement ce que je voulais. Ca marche effectivement à merveille sur des critères provenant d'une seule et même table. Lorsqu'il s'agit d'y inclure un critère d'une autre table, les choses se corsent! J'ai essayé de rajouter toutes les tables lieés dans les codes (par des INNER JOIN.... tiré d'une simple requête créée par l'assistant (donc pas de fautes dans l'instruction) au niveau de la SQL du Private RefreshQuery.
Je commence à me dire qu'il faudrait peut-être regrouper toutes les infos de mes tables liées dans une seule et même requête, et ne faire appel par conséqunet qu'à cette unique table requête!
Qu'en pensez-vous?
Merci et bonne journéee à tous!
Anna
J'ai passé quelques bells journées à travailler sur ma base et vos conseils ont été très utiles, surtout les vôtres Jean-Pierre. Merci encore!
Magré moi je me suis mise au langage VBA et le résultat est exactement ce que je voulais. Ca marche effectivement à merveille sur des critères provenant d'une seule et même table. Lorsqu'il s'agit d'y inclure un critère d'une autre table, les choses se corsent! J'ai essayé de rajouter toutes les tables lieés dans les codes (par des INNER JOIN.... tiré d'une simple requête créée par l'assistant (donc pas de fautes dans l'instruction) au niveau de la SQL du Private RefreshQuery.
Je commence à me dire qu'il faudrait peut-être regrouper toutes les infos de mes tables liées dans une seule et même requête, et ne faire appel par conséqunet qu'à cette unique table requête!
Qu'en pensez-vous?
Merci et bonne journéee à tous!
Anna
Mauvaise idée, à mon avis:
seuls les enregistrements de la table source présentant des enregistrement dans toutes les tables liées apparaîtront.
seuls les enregistrements de la table source présentant des enregistrement dans toutes les tables liées apparaîtront.
Bonjour Zenon,
en réalité il n'y a pas de table source!
Et une autre question j'aimerais travailler sur les données qu'Access m'aura séléctionné à partir des critères (je suis dans un formulaire). J'aurais voulu les envoyer vers une table ou une requête, est-ce possible dans l'absolu?!
Merci, anna
en réalité il n'y a pas de table source!
Et une autre question j'aimerais travailler sur les données qu'Access m'aura séléctionné à partir des critères (je suis dans un formulaire). J'aurais voulu les envoyer vers une table ou une requête, est-ce possible dans l'absolu?!
Merci, anna
Cela me surprend: si tous les enregistrements se correspondent exactement, ils pourraient être réunis dans une seule table...
Ca me semble peu probable.
Il est tout à fait possible de créer de nouvelles tables fondées sur des critères X à partir d'autres tables. En principe, c'est souvent inutile et même illogique: une simple requête peut extraire les données. Lorsqu'elles sont dupliquées dans une nouvelle table leur mise à jour est aléatoire.
Ca me semble peu probable.
Il est tout à fait possible de créer de nouvelles tables fondées sur des critères X à partir d'autres tables. En principe, c'est souvent inutile et même illogique: une simple requête peut extraire les données. Lorsqu'elles sont dupliquées dans une nouvelle table leur mise à jour est aléatoire.
Si tu souhaites rester dans une interface de type formulaire, il est facile de créer une procédure événementielle qui ouvre un autre formulaire, lui même fondé sur une requête avec des critères que tu spécifies dans des champs texte ou des listes déroulantes, voire même de filter le formulaire lui-même.
Tout dépend de ce que tu souhaites.
sinon, tu peux aussi en VB ouvrir une requête en mode feuille de données comme tu le ferais dans la fenêtre base de données avec la commande DoCmd.OpenQuery
On peut aussi "faciliter le travail" en intégrant au formulaire un sous-formulaire qui affiche les enregistrements connexes. ..
Tout dépend de ce que tu souhaites.
sinon, tu peux aussi en VB ouvrir une requête en mode feuille de données comme tu le ferais dans la fenêtre base de données avec la commande DoCmd.OpenQuery
On peut aussi "faciliter le travail" en intégrant au formulaire un sous-formulaire qui affiche les enregistrements connexes. ..
Bonjour soleilanna,
Merci Anna pour votre petit mot.
C'est avec plaisir que j'ai lu les 6 derniers messages, je suis entièrement d'accord avec les réponses de zenon (merci au passage) qui sont très pertinentes.
Pour en dire un peu plus il serait bien de voir la structure de votre BD, si vous le souhaitez vous connaissez la procédure n'est-ce pas.
Bravo pour votre travail.
Bonne semaine.
Salutations
Jean-Pierre
Merci Anna pour votre petit mot.
C'est avec plaisir que j'ai lu les 6 derniers messages, je suis entièrement d'accord avec les réponses de zenon (merci au passage) qui sont très pertinentes.
Pour en dire un peu plus il serait bien de voir la structure de votre BD, si vous le souhaitez vous connaissez la procédure n'est-ce pas.
Bravo pour votre travail.
Bonne semaine.
Salutations
Jean-Pierre
(Re)Bonjour à tous les deux et merci encore sincèrement pour vos conseils précieux. Je ne manquerais pas de vous remercier dans mon manuscript final!
Ce serait évidemment plus facile si je pouvais vous envoyer ma base. Elle est hyper lourde et même en la zippant en long en large je n'y parviens pas. D'autres circonstances font que je ne peux malheureusement pas vous l'envoyer, à mon grand regret croyez moi car je suis sûre que vous pourriez trouver plein d'astuces!
Pour faire simple, j'ai 5 tables principales (00 date de sorties, 01 observations, 02 vues(ce sont des photos), 04 animal et 03 Photos (qui joint la 02 et la 04 pour une relation plusieurs à plusieurs: plusieurs animaux sur une même vue peuvent appartenir à deux obs différentes si deux groupes d'animaux se sont mélangés par exemple:), elles sont toutes liées (à chaque sorties correspond une ou plusieurs obs, une ou plusieurs photos, et sur chaque photos figurent un ou plusieurs animaux). Mes tables sont liées avec une intégrité référentielle.
Le formulaire que vous m'avez aidé à créer me permet de faire un tri des animaux (table 03) sur des critères contenu dans cette même table. Seulement il faudrait également que je sélectionne les animaux faisant partie d'une même sortie (ce qui fait appel à la table 00) et là access s'emmèle un peu les pinceaux!
Voilà mon premier souci.
Et puis mon deuxième donc, mais là je suis sure que ce sont mes lacunes en programmation qui en sont responsables, je ne connais justement pas le code qui permet d'extraire les données sélectionnées (lstResults, comme dans votre exemple Jean-Pierre) et de les placer dans une table ou un autre formulaire. Je cherche, je cherche mais quand on ne connait pas VB, c'est un peu du charabia tout ces codes!
Quoiqu'il en soit, merci infiniment, vraiment!
Anna
Ce serait évidemment plus facile si je pouvais vous envoyer ma base. Elle est hyper lourde et même en la zippant en long en large je n'y parviens pas. D'autres circonstances font que je ne peux malheureusement pas vous l'envoyer, à mon grand regret croyez moi car je suis sûre que vous pourriez trouver plein d'astuces!
Pour faire simple, j'ai 5 tables principales (00 date de sorties, 01 observations, 02 vues(ce sont des photos), 04 animal et 03 Photos (qui joint la 02 et la 04 pour une relation plusieurs à plusieurs: plusieurs animaux sur une même vue peuvent appartenir à deux obs différentes si deux groupes d'animaux se sont mélangés par exemple:), elles sont toutes liées (à chaque sorties correspond une ou plusieurs obs, une ou plusieurs photos, et sur chaque photos figurent un ou plusieurs animaux). Mes tables sont liées avec une intégrité référentielle.
Le formulaire que vous m'avez aidé à créer me permet de faire un tri des animaux (table 03) sur des critères contenu dans cette même table. Seulement il faudrait également que je sélectionne les animaux faisant partie d'une même sortie (ce qui fait appel à la table 00) et là access s'emmèle un peu les pinceaux!
Voilà mon premier souci.
Et puis mon deuxième donc, mais là je suis sure que ce sont mes lacunes en programmation qui en sont responsables, je ne connais justement pas le code qui permet d'extraire les données sélectionnées (lstResults, comme dans votre exemple Jean-Pierre) et de les placer dans une table ou un autre formulaire. Je cherche, je cherche mais quand on ne connait pas VB, c'est un peu du charabia tout ces codes!
Quoiqu'il en soit, merci infiniment, vraiment!
Anna
re-rebonjour...
Je pense qu'un des problèmes que tu rencontres, ce sont les références multiples circulaires.
Il doit y avoir moyen de les éliminer en créant des tables intermédiaires de manière avoir toujours une structure arborescente.
Par ailleurs, je ne pense pas indispensable de vouloir à tout prix recourir à des instructions compliquées sous VB...
Une bonne structure, quelques requêtes fondant des formulaires devraient faire l'affaire.
Quant au volume de la base, il n'est évidemment pas nécessaire de nous envoyer les données. Tu pourrais créer une nouvelle base puis cliquer sur fichier, données externes, importer et , dans "options" cocher "définitions uniquement". Ta base devrait ne plus "peser" que qque Ko...
A bientôt et tjs avec plaisir...
Zenon
Je pense qu'un des problèmes que tu rencontres, ce sont les références multiples circulaires.
Il doit y avoir moyen de les éliminer en créant des tables intermédiaires de manière avoir toujours une structure arborescente.
Par ailleurs, je ne pense pas indispensable de vouloir à tout prix recourir à des instructions compliquées sous VB...
Une bonne structure, quelques requêtes fondant des formulaires devraient faire l'affaire.
Quant au volume de la base, il n'est évidemment pas nécessaire de nous envoyer les données. Tu pourrais créer une nouvelle base puis cliquer sur fichier, données externes, importer et , dans "options" cocher "définitions uniquement". Ta base devrait ne plus "peser" que qque Ko...
A bientôt et tjs avec plaisir...
Zenon
Bonjour soleilanna,
Du fait qu’un envoi de doc n’est pas possible, pour me faire une idée plus précise, pouvez-vous précisez se qui suit :
Les noms/types des champs de chaque table….
Pour les liaisons, c’est parfaitement expliqué.
Note: la proposition de zenon pour un envoi serait aussi super.
Bonne semaine
Salutations
Jean-Pierre
Du fait qu’un envoi de doc n’est pas possible, pour me faire une idée plus précise, pouvez-vous précisez se qui suit :
Les noms/types des champs de chaque table….
Pour les liaisons, c’est parfaitement expliqué.
Note: la proposition de zenon pour un envoi serait aussi super.
Bonne semaine
Salutations
Jean-Pierre