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

obtenir la dernière valeur enregistrée

12 réponses
Avatar
C15
Bonjour à tous et à toutes,

J'ai fait une macro pour mettre à jour un contrôle (NomVille) dans un
formulaire.
Je voudrais y afficher le nom de la dernière ville saisie dans la table
TVille.

J'ai utilisé l'action "définir valeur" avec
élément : Form!NomVille
Expression :
RechDom("[TVille]![Ville]";"[TVille]";"[TVille]![N°Ville]=max([TVille]![N°Ville])")

Cela ne marche pas, la macro s'arrête sur cette expression.
Quelle est l'erreur ?

Merci de me remettre sur les rails - expression malheureuse par les temps
qui courent ;-))

A+

C15

10 réponses

1 2
Avatar
Willi2004
Bonjour C15.
Pourquoi faire plus compliqué quand tu peux faire plus simple?
Sur la ligne "Source contrôle" de la feuille des propriétés d'une zone de
texte de ton formulaire, tu mets: ÞrnDom("Ville";"TVille")


" C15" a écrit dans le message de
news: 473b5e1f$0$21144$
| Bonjour à tous et à toutes,
|
| J'ai fait une macro pour mettre à jour un contrôle (NomVille) dans un
| formulaire.
| Je voudrais y afficher le nom de la dernière ville saisie dans la table
| TVille.
|
| J'ai utilisé l'action "définir valeur" avec
| élément : Form!NomVille
| Expression :
|
RechDom("[TVille]![Ville]";"[TVille]";"[TVille]![N°Ville]=max([TVille]![N°Ville])")
|
| Cela ne marche pas, la macro s'arrête sur cette expression.
| Quelle est l'erreur ?
|
| Merci de me remettre sur les rails - expression malheureuse par les temps
| qui courent ;-))
|
| A+
|
| C15
|
|
|
|
|
Avatar
C15
Bonjour Willy,

Cela fait 2 fois ces temps-ci que tu réponds efficacement à mes questions !

Merci encore.

A+

C15


"Willi2004" a écrit dans le message de news:
uPr1$
Bonjour C15.
Pourquoi faire plus compliqué quand tu peux faire plus simple?
Sur la ligne "Source contrôle" de la feuille des propriétés d'une zone de
texte de ton formulaire, tu mets: ÞrnDom("Ville";"TVille")


" C15" a écrit dans le message de
news: 473b5e1f$0$21144$
| Bonjour à tous et à toutes,
|
| J'ai fait une macro pour mettre à jour un contrôle (NomVille) dans un
| formulaire.
| Je voudrais y afficher le nom de la dernière ville saisie dans la table
| TVille.
|
| J'ai utilisé l'action "définir valeur" avec
| élément : Form!NomVille
| Expression :
|
RechDom("[TVille]![Ville]";"[TVille]";"[TVille]![N°Ville]=max([TVille]![N°Ville])")
|
| Cela ne marche pas, la macro s'arrête sur cette expression.
| Quelle est l'erreur ?
|
| Merci de me remettre sur les rails - expression malheureuse par les
temps
| qui courent ;-))
|
| A+
|
| C15
|
|
|
|
|




Avatar
C15
Bonjour Willy, je reviens vers toi car la dernière ville saisie s'est bien
affichée dans mon formulaire...sauf que

j'avais oublié de te dire que mon contôle NomVille est en fait une liste
modifiable basée sur la TVille.

Quand j'ai appliqué ta fonction derndom, la derbière ville saisie s'est bien
affichée mais en déroulant la liste toutes les autres villes ont disparues,
alors que autant sans requête SQL que dans ma table TVille toutes les villes
apparaissent.

Il semblerait (cf un autre post "contenu 1ère colonne ne s'affiche pas") que
cela ait corrompu mon ACCESS 2003 car j'ai lu la base sans problème sur un
autre PC.

La fonction dépanner/réparer n'ayant rien donné, j'ai du désinstallé et
réinstallé office 2003.

Merci de ton aide

A+

C15

" C15" a écrit dans le message de
news: 473be4da$0$21144$
Bonjour Willy,

Cela fait 2 fois ces temps-ci que tu réponds efficacement à mes questions
!

Merci encore.

A+

C15


"Willi2004" a écrit dans le message de news:
uPr1$
Bonjour C15.
Pourquoi faire plus compliqué quand tu peux faire plus simple?
Sur la ligne "Source contrôle" de la feuille des propriétés d'une zone de
texte de ton formulaire, tu mets: ÞrnDom("Ville";"TVille")


