OVH Cloud OVH Cloud

Requête : comment faire ?

5 réponses
Avatar
papou
Bonjour à toutes et à tous
Je ne parviens pas à faire ressortir correctement des enregistrements à
l'aide d'une requête et j'ai beau chercher, je ne trouve pas de solution.
J'ai une base qui contient 7 tables avec une relation 1 à 1 (intégrité
référentielle et mise à jour en cascade) sur un champ numérique nommé Nfiche
(clé primaire pour chaque table et numéro auto sur la table principale)
Détail des 7 tables :
1 - Principale
2 - Début
3 - Fin
4 - Table1
5 - Table 2
6 - Table 3
7 - Table 4
Pour un nouvel enregistrement (au travers d'un formulaire), je défini par
une case à cocher sur la table Pricipale quelles tables parmi Table 1 à
Table 4 seront renseignées, sachant que systématiquement, les tables Début
et Fin le seront.
Donc lorsque je coche sur mon formulaire Table 1 et Table 4 par exemple, ces
tables comporteront un numéro Nfiche identique aux tables Principale, Début
et Fin,
les tables Table 2 et Table 3 ne comporteront pas d'enregistrement pour le
numéro Nfiche.
Je ne sais donc pas aujourd'hui faire ressortir dans une seule requête les
enregistrements qui auront le même numéro de fiche sur l'ensemble des
tables.
Pouvez-vous m'aider ?
Merci d'avance
Cordialement
Pascal

5 réponses

Avatar
3stone
Bonjour,

"papou"
Je ne parviens pas à faire ressortir correctement des enregistrements à
l'aide d'une requête et j'ai beau chercher, je ne trouve pas de solution.
J'ai une base qui contient 7 tables avec une relation 1 à 1 (intégrité
référentielle et mise à jour en cascade) sur un champ numérique nommé Nfiche
(clé primaire pour chaque table et numéro auto sur la table principale)
Détail des 7 tables :
1 - Principale
2 - Début
3 - Fin
4 - Table1
5 - Table 2
6 - Table 3
7 - Table 4
<snip>


Sept tables avec une relation 1 à 1 ???
Aurais tu un nombre si considérable de champs pour justifier une telle segmentation ?

Il me semble bien que tu as un gros problème d'analyse et de stucture de ta base.
Je pense que tu devrais revoir cela depuis le début et tenter d'avoir des tables cohérentes.

Regarde ici... surtout les tables:
http://enseignement.insset.u-picardie.fr/deug/ti/cours/access/

--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
papou
Bonjour Pierre
Je te remercie pour ta réponse.
Oui, je confirme un nombre très conséquent de champs (150) !
Non, il ne me semble pas y avoir d'incohérence dans l'organisation de mes
tables (j'en suis conforté par la suite de mon message), mais je vais quand
même suivre ton conseil et jeter un oeil sur le lien que tu m'as donné.
En fait, j'ai trouvé la solution dans la mesure où j'ai modifé les
propriétés de mes jointures en choisissant l'option 2 mais je reste bien
dans une relation 1 à 1.
J'ai ensuite créé une première requête sur deux tables que j'ai recopiée en
"cascade" en y ajoutant à chaque fois une autre table.
Autrement dit, j'ai créé une requête 1 avec Table 1 et Table 2, puis une
requête 2 avec Requête 1 et Table 3 etc...
J'obtiens donc le résultat que j'attendais dans ma requête finale.
Cordialement
Pascal


"3stone" a écrit dans le message de
news:3faa3734$0$16134$
Bonjour,

"papou"
Je ne parviens pas à faire ressortir correctement des enregistrements à
l'aide d'une requête et j'ai beau chercher, je ne trouve pas de solution.
J'ai une base qui contient 7 tables avec une relation 1 à 1 (intégrité
référentielle et mise à jour en cascade) sur un champ numérique nommé
Nfiche

(clé primaire pour chaque table et numéro auto sur la table principale)
Détail des 7 tables :
1 - Principale
2 - Début
3 - Fin
4 - Table1
5 - Table 2
6 - Table 3
7 - Table 4
<snip>


Sept tables avec une relation 1 à 1 ???
Aurais tu un nombre si considérable de champs pour justifier une telle
segmentation ?


Il me semble bien que tu as un gros problème d'analyse et de stucture de
ta base.

Je pense que tu devrais revoir cela depuis le début et tenter d'avoir des
tables cohérentes.


Regarde ici... surtout les tables:
http://enseignement.insset.u-picardie.fr/deug/ti/cours/access/

--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut,

"papou"
Oui, je confirme un nombre très conséquent de champs (150) !

Ben... UNE table peut en avoir 255 !!

Non, il ne me semble pas y avoir d'incohérence dans l'organisation de mes
tables (j'en suis conforté par la suite de mon message), mais je vais quand
même suivre ton conseil et jeter un oeil sur le lien que tu m'as donné.

Si tu as des tables avec une relation 1 à 1, cela veut dire que tous
les champs pourraient être intégré à la table principale... puisque chaque donnée
ne concerne qu'un seul et même enregistrement.

S'il peut arriver pour des raisons "spéciales" (données "privées" que l'on souhaite
séparer du reste) de créer une relation 1 à 1... mais, sept tables ainsi ?



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
papou
Pierre
Si tu as des tables avec une relation 1 à 1, cela veut dire que tous
les champs pourraient être intégré à la table principale... puisque chaque
donnée

ne concerne qu'un seul et même enregistrement
Justement non, ce n'est pas tout à fait le cas :

un N° d'enregistrement existera forcément au moins sur 3 de mes tables
(Principale, début et Fin) mais pas sur les 4 autres :
Un champ de la table Principale détermine quelle(s) autre(s) table(s)
va(ont) être renseignée(s)
Je peux donc avoir un enregistrement pour Principal, Début, Fin, Table 1 et
Table 2
ou un enregistrement pour Principal, Début, Fin, Table 2 et Table 4
etc...
Pour moi l'éclatement est justifié pour cela notamment mais aussi parce que
bien que le nombre de champs soit inférieur aux 255, les champs représentent
des données texte extrêmement longues avec des libellés également très longs
(ce sont des questions)
Cordialement
Pascal



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

"papou"
Oui, je confirme un nombre très conséquent de champs (150) !

Ben... UNE table peut en avoir 255 !!

Non, il ne me semble pas y avoir d'incohérence dans l'organisation de mes
tables (j'en suis conforté par la suite de mon message), mais je vais
quand

même suivre ton conseil et jeter un oeil sur le lien que tu m'as donné.

Si tu as des tables avec une relation 1 à 1, cela veut dire que tous
les champs pourraient être intégré à la table principale... puisque chaque
donnée

ne concerne qu'un seul et même enregistrement.

S'il peut arriver pour des raisons "spéciales" (données "privées" que l'on
souhaite

séparer du reste) de créer une relation 1 à 1... mais, sept tables ainsi
?




--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------







Avatar
3stone
Salut,

"papou"
Justement non, ce n'est pas tout à fait le cas :
un N° d'enregistrement existera forcément au moins sur 3 de mes tables
(Principale, début et Fin) mais pas sur les 4 autres :
Un champ de la table Principale détermine quelle(s) autre(s) table(s)
va(ont) être renseignée(s)
Je peux donc avoir un enregistrement pour Principal, Début, Fin, Table 1 et
Table 2
ou un enregistrement pour Principal, Début, Fin, Table 2 et Table 4
etc...


Cela se règle par une requête, en ne sélectionnant que les champs utiles...


Mais, tu fait comme tu pense ;-)


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------