OVH Cloud OVH Cloud

Liste de choix commune

8 réponses
Avatar
Philippe LAGARDE
Bonjour à tous,

je suis un grand débutant access, et je me retrouve avec le problème
suivant :

J'ai une tables d'une trentaine de champs, dont tous doivent être
renseignés par la même liste de choix. Pour créer les noms facilement,
je vais sous excel et je remplis les 30 colonnes, puis j'importe. Je
crée ensuite une petite table à un champ et j'y entre la liste de choix.
Le problème, c'est que je n'arrive à attribuer la liste de choix aux
champs que champ par champ. Et comme j'ai ça à faire pour 10 tables fois
30 champs, je n'interesse à la manière d'attribuer une même liste de
choix à 30 champs différents.

J'espère avoir été clair,

Merci d'avance,

--
Philippe LAGARDE
Attention à mon adresse pour me répondre

8 réponses

Avatar
Raymond [mvp]
Bonjour.

je me pose déjà la question : pourquoi 10 tables avec les mêmes champs et 30
champs par table avec le même choix ? il doit y avoir des redondances à
quelque part Pourquoi passer par excel et ne pas entrer directement les
données dans la table ?
Par ailleurs, pour affecter une requête ou une table à la propriété
rowsource (contenu) de plusieurs listes modifiables, tu sélectionnes tous
les listes et tu entres la propriété une seule fois.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Philippe LAGARDE" a écrit
dans le message de news:
Bonjour à tous,

je suis un grand débutant access, et je me retrouve avec le problème
suivant :

J'ai une tables d'une trentaine de champs, dont tous doivent être
renseignés par la même liste de choix. Pour créer les noms facilement,
je vais sous excel et je remplis les 30 colonnes, puis j'importe. Je
crée ensuite une petite table à un champ et j'y entre la liste de choix.
Le problème, c'est que je n'arrive à attribuer la liste de choix aux
champs que champ par champ. Et comme j'ai ça à faire pour 10 tables fois
30 champs, je n'interesse à la manière d'attribuer une même liste de
choix à 30 champs différents.

J'espère avoir été clair,

Merci d'avance,

--
Philippe LAGARDE
Attention à mon adresse pour me répondre


Avatar
3stone
Salut,

J'ai une tables d'une trentaine de champs, dont tous doivent être
renseignés par la même liste de choix. Pour créer les noms facilement,
je vais sous excel et je remplis les 30 colonnes, puis j'importe. Je
crée ensuite une petite table à un champ et j'y entre la liste de choix.
Le problème, c'est que je n'arrive à attribuer la liste de choix aux
champs que champ par champ. Et comme j'ai ça à faire pour 10 tables fois
30 champs, je n'interesse à la manière d'attribuer une même liste de
choix à 30 champs différents.



Le demande n'est pas "bizarre" en soit... mais bien cette répétition des tables identiques ;-)

Pour peupler automatiquement une liste par les noms des champs d'une table,
tu peux utiliser quelque chose comme la procédure ci dessous.

Remarque:
Comme les noms des champs sont rarement des expressions correctes,
je te conseille d'utiliser (et d'afficher pour l'utilisateur) la propriété "Description" du champ.
Tu peux renseigner cette propriété en affichant les tables dans la
"Fenêtre de base de données" sous le format de liste de détails (et non d'icônes)


Crée cette sub dans ton formulaire, et tu l'appelle sur ouverture du formulaire.

' Call PeuplerListe("MaTable","MaListe")

'---------------------------------------------

Sub PeuplerListe(strTable, strListe)
On Error Resume Next
Dim Ix As Integer
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim strSource As String

Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strTable)

For Ix = 0 To Rs.Fields.Count - 1
If Len(strSource) = 0 Then
strSource = Rs.Fields(Ix).Name & ";" _
& Rs.Fields(Ix).Properties("Description") & ";" _
& Rs.Fields(Ix).Type
Else
strSource = strSource & ";" & Rs.Fields(Ix).Name _
& ";" & Rs.Fields(Ix).Properties("Description") _
& ";" & Rs.Fields(Ix).Type
End If
End Select
Next Ix
Rs.Close
Set Db = Nothing
Set Rs = Nothing

Me(strListe).RowSource = strSource

End Sub
'------------------------------------------------


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Philippe LAGARDE
Le Mon, 17 Nov 2003 14:29:52 +0100, 3stone nous disait :
Salut,

J'ai une tables d'une trentaine de champs, dont tous doivent être
renseignés par la même liste de choix. Pour créer les noms facilement,
je vais sous excel et je remplis les 30 colonnes, puis j'importe. Je
crée ensuite une petite table à un champ et j'y entre la liste de choix.
Le problème, c'est que je n'arrive à attribuer la liste de choix aux
champs que champ par champ. Et comme j'ai ça à faire pour 10 tables fois
30 champs, je n'interesse à la manière d'attribuer une même liste de
choix à 30 champs différents.



Le demande n'est pas "bizarre" en soit... mais bien cette répétition des tables identiques ;-)

J'ai du mal m'exprimer. Je reprends, ta solution me parait vraiment