" C15" a écrit dans le message de
news: 473b5e1f$0$21144$
| Bonjour à tous et à toutes,
|
| J'ai fait une macro pour mettre à jour un contrôle (NomVille) dans un
| formulaire.
| Je voudrais y afficher le nom de la dernière ville saisie dans la table
| TVille.
|
| J'ai utilisé l'action "définir valeur" avec
| élément : Form!NomVille
| Expression :
|
RechDom("[TVille]![Ville]";"[TVille]";"[TVille]![N°Ville]=max([TVille]![N°Ville])")
|
| Cela ne marche pas, la macro s'arrête sur cette expression.
| Quelle est l'erreur ?
|
| Merci de me remettre sur les rails - expression malheureuse par les
temps
| qui courent ;-))
|
| A+
|
| C15
|
|
|
|
|








Avatar
3stone
Salut,

"Willi2004"
| Bonjour C15.
| Pourquoi faire plus compliqué quand tu peux faire plus simple?
| Sur la ligne "Source contrôle" de la feuille des propriétés d'une zone de
| texte de ton formulaire, tu mets: ÞrnDom("Ville";"TVille")


attention, DLast() ne ramène pas ce que l'on croit...


Extrait de l'aide :
Les fonctions DFirst et DLast renvoient un enregistrement aléatoire d'un
champ particulier dans une table ou une requête quand vous avez besoin
d'une valeur quelconque de ce champ.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
C15
Bonjour 3Stone,

Merci de ce complément; mais alors comment ramener dans une liste modifiable
la de'rnière valeur enregistrée.

Merci de ton aide

A+

C15


"3stone" a écrit dans le message de news:
%
Salut,

"Willi2004"
| Bonjour C15.
| Pourquoi faire plus compliqué quand tu peux faire plus simple?
| Sur la ligne "Source contrôle" de la feuille des propriétés d'une zone
de
| texte de ton formulaire, tu mets: ÞrnDom("Ville";"TVille")


attention, DLast() ne ramène pas ce que l'on croit...


Extrait de l'aide :
Les fonctions DFirst et DLast renvoient un enregistrement aléatoire d'un
champ particulier dans une table ou une requête quand vous avez besoin
d'une valeur quelconque de ce champ.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
3stone
Salut,

" C15"
| Merci de ce complément; mais alors comment ramener dans une liste modifiable
| la de'rnière valeur enregistrée.


Il faut soit un champ date/heure ou une clé primaire numauto. Utiliser alors DMax()
A défaut une clé personnelle mais qui *doit* être incrémentale.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
C15
Bonjour 3Stone,

Je ne comprends pas trop.

Pour info j'ai ma table T Villes avec N°Ville(NumAuto), Ville et CP(Texte)
et T Salariés avec N°Mat(incrémenté par code), Ville et CP (Texte) et
N°Ville
Les 2 tables sont reliées par N°Ville

Dans mon formulaire basé sur la T Salariés je veux que s'affiche directement
dans un contrôle liste déroulante ville le nom de la dernière ville
enregistrée dans ma table T Villes, sans pour autant perdre la possibilité
de choisir aprmi toutes les villes.

Merci de ton aide

A+

C15
"3stone" a écrit dans le message de news:
eil%
Salut,

" C15"
| Merci de ce complément; mais alors comment ramener dans une liste
modifiable
| la de'rnière valeur enregistrée.


Il faut soit un champ date/heure ou une clé primaire numauto. Utiliser
alors DMax()
A défaut une clé personnelle mais qui *doit* être incrémentale.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
3stone
Salut,

" C15"
| Pour info j'ai ma table T Villes avec N°Ville(NumAuto), Ville et CP(Texte)
| et T Salariés avec N°Mat(incrémenté par code), Ville et CP (Texte) et
| N°Ville
| Les 2 tables sont reliées par N°Ville
|
| Dans mon formulaire basé sur la T Salariés je veux que s'affiche directement
| dans un contrôle liste déroulante ville le nom de la dernière ville
| enregistrée dans ma table T Villes, sans pour autant perdre la possibilité
| de choisir aprmi toutes les villes.


Puisque [N°Ville] est un NumAuto, l'enregistrement ayant le plus grand
numéro est bien le dernier enregistré...


Tu mets donc "sur activation" (form_current) du formulaire :

