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

ajouter une table pour modifier mon formulaire (question basique)

9 réponses
Avatar
...Patrick
Bonsoir,

j'ai un formulaire basé sur une table mais je viens de lier cette table à
une autre pour un encodage plus complet et "intelligent"..
comment faire apparaitre ces nouveaux champs dans la liste des champs en
mode création ?
Dois-je créer une requete avec ces 2 tables ?

Merci


Patrick

9 réponses

Avatar
Tisane
Bonjour Patrick,

j'ai un formulaire basé sur une table mais je viens de lier cette
table à une autre pour un encodage plus complet et "intelligent"..
comment faire apparaitre ces nouveaux champs dans la liste des champs
en mode création ?
Dois-je créer une requete avec ces 2 tables ?


La relation entre les 2 tables est de type 1-n ou 1-1.
Si c'est 1-1, base ton formulaire en effet sur une requête qui regroupera
les 2 tables.
Si c'est 1-n, ton formulaire basé sur la table 1 est toujours ok.
Crée un formulaire basé sur la table n et fais-en un sous-formulaire.

--
Tisane

Avatar
...Patrick
Ok,
ce sera 1:n car un Numero de la table "entrées" doit se retouver dans
"entrées-suites" le numero de commande aussi, mais par contre par numéro de
commande, il y aura "n" numéro d'articles;
dans mon formulaire le numéro du nouvel enregistrement , doit se mettre dans
les 2 tables, "commande" aussi , mais "articles" uniquement dans la seconde.
Je ne peux (raisons d'archive) bouger à la structure de la table "entrées"
(sauf ajouter des champs bien sur), mais je veux de nouvelles infos, c'est
pourquoi je les mets dans une seconde table.

Est ce que je dois bien lier "numero" et "commande" dans les 2 tables ?
Merci à toi
Patrick



"Tisane" a écrit dans le message de news:

Bonjour Patrick,

j'ai un formulaire basé sur une table mais je viens de lier cette
table à une autre pour un encodage plus complet et "intelligent"..
comment faire apparaitre ces nouveaux champs dans la liste des champs
en mode création ?
Dois-je créer une requete avec ces 2 tables ?


La relation entre les 2 tables est de type 1-n ou 1-1.
Si c'est 1-1, base ton formulaire en effet sur une requête qui regroupera
les 2 tables.
Si c'est 1-n, ton formulaire basé sur la table 1 est toujours ok.
Crée un formulaire basé sur la table n et fais-en un sous-formulaire.

--
Tisane



Avatar
Tisane
ce sera 1:n car un Numero de la table "entrées" doit se retouver dans
"entrées-suites" le numero de commande aussi, mais par contre par
numéro de commande, il y aura "n" numéro d'articles;
dans mon formulaire le numéro du nouvel enregistrement , doit se
mettre dans les 2 tables, "commande" aussi , mais "articles"
uniquement dans la seconde. Je ne peux (raisons d'archive) bouger à
la structure de la table "entrées" (sauf ajouter des champs bien
sur), mais je veux de nouvelles infos, c'est pourquoi je les mets
dans une seconde table. Est ce que je dois bien lier "numero" et
"commande" dans les 2 tables


Tu dois lier par le même champ les 2 tables.
Mais tu as 3 tables maintenant ?
Peux-tu nommer correctement les tables et les champs ? On passe plus de
temps à essayer de comprendre le problème qu'à répondre ;-))

Tu as une table T_Entrees, composée d'une clé primaire nommée "No_Entree" ?
Tu as une table T_Entrees_Suite, composée d'une clé primaire nommée
"No_Entree_Suite" ?
Tu as une table T_Articles, composée d'une clé primaire nommée "No_Article"
?
1 entrée a plusieurs entrées_suite ? Si oui, tu dois avoir aussi un champ
"No_Entree" dans la T_Entrees_Suite et tu fais le lien entre les 2 champs
qui devraient donc porter le même nom.

--
Tisane

Bonjour Patrick,

j'ai un formulaire basé sur une table mais je viens de lier cette
table à une autre pour un encodage plus complet et "intelligent"..
comment faire apparaitre ces nouveaux champs dans la liste des
champs en mode création ?
Dois-je créer une requete avec ces 2 tables ?


La relation entre les 2 tables est de type 1-n ou 1-1.
Si c'est 1-1, base ton formulaire en effet sur une requête qui
regroupera les 2 tables.
Si c'est 1-n, ton formulaire basé sur la table 1 est toujours ok.
Crée un formulaire basé sur la table n et fais-en un sous-formulaire.

--
Tisane





Avatar
...Patrick
En effet, diffcile à comprendre car difficile à énoncer clairement...

J'essaie encore et je reviendrai

Patrick

"Tisane" a écrit dans le message de news:
O%
ce sera 1:n car un Numero de la table "entrées" doit se retouver dans
"entrées-suites" le numero de commande aussi, mais par contre par
numéro de commande, il y aura "n" numéro d'articles;
dans mon formulaire le numéro du nouvel enregistrement , doit se
mettre dans les 2 tables, "commande" aussi , mais "articles"
uniquement dans la seconde. Je ne peux (raisons d'archive) bouger à
la structure de la table "entrées" (sauf ajouter des champs bien
sur), mais je veux de nouvelles infos, c'est pourquoi je les mets
dans une seconde table. Est ce que je dois bien lier "numero" et
"commande" dans les 2 tables


Tu dois lier par le même champ les 2 tables.
Mais tu as 3 tables maintenant ?
Peux-tu nommer correctement les tables et les champs ? On passe plus de
temps à essayer de comprendre le problème qu'à répondre ;-))

Tu as une table T_Entrees, composée d'une clé primaire nommée "No_Entree"
?
Tu as une table T_Entrees_Suite, composée d'une clé primaire nommée
"No_Entree_Suite" ?
Tu as une table T_Articles, composée d'une clé primaire nommée
"No_Article" ?
1 entrée a plusieurs entrées_suite ? Si oui, tu dois avoir aussi un champ
"No_Entree" dans la T_Entrees_Suite et tu fais le lien entre les 2 champs
qui devraient donc porter le même nom.

--
Tisane

Bonjour Patrick,

j'ai un formulaire basé sur une table mais je viens de lier cette
table à une autre pour un encodage plus complet et "intelligent"..
comment faire apparaitre ces nouveaux champs dans la liste des
champs en mode création ?
Dois-je créer une requete avec ces 2 tables ?


La relation entre les 2 tables est de type 1-n ou 1-1.
Si c'est 1-1, base ton formulaire en effet sur une requête qui
regroupera les 2 tables.
Si c'est 1-n, ton formulaire basé sur la table 1 est toujours ok.
Crée un formulaire basé sur la table n et fais-en un sous-formulaire.

--
Tisane









Avatar
...Patrick
Bon je suis arrivé à qq chose :-)

à présent que vais chercher le code article avec une liste déroulante
(venant d'une table à 2 champs: "code article" & "libelle"), comment à côté
de ce code que l'on choisi, afficher à titre indicatif le libellé en
question ?

Merci


"...Patrick"
Avatar
Eric
Bonjour,

Pas lu tout le fil.

Ce qui me parait le plus simple est de construire ta liste sur ta table
en mettant les 2 champs et dans les propriétés de la liste tu mets la
largeur de la 2eme colonne à 0 cm.
Une zone de Texte à coté, par ex nommée Texte2
Sur l'évènement Après Mise à jour de la liste (ici une Modifiable):
Private Sub Modifiable0_AfterUpdate()
Me.Texte2 = Me.Modifiable0.Column(1)
End Sub

te retournera dans la zone de texte le libellé associé au code.

Bon je suis arrivé à qq chose :-)

à présent que vais chercher le code article avec une liste déroulante
(venant d'une table à 2 champs: "code article" & "libelle"), comment à
côté de ce code que l'on choisi, afficher à titre indicatif le libellé
en question ?

Merci


"...Patrick"


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
...Patrick
Merci Eric, ça a fonctionné mais encore un mais:
la zone déroulante (dans un sous formulaire) affiche les codes articles
quand je clique et mets donc le libellé à côté comme prévu, mais si j'ajoute
une autre ligne en dessous, la dégination du 2eme article se mets aussi au
premier en écrasant la précédante; je comprends pourquoi mais je ne sais pas
commant je peux "figer" la première désignation et puis passer aux autres...
L'information du code article sera sauvegardée mais la désignation est juste
pour info, et tout ceci pour une meme commande qui est dans le formulaire
principal.

(J'encode donc avec ce formulaire une commande entrée en formulaire princ et
les différents articles livrés ce jour là en sous formulaire.)

D'autre part la macro de test de recherche essayée dans le meme but est
toujours demandée par access alors que je l'ai remplacée par le vba ,
comment faire pour ne plus avoir de message d'access sur une macro disparue
?
Merci

Patrick

"Eric" a écrit dans le message de news:
%
Bonjour,

Pas lu tout le fil.

Ce qui me parait le plus simple est de construire ta liste sur ta table en
mettant les 2 champs et dans les propriétés de la liste tu mets la largeur
de la 2eme colonne à 0 cm.
Une zone de Texte à coté, par ex nommée Texte2
Sur l'évènement Après Mise à jour de la liste (ici une Modifiable):
Private Sub Modifiable0_AfterUpdate()
Me.Texte2 = Me.Modifiable0.Column(1)
End Sub

te retournera dans la zone de texte le libellé associé au code.

Bon je suis arrivé à qq chose :-)

à présent que vais chercher le code article avec une liste déroulante
(venant d'une table à 2 champs: "code article" & "libelle"), comment à
côté de ce code que l'on choisi, afficher à titre indicatif le libellé en
question ?

Merci


"...Patrick"


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonjour,

Ce que je ferai.
Si j'ai bien compris tu as une table Commande et une Table Article en
relation plusieurs à plusieurs donc une association entre ces 2 tables
qui devrait être LigneCommande qui se transforme en table avec, entre
autres, les champs suivants : IdCommande, IdArticle, Qte ...

Tu crées pour source de ton sous-formulaire une requête basée sur les
tables LigneCommande et Article en retenant les champs nécessaires dont
IdArticle et NomArticle. Tu construis le sous form sur cette requête.
Dans le sous-form, tu transformes la zone de texte IdArticle en liste
déroulante contenant les ref et tu mets les propriétés de la zone de
texte NomArticle Activé à Non et Verrouillé à Oui. Ainsi, pour chaque
ligne du sous-form quand tu choisis une référence, le nom en clair
apparait (et n'est pas modifiable ni accessible, on passe directement
sur le champ suivant par la touche Tabulation).

Pour ce qui est de la macro, recherches à quel moment elle est appelée
car elle est forcément mise sur un évènement. Donc regardes les
évènements de la liste, de formulaire, ... Quand trouvé ;-) supprime
l'appel. Difficile de répondre exactement d'ici.



Merci Eric, ça a fonctionné mais encore un mais:
la zone déroulante (dans un sous formulaire) affiche les codes articles
quand je clique et mets donc le libellé à côté comme prévu, mais si
j'ajoute une autre ligne en dessous, la dégination du 2eme article se
mets aussi au premier en écrasant la précédante; je comprends pourquoi
mais je ne sais pas commant je peux "figer" la première désignation et
puis passer aux autres...
L'information du code article sera sauvegardée mais la désignation est
juste pour info, et tout ceci pour une meme commande qui est dans le
formulaire principal.

(J'encode donc avec ce formulaire une commande entrée en formulaire
princ et les différents articles livrés ce jour là en sous formulaire.)

D'autre part la macro de test de recherche essayée dans le meme but est
toujours demandée par access alors que je l'ai remplacée par le vba ,
comment faire pour ne plus avoir de message d'access sur une macro
disparue ?
Merci

Patrick

"Eric" a écrit dans le message de news:
%

Bonjour,

Pas lu tout le fil.

Ce qui me parait le plus simple est de construire ta liste sur ta
table en mettant les 2 champs et dans les propriétés de la liste tu
mets la largeur de la 2eme colonne à 0 cm.
Une zone de Texte à coté, par ex nommée Texte2
Sur l'évènement Après Mise à jour de la liste (ici une Modifiable):
Private Sub Modifiable0_AfterUpdate()
Me.Texte2 = Me.Modifiable0.Column(1)
End Sub

te retournera dans la zone de texte le libellé associé au code.


Bon je suis arrivé à qq chose :-)

à présent que vais chercher le code article avec une liste déroulante
(venant d'une table à 2 champs: "code article" & "libelle"), comment
à côté de ce code que l'on choisi, afficher à titre indicatif le
libellé en question ?

Merci


"...Patrick"



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
...Patrick
Merci, j'ai bien avancé !!

Je reviendrai surement , je ne suis pas aux bouts de mes peines..
Patrick

"Eric" a écrit dans le message de news:

Bonjour,

Ce que je ferai.
Si j'ai bien compris tu as une table Commande et une Table Article en
relation plusieurs à plusieurs donc une association entre ces 2 tables qui
devrait être LigneCommande qui se transforme en table avec, entre autres,
les champs suivants : IdCommande, IdArticle, Qte ...

Tu crées pour source de ton sous-formulaire une requête basée sur les
tables LigneCommande et Article en retenant les champs nécessaires dont
IdArticle et NomArticle. Tu construis le sous form sur cette requête.
Dans le sous-form, tu transformes la zone de texte IdArticle en liste
déroulante contenant les ref et tu mets les propriétés de la zone de texte
NomArticle Activé à Non et Verrouillé à Oui. Ainsi, pour chaque ligne du
sous-form quand tu choisis une référence, le nom en clair apparait (et
n'est pas modifiable ni accessible, on passe directement sur le champ
suivant par la touche Tabulation).

Pour ce qui est de la macro, recherches à quel moment elle est appelée car
elle est forcément mise sur un évènement. Donc regardes les évènements de
la liste, de formulaire, ... Quand trouvé ;-) supprime l'appel. Difficile
de répondre exactement d'ici.



Merci Eric, ça a fonctionné mais encore un mais:
la zone déroulante (dans un sous formulaire) affiche les codes articles
quand je clique et mets donc le libellé à côté comme prévu, mais si
j'ajoute une autre ligne en dessous, la dégination du 2eme article se
mets aussi au premier en écrasant la précédante; je comprends pourquoi
mais je ne sais pas commant je peux "figer" la première désignation et
puis passer aux autres...
L'information du code article sera sauvegardée mais la désignation est
juste pour info, et tout ceci pour une meme commande qui est dans le
formulaire principal.

(J'encode donc avec ce formulaire une commande entrée en formulaire princ
et les différents articles livrés ce jour là en sous formulaire.)

D'autre part la macro de test de recherche essayée dans le meme but est
toujours demandée par access alors que je l'ai remplacée par le vba ,
comment faire pour ne plus avoir de message d'access sur une macro
disparue ?
Merci

Patrick

"Eric" a écrit dans le message de news:
%

Bonjour,

Pas lu tout le fil.

Ce qui me parait le plus simple est de construire ta liste sur ta table
en mettant les 2 champs et dans les propriétés de la liste tu mets la
largeur de la 2eme colonne à 0 cm.
Une zone de Texte à coté, par ex nommée Texte2
Sur l'évènement Après Mise à jour de la liste (ici une Modifiable):
Private Sub Modifiable0_AfterUpdate()
Me.Texte2 = Me.Modifiable0.Column(1)
End Sub

te retournera dans la zone de texte le libellé associé au code.


Bon je suis arrivé à qq chose :-)

à présent que vais chercher le code article avec une liste déroulante
(venant d'une table à 2 champs: "code article" & "libelle"), comment à
côté de ce code que l'on choisi, afficher à titre indicatif le libellé
en question ?

Merci


"...Patrick"



--
A+
Eric
http://www.mpfa.info/
Archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr