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

afficher des info de 2 tables dans un formulaire et un sous-formulaire

3 réponses
Avatar
nadine
Bonjour =E0 tous,

J'ai un probl=E8me pour afficher les donn=E9es d'un=20
formulaire et d'un sous formulaire.
J'ai une table pour chaque =E9tape, il y en a 18, et dans=20
une autre table toutes les =E9tapes sont rassembl=E9es, avec=20
les infos : description de l'=E9tape, le d=E9but et la fin,=20
si compl=E8te...
Il y a un formulaire par =E9tape et un sous-formulaire pour=20
la table =E9tapes.
A chaque recherche sur un dossier, dans le formulaire=20
principal qui est l'=E9tape je re=E7ois les bonnes=20
informations, mais dans le sous-formulaire qui doit me=20
donn=E9es les infos sur l'=E9tape de la table =E9tape, je=20
re=E7ois une =E9tape au hasard.

J'ai fais une recherche d'abord avec une index et la=20
commande Seek. Ensuite j'ai essay=E9 avec une requ=EAte sql,=20
mais je n'arrive pas =E0 avoir le formulaire principal et=20
le sous-formulaire sur la m=EAme =E9tape.

Pour les premi=E8res =E9tapes oui, mais =E0 partir du moment ou=20
il y a plusieurs dossiers en cour j'ai des erreurs.

Je suis sous windoxs xp avec access 2000.
Voici mon code avec Seek:
Set Mbase =3D CurrentDb()
Set Mrec =3D Mbase.OpenRecordset("T_formations",=20
dbOpenTable)
Set Mrecet =3D Mbase.OpenRecordset("T_etape", dbOpenTable)

Mrec.Index =3D "Num_dossier_index"
Mrec.Seek "=3D", Me!Num_dossieri
Mrecet.Index =3D "Num_dossierindex"
Mrecet.Seek "=3D", Me!SF_etape!Num_dossieri
If Mrec.NoMatch =3D False Then
If Mrecet.NoMatch =3D False Then

