OVH Cloud OVH Cloud

Mise a jour de sous formulaire...

4 réponses
Avatar
Ryo
Salut !

J'ai 2 sous formulaire dans un formulaire, l'un avec la liste des
clients l'autre avec l'historique des commandes.
Je filtre l'historique des commandes du client avec une requête qui est
la source du sous formulaire.
Je voudrais que quand je clique sur un client, l'historique de ses
commandes apparaisse, pour cela je fais:
Private Sub Form_Current()
ChangeClient = True
If IsNull(Me.Clt_Num) Then
Form_frm_Menu.Texte_Rappel_Client.Value = "Nouveau Client"
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue =
""
Else
Form_frm_Menu.Texte_Rappel_Client.Value = "Commandes de M " &
Me.Clt_Nom
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue =
Me.Clt_Num
End If
Form_frm_Sous_Formulaire_Historique.Requery
ChangeClient = False
End Sub
Et ça ne marche pas... Pourtant si je clique sur mon client et que
j'execute la requête ca marche nickel elle me retourne les bon
resultats. C'est le sous formulaire qu'a pas envis de se mettre à
jour...
Pouvez vous m'aider ?
Merci d'avance.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

4 réponses

Avatar
Raymond [mvp]
Bonjour.

si tu essayais :
Form_frm_Sous_Formulaire_Historique.form.Requery
ou
forms!formprincipal!Form_frm_Sous_Formulaire_Historique.form.Requery

qui fonctionnerait de partout.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ryo" a écrit dans le message de
news:
Salut !

J'ai 2 sous formulaire dans un formulaire, l'un avec la liste des
clients l'autre avec l'historique des commandes.
Je filtre l'historique des commandes du client avec une requête qui est
la source du sous formulaire.
Je voudrais que quand je clique sur un client, l'historique de ses
commandes apparaisse, pour cela je fais:
Private Sub Form_Current()
ChangeClient = True
If IsNull(Me.Clt_Num) Then
Form_frm_Menu.Texte_Rappel_Client.Value = "Nouveau Client"
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue > ""
Else
Form_frm_Menu.Texte_Rappel_Client.Value = "Commandes de M " &
Me.Clt_Nom
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue > Me.Clt_Num
End If
Form_frm_Sous_Formulaire_Historique.Requery
ChangeClient = False
End Sub
Et ça ne marche pas... Pourtant si je clique sur mon client et que
j'execute la requête ca marche nickel elle me retourne les bon
resultats. C'est le sous formulaire qu'a pas envis de se mettre à
jour...
Pouvez vous m'aider ?
Merci d'avance.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Avatar
Ryo
Alors ça marche pas tout à fait...
Ca ne marche que quand je change l'enregistrement du formulaire
principal contenant les 2 sous formulaires, mais...
J'ai trouver un truc marrant (enfin, j'ai pas vraiment envis de rire
mais bon...).
Quand j'ai essayé
forms!formprincipal!Form_frm_Sous_Formulaire_Historique.form.Requery
J'ai prit une erreur dans la tête, formprincipal introuvable ou
n'existe pas un truc dans le genre.
J'ai donc replace
forms!formprincipal!Form_frm_Sous_Formulaire_Historique.form.Requery
par Form_frm_Sous_Formulaire_Historique.form.Requery (en mode debug) et
j'ai continue l'éxécution du code.
Et la ça s'est mit à marcher, cool...
Ben non pas tout à fait, je relance et ça marche plus.
Donc je teste, et en fait,
Form_frm_Sous_Formulaire_Historique.form.Requery et
Form_frm_Sous_Formulaire_Historique.Requery se mettent à fonctionner à
partir du moment ou je prend une erreur de VB dans la tête, sinon ca
marche pas...
Si quelqu'un peut m'expliquer ça...
Merci.

si tu essayais :
Form_frm_Sous_Formulaire_Historique.form.Requery
ou
forms!formprincipal!Form_frm_Sous_Formulaire_Historique.form.Requery

qui fonctionnerait de partout.


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
Ryo
J'ai trouver comment faire pour que ca marche...
Bon ca tiens plus de l'astuce qu'autre chose.
En fait il ne faut pas mettre la fonction dans Form_Current, mais il
faut la mettre dans le GotFocus de tout les controles du formulaire.
C'est lourd mais ca marche.
QUestion quand même, y a t il un événement qui se produit entre le
Form_Current du formulaire et le GotFocus du formulaire sur lequel on a
cliquer ?
Merci.

Bonjour.

si tu essayais :
Form_frm_Sous_Formulaire_Historique.form.Requery
ou
forms!formprincipal!Form_frm_Sous_Formulaire_Historique.form.Requery

qui fonctionnerait de partout.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ryo" a écrit dans le message de
news:
Salut !

J'ai 2 sous formulaire dans un formulaire, l'un avec la liste des
clients l'autre avec l'historique des commandes.
Je filtre l'historique des commandes du client avec une requête qui est
la source du sous formulaire.
Je voudrais que quand je clique sur un client, l'historique de ses
commandes apparaisse, pour cela je fais:
Private Sub Form_Current()
ChangeClient = True
If IsNull(Me.Clt_Num) Then
Form_frm_Menu.Texte_Rappel_Client.Value = "Nouveau Client"
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue >> ""
Else
Form_frm_Menu.Texte_Rappel_Client.Value = "Commandes de M " &
Me.Clt_Nom
Form_frm_Sous_Formulaire_Historique.Texte_Client.DefaultValue >> Me.Clt_Num
End If
Form_frm_Sous_Formulaire_Historique.Requery
ChangeClient = False
End Sub
Et ça ne marche pas... Pourtant si je clique sur mon client et que
j'execute la requête ca marche nickel elle me retourne les bon
resultats. C'est le sous formulaire qu'a pas envis de se mettre à
jour...
Pouvez vous m'aider ?
Merci d'avance.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Raymond [mvp]
au niveau formulaire , le form_current change à chaque enregistrement, le
gotfocus n'est exécuté qu'une seule fois lors de la réception du focus. le
gotfocus des contrôles se déclenche à chaque entrée de contrôle.
la réception focus se fait après Entrée et activation du formulaire.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ryo" a écrit dans le message de
news:
J'ai trouver comment faire pour que ca marche...
Bon ca tiens plus de l'astuce qu'autre chose.
En fait il ne faut pas mettre la fonction dans Form_Current, mais il
faut la mettre dans le GotFocus de tout les controles du formulaire.
C'est lourd mais ca marche.
QUestion quand même, y a t il un événement qui se produit entre le
Form_Current du formulaire et le GotFocus du formulaire sur lequel on a
cliquer ?
Merci.