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

inserer une valeur dans un champ venant d'un champ d'une autre table

5 réponses
Avatar
mar
je suis totalement novice sur access et sur VBA encore=20
plus.
je cherche juste (mais ca fait des heures) =E0 inserer dans=20
un formulaire dans le champ "nom" d'une table le contenu=20
du champ "nom" d'une autre table li=E9e =E0 la premi=E8re.

j'ai chercher (entre autre)=E0 utiliser le g=E9n=E9rateur=20
d'expression en mettant une expression du type =3D=20
[table1]![nom] dans l'=E9venement "sur entr=E9e" du champ nom=20
de la table 2 : ca marche pas

quelqu'un peut-il m'aider ??????

5 réponses

Avatar
3stone
Salut,

"mar"
je suis totalement novice sur access et sur VBA encore plus.
je cherche juste (mais ca fait des heures) à inserer dans
un formulaire dans le champ "nom" d'une table le contenu
du champ "nom" d'une autre table liée à la première.

j'ai chercher (entre autre)à utiliser le générateur
d'expression en mettant une expression du type [table1]![nom] dans l'évenement "sur entrée" du champ nom
de la table 2 : ca marche pas



Tu essaies de créer une relation entre des tables, on dirait ?
Crée cela plutôt dans la fenêtre des relations, c'est le bon endroit.

Mais, ne crée surtout pas une relation entre des champs "Nom"
Si tu as deux "Dupont", tu es mal, très mal....

Et ne nomme pas un champ "Nom", mais plutôt LeNom ou LastName
ou quelque chose du genre... ("Nom" est une propriété)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar

Tu essaies de créer une relation entre des tables,
on dirait ?

Crée cela plutôt dans la fenêtre des relations, c'est le
bon endroit.


Mais, ne crée surtout pas une relation entre des
champs "Nom"

Si tu as deux "Dupont", tu es mal, très mal....

Et ne nomme pas un champ "Nom", mais plutôt LeNom ou
LastName

ou quelque chose du genre... ("Nom" est une propriété)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

merci pour ta réponse mais pas du tout

la relation est déjà crée et ceci sur un numéro unique.
j'au une table "identité" avec dedans un champ
nommé : "nom patronymique"
j'ai une autre table "usage" avec dedans un champ
nommé "nom d'usage"
dans le formulaire de la table identité, je saisis le
champ "nom patronymique". et je voudrais que le contenu
de ce champ aille s'inscrire dans le sous formulaire
juste en dessous de la table "usage" dans le champ "nom
d'usage". voilà
je ne sais pas si c'est tellement plus clair.....

Aidez moi !!!!!!!!!!!!



.



Avatar
3stone
Salut,

a écrit:
la relation est déjà crée et ceci sur un numéro unique.
j'au une table "identité" avec dedans un champ
nommé : "nom patronymique"
j'ai une autre table "usage" avec dedans un champ
nommé "nom d'usage"
dans le formulaire de la table identité, je saisis le
champ "nom patronymique". et je voudrais que le contenu
de ce champ aille s'inscrire dans le sous formulaire
juste en dessous de la table "usage" dans le champ "nom
d'usage". voilà



Et tu veux le copier à chaque fois, automatiquement ?
Tu es conscient que dans ce cas, cela crée un doublon...

Tu peux utiliser une simple requête de mise à jour de la table "usage"


Dim sSQL As String
sSQL = "UPDATE [Usage] SET Usage![Nom d'usage]='" & Me![Nom patronymique] & "' WHERE [PK]=" & Me!PK;

CurrentDB.Execute sSQL

Me!NomDuSousFormulaire.Form.Requery



NB: PK est à remplacer par le nom de ta clé primaire.

Mais je ne comprend pas le but de la manoeuvre ;-)



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
help
Et tu veux le copier à chaque fois, automatiquement ?
Tu es conscient que dans ce cas, cela crée un doublon...

Tu peux utiliser une simple requête de mise à jour de la
table "usage"



Dim sSQL As String
sSQL = "UPDATE [Usage] SET Usage![Nom d'usage]='" & Me!
[Nom patronymique] & "' WHERE [PK]=" & Me!PK;


CurrentDB.Execute sSQL

Me!NomDuSousFormulaire.Form.Requery



NB: PK est à remplacer par le nom de ta clé primaire.

Mais je ne comprend pas le but de la manoeuvre ;-)

----------------------------------------------

merci beaucoup pour ta réponse
le but de la manoeuvre est juste de faciliter la saisie.
Tous les hommes ont un nom patronymique= au nom d'usage
mais pas toutes les femmes.... je veux juste ne pas
obliger ceux qui saisissent à retaper l'information
quand le nom patronymique et d'usage est le meme, si il
est différend alors il doivent ressaisir.

Et c'est là que je suis embétée, voire très embétée. je
maitrise bien le SQL mais alors pas du tout du tout le VBA
et quand j'inscris ta commande d'update dans mon éditeur
VBa, la ligne elle devient toute rouge et il n'a vraiment
pas l'air content.j'ai bidouillée toutes les syntaxes que
je pouvais mais rien....

j'ai essayé de fabriquer une requete mise à jour en SQL
dans l'éditeur de requête. ca marche Mais le pb c'est que
je n'arrive pas à l'appliquer à une sortie de champ (dans
le formulaire).(cad pendant la saisie, quand le curseur
sort du champ "nom patronymique" il va écrire la valeur
du champ dans le champ "nom d'usage")

Et à la réfléxion, je ne veux pas forcement d'update de
table, je veux juste qu'il prenne le contenu du
champ "nom patronymique" pour le copier dans le
champ "nom d'usage" du sous formulaire. Il n'est pas
possible de passer par le générateur d'expression ?? en
bref..... d'éviter le plus possible le VBA....juste le
temps que j'apprenne à m'en servir





.



Avatar
3stone
Salut,

"help"

[...]
je maitrise bien le SQL

dans ce cas, ou est le problème ?


mais alors pas du tout du tout le VBA
et quand j'inscris ta commande d'update dans mon éditeur
VBa, la ligne elle devient toute rouge et il n'a vraiment
pas l'air content.j'ai bidouillée toutes les syntaxes que
je pouvais mais rien....

il faut adapter aux noms réels, bien sûr...
et avec un champ nommé [Nom d'usage] tu cherche les ennuis


j'ai essayé de fabriquer une requete mise à jour en SQL
dans l'éditeur de requête. ca marche Mais le pb c'est que
je n'arrive pas à l'appliquer à une sortie de champ (dans
le formulaire).(cad pendant la saisie, quand le curseur
sort du champ "nom patronymique" il va écrire la valeur
du champ dans le champ "nom d'usage")

inutile de faire cela en sortie de champ...
tu dois de toute faconterminer la saisie dans ton form principal
donc le mettre après mise à jour du form principal

Un autre problème est le besoin de mettre cela dans un
sous-formulaire et donc une table liée...
Il risque d'avoir plusieurs noms d'usage ??
Moi je le voir plutôt dans la table identité...
et on ne saisi que si différent.
Dans la requête, un simple champ calculé:

LeNom: iif(IsNull([autre nom];[nom réel];[autre nom])



Et à la réfléxion, je ne veux pas forcement d'update de
table, je veux juste qu'il prenne le contenu du
champ "nom patronymique" pour le copier dans le
champ "nom d'usage" du sous formulaire.

comme le sous-formulaire est basé sur la table...
choux vert et vert choux ;-)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------