compliquée pour ce que je demande :)

J'ai des champs que j'ai appelé toto-1 à toto-30. Je voudrais que
l'utilisateur puisse leur attribuer une valeur comprise dans :
[0;1;2;3;4;5]. Je crée donc une table avec un champ dont ls valeurs sont
0; 1; 2; 3; 4; 5. Je définit toto-& comme zone de liste, et lui
attribue, via l'assistant liste de choix, ces valeurs. Je dois
maintenant me retrtiner l'assistant 30 fois pour les 30 champs, ou j'ai
moyen d'attribuer "par lot" une liste de choix à tous ces champs?

Merci bcp,

--
Philippe LAGARDE
Attention à mon adresse pour me répondre


Avatar
Daniel Carollo
Bonjour Philippe!

Ce qui nous choque c'est qu'il y ait 30 colonnes avec le meme genre de
donnees. Cela indique presque a coup sur une modelisation mal etudiee qui va
vous poser des problemes enormes par la suite.
Ce qui nous vient a l'esprit serait plutot une table supplementaire avec 30
enregistrements de deux champs ou plus.

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Philippe LAGARDE" wrote in
message news:
Le Mon, 17 Nov 2003 14:29:52 +0100, 3stone nous disait :
Salut,

J'ai du mal m'exprimer. Je reprends, ta solution me parait vraiment

compliquée pour ce que je demande :)

J'ai des champs que j'ai appelé toto-1 à toto-30. Je voudrais que
l'utilisateur puisse leur attribuer une valeur comprise dans :
[0;1;2;3;4;5]. Je crée donc une table avec un champ dont ls valeurs sont
0; 1; 2; 3; 4; 5. Je définit toto-& comme zone de liste, et lui
attribue, via l'assistant liste de choix, ces valeurs. Je dois
maintenant me retrtiner l'assistant 30 fois pour les 30 champs, ou j'ai
moyen d'attribuer "par lot" une liste de choix à tous ces champs?

Merci bcp,

--
Philippe LAGARDE



Avatar
Philippe LAGARDE
Le Mon, 17 Nov 2003 15:35:23 +0100, Daniel Carollo nous disait :
Bonjour Philippe!

Ce qui nous choque c'est qu'il y ait 30 colonnes avec le meme genre de
donnees. Cela indique presque a coup sur une modelisation mal etudiee qui va
vous poser des problemes enormes par la suite.
Ce qui nous vient a l'esprit serait plutot une table supplementaire avec 30
enregistrements de deux champs ou plus.


Le cas est le suivant : une personne doit donner évaluer des phrases de
"je suis pas d'accord du tout" à "je suis entièrement d'accord" (il
s'agit d'un questionnaire médical). J'ai fait un champ par question, et
je veux un menu déroulant pour chacune de ces questions. Je m'y suis
donc mal pris?

Bonne continuation.

Merci beaucoup


--
Philippe LAGARDE
Attention à mon adresse pour me répondre

Avatar
3stone
Salut,

"Philippe LAGARDE"
Le cas est le suivant : une personne doit donner évaluer des phrases de
"je suis pas d'accord du tout" à "je suis entièrement d'accord" (il
s'agit d'un questionnaire médical). J'ai fait un champ par question, et
je veux un menu déroulant pour chacune de ces questions. Je m'y suis
donc mal pris?


A ta dernière question.... oh que oui ;-)


Ce qu'il te manque, c'est une table des questions "T_Questions"
qui aura *minimum* un champ clé externe, un champ NoQuestion
et un champ TexteQuestion.

Tu lie cette table à la clé de la table principale...

Pour remplir ta liste, il suffit alors de la baser sur la table des questions.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
J-Pierre
Autre possibilité: Tu crées le premier contrôle dans ton formulaire, et tu fais des copiés/collés en changeant le nom et la source
du nouveau contrôle.

J-Pierre

"3stone" a écrit dans le message de news:3fb8ec0f$0$10314$
Salut,

"Philippe LAGARDE"
Le cas est le suivant : une personne doit donner évaluer des phrases de
"je suis pas d'accord du tout" à "je suis entièrement d'accord" (il
s'agit d'un questionnaire médical). J'ai fait un champ par question, et
je veux un menu déroulant pour chacune de ces questions. Je m'y suis
donc mal pris?


A ta dernière question.... oh que oui ;-)


Ce qu'il te manque, c'est une table des questions "T_Questions"
qui aura *minimum* un champ clé externe, un champ NoQuestion
et un champ TexteQuestion.

Tu lie cette table à la clé de la table principale...

Pour remplir ta liste, il suffit alors de la baser sur la table des questions.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------







Avatar
Philippe LAGARDE
Le Tue, 18 Nov 2003 00:25:06 +0100, J-Pierre nous disait :
Autre possibilité: Tu crées le premier contrôle dans ton formulaire, et tu fais des copiés/collés en changeant le nom et la source
du nouveau contrôle.

C'est ce que j'ai fini par faire, dans la table en mode création. ais

que c'est long :)

Merci à tous,

--
Philippe LAGARDE
Attention à mon adresse pour me répondre