Voici mon code avec la requ=EAte sql
Set Mbase =3D CurrentDb()
Set Mrec =3D Mbase.OpenRecordset("Select * from T_etape=20
where Num_dossier=3D" & Me!Num_dossieri & "And Num_ordre=3D"=20
& Me!Num_ordrei)
Set Mreccomp =3D Mbase.OpenRecordset("Select * from=20
T_comptabilit=E9 where Num_dossier=3D" & Me!Num_dossieri)

Si vous aviez une petite id=E9e a me sugg=E9rer j'en serais=20
ravie.
Nadine

3 réponses

Avatar
Michel Gesnot
Bonjour Nadine

Les infos que vous communiquez sont insuffisantes et pas
assez précises non plus pour réagir.

Mais je voudrais surtout vous mettre en garde : j'ai
l'impression que vous vous embarquez dans ce que certains
qualifieront "d'usine à gaz", càd d'une application super
compliquée à élaborer et ensuite à maintenir.
Probablement par défaut d'analyse et de structuration.

J'ai l'impression que (maintenant que vous avez une partie
du développement en main et malgré cela,) vous devriez
revoir votre analyse et restructurer tout cela en
considérant que le développement déjà effectué vous a
permis de mieux cerner le problème.

Concernant votre problème actuel, il devrait normalement
être solutionné sans problème aucun avec les propriétés
ChampsFils (LinkChildFields) et ChampsPères
(LinkMasterFields), à condition que vous ayez :
- une clé primaire dans votre table Etape (qui devrait
être ramenée de 18 tables à une table)
- un pointeur dans la table générale, vers la clé primaire
correspondante
- une relation entre les deux.

Mais vous avez 18 tables étapes. Est-ce indispensable ?
Les champs sont-ils tellement différents ?
Dans la négative, une seule table, un champ N° d'étape et
des champs de même nature (texte, numérique etc) qui
peuvent être traités de manière différenciée si nécessaire
via une structure SelectCase par exemple.
Quite à avoir quelques champs qui ne sont pas toujours
utilisés ou, plus sophistiqué, à avoir des tables
secondaires pour les détails particuliers correspondant
aux spécificités des 18 étapes, mais en maintenant une
table de base (qui pourrait peut-être être la table
générale que vous utilisez maintenant)

Une suggestion, peut-être utile, peut-être inadéquate.
Avis donné de l'extérieur et avec une vue très
superficielle (fatalement).
Je me trompe donc peut-être lourdement.

M. Gesnot


-----Message d'origine-----
Bonjour à tous,

J'ai un problème pour afficher les données d'un
formulaire et d'un sous formulaire.
J'ai une table pour chaque étape, il y en a 18, et dans
une autre table toutes les étapes sont rassemblées, avec
les infos : description de l'étape, le début et la fin,
si complète...
Il y a un formulaire par étape et un sous-formulaire pour
la table étapes.
A chaque recherche sur un dossier, dans le formulaire
principal qui est l'étape je reçois les bonnes
informations, mais dans le sous-formulaire qui doit me
données les infos sur l'étape de la table étape, je
reçois une étape au hasard.

J'ai fais une recherche d'abord avec une index et la
commande Seek. Ensuite j'ai essayé avec une requête sql,
mais je n'arrive pas à avoir le formulaire principal et
le sous-formulaire sur la même étape.

Pour les premières étapes oui, mais à partir du moment ou
il y a plusieurs dossiers en cour j'ai des erreurs.

Je suis sous windoxs xp avec access 2000.
Voici mon code avec Seek:
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("T_formations",
dbOpenTable)
Set Mrecet = Mbase.OpenRecordset("T_etape", dbOpenTable)

Mrec.Index = "Num_dossier_index"
Mrec.Seek "=", Me!Num_dossieri
Mrecet.Index = "Num_dossierindex"
Mrecet.Seek "=", Me!SF_etape!Num_dossieri
If Mrec.NoMatch = False Then
If Mrecet.NoMatch = False Then

Voici mon code avec la requête sql
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("Select * from T_etape
where Num_dossier=" & Me!Num_dossieri & "And Num_ordre="
& Me!Num_ordrei)
Set Mreccomp = Mbase.OpenRecordset("Select * from
T_comptabilité where Num_dossier=" & Me!Num_dossieri)

Si vous aviez une petite idée a me suggérer j'en serais
ravie.
Nadine
.



Avatar
nadine
Merci Michel d'avoir répondu à ma question.

Il est vrai que tu n'as pas une vue d'ensemble de la base
de données.

Un dossier représente 18 étapes différentes, ex:
définition de la formation, le cahier de charges, les
appels d'offres, etc.. Il y a 18 tables et un formulaire
par table.

C'est 18 étapes sont rassemblées dans une seule table la
table étape, avec comme champs, id_étape,num_id_etape,
num-dossier,num_etape, description de l'étape, date
début, date fin, date limite,complète oui/non.Avec cette
table j'ai fait un sousformulaire qui s'affiche dans
chacun des autres formulaires.Les champs pères et fils
sont définis.

J'ai une clé primaire dans chaque table,qui est
généralement le num_id, mais je n'ai pas de relation
entre les tables car cela ne fonctionne pas pour les
créer.J'ai essayer de mettre un clé secondaire, mais là
non pluc cela ne fonctionne pas.

On m'a conseillé d'utiliser plutôt des formulaires liés
plutôt que des formulaires indépendents, je viens
d'essayer mais tout le code que j'ai créer ne fonctionne
plus et je sais même plus faire une rechercher sur un
dossier.

nadine


-----Message d'origine-----
Bonjour Nadine

Les infos que vous communiquez sont insuffisantes et pas
assez précises non plus pour réagir.

Mais je voudrais surtout vous mettre en garde : j'ai
l'impression que vous vous embarquez dans ce que
certains

qualifieront "d'usine à gaz", càd d'une application
super

compliquée à élaborer et ensuite à maintenir.
Probablement par défaut d'analyse et de structuration.

J'ai l'impression que (maintenant que vous avez une
partie

du développement en main et malgré cela,) vous devriez
revoir votre analyse et restructurer tout cela en
considérant que le développement déjà effectué vous a
permis de mieux cerner le problème.

Concernant votre problème actuel, il devrait normalement
être solutionné sans problème aucun avec les propriétés
ChampsFils (LinkChildFields) et ChampsPères
(LinkMasterFields), à condition que vous ayez :
- une clé primaire dans votre table Etape (qui devrait
être ramenée de 18 tables à une table)
- un pointeur dans la table générale, vers la clé
primaire

correspondante
- une relation entre les deux.

Mais vous avez 18 tables étapes. Est-ce indispensable ?
Les champs sont-ils tellement différents ?
Dans la négative, une seule table, un champ N° d'étape
et

des champs de même nature (texte, numérique etc) qui
peuvent être traités de manière différenciée si
nécessaire

via une structure SelectCase par exemple.
Quite à avoir quelques champs qui ne sont pas toujours
utilisés ou, plus sophistiqué, à avoir des tables
secondaires pour les détails particuliers correspondant
aux spécificités des 18 étapes, mais en maintenant une
table de base (qui pourrait peut-être être la table
générale que vous utilisez maintenant)

Une suggestion, peut-être utile, peut-être inadéquate.
Avis donné de l'extérieur et avec une vue très
superficielle (fatalement).
Je me trompe donc peut-être lourdement.

M. Gesnot


-----Message d'origine-----
Bonjour à tous,

J'ai un problème pour afficher les données d'un
formulaire et d'un sous formulaire.
J'ai une table pour chaque étape, il y en a 18, et dans
une autre table toutes les étapes sont rassemblées,
avec


les infos : description de l'étape, le début et la fin,
si complète...
Il y a un formulaire par étape et un sous-formulaire
pour


la table étapes.
A chaque recherche sur un dossier, dans le formulaire
principal qui est l'étape je reçois les bonnes
informations, mais dans le sous-formulaire qui doit me
données les infos sur l'étape de la table étape, je
reçois une étape au hasard.

J'ai fais une recherche d'abord avec une index et la
commande Seek. Ensuite j'ai essayé avec une requête
sql,


mais je n'arrive pas à avoir le formulaire principal et
le sous-formulaire sur la même étape.

Pour les premières étapes oui, mais à partir du moment
ou


il y a plusieurs dossiers en cour j'ai des erreurs.

Je suis sous windoxs xp avec access 2000.
Voici mon code avec Seek:
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("T_formations",
dbOpenTable)
Set Mrecet = Mbase.OpenRecordset("T_etape", dbOpenTable)

Mrec.Index = "Num_dossier_index"
Mrec.Seek "=", Me!Num_dossieri
Mrecet.Index = "Num_dossierindex"
Mrecet.Seek "=", Me!SF_etape!Num_dossieri
If Mrec.NoMatch = False Then
If Mrecet.NoMatch = False Then

Voici mon code avec la requête sql
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("Select * from T_etape
where Num_dossier=" & Me!Num_dossieri & "And
Num_ordre="


& Me!Num_ordrei)
Set Mreccomp = Mbase.OpenRecordset("Select * from
T_comptabilité where Num_dossier=" & Me!Num_dossieri)

Si vous aviez une petite idée a me suggérer j'en serais
ravie.
Nadine
.

.





Avatar
Michel Gesnot
Re Nadine

Aaah, c'est parfois dur de cohabiter avec Access ... :)

Suggestion :
Vous ajoutez 18 champs numériques "entier long" dans les
enregistrements de la table Etape, pour y stocker un
pointeur vers la clé primaire "AutoNumber" des 18 tables.
A adapter si les clés primaires sont d'un autre type.
Vous devriez pouvoir établir les relations et travailler
avec les champs père et fils (ou mère et fille).

Autre suggestion :
Préfixer les noms de vos champs avec le nom de la table :
dans quelques semaines ou mois, cela deviendra utile quand
vous relirez des modules terminés depuis quelque temps :
EtapeId, EtapeNumId, EtapeDossierNo, EtapeDescr,
EtapeDebut, EtapeFin, EtapeLimite etc...
Ce sera également plus clair pour une autre personne.
Et il vaut mieux semble-t-il éviter les caractères
accentués dans les noms de variables et de champs.

J'espère que cela fonctionnera maintenant.
M. Gesnot

-----Message d'origine-----
Merci Michel d'avoir répondu à ma question.

Il est vrai que tu n'as pas une vue d'ensemble de la base
de données.

Un dossier représente 18 étapes différentes, ex:
définition de la formation, le cahier de charges, les
appels d'offres, etc.. Il y a 18 tables et un formulaire
par table.

C'est 18 étapes sont rassemblées dans une seule table la
table étape, avec comme champs, id_étape,num_id_etape,
num-dossier,num_etape, description de l'étape, date
début, date fin, date limite,complète oui/non.Avec cette
table j'ai fait un sousformulaire qui s'affiche dans
chacun des autres formulaires.Les champs pères et fils
sont définis.

J'ai une clé primaire dans chaque table,qui est
généralement le num_id, mais je n'ai pas de relation
entre les tables car cela ne fonctionne pas pour les
créer.J'ai essayer de mettre un clé secondaire, mais là
non pluc cela ne fonctionne pas.

On m'a conseillé d'utiliser plutôt des formulaires liés
plutôt que des formulaires indépendents, je viens
d'essayer mais tout le code que j'ai créer ne fonctionne
plus et je sais même plus faire une rechercher sur un
dossier.

nadine


-----Message d'origine-----
Bonjour Nadine

Les infos que vous communiquez sont insuffisantes et pas
assez précises non plus pour réagir.

Mais je voudrais surtout vous mettre en garde : j'ai
l'impression que vous vous embarquez dans ce que
certains

qualifieront "d'usine à gaz", càd d'une application
super

compliquée à élaborer et ensuite à maintenir.
Probablement par défaut d'analyse et de structuration.

J'ai l'impression que (maintenant que vous avez une
partie

du développement en main et malgré cela,) vous devriez
revoir votre analyse et restructurer tout cela en
considérant que le développement déjà effectué vous a
permis de mieux cerner le problème.

Concernant votre problème actuel, il devrait normalement
être solutionné sans problème aucun avec les propriétés
ChampsFils (LinkChildFields) et ChampsPères
(LinkMasterFields), à condition que vous ayez :
- une clé primaire dans votre table Etape (qui devrait
être ramenée de 18 tables à une table)
- un pointeur dans la table générale, vers la clé
primaire

correspondante
- une relation entre les deux.

Mais vous avez 18 tables étapes. Est-ce indispensable ?
Les champs sont-ils tellement différents ?
Dans la négative, une seule table, un champ N° d'étape
et

des champs de même nature (texte, numérique etc) qui
peuvent être traités de manière différenciée si
nécessaire

via une structure SelectCase par exemple.
Quite à avoir quelques champs qui ne sont pas toujours
utilisés ou, plus sophistiqué, à avoir des tables
secondaires pour les détails particuliers correspondant
aux spécificités des 18 étapes, mais en maintenant une
table de base (qui pourrait peut-être être la table
générale que vous utilisez maintenant)

Une suggestion, peut-être utile, peut-être inadéquate.
Avis donné de l'extérieur et avec une vue très
superficielle (fatalement).
Je me trompe donc peut-être lourdement.

M. Gesnot


-----Message d'origine-----
Bonjour à tous,

J'ai un problème pour afficher les données d'un
formulaire et d'un sous formulaire.
J'ai une table pour chaque étape, il y en a 18, et dans
une autre table toutes les étapes sont rassemblées,
avec


les infos : description de l'étape, le début et la fin,
si complète...
Il y a un formulaire par étape et un sous-formulaire
pour


la table étapes.
A chaque recherche sur un dossier, dans le formulaire
principal qui est l'étape je reçois les bonnes
informations, mais dans le sous-formulaire qui doit me
données les infos sur l'étape de la table étape, je
reçois une étape au hasard.

J'ai fais une recherche d'abord avec une index et la
commande Seek. Ensuite j'ai essayé avec une requête
sql,


mais je n'arrive pas à avoir le formulaire principal et
le sous-formulaire sur la même étape.

Pour les premières étapes oui, mais à partir du moment
ou


il y a plusieurs dossiers en cour j'ai des erreurs.

Je suis sous windoxs xp avec access 2000.
Voici mon code avec Seek:
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("T_formations",
dbOpenTable)
Set Mrecet = Mbase.OpenRecordset("T_etape", dbOpenTable)

Mrec.Index = "Num_dossier_index"
Mrec.Seek "=", Me!Num_dossieri
Mrecet.Index = "Num_dossierindex"
Mrecet.Seek "=", Me!SF_etape!Num_dossieri
If Mrec.NoMatch = False Then
If Mrecet.NoMatch = False Then

Voici mon code avec la requête sql
Set Mbase = CurrentDb()
Set Mrec = Mbase.OpenRecordset("Select * from T_etape
where Num_dossier=" & Me!Num_dossieri & "And
Num_ordre="


& Me!Num_ordrei)
Set Mreccomp = Mbase.OpenRecordset("Select * from
T_comptabilité where Num_dossier=" & Me!Num_dossieri)

Si vous aviez une petite idée a me suggérer j'en serais
ravie.
Nadine
.

.


.