If Me.NewRecord Then
lst_NomListe = DLookup("[Ville]", "T_Villes", "[N°Ville]=" _
& DMax("[N°Ville]", "Ville"))
End If


A adapter, bien sûr !

Mais, je comprendrais mieux si tu souhaitais comme valeur "par défaut"
la ville que tu as saisie en dernier lieu dans le formulaire "Salariés" ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
C15
Bonjour 3Stone,

Merci de cette réponse mais je n'ai sans doute pas été clair.

En fait dans mon formulaire basé sur ma T salariés si je ne trouve pas une
ville dans ma liste déroulante "NomVille", j'ouvre un formulaire basé sur
ma TVilles pour saisir cette nouvelle ville.

Ce que je voudrais, c'est que, quand je referme ce formulaire "Villes" et
que je retourne dans mon F Salariés, j'ai cette nouvelle ville qui s'affiche
sans que j'ai à dérouler ma liste et sélectionner la ville.


Willy 2004 m'avait proposé une solution qui a semble-t-il planté mon ACCESS
(cf post "contenu de la 1ère colonne ne s'affiche pas")
Sa solution qui semblerait marcher maintenant parait plus adaptée à mon cas.

Ta solution aurait été parfaite si j'avais bien posé ma question.

Merci encore

A+

C15

PS : au fait 3Stone pourquoi ne te présentes tu pas comme 1er ministre
Belge, il parait que vous êtes en manque ;-)))))))

"3stone" a écrit dans le message de news:

Salut,

" C15"
| Pour info j'ai ma table T Villes avec N°Ville(NumAuto), Ville et
CP(Texte)
| et T Salariés avec N°Mat(incrémenté par code), Ville et CP (Texte) et
| N°Ville
| Les 2 tables sont reliées par N°Ville
|
| Dans mon formulaire basé sur la T Salariés je veux que s'affiche
directement
| dans un contrôle liste déroulante ville le nom de la dernière ville
| enregistrée dans ma table T Villes, sans pour autant perdre la
possibilité
| de choisir aprmi toutes les villes.


Puisque [N°Ville] est un NumAuto, l'enregistrement ayant le plus grand
numéro est bien le dernier enregistré...


Tu mets donc "sur activation" (form_current) du formulaire :

If Me.NewRecord Then
lst_NomListe = DLookup("[Ville]", "T_Villes", "[N°Ville]=" _
& DMax("[N°Ville]", "Ville"))
End If


A adapter, bien sûr !

Mais, je comprendrais mieux si tu souhaitais comme valeur "par défaut"
la ville que tu as saisie en dernier lieu dans le formulaire "Salariés"
;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
3stone
Salut,

" C15"
| En fait dans mon formulaire basé sur ma T salariés si je ne trouve pas une
| ville dans ma liste déroulante "NomVille", j'ouvre un formulaire basé sur
| ma TVilles pour saisir cette nouvelle ville.
|
| Ce que je voudrais, c'est que, quand je referme ce formulaire "Villes" et
| que je retourne dans mon F Salariés, j'ai cette nouvelle ville qui s'affiche
| sans que j'ai à dérouler ma liste et sélectionner la ville.


Ah, je comprends mieux...

A condition que le formulaire "Villes" ne soit appelé qu'à partir du
formulaire "Salariés" (sinon faire un test sur sa présence), tu dois
pouvoir mettre sur "après mise à jour" du form Villes :

Forms!frmSalaries!lstVille.requery
Forms!frmSalaries!lstVille = Me.Ville

Mais il y a des contraintes...
- comme dit, l'appel du frmVille vient bien du frmSalaries
- la sélection n'est pas encore réalisée...

Pour réaliser cela dans les règles, il faudrait transmettre dans le
paramètre "OpenArgs" le nom du formulaire appelant

DoCmd.OpenForm "fmrVilles"..... OpenArgs:= Me.Name

et tester cet argument dans le form Villes.
Si ok, envoyer les données vers le form Salariés.

Normalement, dans la table Salariés, tu ne devrais d'ailleurs ne sauver
que le [N°Ville]


| PS : au fait 3Stone pourquoi ne te présentes tu pas comme 1er ministre
| Belge, il parait que vous êtes en manque ;-)))))))
|

Pas de manque, c'est l'inverse ;-) Ils sont tellement, qu'ils trouvent
difficilement une place intéressante pour chacun ;-(

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
1 2