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

ouvrir un formulaire lié à un enregistrement variable

24 réponses
Avatar
Marie Christine PINSOLLE
Bonjour,
je voudrais pouvoir ouvrir un formulaire correspondant à un enregistrement
dont je viens de changer la valeur d'un controle, en sachant que je vais
changer la valeur de ce controle sur d'autres enregistrements qui devront au
fur et à mesure remplacer le premier. Comment faire ?
Merci de bien vouloir m'aider.

10 réponses

1 2 3
Avatar
Eric
Bonsoir,

Pas sur d'avoir tout compris.
Si tu changes la valeur du champ à l'aide du formulaire, tu peux faire
comme suit, le formulaire s'ouvrant sur le dernier enregistrement modifié:
1-Déclarer une variable globale dans un module:
Public strVar As Variant
2-Sur l'évènement après Mise à jour du champ concerné
Private Sub NomChamp_AfterUpdate()
strVar = Me.CurrentRecord - 1
End Sub
3-Sur Ouverure du formulaire, à la prochaine ouverture:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(strvar) Then
Me.Recordset.AbsolutePosition = strVar
End If
End Sub

(Le champ modifié ne doit pas être clé primaire.
Prévoir de mettre à NULL la variable strVar à un moment donné.Quand ???)

Bonjour,
je voudrais pouvoir ouvrir un formulaire correspondant à un enregistrement
dont je viens de changer la valeur d'un controle, en sachant que je vais
changer la valeur de ce controle sur d'autres enregistrements qui devront au
fur et à mesure remplacer le premier. Comment faire ?
Merci de bien vouloir m'aider.


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

Avatar
marie-christine.pinsolle
Bonjour,
Comme vous avez essayé de m'aider, je me permets de vous remercier en
direct.
J'aurais encore besoin de vos lumières.
Toujours par rapport à cette ouverture de formulaire.
Je pense ne pas avoir été très claire dans ma demande :
voici le problème :
Je suis sur un formulaire A
j'entre une donnée dans un contrôle de ce formulaire, cette entrée
déclenche l'ouverture d'un formulaire B relatif exclusivement à
l'enregistrement que je viens de modifier, j'entre des données sur le
formulaire B, j'imprime l'état correspondant au formulaire B avec ce
seul enregistrement et je ferme l'état et le formulaire B;
Lorsque j'entre des données dans le contrôle du formulaire A sur un
nouvel enregistrement, le formulaire B doit s'ouvrir sur ce nouvel
enregistrement ayant oublié l'autre qui est toujours avec son entrée
dans le contrôle et qui la gardera définitivement et je dois imprimer
l'état B avec ce nouvel enregistrement ayant oublié le précédent
qui garde ses données.
Je ne sais pas si c'est mieux mais je pense ne pas pouvoir améliorer
ma demande.
Merci d'essayer de me comprendre.
Sincères salutations.
M.C. PINSOLLE

Bonsoir,

Pas sur d'avoir tout compris.
Si tu changes la valeur du champ à l'aide du formulaire, tu peux faire
comme suit, le formulaire s'ouvrant sur le dernier enregistrement modifi é:
1-Déclarer une variable globale dans un module:
Public strVar As Variant
2-Sur l'évènement après Mise à jour du champ concerné
Private Sub NomChamp_AfterUpdate()
strVar = Me.CurrentRecord - 1
End Sub
3-Sur Ouverure du formulaire, à la prochaine ouverture:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(strvar) Then
Me.Recordset.AbsolutePosition = strVar
End If
End Sub

(Le champ modifié ne doit pas être clé primaire.
Prévoir de mettre à NULL la variable strVar à un moment donné.Qua nd ???)

Bonjour,
je voudrais pouvoir ouvrir un formulaire correspondant à un enregistr ement
dont je viens de changer la valeur d'un controle, en sachant que je vais
changer la valeur de ce controle sur d'autres enregistrements qui devro nt au
fur et à mesure remplacer le premier. Comment faire ?
Merci de bien vouloir m'aider.


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



Avatar
Eric
Bonjour Marie-Christine,

Je fais des suppositions.
Vous êtes sur un formulaire A et dans un champ vous saisissez une
valeur. Sur l'évènement Après MAJ vous ouvrez un formulaire B sur cette
enregistrement, donc vous avez un code du genre
DoCmd.OpenForm " FormulaireB",,,"Lechamp='" & me!LeChampFormulaireA & "'"
(à une erreur de virgule prêt car je fais çà de mémoire ;-) )

Ce que vous souhaitez : après avoir ouvert le formulaireB , complété les
infos, imprimé l'état et refermé l'état et le formulaireB, c'est dans le
cas où vous soughaitez saisir un nouvel enregistrement dans le
formulaire A de pouvoir ouvrir le formulaireB avec par défaut la donnée
saisie dans le formulaireA, compléter ce formulaireB pour imprimer
l'état correspondant.

C'est de ce côté qu'il faut poursuivre ?


Bonjour,
Comme vous avez essayé de m'aider, je me permets de vous remercier en
direct.
J'aurais encore besoin de vos lumières.
Toujours par rapport à cette ouverture de formulaire.
Je pense ne pas avoir été très claire dans ma demande :
voici le problème :
Je suis sur un formulaire A
j'entre une donnée dans un contrôle de ce formulaire, cette entrée
déclenche l'ouverture d'un formulaire B relatif exclusivement à
l'enregistrement que je viens de modifier, j'entre des données sur le
formulaire B, j'imprime l'état correspondant au formulaire B avec ce
seul enregistrement et je ferme l'état et le formulaire B;
Lorsque j'entre des données dans le contrôle du formulaire A sur un
nouvel enregistrement, le formulaire B doit s'ouvrir sur ce nouvel
enregistrement ayant oublié l'autre qui est toujours avec son entrée
dans le contrôle et qui la gardera définitivement et je dois imprimer
l'état B avec ce nouvel enregistrement ayant oublié le précédent
qui garde ses données.
Je ne sais pas si c'est mieux mais je pense ne pas pouvoir améliorer
ma demande.
Merci d'essayer de me comprendre.
Sincères salutations.
M.C. PINSOLLE


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

Avatar
marie-christine.pinsolle
Eric,
Merci de m'avoir répondu si vite.
En effet, il faudrait que lorsque j'entre une donnée dans le champ le
formulaire s'ouvre sur cet enregistrement et que l'état s'imprime avec
ce seul enregistrement et tout le temps comme ça, il en imprime un, le
quitte en imprime un autre, le quitte, etc.
J'espère que ça va ?
Merci encore
M.C.
Avatar
Eric
Bonjour,

Dans ce cas-là, il vous suffit de mettre une clause Where sur les ordres
d'ouverture des formulaires et états, du genre :
DoCmd.OpenForm "leFormulaire", , , "LaCondition" ou
DoCmd.OpenReport "lEtat", , , "LaCondition"

avec la condition qui pourrait être :
"NomClient='" & Me!NomClient & "'" si alphanumérique
ou
"NumClient=" & Me!NumClient si numérique



Eric,
Merci de m'avoir répondu si vite.
En effet, il faudrait que lorsque j'entre une donnée dans le champ le
formulaire s'ouvre sur cet enregistrement et que l'état s'imprime avec
ce seul enregistrement et tout le temps comme ça, il en imprime un, le
quitte en imprime un autre, le quitte, etc.
J'espère que ça va ?
Merci encore
M.C.



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

Avatar
marie-christine.pinsolle
Merci Eric
Mais je voudrais que la seule condition soit que la valeur du champ
soit changée, alors ? Que dois-je indiquer ?
Encore merci.
Marie-Christine
Avatar
Eric
Tu mets les ordres d'ouverture du 2eme formulaire sur l'évènement Après
Mise à Jour du champ concerné, non ?
Si tu n'as pas changé la valeur, rien ne se passe, sinon le formulaireB
sera ouvert. La clause where sur la commande Openform/OpenReport te
permet seulement d'ouvrir le formulaire sur le bon enregistrement (idem
pour l'état à imprimer)

Merci Eric
Mais je voudrais que la seule condition soit que la valeur du champ
soit changée, alors ? Que dois-je indiquer ?
Encore merci.
Marie-Christine



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

Avatar
Pierre CFI [mvp]
bonjour
marie-christine tu n'aurais pas du mettre ton adresse en clair car tu vas avoir droit à une série de spam, dit de plus ne te seront
guere utiles, viagra, enlarge your... et autre
surtout avec wanadoo

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

"Eric" a écrit dans le message de news: %
Tu mets les ordres d'ouverture du 2eme formulaire sur l'évènement Après Mise à Jour du champ concerné, non ?
Si tu n'as pas changé la valeur, rien ne se passe, sinon le formulaireB sera ouvert. La clause where sur la commande
Openform/OpenReport te permet seulement d'ouvrir le formulaire sur le bon enregistrement (idem pour l'état à imprimer)

Merci Eric
Mais je voudrais que la seule condition soit que la valeur du champ
soit changée, alors ? Que dois-je indiquer ?
Encore merci.
Marie-Christine



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



Avatar
marie-christine.pinsolle
Encore merci Eric je vais essayer d'appliquer.
Avatar
marie-christine.pinsolle
Encore merci Eric je vais essayer d'appliquer.
1 2 3